@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
JavaScript
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