UNPKG

color-range

Version:
136 lines (92 loc) 2.85 kB
# colorRange ## 构建与使用 ![npm version](https://img.shields.io/npm/v/color-range) ![license](https://img.shields.io/npm/l/color-range) ![bundle size](https://img.shields.io/bundlephobia/minzip/color-range) ![CI](https://img.shields.io/github/actions/workflow/status/DongxuYI/colorRange/release.yml?branch=main) 安装: ```bash pnpm install color-range ``` 导入: ```js // ESM import colorRange from 'color-range' // CJS const colorRange = require('color-range') ``` 开发/打包: ```bash pnpm dev pnpm build ``` 浏览器全局:`dist/index.global.js` 暴露 `window.colorRange`。 ### API ``` colorRange(percent, type, ...colors) => string ``` - `percent`: 0-100 的数字。 - `type`: 'RGB' | 'RGBA' | 'HEX' | 'HSLA'(HSLA 输入会被拒绝,返回值目前不真正输出 HSLA)。 - `colors`: - 字符串形式:`'#000000', '#ffffff'`,步长均分。 - 断点数组形式:`['#000000', 0], ['#ffffff', 100]`。 示例: ```js import colorRange from 'color-range' colorRange(50, 'RGB', '#000000', '#ffffff') // 'rgb(128, 128, 128)' colorRange(25, 'HEX', ['#000000', 0], ['#ffffff', 100]) // '#404040' ``` ### 发布 本仓库使用 pnpm: ```bash pnpm build pnpm pack # 发布前请确保 NPM_TOKEN 已配置在 GitHub Secrets(用于 CI) # 或者本地: pnpm publish --access public ``` 在任意色值直接取任意位置的色值。 目前只支持线性渐变色值。 用法: ``` npm install color-range -S ``` 或者 ``` yarn add color-range -S ``` 然后 ``` import colorRange from 'color-range' ``` colorRange 接收多个参数,最少需要四个 ![Image text](https://raw.githubusercontent.com/DongxuYI/img_folder/master/pic1.png) 如图所示: 一个线段由三个颜色变化 第一个参数:百分比 一般会在0-100之间,支持小数。 如果要获得中间点的色值,第一个参数就是50。 第二个参数:返回值 返回值提供,RGB、RGBA、HEX三种 第三个及后面参数是色值 例如: ``` var res = colorRange(10, "HEX", "#CCCCCC", "#DDDDDD"); console.log(res) // #cecece ``` 就会获得从#CCCCCC#DDDDDD变化的10%的色值,返回值是#cecece 例如: ``` var res = colorRange(10, "HEX", "#CCCCCC", "#DDDDDD", "#EEEEEE"); console.log(res) // #cfcfcf ``` 就会获得从#CCCCCC#DDDDDD变化的10%的色值,返回值是#cfcfcf 以上是均匀分布状态。 若色值分布不均匀: 例如: ``` var res = colorRange(10, "HEX", ["#CCCCCC", 0], ["#DDDDDD", 40], ["#EEEEEE", 100]) console.log(res) // #d0d0d0 ``` 起点是#CCCCCC,到40%变换成#DDDDDD,到最后的#EEEEEE,返回值是#d0d0d0 如果有疑问或者bug,可以提issues或者私信我