Switch
Switchは、オンとオフの状態を切り替えるために使用されるコンポーネントです。
<Switch>Basic</Switch>
使い方
import { Switch } from "@yamada-ui/react"
import { Switch } from "@/components/ui"
import { Switch } from "@workspaces/ui"
<Switch />
バリアントを変更する
<HStack>
<For each={["thick", "thin"]}>
{(variant) => (
<Switch key={variant} variant={variant}>
{toTitleCase(variant)}
</Switch>
)}
</For>
</HStack>
サイズを変更する
<HStack>
<For each={["sm", "md", "lg"]}>
{(size) => (
<Switch key={size} size={size}>
Size ({size})
</Switch>
)}
</For>
</HStack>
カラースキームを変更する
<HStack>
<For each={["success", "warning"]}>
{(colorScheme) => (
<Switch key={colorScheme} colorScheme={colorScheme} defaultChecked>
{toTitleCase(colorScheme)}
</Switch>
)}
</For>
</HStack>
ラベルの位置を変更する
<Switch reverse>Reverse Label</Switch>
形を変更する
<VStack>
<For each={["square", "rounded", "circle"]}>
{(shape) => (
<Switch key={shape} shape={shape} defaultChecked>
{toTitleCase(shape)}
</Switch>
)}
</For>
</VStack>
無効にする
<HStack>
<Switch disabled>Disabled</Switch>
<Switch disabled defaultChecked>
Disabled
</Switch>
</HStack>
読み取り専用にする
<HStack>
<Switch readOnly>Read Only</Switch>
<Switch readOnly defaultChecked>
Read Only
</Switch>
</HStack>
アイコンをカスタマイズする
<Switch
size="lg"
icon={{ off: <MoonIcon fontSize="sm" />, on: <SunIcon fontSize="sm" /> }}
>
Dark Mode
</Switch>
ラベルをカスタマイズする
const id = useId()
return (
<HStack gap="sm">
<Text as="label" htmlFor={id} userSelect="none">
Please Click
</Text>
<Switch id={id} />
</HStack>
)
制御する
const [checked, { toggle }] = useBoolean(false)
return (
<Switch checked={checked} onChange={toggle}>
Custom Control
</Switch>
)
"use client"をファイルの上部に追加する必要があります。Props
アクセシビリティ
Switchは、アクセシビリティに関してWAI-ARIA - Switch Patternに従います。
キーボード操作
| キー | 説明 | 状態 |
|---|---|---|
Tab | 無効ではないスイッチをフォーカスします。 | - |
Space | フォーカスされたスイッチの状態を切り替えます。 | - |
Enter | checkOnEnterがtrueの場合、フォーカスされたスイッチの状態を切り替えます。 | - |
ARIAロールと属性
| コンポーネント | ロールと属性 | 使い方 |
|---|---|---|
Switch | role="switch" | スイッチであることを示します。 |
aria-checked | スイッチがオンの場合は"true"を設定し、オフの場合は"false"を設定します。 | |
aria-describedby | SwitchがField.Root内にあり、Field.RootにerrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。 | |
aria-disabled | disabledが設定されている場合は"true"を設定します。 | |
aria-invalid | invalidが設定されている場合は"true"を設定します。 | |
aria-readonly | readOnlyが設定されている場合は"true"を設定します。 | |
aria-required | requiredが設定されている場合は"true"を設定します。 |