Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@waku-objects/luminance

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@waku-objects/luminance

Library for getting manipulating colors

  • 2.0.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
2
Weekly downloads
 
Created
Source

@waku-objects/luminance

Tests standard-readme compliant js-standard-style

Library for calculating color luminance and getting corresponding luminance colors

Warning: This project is in beta state. There might (and most probably will) be changes in the future to its API and working. Also, no guarantees can be made about its stability, efficiency, and security at this stage.

Table of Contents

Install

pnpm install @waku-objects/luminance --save

Usage

import { calculateLuminance, getClosestColor } from '@waku-objects/luminance'

// Calculate luminance of a color (luminance is between 0 and 1)
calculateLuminance('#acacac') // supports hex
calculateLuminance({ r: 200, g: 200, b: 200 }) // and RGB

// Finds a color with the same hue that would fullfil target luminance
getClosestColor('#ff0000', 0.5) // returns #ffa2a2
getClosestColor({ r: 255, g: 0, b: 9 }, 0.5) // returns #ffa2a2

List of all functions and interfaces:

interface RGB {
	r: number
	g: number
	b: number
}
interface HSL {
	h: number
	s: number
	l: number
}
export interface HUE {
	p: number
	q: number
	t: number
}

// Utility conversion functions
function hexToRgb(hex: string): RGB
function rgbToHex(rgb: RGB): string
function hslToRgb(hsl: HSL): RGB
function rgbToHsl(rgb: RGB): HSL

// Calculate luminance
function calculateLuminance(color: RGB | string): number

// Find color with same hue that would be closest to a targetLuminance (uses bisection algorithm with at most 100 iterations)
function getClosestColor(
	sourceColor: string,
	targetLuminance: number,
	targetPrecision?: number,
	maxSteps?: number
): string

function getClosestColorBisection(
	sourceColor: string,
	targetLuminance: number,
	targetPrecision?: number,
	maxSteps?: number
): string

// Implementation with newton itterative method, better results than bisection for more than 100 iterations
function getClosestColorNewton(
	sourceColor: string,
	targetLuminance: number,
	targetPrecision?: number,
	maxSteps?: number
): string

License

MIT

FAQs

Package last updated on 21 Jul 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc