增加色轮色调和变化步长的设置功能。
This commit is contained in:
parent
c30148427b
commit
76e9e81306
|
@ -27,19 +27,21 @@ type ColorWheelProps = {
|
||||||
actived: boolean;
|
actived: boolean;
|
||||||
rotate: number;
|
rotate: number;
|
||||||
rootColor: string;
|
rootColor: string;
|
||||||
|
tones: number;
|
||||||
|
step: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function ColorColumn({ actived, rotate, rootColor }: ColorWheelProps) {
|
export function ColorColumn({ actived, rotate, rootColor, tones, step }: ColorWheelProps) {
|
||||||
const { colorFn } = useColorFunction();
|
const { colorFn } = useColorFunction();
|
||||||
const colorSeries = useMemo(() => {
|
const colorSeries = useMemo(() => {
|
||||||
try {
|
try {
|
||||||
const colors = colorFn?.series(rootColor, 4, 0.16);
|
const colors = colorFn?.series(rootColor, tones, step / 100);
|
||||||
return (colors ?? Array.from({ length: 9 }, () => rootColor)).reverse();
|
return (colors ?? Array.from({ length: 9 }, () => rootColor)).reverse();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Generate Color Series]', e);
|
console.error('[Generate Color Series]', e);
|
||||||
}
|
}
|
||||||
return Array.from({ length: 9 }, () => rootColor);
|
return Array.from({ length: 9 }, () => rootColor);
|
||||||
}, [rootColor]);
|
}, [rootColor, tones, step]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
|
|
@ -16,6 +16,8 @@ type ColorWheelProps = {
|
||||||
| 'tetradic'
|
| 'tetradic'
|
||||||
| 'flip_tetradic'
|
| 'flip_tetradic'
|
||||||
| 'square';
|
| 'square';
|
||||||
|
tones?: number;
|
||||||
|
step?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
const wheelRotates = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330];
|
const wheelRotates = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330];
|
||||||
|
@ -33,6 +35,8 @@ const highlightSeries = {
|
||||||
export function ColorWheel({
|
export function ColorWheel({
|
||||||
originColor = '000000',
|
originColor = '000000',
|
||||||
highlightMode = 'complementary',
|
highlightMode = 'complementary',
|
||||||
|
tones = 4,
|
||||||
|
step = 10,
|
||||||
}: ColorWheelProps) {
|
}: ColorWheelProps) {
|
||||||
const { colorFn } = useColorFunction();
|
const { colorFn } = useColorFunction();
|
||||||
const wheelColors = useMemo(() => {
|
const wheelColors = useMemo(() => {
|
||||||
|
@ -58,6 +62,8 @@ export function ColorWheel({
|
||||||
rootColor={color}
|
rootColor={color}
|
||||||
rotate={rotate}
|
rotate={rotate}
|
||||||
actived={includes(highlightSeries[highlightMode], rotate)}
|
actived={includes(highlightSeries[highlightMode], rotate)}
|
||||||
|
tones={tones}
|
||||||
|
step={step}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,7 @@ export function Wheels() {
|
||||||
const [selectedColor, setSelectedColor] = useAtom(currentPickedColor);
|
const [selectedColor, setSelectedColor] = useAtom(currentPickedColor);
|
||||||
const [selectedMode, setSelectedMode] = useState('complementary');
|
const [selectedMode, setSelectedMode] = useState('complementary');
|
||||||
const [steps, setSteps] = useState(10);
|
const [steps, setSteps] = useState(10);
|
||||||
const [tones, setTones] = useState(4);
|
const [tones, setTones] = useState(3);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={cx('workspace', styles.wheels_workspace)}>
|
<div className={cx('workspace', styles.wheels_workspace)}>
|
||||||
|
@ -64,7 +64,12 @@ export function Wheels() {
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
<div className={styles.wheel_side}>
|
<div className={styles.wheel_side}>
|
||||||
<ColorWheel originColor={selectedColor} highlightMode={selectedMode} />
|
<ColorWheel
|
||||||
|
originColor={selectedColor}
|
||||||
|
highlightMode={selectedMode}
|
||||||
|
tones={tones}
|
||||||
|
step={steps}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user