JSPM

  • Created
  • Published
  • Downloads 56775
  • Score
    100M100P100Q169565F
  • License MIT

Color swatch component for React.

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

npm bundle size npm version Open in unpkg

react-color-swatch

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 interface SwatchProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick' | 'color'> {
  prefixCls?: string;
  color?: string;
  colors?: SwatchPresetColor[];
  rectProps?: React.HTMLAttributes<HTMLDivElement>;
  rectRender?: (props: { title: string; color: string; checked: boolean; }) => JSX.Element;
  onChange?: (hsva: HsvaColor) => void;
}

License

Licensed under the MIT License.