Values.js
:grapes: Get the tints and shades of a color
Install / Use
/learn @noeldelgado/Values.jsREADME
values.js
Get tints and shades of a CSS color
The lightness or darkness of a color is called its value. Tints are light values that are made by mixing a color with white, which increases lightness. Shades are dark values that are made by mixing a color with black, which reduces lightness.
https://noeldelgado.github.io/values.js/
Supports
- <color value>
- Hexadecimal RGB value: #RGB #RRGGBB
- #RGBA #RRGGBBAA (4 and 8-digit hexadecimal RGBA notation)
- RGB/A - CSS Color Module Level 3 and 4 (number, percentage)
- HSL/A - CSS Color Module Level 3 and 4 (number, deg, rad, turn)
- <color keyword>
- One of the pre-defined color keywords.
- transparent
- Shorthand for transparent black, rgba(0,0,0,0).
Installation
NPM
npm install values.js --save
Or as a <script> tag from a CDN as Values:
Unpkg CDN
<script src="https://unpkg.com/values.js"></script>
jsDelivr CDN
<script src="https://cdn.jsdelivr.net/npm/values.js"></script>
Usage
import Values from 'values.js'
const color = new Values('hsl(204deg 100% 50% / 1)'), { log } = console
log(color.tint(25))
//> { rgb: [64, 179, 255], alpha: 1, type: "tint", weight: 25, ...methods }
log(color.shade(12))
//> { rgb: [0, 135, 224], alpha: 1, type: "shade", weight: 12, ...methods }
log(color.tints(8))
//> (12) [Values...]
log(color.shades(23))
//> (4) [Values...]
log(color.all(20))
//> (11) [Values...]
// instance example for 'red'
Values {
alpha: 1
rgb: (3) [255, 0, 0]
type: "base"
weight: 0
get hex: ƒ(...)
setColor: ƒ setColor(color)
tint: ƒ tint(weight=50)
tints: ƒ tints(weight=10)
shade: ƒ shade(weight=50)
shades: ƒ shades(weight=10)
all: ƒ all(weight=10)
hexString: ƒ hexString()
rgbString: ƒ rgbString()
getBrightness: ƒ getBrightness()
}
See tests for more cases.
API
constructor(color)
Throws if the color is not accepted.
@param {string} color— a valid CSS color string
setColor(color)
Sets a new base color, returns null if color has not been accepted.
@param {string} color- a valid CSS color string@return {Values|null}
tint([weight=50])
Lightens the base color by mixing it with white as specified by weight.
@param {number} [weight=50]@return {Values}
shade([weight=50)
Darkens the base color by mixing it with black as specified by weight.
@param {number} [weight=50]@return {Values}
tints([weight=10])
Generates the tints of the base color as specified by weight.
@param {number} [weight=10]@return {Array<Values>}
shades([percentage=10])
Generates the shades of the base color as specified by weight.
@param {number} [weight=10]@return {Array<Values>}
all([weight=10])
Generates the tints and shades of the base color as specified by weight.
@param {number} [weight=10]@return {Array<Values>}
hexString()
Returns the color in hexadecimal RGB notation.
@returns {string}@example#000000or#00000080
rgbString()
Returns the color in rgb() functional notation.
@returns {string}@examplergb(0, 0, 0)orrgba(0, 0, 0, 0.5)
getBrightness()
Calculates the brightness of the color.
@return {number}— the base-color brightness.
Dev
npm install # install dev-dependencies
npm test # run the tests
npm run dev # watch for changes and run tests
Related
- shadowlord - Tints and shades generator tool
- mix-css-color - Mix two CSS colors together in variable proportion. Opacity is included in the calculations.
- parse-css-color - Parse a CSS color string
License
MIT © Noel Delgado
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
