UNPKG

@ctrl/tinycolor

Version:

Fast, small color manipulation and conversion for JavaScript

47 lines (46 loc) 2.19 kB
import { ColorInput, TinyColor } from './index.js'; /** * AKA `contrast` * * Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2) */ export declare function readability(color1: ColorInput, color2: ColorInput): number; export interface WCAG2Parms { level?: 'AA' | 'AAA'; size?: 'large' | 'small'; } /** * Ensure that foreground and background color combinations meet WCAG2 guidelines. * The third argument is an object. * the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA'; * the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'. * If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}. * * Example * ```ts * new TinyColor().isReadable('#000', '#111') => false * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false * ``` */ export declare function isReadable(color1: ColorInput, color2: ColorInput, wcag2?: WCAG2Parms): boolean; export interface WCAG2FallbackParms extends WCAG2Parms { includeFallbackColors?: boolean; } /** * Given a base color and a list of possible foreground or background * colors for that base, returns the most readable color. * Optionally returns Black or White if the most readable color is unreadable. * * @param baseColor - the base color. * @param colorList - array of colors to pick the most readable one from. * @param args - and object with extra arguments * * Example * ```ts * new TinyColor().mostReadable('#123', ['#124", "#125'], { includeFallbackColors: false }).toHexString(); // "#112255" * new TinyColor().mostReadable('#123', ['#124", "#125'],{ includeFallbackColors: true }).toHexString(); // "#ffffff" * new TinyColor().mostReadable('#a8015a', ["#faf3f3"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // "#faf3f3" * new TinyColor().mostReadable('#a8015a', ["#faf3f3"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // "#ffffff" * ``` */ export declare function mostReadable(baseColor: ColorInput, colorList: ColorInput[], args?: WCAG2FallbackParms): TinyColor | null;