UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

47 lines (46 loc) 1.77 kB
import { _isValidAlpha, _isValidHue, _isValidPercentage, _isValidRGBComponent, } from './helpers.js'; export function isHex6(color) { return /^#[0-9A-Fa-f]{6}$/.test(color?.trim()); } export function isHex8(color) { return /^#[0-9A-Fa-f]{8}$/.test(color?.trim()); } export function isRGB(color) { const match = color ?.trim() ?.match(/^rgb\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)\s*\)$/); if (!match) return false; const [r, g, b] = match.slice(1).map(Number); return _isValidRGBComponent(r) && _isValidRGBComponent(g) && _isValidRGBComponent(b); } export function isRGBA(color) { const match = color ?.trim() ?.match(/^rgba\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?),\s*(0|1|0?\.\d+)\s*\)$/); if (!match) return false; const [r, g, b, a] = match.slice(1).map(Number); return (_isValidRGBComponent(r) && _isValidRGBComponent(g) && _isValidRGBComponent(b) && _isValidAlpha(a)); } export function isHSL(color) { const match = color ?.trim() ?.match(/^hsl\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)%,\s*(\d{1,3}(?:\.\d+)?)%\s*\)$/); if (!match) return false; const [h, s, l] = match.slice(1).map(Number); return _isValidHue(h) && _isValidPercentage(s) && _isValidPercentage(l); } export function isHSLA(color) { const match = color ?.trim() .match(/^hsla\(\s*(\d{1,3}(?:\.\d+)?),\s*(\d{1,3}(?:\.\d+)?)%,\s*(\d{1,3}(?:\.\d+)?)%,\s*(0|1|0?\.\d+)\s*\)$/); if (!match) return false; const [h, s, l, a] = match.slice(1).map(Number); return _isValidHue(h) && _isValidPercentage(s) && _isValidPercentage(l) && _isValidAlpha(a); }