Action Button
사용자가 특정 액션을 실행할 수 있도록 도와주는 컴포넌트입니다.
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonPreview() {
return <ActionButton>라벨</ActionButton>;
}
Installation
npx @seed-design/cli@latest add action-button
pnpm dlx @seed-design/cli@latest add action-button
yarn dlx @seed-design/cli@latest add action-button
bun x @seed-design/cli@latest add action-button
Props
Prop | Type | Default |
---|---|---|
flexGrow? | 0 | 1 | (number & {}) | - |
asChild? | boolean | false |
disabled? | boolean | false |
loading? | boolean | false |
layout? | "withText" | "iconOnly" | withText |
size? | "xsmall" | "small" | "medium" | "large" | medium |
variant? | "brandSolid" | "neutralSolid" | "neutralWeak" | "criticalSolid" | "brandOutline" | "neutralOutline" | brandSolid |
Examples
Brand Solid
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonBrandSolid() {
return <ActionButton variant="brandSolid">라벨</ActionButton>;
}
Neutral Solid
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonNeutralSolid() {
return <ActionButton variant="neutralSolid">라벨</ActionButton>;
}
Neutral Weak
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonNeutralWeak() {
return <ActionButton variant="neutralWeak">라벨</ActionButton>;
}
Critical Solid
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonCriticalSolid() {
return <ActionButton variant="criticalSolid">라벨</ActionButton>;
}
Brand Outline
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonBrandOutline() {
return <ActionButton variant="brandOutline">라벨</ActionButton>;
}
Neutral Outline
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonNeutralOutline() {
return <ActionButton variant="neutralOutline">라벨</ActionButton>;
}
Icon Only
import { IconPlusFill } from "@karrotmarket/react-monochrome-icon";
import { Icon } from "@seed-design/react";
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonIconOnly() {
return (
<ActionButton layout="iconOnly">
<Icon svg={<IconPlusFill />} />
</ActionButton>
);
}
Prefix Icon
import { IconPlusFill } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonPrefixIcon() {
return (
<ActionButton>
<PrefixIcon svg={<IconPlusFill />} />
라벨
</ActionButton>
);
}
Suffix Icon
import { IconChevronRightFill } from "@karrotmarket/react-monochrome-icon";
import { SuffixIcon } from "@seed-design/react";
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonSuffixIcon() {
return (
<ActionButton>
라벨
<SuffixIcon svg={<IconChevronRightFill />} />
</ActionButton>
);
}
Disabled
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonDisabled() {
return <ActionButton disabled>라벨</ActionButton>;
}
Loading
import { useState } from "react";
import { ActionButton } from "seed-design/ui/action-button";
export default function ActionButtonLoading() {
const [loading, setLoading] = useState(false);
function handleClick() {
setLoading(true);
setTimeout(() => setLoading(false), 2000);
}
// 이벤트 핸들링이 필요할 수 있으므로 loading은 disabled를 포함하지 않습니다. 이벤트 발생을 원하지 않는 경우, disabled 속성을 추가해주세요.
return (
<ActionButton loading={loading} onClick={handleClick}>
시간이 걸리는 액션
</ActionButton>
);
}
Last updated on