Chroma Panel

搜索文档

查找页面或章节

EN

颜色状态、打包体积、浏览器支持和许可证。

chroma-panel 用 HSVA 保存颜色,没有任何运行时依赖,并自带 TypeScript 类型声明。下面是把它加入应用之前值得了解的细节。

为什么颜色来回转换不会失真

HSV 有两处会丢失信息:饱和度为零时,色相就无从谈起;亮度为零时,色相和饱和度都没有意义。用 RGB 或 hex 保存状态的选择器经常碰到这个问题:把亮度拖到黑色再拖回来,你选好的色相会变回红色。

这个选择器保存完整的 HSVA 值,每次改动都合并进去,而不是整体替换。所以即使拖到极端值再拖回来,得到的仍是你最初的颜色。同一套引擎也已导出,你可以在自己的代码里使用,详见颜色引擎

需要精确值时怎么读取 hex

hex 的每个通道都会取整到 8 位。如果颜色经过来回转换后必须保持不变,请存储 hsva,并把它传回 value

体积

测量方式:在真实的 Vite 生产构建中,把 React 设为 external,统计 gzip 后增加的体积。

导入内容应用增加的体积
全部五种模式23.1 kB
面板外壳加一种模式15.0 kB

dependencies 为空。reactreact-dom 是 peer dependency,所以用的就是你应用里已有的那一份。想得到较小的那个体积,请按入口中的方式,只导入面板外壳和一种模式。

兼容性

React16.14 及以上,包括 19
React DOM必需。弹出层通过 createPortal 渲染
浏览器Chrome 123、Firefox 120、Safari 17.5
TypeScript自带类型,无需安装 @types
模块格式ESM 和 CommonJS
服务端渲染安全。依赖浏览器的文件都已标记 'use client'

最低浏览器版本由什么决定,见浏览器支持;Next.js 和 Remix 的用法见服务端渲染;导出了哪些类型见 TypeScript

许可证

MIT,作者 Sohail Khan

关于这个 React 颜色选择器 | Chroma Panel