# Switch URL: /react/components/switch Source: https://github.com/daangn/seed-design/blob/dev/docs/content/react/components/switch.mdx 특정 설정 및 상태를 즉시 켜거나 끌 수 있도록 하는 컴포넌트입니다. 사용 가능 버전: @seed-design/react@0.0.1, @seed-design/css@0.0.1 ## Preview ```tsx import { Switch } from "seed-design/ui/switch"; export default function SwitchPreview() { return ; } ``` ## Installation - npm: npx @seed-design/cli@latest add ui:switch - pnpm: pnpm dlx @seed-design/cli@latest add ui:switch - yarn: yarn dlx @seed-design/cli@latest add ui:switch - bun: bun x @seed-design/cli@latest add ui:switch ## Props ### `Switch` ### `Switchmark` ## Examples ### Sizes `size="medium"`과 `size="small"`은 더 이상 사용되지 않습니다. 대신 `size="32"`와 `size="16"`을 사용하세요. ```tsx import { VStack } from "@seed-design/react"; import { Switch } from "seed-design/ui/switch"; export default function SwitchSizes() { return ( ); } ``` ### Tones #### Brand ```tsx import { Switch } from "seed-design/ui/switch"; export default function SwitchBrand() { return ; } ``` #### Neutral ```tsx import { Switch } from "seed-design/ui/switch"; export default function SwitchNeutral() { return ; } ``` ### Long Label ```tsx import { VStack } from "@seed-design/react"; import { Switch } from "seed-design/ui/switch"; export default function SwitchLongLabel() { return ( ); } ``` ### Disabled ```tsx import { VStack } from "@seed-design/react"; import { useState } from "react"; import { Switch } from "seed-design/ui/switch"; export default function SwitchDisabled() { const [disabled, setDisabled] = useState(true); return ( ); } ``` ### Listening to Value Changes `onCheckedChange`를 사용하여 스위치의 선택 상태 변경을 감지할 수 있습니다. 이벤트를 활용해야 하는 경우 `inputProps`를 통해 내부 `` 요소에 직접 이벤트 핸들러를 추가할 수 있습니다. ```tsx import { VStack, Text } from "@seed-design/react"; import { Switch } from "seed-design/ui/switch"; import { useState } from "react"; export default function SwitchValueChanges() { const [count, setCount] = useState(0); const [lastValue, setLastValue] = useState(null); return ( { setCount((prev) => prev + 1); setLastValue(checked); }} /> onCheckedChange called: {count} times, last value: {`${lastValue ?? "-"}`} ); } ``` ### Use Cases #### Using `Switchmark` `Switchmark`는 레이블을 제외한 스위치 컴포넌트로, 커스텀 레이아웃을 위해 사용할 수 있습니다. ```tsx import { HStack, Text, VStack } from "@seed-design/react"; import { Switch } from "@seed-design/react/primitive"; import { Switchmark } from "seed-design/ui/switch"; function CustomSwitch({ children, ...props }: Switch.RootProps) { return ( {children} ); } export default function () { return ( regular medium bold ); } ```