npm.io
2.0.0 • Published 9 months ago

color-range

Licence
ISC
Version
2.0.0
Deps
0
Size
14 kB
Vulns
0
Weekly
0
Stars
2

colorRange

构建与使用

npm version license bundle size CI

安装:

pnpm install color-range

导入:

// ESM
import colorRange from 'color-range'

// CJS
const colorRange = require('color-range')

开发/打包:

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]

示例:

import colorRange from 'color-range'

colorRange(50, 'RGB', '#000000', '#ffffff') // 'rgb(128, 128, 128)'
colorRange(25, 'HEX', ['#000000', 0], ['#ffffff', 100]) // '#404040'
发布

本仓库使用 pnpm:

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 如图所示:

一个线段由三个颜色变化

第一个参数:百分比

一般会在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或者私信我