Package Exports
- @uiw/react-color-swatch
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@uiw/react-color-swatch) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
React Color Swatch
Swatch Component is a subcomponent of @react-color
.
Install
npm i @uiw/react-color-swatch
Usage
import { hsvaToHex, getContrastingColor, } from '@uiw/color-convert';
import Swatch from '@uiw/react-color-swatch';
function Point(props: { color?: string; checked?: boolean }) {
if (!props.checked) return null;
return (
<div
style={{
height: 5,
width: 5,
borderRadius: '50%',
backgroundColor: getContrastingColor(props.color!),
}}
/>
);
}
function Demo() {
const [hex, setHex] = useState("#fff");
return (
<Swatch
colors={[ '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00' ]}
color={hex}
rectProps={{
children: <Point />,
style: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
},
}}
onChange={(hsvColor) => {
setHex(hsvaToHex(hsvColor))
}}
/>
);
}
Props
import { ColorResult, HsvaColor } from '@uiw/color-convert';
export type SwatchPresetColor = { color: string; title?: string } | string;
export type SwatchRectRenderProps = {
key: string | number;
title: string;
color: string;
checked: boolean;
style: React.CSSProperties;
onClick: (evn: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
};
export interface SwatchProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'> {
prefixCls?: string;
color?: string;
colors?: SwatchPresetColor[];
rectProps?: React.HTMLAttributes<HTMLDivElement>;
rectRender?: (props: SwatchRectRenderProps) => JSX.Element;
onChange?: (hsva: HsvaColor) => void;
addonAfter?: React.ReactNode;
addonBefore?: React.ReactNode;
}
License
Licensed under the MIT License.