ColorSelector
ColorSelectorは、ユーザーが色を選択するために使用されるコンポーネントです。
<ColorSelector.Root maxW="md" />
使い方
import { ColorPicker } from "@yamada-ui/react"
import { ColorPicker } from "@/components/ui"
import { ColorPicker } from "@workspaces/ui"
<ColorSelector.Root>
<ColorSelector.SaturationSlider />
<ColorSelector.HueSlider />
<ColorSelector.AlphaSlider />
<ColorSelector.ColorSwatchGroupLabel />
<ColorSelector.ColorSwatchGroup>
<ColorSelector.ColorSwatchItem />
</ColorSelector.ColorSwatchGroup>
</ColorSelector.Root>
サイズを変更する
<VStack>
<For each={["sm", "md", "lg"]}>
{(size, index) => <ColorSelector.Root maxW="md" key={index} size={size} />}
</For>
</VStack>
デフォルトの値を設定する
デフォルトの値を設定する場合は、defaultValueに値を設定します。
<ColorSelector.Root defaultValue="#775999" maxW="md" />
アルファ値を設定する
アルファ値を設定する場合は、defaultValueにアルファ値を含む値を設定するか、formatに"hexa"や"hsla"などを設定します。
<ColorSelector.Root defaultValue="#775999A0" maxW="md" />
候補を表示する
候補を表示する場合は、colorSwatchesに配列を設定します。
<ColorSelector.Root
colorSwatches={[
"hsl(0, 100%, 50%)",
"hsl(45, 100%, 50%)",
"hsl(90, 100%, 50%)",
"hsl(135, 100%, 50%)",
"hsl(180, 100%, 50%)",
"hsl(225, 100%, 50%)",
"hsl(270, 100%, 50%)",
"hsl(315, 100%, 50%)",
]}
colorSwatchGroupLabel="Pick a color"
maxW="md"
/>
候補の列を変更する
候補の列を変更する場合は、colorSwatchGroupColumnsに数値を設定します。
<ColorSelector.Root
colorSwatches={[
"hsl(0, 100%, 50%)",
"hsl(36, 100%, 50%)",
"hsl(72, 100%, 50%)",
"hsl(108, 100%, 50%)",
"hsl(144, 100%, 50%)",
"hsl(180, 100%, 50%)",
"hsl(216, 100%, 50%)",
"hsl(252, 100%, 50%)",
"hsl(288, 100%, 50%)",
"hsl(324, 100%, 50%)",
]}
colorSwatchGroupColumns={10}
colorSwatchGroupLabel="Pick a color"
maxW="md"
/>
形を変える
<VStack>
<For each={["rounded", "circle", "square"]}>
{(shape, index) => (
<ColorSelector.Root key={index} format="hexa" maxW="md" shape={shape} />
)}
</For>
</VStack>
無効にする
<ColorSelector.Root disabled maxW="md" />
読み取り専用にする
<ColorSelector.Root maxW="md" readOnly />
コンポーネントをカスタマイズする
const [value, setValue] = useState("#FF0000FF")
return (
<Popover.Root placement="end-start">
<Popover.Trigger>
<Center rounded="full" w="fit-content">
<ColorSwatch color={value} variant="circle" />
</Center>
</Popover.Trigger>
<Popover.Content w="xs" p="1">
<Popover.Body>
<ColorSelector.Root value={value} onChange={setValue} />
</Popover.Body>
</Popover.Content>
</Popover.Root>
)
"use client"をファイルの上部に追加する必要があります。制御する
const [value, setValue] = useState("#FF0000A0")
return <ColorSelector.Root maxW="md" value={value} onChange={setValue} />
"use client"をファイルの上部に追加する必要があります。