Package Exports
- @uiw/react-color-swatch
- @uiw/react-color-swatch/cjs/index.js
- @uiw/react-color-swatch/esm/index.js
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 React, { useState } from 'react';
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))
}}
/>
);
}
export default Demo;
Props
import React from 'react';
import { HsvaColor, ColorResult } 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, color: ColorResult, evn: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
addonAfter?: React.ReactNode;
addonBefore?: React.ReactNode;
}
declare const Swatch: React.ForwardRefExoticComponent<SwatchProps & React.RefAttributes<HTMLDivElement>>;
export default Swatch;
Contributors
As always, thanks to our amazing contributors!
Made with contributors.
License
Licensed under the MIT License.