@devopness/ui-react
Version:
Devopness Design System React Components - Painless essential DevOps to everyone
147 lines (146 loc) • 6.2 kB
TypeScript
import { Flatten, OpacityFromFloatToHex } from './types';
declare const colors: {
readonly amber: {
readonly 800: "#a39015";
readonly 500: "#fab01c";
readonly 400: "#fdb762";
readonly 300: "#fdd88e";
readonly 200: "#fee2c0";
readonly 150: "#feebc6";
readonly 100: "#fff1e0";
readonly 50: "#fff6ef";
readonly 10: "#fffcf5";
};
readonly black: "#000000";
readonly blue: {
readonly 950: "#2e374e";
readonly 800: "#2e364e";
readonly 750: "#37436b";
readonly 700: "#0064a5";
readonly 600: "#016ee9";
readonly 500: "#0496f5";
readonly 400: "#96c7fe";
readonly 300: "#b9daff";
readonly 100: "#dcecff";
readonly 50: "#e8f6ff";
readonly 25: "#eef2ff";
};
readonly brown: {
readonly 400: "#b5a7a2";
readonly 50: "#faf8f1";
};
readonly cyan: {
readonly 800: "#537e8c";
readonly 400: "#00d7d7";
readonly 300: "#02e0d1";
readonly 200: "#e0f7fa";
readonly 100: "#ebfafb";
readonly 50: "#f6fffe";
};
readonly fuchsia: {
readonly 600: "#d000ff";
readonly 10: "#fdf5ff";
};
readonly gray: {
readonly 900: "#42495a";
readonly 800: "#828795";
readonly 615: "#9198a5";
readonly 600: "#9196a4";
readonly 500: "#b0b3bc";
readonly 400: "#afb8c9";
readonly 300: "#bdc4d3";
readonly 200: "#f3f7fe";
};
readonly green: {
readonly 800: "#57b261";
readonly 600: "#0cd356";
readonly 300: "#9eedbb";
readonly 200: "#b6f2cc";
readonly 150: "#cef6dd";
readonly 125: "#effff1";
readonly 100: "#edf9ee";
};
readonly indigo: {
readonly 100: "#f5f6ff";
readonly 50: "#f6f8ff";
readonly 10: "#f8faff";
};
readonly orange: {
readonly 700: "#f89532";
readonly 600: "#ff8700";
readonly 500: "#f8bf4d";
readonly 400: "#fdba62";
readonly 100: "#f6f4e7";
readonly 50: "#fff6f0";
readonly 10: "#fff9f0";
};
readonly purple: {
readonly 800: "#786efd";
readonly 400: "#cac7fc";
readonly 300: "#dfe4fd";
readonly 275: "#dfe6ff";
readonly 250: "#e6ecff";
readonly 100: "#f2f1ff";
readonly 50: "#f2f2fa";
};
readonly red: {
readonly 500: "#fd595c";
readonly 450: "#ff6666";
readonly 400: "#f67771";
readonly 300: "#febdbe";
readonly 200: "#fecdce";
readonly 150: "#ffdede";
readonly 100: "#ffe8e8";
readonly 50: "#fff3f3";
};
readonly slate: {
readonly 600: "#4a526a";
readonly 450: "#72798f";
readonly 400: "#abb4c5";
readonly 300: "#e3e8f9";
};
readonly stone: {
readonly 100: "#f6f6f6";
readonly 50: "#edf2f3";
};
readonly transparent: "transparent";
readonly white: "#ffffff";
readonly yellow: {
readonly 300: "#fff793";
};
};
/**
* Maps Color paths on format <color>.<shade> to its value in hex, based on colors object
*/
type ColorToHexMapper = Flatten<typeof colors>;
/**
* Lists all valid color codes, following format <color>.<shade>
*/
type Color = keyof ColorToHexMapper;
/**
* Gets the color' hex value
*
* @param name Color name on format <color>.<shade>
*/
declare const getColor: <TColor extends Color>(name: TColor) => ColorToHexMapper[TColor];
/**
* Adds opacity suffix to colors
*
* @param color string in hexadecimal format #rrggbb
*
* @param opacity number in range 0.0 to 1.0
*
* This methods transform opacity from number to a hexadecimal (16) color alpha component, meaning
* a number between 0 and ff (255) in base 16
*
* @returns color with added opacity information #rrggbbaa
*
* @example
*
* > getOpacity(#fff1e0, 0.5) // => #fff1e07f, 7f == 0.5
*
* @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/hex-color#a}
*/
declare const getOpacity: <HexColor extends ColorToHexMapper[Color], Opacity extends number>(color: HexColor, opacity: Opacity) => Exclude<HexColor, `#${string}`> | `${Extract<HexColor, `#${string}`>}${Opacity extends keyof OpacityFromFloatToHex ? OpacityFromFloatToHex[Opacity] : "00" | "19" | "33" | "4c" | "66" | "7f" | "99" | "b2" | "cc" | "e5" | "ff" | "01" | "02" | "03" | "04" | "05" | "06" | "07" | "08" | "09" | "0a" | "0b" | "0c" | "0d" | "0e" | "0f" | "10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "1a" | "1b" | "1c" | "1d" | "1e" | "1f" | "20" | "21" | "22" | "23" | "24" | "25" | "26" | "27" | "28" | "29" | "2a" | "2b" | "2c" | "2d" | "2e" | "2f" | "30" | "31" | "32" | "34" | "35" | "36" | "37" | "38" | "39" | "3a" | "3b" | "3c" | "3d" | "3e" | "3f" | "40" | "41" | "42" | "43" | "44" | "45" | "46" | "47" | "48" | "49" | "4a" | "4b" | "4d" | "4e" | "4f" | "50" | "51" | "52" | "53" | "54" | "55" | "56" | "57" | "58" | "59" | "5a" | "5b" | "5c" | "5d" | "5e" | "5f" | "60" | "61" | "62" | "63" | "64" | "65" | "67" | "68" | "69" | "6a" | "6b" | "6c" | "6d" | "6e" | "6f" | "70" | "71" | "72" | "73" | "74" | "75" | "76" | "77" | "78" | "79" | "7a" | "7b" | "7c" | "7d" | "7e" | "80" | "81" | "82" | "83" | "84" | "85" | "86" | "87" | "88" | "89" | "8a" | "8b" | "8c" | "8d" | "8e" | "8f" | "90" | "91" | "92" | "93" | "94" | "95" | "96" | "97" | "98" | "9a" | "9b" | "9c" | "9d" | "9e" | "9f" | "a0" | "a1" | "a2" | "a3" | "a4" | "a5" | "a6" | "a7" | "a8" | "a9" | "aa" | "ab" | "ac" | "ad" | "ae" | "af" | "b0" | "b1" | "b3" | "b4" | "b5" | "b6" | "b7" | "b8" | "b9" | "ba" | "bb" | "bc" | "bd" | "be" | "bf" | "c0" | "c1" | "c2" | "c3" | "c4" | "c5" | "c6" | "c7" | "c8" | "c9" | "ca" | "cb" | "cd" | "ce" | "cf" | "d0" | "d1" | "d2" | "d3" | "d4" | "d5" | "d6" | "d7" | "d8" | "d9" | "da" | "db" | "dc" | "dd" | "de" | "df" | "e0" | "e1" | "e2" | "e3" | "e4" | "e6" | "e7" | "e8" | "e9" | "ea" | "eb" | "ec" | "ed" | "ee" | "ef" | "f0" | "f1" | "f2" | "f3" | "f4" | "f5" | "f6" | "f7" | "f8" | "f9" | "fa" | "fb" | "fc" | "fd" | "fe"}`;
export type { Color };
export { getColor, getOpacity };