import cx from 'clsx'; import { useAtom } from 'jotai'; import { useEffect, useMemo, useState } from 'react'; import { ColorPicker } from '../components/ColorPicker'; import { HSegmentedControl } from '../components/HSegmentedControl'; import { Labeled } from '../components/Labeled'; import { LabeledPicker } from '../components/LabeledPicker'; import { ScrollArea } from '../components/ScrollArea'; import { Switch } from '../components/Switch'; import { PaletteColors } from '../page-components/auto-palette/PaletteColors'; import { currentPickedColor } from '../stores/colors'; import styles from './Palette.module.css'; type ColorModes = 'hex' | 'rgb' | 'hsl' | 'lab' | 'oklch'; export function AutomaticPalette() { const [selectedColor, setSelectedColor] = useAtom(currentPickedColor); const [useReferenceColor, setUseReferenceColor] = useState(false); const [swatchAmount, setSwatchAmount] = useState(5); const maxBias = useMemo( () => (swatchAmount > 3 ? Math.floor(swatchAmount / 2) - 1 : 0), [swatchAmount], ); const [referenceBias, setReferenceBias] = useState(0); const [minLightness, setMinLightness] = useState(10); const [maxLightness, setMaxLightness] = useState(90); const [mode, setMode] = useState('hex'); useEffect(() => { if (useReferenceColor) { setReferenceBias(0); } }, [swatchAmount, useReferenceColor]); return (

Automatic Palette

Automatically generate a color palette suitable for UI color matching according to the given color algorithm.

Generated Palette
setMode(v as ColorModes)} />
); }