@uiw/react-color
Version:
Color Picker component for React.
218 lines (179 loc) • 30.8 kB
Markdown
<div markdown="1">
<sup>Using <a href="https://wangchujiang.com/#/app" target="_blank">my app</a> is also a way to <a href="https://wangchujiang.com/#/sponsor" target="_blank">support</a> me:</sup>
<br>
<a target="_blank" href="https://apps.apple.com/app/Vidwall/6747587746" title="Vidwall for macOS"><img align="center" alt="Vidwall" height="52" width="52" src="https://github.com/user-attachments/assets/7b5df70a-ed91-4d4b-85be-f00e60a09ce9"></a>
<a target="_blank" href="https://wangchujiang.com/mousio-hint/" title="Mousio Hint for macOS"><img align="center" alt="Mousio Hint" height="52" width="52" src="https://github.com/user-attachments/assets/3c0af128-0cef-44e5-a8db-4741dc5a6690"></a>
<a target="_blank" href="https://apps.apple.com/app/6746747327" title="Mousio for macOS"><img align="center" alt="Mousio" height="52" width="52" src="https://github.com/user-attachments/assets/9edf61ff-5a6c-4676-9cc2-8fd3c1ad0dfb"></a>
<a target="_blank" href="https://apps.apple.com/app/6745227444" title="Musicer for macOS"><img align="center" alt="Musicer" height="52" width="52" src="https://github.com/user-attachments/assets/b7abfba8-88ff-4c86-a125-43073d5aef22"></a>
<a target="_blank" href="https://apps.apple.com/app/6743841447" title="Audioer for macOS"><img align="center" alt="Audioer" height="52" width="52" src="https://github.com/user-attachments/assets/7a836865-8c90-4119-87bc-19e06a76c957"></a>
<a target="_blank" href="https://apps.apple.com/app/6744690194" title="FileSentinel for macOS"><img align="center" alt="FileSentinel" height="52" width="52" src="https://github.com/user-attachments/assets/28bce2cc-290e-45bf-9068-585ff6ecafe9"></a>
<a target="_blank" href="https://apps.apple.com/app/6743495172" title="FocusCursor for macOS"><img align="center" alt="FocusCursor" height="52" width="52" src="https://github.com/user-attachments/assets/d543668a-737b-4853-a6bb-eaa269e69836"></a>
<a target="_blank" href="https://apps.apple.com/app/6742680573" title="Videoer for macOS"><img align="center" alt="Videoer" height="52" width="52" src="https://github.com/user-attachments/assets/10ffb0f1-0625-40d6-93f1-2c2496592595"></a>
<a target="_blank" href="https://apps.apple.com/app/6740425504" title="KeyClicker for macOS"><img align="center" alt="KeyClicker" height="52" width="52" src="https://github.com/user-attachments/assets/5a19fcb9-cb81-4855-b4ea-31c604d9612a"></a>
<a target="_blank" href="https://apps.apple.com/app/6739052447" title="DayBar for macOS"><img align="center" alt="DayBar" height="52" width="52" src="https://github.com/user-attachments/assets/771b608d-594c-492d-8532-d9231e383f5b"></a>
<a target="_blank" href="https://apps.apple.com/app/6739444407" title="Iconed for macOS"><img align="center" alt="Iconed" height="52" width="52" src="https://github.com/user-attachments/assets/8a35dc7b-4faf-4e2a-9311-f66d6844a896"></a>
<a target="_blank" href="https://apps.apple.com/app/6737160756" title="RightMenu Master for macOS"><img align="center" alt="RightMenu Master" height="52" width="52" src="https://github.com/user-attachments/assets/39a76541-71bf-4de7-a01c-c62f0557dff5"></a>
<a target="_blank" href="https://apps.apple.com/app/6723903021" title="Paste Quick for macOS"><img align="center" alt="Quick RSS" height="52" width="52" src="https://github.com/user-attachments/assets/bdaad5b7-9810-44ce-8f17-8410864465d2"></a>
<a target="_blank" href="https://apps.apple.com/app/6670696072" title="Quick RSS for macOS/iOS"><img align="center" alt="Quick RSS" height="52" width="52" src="https://github.com/user-attachments/assets/374106b5-a448-4d1d-9ccb-b04b6bc681ed"></a>
<a target="_blank" href="https://apps.apple.com/app/6670167443" title="Web Serve for macOS"><img align="center" alt="Web Serve" height="52" width="52" src="https://github.com/user-attachments/assets/e1d9f76f-0f3d-4ba5-8a15-253ee173bb1c"></a>
<a target="_blank" href="https://apps.apple.com/app/6503953628" title="Copybook Generator for macOS/iOS"><img align="center" alt="Copybook Generator" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/b90e42ff-158b-4534-82ca-5898fd0e8d73"></a>
<a target="_blank" href="https://apps.apple.com/app/6471227008" title="DevTutor for macOS/iOS"><img align="center" alt="DevTutor for SwiftUI" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/f15c154d-0192-48eb-8e0e-9e245ffd974a"></a>
<a target="_blank" href="https://apps.apple.com/app/6479819388" title="RegexMate for macOS/iOS"><img align="center" alt="RegexMate" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/aabe5aa9-9a96-4390-8bed-c3e4023d0dea"></a>
<a target="_blank" href="https://apps.apple.com/app/6479194014" title="Time Passage for macOS/iOS"><img align="center" alt="Time Passage" height="52" width="52" src="https://github.com/jaywcjlove/time-passage/assets/1680273/6f30e429-e6f3-4dbe-9921-a5effe2a05e9"></a>
<a target="_blank" href="https://apps.apple.com/app/6478772538" title="IconizeFolder for macOS"><img align="center" alt="Iconize Folder" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/fa9d8b9c-1e51-4ded-877c-fa5b21c47220"></a>
<a target="_blank" href="https://apps.apple.com/app/6478511402" title="Textsound Saver for macOS/iOS"><img align="center" alt="Textsound Saver" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/0595e842-980b-4574-8891-a8ba853a08be"></a>
<a target="_blank" href="https://apps.apple.com/app/6476924627" title="Create Custom Symbols for macOS"><img align="center" alt="Create Custom Symbols" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/8cd022ce-a3f1-4e89-b7c6-6fbd0d4db77c"></a>
<a target="_blank" href="https://apps.apple.com/app/6476452351" title="DevHub for macOS"><img align="center" alt="DevHub" height="52" width="52" src="https://github.com/user-attachments/assets/4a44a4fd-67ce-430b-af0a-72f18feaa47d"></a>
<a target="_blank" href="https://apps.apple.com/app/6476400184" title="Resume Revise for macOS"><img align="center" alt="Resume Revise" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c9954a20-1905-48de-bdf8-d71837974aa2"></a>
<a target="_blank" href="https://apps.apple.com/app/6472593276" title="Palette Genius for macOS"><img align="center" alt="Palette Genius" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/27340413-d355-45b2-8f6f-6ac37682d957"></a>
<a target="_blank" href="https://apps.apple.com/app/6470879005" title="Symbol Scribe for macOS"><img align="center" alt="Symbol Scribe" height="52" width="52" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c7249f05-fa70-4def-a1e9-571d5f171fc9"></a>
</div>
<hr>
<!--rehype:ignore:start-->
<br/><br/><br/>
<p align="center">
<a title="React Color" href="https://uiwjs.github.io/react-color/">
<img src="https://github.com/uiwjs/react-color/assets/1680273/da32cf40-46fa-4da8-bd8e-fe6ad2ce3b1f" alt="@uiw/react-color" />
</a>
</p>
<br/><br/>
<h1 align="center">React Color</h1>
<!--rehype:ignore:end-->
<div align="center">
<a href="https://jaywcjlove.github.io/#/sponsor">
<img alt="Buy me a coffee" src="https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee" />
</a>
<a href="https://github.com/uiwjs/react-color/actions/workflows/ci.yml">
<img alt="Build & Deploy" src="https://github.com/uiwjs/react-color/actions/workflows/ci.yml/badge.svg" />
</a>
<a href="https://uiwjs.github.io/react-color/coverage/lcov-report/">
<img alt="Coverage Status" src="https://uiwjs.github.io/react-color/coverage/badges.svg" />
</a>
<a href="https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color/file/README.md">
<img alt="Open in unpkg" src="https://img.shields.io/badge/Open%20in-unpkg-blue" />
</a>
<a href="https://www.npmjs.com/package/@uiw/react-color">
<img alt="npm version" src="https://img.shields.io/npm/v/@uiw/react-color.svg" />
</a>
</div>
<div align="center">
<strong>react-color</strong> is a tiny color picker widget component for React apps. These components can be installed and used separately.
</div>
<!--rehype:ignore:start-->
<br/><br/>
<p align="center">
<a title="React Color" href="https://uiwjs.github.io/react-color/">
<img src="https://user-images.githubusercontent.com/1680273/126048210-964aa087-8641-428e-a4e4-67cdca812159.png" alt="@uiw/react-color" />
</a>
</p>
<br/><br/>
<!--rehype:ignore:end-->
## Getting Started
```bash
npm i @uiw/react-color
```
[](https://codesandbox.io/embed/react-color-example-rev1n?fontsize=14&hidenavigation=1&theme=dark) [](https://uiwjs.github.io/react-color/)
```jsx
import { Slider, Sketch, Material, Colorful, Compact, Circle, Wheel, Block, Github, Chrome } from '@uiw/react-color';
import { Alpha, Hue, ShadeSlider, Saturation, Interactive, hsvaToHslaString } from '@uiw/react-color';
import { EditableInput, EditableInputRGBA, EditableInputHSLA } from '@uiw/react-color';
function Demo() {
const [hex, setHex] = useState("#fff");
return (
<Sketch
style={{ marginLeft: 20 }}
color={hex}
onChange={(color) => {
setHex(color.hex);
}}
/>
);
}
```
## Support dark/night Theme
```css
[data-color-mode*='dark'] .w-color-sketch {
--sketch-background: #323232 !important;
}
[data-color-mode*='dark'] .w-color-swatch {
--sketch-swatch-border-top: 1px solid #525252 !important;
}
[data-color-mode*='dark'] .w-color-block {
--block-background-color: #323232 !important;
--block-box-shadow: rgb(0 0 0 / 10%) 0 1px !important;
}
[data-color-mode*='dark'] .w-color-editable-input {
--editable-input-label-color: #757575 !important;
--editable-input-box-shadow: #616161 0px 0px 0px 1px inset !important;
--editable-input-color: #bbb !important;
}
[data-color-mode*='dark'] .w-color-github {
--github-border: 1px solid rgba(0, 0, 0, 0.2) !important;
--github-background-color: #323232 !important;
--github-box-shadow: rgb(0 0 0 / 15%) 0px 3px 12px !important;
--github-arrow-border-color: rgba(0, 0, 0, 0.15) !important;
}
[data-color-mode*='dark'] .w-color-compact {
--compact-background-color: #323232 !important;
}
[data-color-mode*='dark'] .w-color-material {
--material-background-color: #323232 !important;
--material-border-bottom-color: #707070 !important;
}
[data-color-mode*='dark'] .w-color-alpha {
--alpha-pointer-background-color: #6a6a6a !important;
--alpha-pointer-box-shadow: rgb(0 0 0 / 37%) 0px 1px 4px 0px !important;
}
```
## Documentation
You can find the react-color documentation [on the website](https://uiwjs.github.io/react-color/).
## Packages
Package | Bundle size(gzip) | Downloads | Version / unpkg
----- | ----- | ---- | ----
[`@uiw/react-color`](https://uiwjs.github.io/react-color/) | [](https://bundlephobia.com/package/@uiw/react-color) [](https://bundlephobia.com/package/@uiw/react-color) | [](https://www.npmjs.com/package/@uiw/react-color) | [](https://www.npmjs.com/package/@uiw/react-color) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color/file/README.md)
[`@uiw/react-color-sketch`](https://uiwjs.github.io/react-color/#/sketch) | [](https://bundlephobia.com/package/@uiw/react-color-sketch) [](https://bundlephobia.com/package/@uiw/react-color-sketch) | [](https://www.npmjs.com/package/@uiw/react-color-sketch) | [](https://www.npmjs.com/package/@uiw/react-color-sketch) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-sketch/file/README.md)
[`@uiw/react-color-slider`](https://uiwjs.github.io/react-color/#/slider) | [](https://bundlephobia.com/package/@uiw/react-color-slider) [](https://bundlephobia.com/package/@uiw/react-color-slider) | [](https://www.npmjs.com/package/@uiw/react-color-slider) | [](https://www.npmjs.com/package/@uiw/react-color-slider) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-slider/file/README.md)
[`@uiw/react-color-compact`](https://uiwjs.github.io/react-color/#/compact) | [](https://bundlephobia.com/package/@uiw/react-color-compact) [](https://bundlephobia.com/package/@uiw/react-color-compact) | [](https://www.npmjs.com/package/@uiw/react-color-compact) | [](https://www.npmjs.com/package/@uiw/react-color-compact) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-compact/file/README.md)
[`@uiw/react-color-material`](https://uiwjs.github.io/react-color/#/material) | [](https://bundlephobia.com/package/@uiw/react-color-material) [](https://bundlephobia.com/package/@uiw/react-color-material) | [](https://www.npmjs.com/package/@uiw/react-color-material) | [](https://www.npmjs.com/package/@uiw/react-color-material) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-material/file/README.md)
[`@uiw/react-color-colorful`](https://uiwjs.github.io/react-color/#/colorful) | [](https://bundlephobia.com/package/@uiw/react-color-colorful) [](https://bundlephobia.com/package/@uiw/react-color-colorful) | [](https://www.npmjs.com/package/@uiw/react-color-colorful) | [](https://www.npmjs.com/package/@uiw/react-color-colorful) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-colorful/file/README.md)
[`@uiw/react-color-wheel`](https://uiwjs.github.io/react-color/#/wheel) | [](https://bundlephobia.com/package/@uiw/react-color-wheel) [](https://bundlephobia.com/package/@uiw/react-color-wheel) | [](https://www.npmjs.com/package/@uiw/react-color-wheel) | [](https://www.npmjs.com/package/@uiw/react-color-wheel) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-wheel/file/README.md)
[`@uiw/react-color-circle`](https://uiwjs.github.io/react-color/#/circle) | [](https://bundlephobia.com/package/@uiw/react-color-circle) [](https://bundlephobia.com/package/@uiw/react-color-circle) | [](https://www.npmjs.com/package/@uiw/react-color-circle) | [](https://www.npmjs.com/package/@uiw/react-color-circle) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-circle/file/README.md)
[`@uiw/react-color-block`](https://uiwjs.github.io/react-color/#/block) | [](https://bundlephobia.com/package/@uiw/react-color-block) [](https://bundlephobia.com/package/@uiw/react-color-block) | [](https://www.npmjs.com/package/@uiw/react-color-block) | [](https://www.npmjs.com/package/@uiw/react-color-block) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-block/file/README.md)
[`@uiw/react-color-chrome`](https://uiwjs.github.io/react-color/#/chrome) | [](https://bundlephobia.com/package/@uiw/react-color-chrome) [](https://bundlephobia.com/package/@uiw/react-color-chrome) | [](https://www.npmjs.com/package/@uiw/react-color-chrome) | [](https://www.npmjs.com/package/@uiw/react-color-chrome) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-chrome/file/README.md)
[`@uiw/react-color-github`](https://uiwjs.github.io/react-color/#/github) | [](https://bundlephobia.com/package/@uiw/react-color-github) [](https://bundlephobia.com/package/@uiw/react-color-github) | [](https://www.npmjs.com/package/@uiw/react-color-github) | [](https://www.npmjs.com/package/@uiw/react-color-github) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-github/file/README.md)
#### `Base Components`
Package | Bundle size(gzip) | Downloads | Version / unpkg
----- | ----- | ----- | ----
[`@uiw/react-color-saturation`](https://uiwjs.github.io/react-color/#/saturation) | [](https://bundlephobia.com/package/@uiw/react-color-saturation) [](https://bundlephobia.com/package/@uiw/react-color-saturation) | [](https://www.npmjs.com/package/@uiw/react-color-saturation) | [](https://www.npmjs.com/package/@uiw/react-color-saturation) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-saturation/file/README.md)
[`@uiw/react-color-hue`](https://uiwjs.github.io/react-color/#/hue) | [](https://bundlephobia.com/package/@uiw/react-color-hue) [](https://bundlephobia.com/package/@uiw/react-color-hue) | [](https://www.npmjs.com/package/@uiw/react-color-hue) | [](https://www.npmjs.com/package/@uiw/react-color-hue) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-hue/file/README.md)
[`@uiw/react-color-alpha`](https://uiwjs.github.io/react-color/#/alpha) | [](https://bundlephobia.com/package/@uiw/react-color-alpha) [](https://bundlephobia.com/package/@uiw/react-color-alpha) | [](https://www.npmjs.com/package/@uiw/react-color-alpha) | [](https://www.npmjs.com/package/@uiw/react-color-alpha) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-alpha/file/README.md)
[`@uiw/react-color-swatch`](https://uiwjs.github.io/react-color/#/swatch) | [](https://bundlephobia.com/package/@uiw/react-color-swatch) [](https://bundlephobia.com/package/@uiw/react-color-swatch) | [](https://www.npmjs.com/package/@uiw/react-color-swatch) | [](https://www.npmjs.com/package/@uiw/react-color-swatch) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-swatch/file/README.md)
[`@uiw/react-color-shade-slider`](https://uiwjs.github.io/react-color/#/shade-slider) | [](https://bundlephobia.com/package/@uiw/react-color-shade-slider) [](https://bundlephobia.com/package/@uiw/react-color-shade-slider) | [](https://www.npmjs.com/package/@uiw/react-color-shade-slider) | [](https://www.npmjs.com/package/@uiw/react-color-shade-slider) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-shade-slider/file/README.md)
[`@uiw/react-color-editable-input`](https://uiwjs.github.io/react-color/#/editable-input) | [](https://bundlephobia.com/package/@uiw/react-color-editable-input) [](https://bundlephobia.com/package/@uiw/react-color-editable-input) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-editable-input/file/README.md)
[`@uiw/react-color-editable-input-rgba`](https://uiwjs.github.io/react-color/#/editable-input-rgba) | [](https://bundlephobia.com/package/@uiw/react-color-editable-input-rgba) [](https://bundlephobia.com/package/@uiw/react-color-editable-input-rgba) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input-rgba) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input-rgba) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-editable-input-rgba/file/README.md)
[`@uiw/react-color-editable-input-hsla`](https://uiwjs.github.io/react-color/#/editable-input-hsla) | [](https://bundlephobia.com/package/@uiw/react-color-editable-input-hsla) [](https://bundlephobia.com/package/@uiw/react-color-editable-input-hsla) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input-hsla) | [](https://www.npmjs.com/package/@uiw/react-color-editable-input-hsla) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-editable-input-hsla/file/README.md)
[`@uiw/react-drag-event-interactive`](https://uiwjs.github.io/react-color/#/drag-event-interactive) | [](https://bundlephobia.com/package/@uiw/react-drag-event-interactive) [](https://bundlephobia.com/package/@uiw/react-drag-event-interactive) | [](https://www.npmjs.com/package/@uiw/react-drag-event-interactive) | [](https://www.npmjs.com/package/@uiw/react-drag-event-interactive) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-drag-event-interactive/file/README.md)
[`@uiw/color-convert`](https://uiwjs.github.io/react-color/#/convert) | [](https://bundlephobia.com/package/@uiw/color-convert) [](https://bundlephobia.com/package/@uiw/color-convert) | [](https://www.npmjs.com/package/@uiw/color-convert) | [](https://www.npmjs.com/package/@uiw/color-convert) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/color-convert/file/README.md)
[`@uiw/react-color-name`](https://uiwjs.github.io/react-color/#/name) | [](https://bundlephobia.com/package/@uiw/react-color-name) [](https://bundlephobia.com/package/@uiw/react-color-name) | [](https://www.npmjs.com/package/@uiw/react-color-name) | [](https://www.npmjs.com/package/@uiw/react-color-name) [](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-color-name/file/README.md)
## Development
```bash
npm install # Installation dependencies
npm run build # Compile all package
```
```bash
cd packages/color-block
# listen to the component compile and output the .js file
# listen for compilation output type .d.ts file
npm run watch # Monitor the compiled package `@uiw/react-block`
```
```bash
npm run start # development mode, listen to compile preview website instance
```
## Contributors
As always, thanks to our amazing contributors!
<a href="https://github.com/uiwjs/react-color/graphs/contributors">
<img src="https://uiwjs.github.io/react-color/coverage/CONTRIBUTORS.svg" />
</a>
Made with [contributors](https://github.com/jaywcjlove/github-action-contributors).
## License
Licensed under the MIT License.