HueSlider
HueSliderは、ユーザーが色相を選択するために使用されるコンポーネントです。
<HueSlider.Root defaultValue={180} />
使い方
import { HueSlider } from "@yamada-ui/react"
import { HueSlider } from "@/components/ui"
import { HueSlider } from "@workspaces/ui"
<HueSlider.Root />
サイズを変更する
<VStack>
<For each={["sm", "md", "lg"]}>
{(size, index) => (
<HueSlider.Root key={index} size={size} defaultValue={180} />
)}
</For>
</VStack>
デフォルトの値を設定する
デフォルトの値を設定する場合は、defaultValueに値を設定します。
<HueSlider.Root defaultValue={270} />
最小・最大値を設定する
最小・最大値を設定する場合は、minまたはmaxに数値を設定します。
<HueSlider.Root defaultValue={300} min={270} max={360} />
方向を変更する
方向を変更する場合は、orientationに"vertical"または"horizontal"を設定します。デフォルトは、"horizontal"が設定されています。
<HueSlider.Root defaultValue={180} orientation="vertical" h="xs" />
形を変更する
<VStack>
<For each={["circle", "rounded", "square"]}>
{(shape, index) => (
<HueSlider.Root key={index} defaultValue={180} shape={shape} />
)}
</For>
</VStack>
ステップ値を設定する
ステップ値を設定する場合は、stepに値を設定します。
<HueSlider.Root defaultValue={180} step={10} />
無効にする
無効にする場合は、disabledをtrueに設定します。
<HueSlider.Root defaultValue={180} disabled />
読み取り専用にする
読み取り専用にする場合は、readOnlyをtrueに設定します。
<HueSlider.Root defaultValue={180} readOnly />
ツールチップを表示する
const [value, setValue] = useState(50)
return (
<HueSlider.Root value={value} onChange={setValue}>
<HueSlider.Track>
<Tooltip content={value}>
<HueSlider.Thumb />
</Tooltip>
<HueSlider.Overlay />
</HueSlider.Track>
</HueSlider.Root>
)
"use client"をファイルの上部に追加する必要があります。開始と終了のイベントをハンドルする
開始と終了のイベントをハンドルする場合は、onChangeStartやonChangeEndを使用します。
Value: 180, Start Value: 180, End Value: 180
const [value, onChange] = useState(180)
const [startValue, onChangeStart] = useState(180)
const [endValue, onChangeEnd] = useState(180)
return (
<VStack>
<Text>
Value: {value}, Start Value: {startValue}, End Value: {endValue}
</Text>
<HueSlider.Root
value={value}
onChange={onChange}
onChangeStart={onChangeStart}
onChangeEnd={onChangeEnd}
/>
</VStack>
)
"use client"をファイルの上部に追加する必要があります。制御する
const [value, setValue] = useState(180)
return <HueSlider.Root value={value} onChange={setValue} />
"use client"をファイルの上部に追加する必要があります。Props
アクセシビリティ
HueSliderは、アクセシビリティに関してWAI-ARIA - Slider Patternに従います。
キーボード操作
| キー | 説明 | 状態 |
|---|---|---|
ArrowRight | stepの値に基づいて値を増加します。 | - |
ArrowLeft | stepの値に基づいて値を減少します。 | - |
ArrowUp | stepの値に基づいて値を増加します。 | - |
ArrowDown | stepの値に基づいて値を減少します。 | - |
Home | minの値を設定します。 | - |
End | maxの値を設定します。 | - |
PageUp | minとmaxの値に基づいて値を増加します。 | - |
PageDown | minとmaxの値に基づいて値を減少します。 | - |
ARIAロールと属性
| コンポーネント | ロールと属性 | 使い方 |
|---|---|---|
HueSlider.Thumb | role="slider" | スライダーであることを示します。 |
aria-label | "スライダーのつまみ"を設定します。 | |
aria-labelledby | 関連するHueSlider.Rootのidを設定します。 | |
aria-orientation | orientationの値に基づいて"horizontal"または"vertical"を設定します。デフォルトは"horizontal"です。 | |
aria-valuemin | minの値を設定します。デフォルトは0です。 | |
aria-valuemax | maxの値を設定します。デフォルトは360です。 | |
aria-valuenow | 現在の値を設定します。 | |
aria-valuetext | "18°, 赤"のように、現在の値を設定します。 | |
aria-describedby | HueSlider.ThumbがField.Root内にあり、Field.RootにerrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。 | |
aria-readonly | readOnlyが設定されている場合は"true"を設定します。 | |
aria-disabled | disabledが設定されている場合は"true"を設定します。 | |
aria-invalid | invalidが設定されている場合は"true"を設定します。 | |
aria-required | requiredが設定されている場合は"true"を設定します。 | |
SliderInput | type="hidden" | 要素をアクセシビリティツリーから除外します。 |
aria-describedby | HueSlider.RootがField.Root内にあり、Field.RootにerrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。 | |
aria-readonly | readOnlyが設定されている場合は"true"を設定します。 | |
aria-disabled | disabledが設定されている場合は"true"を設定します。 | |
aria-invalid | invalidが設定されている場合は"true"を設定します。 | |
aria-required | requiredが設定されている場合は"true"を設定します。 |
類似のコンポーネント
SaturationSlider
SaturationSliderは、ユーザーが色の彩度を選択するために使用されるコンポーネントです。
AlphaSlider
AlphaSliderは、ユーザーが色の透明度を選択するために使用されるコンポーネントです。
Slider
Sliderは、ユーザーが値の範囲から選択するために使用されるコンポーネントです。
ColorSelector
ColorSelectorは、ユーザーが色を選択するために使用されるコンポーネントです。
ColorPicker
ColorPickerは、ユーザーが色を選択したり任意の色の値を入力するために使用されるコンポーネントです。