Toggle Button
이 문서는 정리 중이에요. 문의 내용은 #_design_core 채널을 찾아주세요.
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonPreview() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton pressed={pressed} onPressedChange={setPressed}>
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Installation
npx @seed-design/cli@latest add toggle-button
pnpm dlx @seed-design/cli@latest add toggle-button
yarn dlx @seed-design/cli@latest add toggle-button
bun x @seed-design/cli@latest add toggle-button
Props
Prop | Type | Default |
---|---|---|
asChild? | boolean | false |
onPressedChange? | ((pressed: boolean) => void) | - |
defaultPressed? | boolean | - |
pressed? | boolean | - |
disabled? | boolean | false |
loading? | boolean | false |
size? | "xsmall" | "small" | small |
variant? | "brandSolid" | "neutralWeak" | brandSolid |
Examples
Brand Solid
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonBrandSolid() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton variant="brandSolid" pressed={pressed} onPressedChange={setPressed}>
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Neutral Weak
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonBrandSolid() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton variant="neutralWeak" pressed={pressed} onPressedChange={setPressed}>
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Small
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonSmall() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton size="small" pressed={pressed} onPressedChange={setPressed}>
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Xsmall
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonXsmall() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton size="xsmall" pressed={pressed} onPressedChange={setPressed}>
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Prefix Icon
import { IconCheckmarkLine, IconPlusLine } from "@karrotmarket/react-monochrome-icon";
import { PrefixIcon } from "@seed-design/react";
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonPrefixIcon() {
const [pressed, setPressed] = useState(false);
return (
<ToggleButton pressed={pressed} onPressedChange={setPressed}>
<PrefixIcon svg={pressed ? <IconPlusLine /> : <IconCheckmarkLine />} />
{pressed ? "선택됨" : "미선택"}
</ToggleButton>
);
}
Disabled
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonDisabled() {
return <ToggleButton disabled>비활성</ToggleButton>;
}
Loading
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonLoading() {
const [pressed, setPressed] = useState(false);
const [loading, setLoading] = useState(false);
function handleToggle() {
setLoading(true);
setTimeout(() => {
setLoading(false);
setPressed((prev) => !prev);
}, 2000);
}
// 이벤트 핸들링이 필요할 수 있으므로 loading은 disabled를 포함하지 않습니다. 이벤트 발생을 원하지 않는 경우, disabled 속성을 추가해주세요.
return (
<ToggleButton loading={loading} pressed={pressed} onPressedChange={handleToggle}>
시간이 걸리는 토글
</ToggleButton>
);
}
Last updated on