import cx from 'clsx'; import { useMemo, useState } from 'react'; import { useColorFunction } from '../ColorFunctionContext'; import { ColorPicker } from '../components/ColorPicker'; import { FlexColorStand } from '../components/FlexColorStand'; import { HSegmentedControl } from '../components/HSegmentedControl'; import { LabeledPicker } from '../components/LabeledPicker'; import { ScrollArea } from '../components/ScrollArea'; import styles from './Mixer.module.css'; type ColorModes = 'hex' | 'rgb' | 'hsl' | 'lab' | 'oklch'; export function Mixer() { const { colorFn } = useColorFunction(); const [basicColor, setBasicColor] = useState('000000'); const [mixColor, setMixColor] = useState('000000'); const [mixRatio, setMixRatio] = useState(0); const [mode, setMode] = useState('hex'); const mixedColor = useMemo(() => { try { if (!colorFn) { return '000000'; } const mixed = colorFn.mix(basicColor, mixColor, mixRatio / 100); return mixed; } catch (e) { console.error('[Mix Color]', e); } return '000000'; }, [basicColor, mixColor, mixRatio]); return (

Color Mixer

Make a new color by mixing two colors.

Basic Color
Mix Color
Mix Result
setMode(v as ColorModes)} />
); }