UNPKG

@angular-package/spectre.css

Version:

Modified Spectre.css - a lightweight, responsive, and modern CSS framework originally designed by Yan Zhu

97 lines 13.4 kB
import { Name } from '../../name'; export class Color extends Name { static colorToHex(color) { const hexadecimal = Math.round(color).toString(16); return hexadecimal.length === 1 ? '0' + hexadecimal : hexadecimal; } static hexToRgb(hex) { const getHex = hex.replace('#', '').match(/.{1,2}/g); if (getHex !== null) { return { red: parseInt(getHex[0], 16), green: parseInt(getHex[1], 16), blue: parseInt(getHex[2], 16), }; } return; } static hexToHsl(hex) { const rgb = Color.hexToRgb(hex); return typeof rgb === 'object' ? this.rgbToHsl(rgb.red, rgb.green, rgb.blue) : undefined; } static hslToRgb(hue, saturation, lightness) { const HSLToRGB = (h, s, l) => { s /= 100; l /= 100; const k = (n) => (n + h / 30) % 12; const a = s * Math.min(l, 1 - l); const f = (n) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1))); return { red: 255 * f(0), green: 255 * f(8), blue: 255 * f(4), }; }; return HSLToRGB(hue, saturation, lightness); } static rgbToHex(red, green, blue) { return ('#' + this.colorToHex(red) + this.colorToHex(green) + this.colorToHex(blue)); } static rgbToHsl(red, green, blue) { (red /= 255), (green /= 255), (blue /= 255); const max = Math.max(red, green, blue), min = Math.min(red, green, blue); let hue = 0, saturation, lightness = (max + min) / 2; if (max === min) { hue = saturation = 0; } else { const d = max - min; saturation = lightness > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case red: hue = (green - blue) / d + (green < blue ? 6 : 0); break; case green: hue = (blue - red) / d + 2; break; case blue: hue = (red - green) / d + 4; break; } hue && (hue /= 6); } hue && (hue *= 360); saturation *= 100; lightness *= 100; return { hue, saturation, lightness, }; } constructor(color, prefix, suffix, availableColor = [ 'accent', 'basic', 'dark', 'default', 'disabled', 'error', 'gray', 'gray-dark', 'gray-light', 'info', 'light', 'primary', 'secondary', 'success', 'warning', ]) { super(color, prefix, suffix, availableColor); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcGVjdHJlLmNzcy9zcmMvaGVscGVyL2NvbG9yL3NyYy9jb2xvci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBU2xDLE1BQU0sT0FBTyxLQUtYLFNBQVEsSUFBdUM7SUFPeEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFhO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNwRSxDQUFDO0lBUU0sTUFBTSxDQUFDLFFBQVEsQ0FDcEIsR0FBVztRQUVYLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsT0FBTztnQkFDTCxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzVCLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQzlCLENBQUM7U0FDSDtRQUNELE9BQU87SUFDVCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFR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QUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDbGFzcy5cbmltcG9ydCB7IE5hbWUgfSBmcm9tICcuLi8uLi9uYW1lJztcblxuLy8gVHlwZS5cbmltcG9ydCB7IENvbG9ycyB9IGZyb20gJy4uL3R5cGUvY29sb3JzLnR5cGUnO1xuaW1wb3J0IHsgSFNMIH0gZnJvbSAnLi4vdHlwZS9oc2wudHlwZSc7XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbG9yPFxuICBQcmVmaXggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIFN1ZmZpeCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgQXZhaWxhYmxlQ29sb3IgZXh0ZW5kcyBzdHJpbmcgPSBDb2xvcnMsXG4gIEMgZXh0ZW5kcyBBdmFpbGFibGVDb2xvciA9IEF2YWlsYWJsZUNvbG9yXG4+IGV4dGVuZHMgTmFtZTxBdmFpbGFibGVDb2xvciwgQywgUHJlZml4LCBTdWZmaXg+IHtcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgYGNvbG9yVG9IZXhgIGNvbnZlcnRzIGEgZGVjaW1hbCB2YWx1ZSB0byBoZXhhZGVjaW1hbC5cbiAgICogQHBhcmFtIGNvbG9yIFRoZSBjb2xvciBpbiBkZWNpbWFsIG9mIHRoZSBudW1iZXIgdHlwZS5cbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0cmluZyBoZXhhZGVjaW1hbCBjb2xvci5cbiAgICogQGFuZ3VsYXJwYWNrYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbG9yVG9IZXgoY29sb3I6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgaGV4YWRlY2ltYWwgPSBNYXRoLnJvdW5kKGNvbG9yKS50b1N0cmluZygxNik7XG4gICAgcmV0dXJuIGhleGFkZWNpbWFsLmxlbmd0aCA9PT0gMSA/ICcwJyArIGhleGFkZWNpbWFsIDogaGV4YWRlY2ltYWw7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGhleFxuICAgKiBAcmV0dXJuc1xuICAgKiBAYW5ndWxhcnBhY2thZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGV4VG9SZ2IoXG4gICAgaGV4OiBzdHJpbmdcbiAgKTogeyByZWQ6IG51bWJlcjsgZ3JlZW46IG51bWJlcjsgYmx1ZTogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGdldEhleCA9IGhleC5yZXBsYWNlKCcjJywgJycpLm1hdGNoKC8uezEsMn0vZyk7XG4gICAgaWYgKGdldEhleCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkOiBwYXJzZUludChnZXRIZXhbMF0sIDE2KSxcbiAgICAgICAgZ3JlZW46IHBhcnNlSW50KGdldEhleFsxXSwgMTYpLFxuICAgICAgICBibHVlOiBwYXJzZUludChnZXRIZXhbMl0sIDE2KSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaGV4VG9Ic2woaGV4OiBzdHJpbmcpOiBIU0wgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJnYiA9IENvbG9yLmhleFRvUmdiKGhleCk7XG4gICAgcmV0dXJuIHR5cGVvZiByZ2IgPT09ICdvYmplY3QnXG4gICAgICA/IHRoaXMucmdiVG9Ic2wocmdiLnJlZCwgcmdiLmdyZWVuLCByZ2IuYmx1ZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBodWVcbiAgICogQHBhcmFtIHNhdHVyYXRpb25cbiAgICogQHBhcmFtIGxpZ2h0bmVzc1xuICAgKiBAcmV0dXJuc1xuICAgKiBAYW5ndWxhcnBhY2thZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaHNsVG9SZ2IoXG4gICAgaHVlOiBudW1iZXIsXG4gICAgc2F0dXJhdGlvbjogbnVtYmVyLFxuICAgIGxpZ2h0bmVzczogbnVtYmVyXG4gICk6IHsgcmVkOiBudW1iZXI7IGdyZWVuOiBudW1iZXI7IGJsdWU6IG51bWJlciB9IHtcbiAgICBjb25zdCBIU0xUb1JHQiA9IChoOiBudW1iZXIsIHM6IG51bWJlciwgbDogbnVtYmVyKSA9PiB7XG4gICAgICBzIC89IDEwMDtcbiAgICAgIGwgLz0gMTAwO1xuICAgICAgY29uc3QgayA9IChuOiBhbnkpID0+IChuICsgaCAvIDMwKSAlIDEyO1xuICAgICAgY29uc3QgYSA9IHMgKiBNYXRoLm1pbihsLCAxIC0gbCk7XG4gICAgICBjb25zdCBmID0gKG46IGFueSkgPT5cbiAgICAgICAgbCAtIGEgKiBNYXRoLm1heCgtMSwgTWF0aC5taW4oayhuKSAtIDMsIE1hdGgubWluKDkgLSBrKG4pLCAxKSkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkOiAyNTUgKiBmKDApLFxuICAgICAgICBncmVlbjogMjU1ICogZig4KSxcbiAgICAgICAgYmx1ZTogMjU1ICogZig0KSxcbiAgICAgIH07XG4gICAgfTtcbiAgICByZXR1cm4gSFNMVG9SR0IoaHVlLCBzYXR1cmF0aW9uLCBsaWdodG5lc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSByZWRcbiAgICogQHBhcmFtIGdyZWVuXG4gICAqIEBwYXJhbSBibHVlXG4gICAqIEByZXR1cm5zXG4gICAqIEBhbmd1bGFycGFja2FnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZ2JUb0hleChyZWQ6IG51bWJlciwgZ3JlZW46IG51bWJlciwgYmx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgJyMnICtcbiAgICAgIHRoaXMuY29sb3JUb0hleChyZWQpICtcbiAgICAgIHRoaXMuY29sb3JUb0hleChncmVlbikgK1xuICAgICAgdGhpcy5jb2xvclRvSGV4KGJsdWUpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcmVkXG4gICAqIEBwYXJhbSBncmVlblxuICAgKiBAcGFyYW0gYmx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKiBAYW5ndWxhcnBhY2thZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmdiVG9Ic2wocmVkOiBudW1iZXIsIGdyZWVuOiBudW1iZXIsIGJsdWU6IG51bWJlcik6IEhTTCB7XG4gICAgKHJlZCAvPSAyNTUpLCAoZ3JlZW4gLz0gMjU1KSwgKGJsdWUgLz0gMjU1KTtcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heChyZWQsIGdyZWVuLCBibHVlKSxcbiAgICAgIG1pbiA9IE1hdGgubWluKHJlZCwgZ3JlZW4sIGJsdWUpO1xuICAgIGxldCBodWUgPSAwLFxuICAgICAgc2F0dXJhdGlvbixcbiAgICAgIGxpZ2h0bmVzcyA9IChtYXggKyBtaW4pIC8gMjtcblxuICAgIGlmIChtYXggPT09IG1pbikge1xuICAgICAgaHVlID0gc2F0dXJhdGlvbiA9IDA7IC8vIGFjaHJvbWF0aWNcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZCA9IG1heCAtIG1pbjtcbiAgICAgIHNhdHVyYXRpb24gPSBsaWdodG5lc3MgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xuICAgICAgc3dpdGNoIChtYXgpIHtcbiAgICAgICAgY2FzZSByZWQ6XG4gICAgICAgICAgaHVlID0gKGdyZWVuIC0gYmx1ZSkgLyBkICsgKGdyZWVuIDwgYmx1ZSA/IDYgOiAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBncmVlbjpcbiAgICAgICAgICBodWUgPSAoYmx1ZSAtIHJlZCkgLyBkICsgMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBibHVlOlxuICAgICAgICAgIGh1ZSA9IChyZWQgLSBncmVlbikgLyBkICsgNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGh1ZSAmJiAoaHVlIC89IDYpO1xuICAgIH1cbiAgICBodWUgJiYgKGh1ZSAqPSAzNjApO1xuICAgIHNhdHVyYXRpb24gKj0gMTAwO1xuICAgIGxpZ2h0bmVzcyAqPSAxMDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGh1ZSxcbiAgICAgIHNhdHVyYXRpb24sXG4gICAgICBsaWdodG5lc3MsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29sb3JcbiAgICogQHBhcmFtIHByZWZpeFxuICAgKiBAcGFyYW0gc3VmZml4XG4gICAqIEBwYXJhbSBhdmFpbGFibGVDb2xvclxuICAgKiBAYW5ndWxhcnBhY2thZ2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvbG9yOiBDLFxuICAgIHByZWZpeD86IFByZWZpeCxcbiAgICBzdWZmaXg/OiBTdWZmaXgsXG4gICAgYXZhaWxhYmxlQ29sb3I6IEF2YWlsYWJsZUNvbG9yW10gPSBbXG4gICAgICAnYWNjZW50JyxcbiAgICAgICdiYXNpYycsXG4gICAgICAnZGFyaycsXG4gICAgICAnZGVmYXVsdCcsXG4gICAgICAnZGlzYWJsZWQnLFxuICAgICAgJ2Vycm9yJyxcbiAgICAgICdncmF5JyxcbiAgICAgICdncmF5LWRhcmsnLFxuICAgICAgJ2dyYXktbGlnaHQnLFxuICAgICAgJ2luZm8nLFxuICAgICAgJ2xpZ2h0JyxcbiAgICAgICdwcmltYXJ5JyxcbiAgICAgICdzZWNvbmRhcnknLFxuICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgJ3dhcm5pbmcnLFxuICAgIF0gYXMgQXZhaWxhYmxlQ29sb3JbXVxuICApIHtcbiAgICBzdXBlcihjb2xvciwgcHJlZml4LCBzdWZmaXgsIGF2YWlsYWJsZUNvbG9yKTtcbiAgfVxufVxuIl19