# Toggle Button
URL: /react/components/toggle-button
Source: https://github.com/daangn/seed-design/blob/dev/docs/content/react/components/toggle-button.mdx
사용자가 특정 상태를 켜거나 끌 수 있게 해주는 버튼 형태의 컴포넌트입니다. 필터링이나 뷰 전환과 같은 즉각적인 상태 변경에 사용됩니다.
사용 가능 버전: @seed-design/react@0.0.1, @seed-design/css@0.0.1
## Preview
```tsx
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonPreview() {
const [pressed, setPressed] = useState(false);
return (
{pressed ? "선택됨" : "미선택"}
);
}
```
## Installation
- npm: npx @seed-design/cli@latest add ui:toggle-button
- pnpm: pnpm dlx @seed-design/cli@latest add ui:toggle-button
- yarn: yarn dlx @seed-design/cli@latest add ui:toggle-button
- bun: bun x @seed-design/cli@latest add ui:toggle-button
## Props
## Examples
### Brand Solid
```tsx
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonBrandSolid() {
const [pressed, setPressed] = useState(false);
return (
{pressed ? "선택됨" : "미선택"}
);
}
```
### Neutral Weak
```tsx
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonBrandSolid() {
const [pressed, setPressed] = useState(false);
return (
{pressed ? "선택됨" : "미선택"}
);
}
```
### Small
```tsx
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonSmall() {
const [pressed, setPressed] = useState(false);
return (
{pressed ? "선택됨" : "미선택"}
);
}
```
### Xsmall
```tsx
import { useState } from "react";
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonXsmall() {
const [pressed, setPressed] = useState(false);
return (
{pressed ? "선택됨" : "미선택"}
);
}
```
### Prefix Icon
```tsx
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 (
: } />
{pressed ? "선택됨" : "미선택"}
);
}
```
### Disabled
```tsx
import { ToggleButton } from "seed-design/ui/toggle-button";
export default function ToggleButtonDisabled() {
return 비활성;
}
```
### Loading
```tsx
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 (
시간이 걸리는 토글
);
}
```