@skbkontur/colors 1.1.2-1903c.0 → 1.1.2-34230.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/constants/abney-correction.d.ts +2 -0
- package/dist/cjs/constants/abney-correction.js +1105 -0
- package/dist/cjs/constants/chroma-settings.d.ts +2 -0
- package/dist/cjs/constants/chroma-settings.js +105 -0
- package/dist/cjs/constants/default-swatch.d.ts +109 -0
- package/dist/cjs/constants/default-swatch.js +112 -0
- package/dist/cjs/constants/interaction-settings.d.ts +8 -0
- package/dist/cjs/constants/interaction-settings.js +11 -0
- package/dist/cjs/constants/logo-lightness.d.ts +1 -0
- package/dist/cjs/constants/logo-lightness.js +4 -0
- package/dist/cjs/constants/promo-hue-shift.d.ts +3 -0
- package/dist/cjs/constants/promo-hue-shift.js +14 -0
- package/dist/cjs/constants/warning-hue-patch.d.ts +3 -0
- package/dist/cjs/constants/warning-hue-patch.js +25 -0
- package/dist/cjs/get-base-tokens.d.ts +17 -0
- package/dist/cjs/get-base-tokens.js +203 -0
- package/dist/cjs/get-colors.d.ts +17 -0
- package/dist/cjs/get-colors.js +16 -0
- package/dist/cjs/get-default-tokens.d.ts +625 -0
- package/dist/cjs/get-default-tokens.js +631 -0
- package/dist/cjs/helpers/get-interactions.d.ts +7 -0
- package/dist/cjs/helpers/get-interactions.js +40 -0
- package/dist/cjs/helpers/get-logo.d.ts +6 -0
- package/dist/cjs/helpers/get-logo.js +29 -0
- package/dist/cjs/helpers/get-palette.d.ts +51 -0
- package/dist/cjs/helpers/get-palette.js +242 -0
- package/dist/cjs/helpers/get-promo.d.ts +6 -0
- package/dist/cjs/helpers/get-promo.js +58 -0
- package/dist/cjs/types/base-tokens.d.ts +55 -0
- package/dist/cjs/types/base-tokens.js +2 -0
- package/dist/cjs/types/generator-tokens.d.ts +43 -0
- package/dist/cjs/types/generator-tokens.js +2 -0
- package/dist/esm/constants/abney-correction.d.ts +2 -0
- package/dist/esm/constants/abney-correction.js +1102 -0
- package/dist/esm/constants/chroma-settings.d.ts +2 -0
- package/dist/esm/constants/chroma-settings.js +102 -0
- package/dist/esm/constants/default-swatch.d.ts +109 -0
- package/dist/esm/constants/default-swatch.js +109 -0
- package/dist/esm/constants/interaction-settings.d.ts +8 -0
- package/dist/esm/constants/interaction-settings.js +8 -0
- package/dist/esm/constants/logo-lightness.d.ts +1 -0
- package/dist/esm/constants/logo-lightness.js +1 -0
- package/dist/esm/constants/promo-hue-shift.d.ts +3 -0
- package/dist/esm/constants/promo-hue-shift.js +11 -0
- package/dist/esm/constants/warning-hue-patch.d.ts +3 -0
- package/dist/esm/constants/warning-hue-patch.js +22 -0
- package/dist/esm/get-base-tokens.d.ts +17 -0
- package/dist/esm/get-base-tokens.js +169 -0
- package/dist/esm/get-colors.d.ts +17 -0
- package/dist/esm/get-colors.js +12 -0
- package/dist/esm/get-default-tokens.d.ts +625 -0
- package/dist/esm/get-default-tokens.js +627 -0
- package/dist/esm/helpers/get-interactions.d.ts +7 -0
- package/dist/esm/helpers/get-interactions.js +35 -0
- package/dist/esm/helpers/get-logo.d.ts +6 -0
- package/dist/esm/helpers/get-logo.js +25 -0
- package/dist/esm/helpers/get-palette.d.ts +51 -0
- package/dist/esm/helpers/get-palette.js +210 -0
- package/dist/esm/helpers/get-promo.d.ts +6 -0
- package/dist/esm/helpers/get-promo.js +53 -0
- package/dist/esm/types/base-tokens.d.ts +55 -0
- package/dist/esm/types/base-tokens.js +1 -0
- package/dist/esm/types/generator-tokens.d.ts +43 -0
- package/dist/esm/types/generator-tokens.js +1 -0
- package/dist/tokens/base/css/brand-blue-deep_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-blue-deep_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-blue_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-blue_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-green_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-green_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-mint_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-mint_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-orange_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-orange_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-purple_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-purple_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-red_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-red_accent-gray.css +900 -0
- package/dist/tokens/base/css/brand-violet_accent-brand.css +984 -0
- package/dist/tokens/base/css/brand-violet_accent-gray.css +900 -0
- package/dist/tokens/base/js/brand-blue-deep_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-blue-deep_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-blue_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-blue_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-green_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-green_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-mint_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-mint_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-orange_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-orange_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-purple_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-purple_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-red_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-red_accent-gray.js +898 -0
- package/dist/tokens/base/js/brand-violet_accent-brand.js +984 -0
- package/dist/tokens/base/js/brand-violet_accent-gray.js +898 -0
- package/dist/tokens/base/js-tree/brand-blue-deep_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-blue-deep_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-blue_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-blue_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-green_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-green_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-mint_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-mint_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-orange_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-orange_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-purple_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-purple_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-red_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-red_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/js-tree/brand-violet_accent-brand.tree.js +1128 -0
- package/dist/tokens/base/js-tree/brand-violet_accent-gray.tree.js +1032 -0
- package/dist/tokens/base/json/brand-blue-deep_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-blue-deep_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-blue_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-blue_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-green_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-green_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-mint_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-mint_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-orange_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-orange_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-purple_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-purple_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-red_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-red_accent-gray.json +898 -0
- package/dist/tokens/base/json/brand-violet_accent-brand.json +984 -0
- package/dist/tokens/base/json/brand-violet_accent-gray.json +898 -0
- package/dist/tokens/base/json-tree/brand-blue-deep_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-blue-deep_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-blue_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-blue_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-green_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-green_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-mint_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-mint_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-orange_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-orange_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-purple_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-purple_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-red_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-red_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/json-tree/brand-violet_accent-brand.tree.json +1128 -0
- package/dist/tokens/base/json-tree/brand-violet_accent-gray.tree.json +1032 -0
- package/dist/tokens/base/less/brand-blue-deep_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-blue-deep_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-blue_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-blue_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-green_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-green_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-mint_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-mint_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-orange_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-orange_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-purple_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-purple_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-red_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-red_accent-gray.less +898 -0
- package/dist/tokens/base/less/brand-violet_accent-brand.less +982 -0
- package/dist/tokens/base/less/brand-violet_accent-gray.less +898 -0
- package/dist/tokens/base/scss/brand-blue-deep_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-blue-deep_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-blue_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-blue_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-green_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-green_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-mint_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-mint_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-orange_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-orange_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-purple_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-purple_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-red_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-red_accent-gray.scss +898 -0
- package/dist/tokens/base/scss/brand-violet_accent-brand.scss +982 -0
- package/dist/tokens/base/scss/brand-violet_accent-gray.scss +898 -0
- package/dist/tokens/semantic/css/brand-blue-deep_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-blue-deep_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-blue_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-blue_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-green_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-green_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-mint_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-mint_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-orange_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-orange_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-purple_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-purple_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-red_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-red_accent-gray.css +623 -0
- package/dist/tokens/semantic/css/brand-violet_accent-brand.css +623 -0
- package/dist/tokens/semantic/css/brand-violet_accent-gray.css +623 -0
- package/dist/tokens/semantic/js/brand-blue-deep_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-blue-deep_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-blue_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-blue_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-green_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-green_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-mint_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-mint_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-orange_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-orange_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-purple_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-purple_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-red_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-red_accent-gray.js +624 -0
- package/dist/tokens/semantic/js/brand-violet_accent-brand.js +624 -0
- package/dist/tokens/semantic/js/brand-violet_accent-gray.js +624 -0
- package/dist/tokens/semantic/json/brand-blue-deep_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-blue-deep_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-blue_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-blue_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-green_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-green_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-mint_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-mint_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-orange_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-orange_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-purple_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-purple_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-red_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-red_accent-gray.json +686 -0
- package/dist/tokens/semantic/json/brand-violet_accent-brand.json +686 -0
- package/dist/tokens/semantic/json/brand-violet_accent-gray.json +686 -0
- package/dist/tokens/semantic/less/semantic.less +309 -0
- package/dist/tokens/semantic/scss/semantic.scss +309 -0
- package/package.json +13 -7
- package/colors.css +0 -160
- package/colors.less +0 -158
- package/colors.scss +0 -158
- package/dist/cjs/colors.d.ts +0 -161
- package/dist/cjs/colors.js +0 -163
- package/dist/esm/colors.d.ts +0 -161
- package/dist/esm/colors.js +0 -163
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPressed = exports.getHover = void 0;
|
|
4
|
+
var culori_1 = require("culori");
|
|
5
|
+
var interaction_settings_1 = require("../constants/interaction-settings");
|
|
6
|
+
function applyOklchDelta(oklchColor, dL, dC) {
|
|
7
|
+
var _a = oklchColor.l, l = _a === void 0 ? 0 : _a, _b = oklchColor.c, c = _b === void 0 ? 0 : _b, _c = oklchColor.h, h = _c === void 0 ? 0 : _c;
|
|
8
|
+
var safeH = h === undefined || isNaN(h) ? 0 : h;
|
|
9
|
+
var newL = Math.max(0, Math.min(1, l + dL / 100));
|
|
10
|
+
var newC = Math.max(0, c + dC);
|
|
11
|
+
return "oklch(".concat(newL.toFixed(3), " ").concat(newC.toFixed(3), " ").concat(safeH.toFixed(0), ")");
|
|
12
|
+
}
|
|
13
|
+
function getHover(hex) {
|
|
14
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
15
|
+
var oklchColor = toOklch(hex);
|
|
16
|
+
if (!oklchColor) {
|
|
17
|
+
return { light: hex, dark: hex };
|
|
18
|
+
}
|
|
19
|
+
var lightHoverColor = applyOklchDelta(oklchColor, interaction_settings_1.HOVER_LIGHT_L, interaction_settings_1.HOVER_LIGHT_C);
|
|
20
|
+
var darkHoverColor = applyOklchDelta(oklchColor, interaction_settings_1.HOVER_DARK_L, interaction_settings_1.HOVER_DARK_C);
|
|
21
|
+
return {
|
|
22
|
+
light: lightHoverColor,
|
|
23
|
+
dark: darkHoverColor,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.getHover = getHover;
|
|
27
|
+
function getPressed(hex) {
|
|
28
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
29
|
+
var oklchColor = toOklch(hex);
|
|
30
|
+
if (!oklchColor) {
|
|
31
|
+
return { light: hex, dark: hex };
|
|
32
|
+
}
|
|
33
|
+
var lightPressedColor = applyOklchDelta(oklchColor, interaction_settings_1.PRESSED_LIGHT_L, interaction_settings_1.PRESSED_LIGHT_C);
|
|
34
|
+
var darkPressedColor = applyOklchDelta(oklchColor, interaction_settings_1.PRESSED_DARK_L, interaction_settings_1.PRESSED_DARK_C);
|
|
35
|
+
return {
|
|
36
|
+
light: lightPressedColor,
|
|
37
|
+
dark: darkPressedColor,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.getPressed = getPressed;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLogo = void 0;
|
|
4
|
+
var culori_1 = require("culori");
|
|
5
|
+
var logo_lightness_1 = require("../constants/logo-lightness");
|
|
6
|
+
function getLogo(hex) {
|
|
7
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
8
|
+
var oklchColor = toOklch(hex);
|
|
9
|
+
var lightThemeLogoColor = hex;
|
|
10
|
+
if (!oklchColor) {
|
|
11
|
+
var fallbackColor = "oklch(".concat(logo_lightness_1.MIN_LOGO_LIGHTNESS, "% 0 0)");
|
|
12
|
+
return { light: hex, dark: fallbackColor };
|
|
13
|
+
}
|
|
14
|
+
var _a = oklchColor.l, l = _a === void 0 ? 0 : _a, _b = oklchColor.c, c = _b === void 0 ? 0 : _b;
|
|
15
|
+
var h = oklchColor.h;
|
|
16
|
+
var safeH = h === undefined || isNaN(h) ? 0 : h;
|
|
17
|
+
l = l || 0;
|
|
18
|
+
c = c || 0;
|
|
19
|
+
var percentL = l * 100;
|
|
20
|
+
if (percentL < logo_lightness_1.MIN_LOGO_LIGHTNESS) {
|
|
21
|
+
l = logo_lightness_1.MIN_LOGO_LIGHTNESS / 100;
|
|
22
|
+
}
|
|
23
|
+
var darkThemeLogoColor = "oklch(".concat(l.toFixed(3), " ").concat(c.toFixed(3), " ").concat(safeH.toFixed(0), ")");
|
|
24
|
+
return {
|
|
25
|
+
light: lightThemeLogoColor,
|
|
26
|
+
dark: darkThemeLogoColor,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.getLogo = getLogo;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { GeneratorColorAbneyCorrection, GeneratorColorChromaSettingsGroup, GeneratorColorPalette, GeneratorColorWarningHuePatch } from '../types/generator-tokens';
|
|
2
|
+
interface GeneratePaletteParams {
|
|
3
|
+
color: string;
|
|
4
|
+
type?: 'default' | 'warning';
|
|
5
|
+
settings?: {
|
|
6
|
+
chromaSettings?: GeneratorColorChromaSettingsGroup;
|
|
7
|
+
abneyCorrection?: GeneratorColorAbneyCorrection;
|
|
8
|
+
promoHueShifts?: {
|
|
9
|
+
[hueRange: number]: number;
|
|
10
|
+
};
|
|
11
|
+
warningHuePatch?: GeneratorColorWarningHuePatch;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function getPalette({ color, type, settings: customSettings, }: GeneratePaletteParams): GeneratorColorPalette;
|
|
15
|
+
export declare function getAbneyHueShift(lightness: number, currentHue: number, abneyData: GeneratorColorAbneyCorrection): number;
|
|
16
|
+
export declare function applyAbneyShift(lightness: number, currentHue: number, abneyData: GeneratorColorAbneyCorrection): number;
|
|
17
|
+
export declare function applyWarningHuePatch(currentHue: number, lightness: number, warningHuePatchData: GeneratorColorWarningHuePatch, isWarningMode: boolean): number;
|
|
18
|
+
export declare function calculateBaseHueAndCorrectionRange(inputColorString: string, abneyData: GeneratorColorAbneyCorrection): {
|
|
19
|
+
baseHue: number;
|
|
20
|
+
correctionLightness: number;
|
|
21
|
+
correctionHueRange: number;
|
|
22
|
+
} | null;
|
|
23
|
+
export declare function calcOnBrand(hex: string): {
|
|
24
|
+
4: string;
|
|
25
|
+
6: string;
|
|
26
|
+
8: string;
|
|
27
|
+
12: string;
|
|
28
|
+
16: string;
|
|
29
|
+
20: string;
|
|
30
|
+
24: string;
|
|
31
|
+
28: string;
|
|
32
|
+
32: string;
|
|
33
|
+
36: string;
|
|
34
|
+
40: string;
|
|
35
|
+
44: string;
|
|
36
|
+
48: string;
|
|
37
|
+
52: string;
|
|
38
|
+
56: string;
|
|
39
|
+
60: string;
|
|
40
|
+
64: string;
|
|
41
|
+
68: string;
|
|
42
|
+
72: string;
|
|
43
|
+
76: string;
|
|
44
|
+
80: string;
|
|
45
|
+
84: string;
|
|
46
|
+
88: string;
|
|
47
|
+
92: string;
|
|
48
|
+
96: string;
|
|
49
|
+
100: string;
|
|
50
|
+
};
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
37
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
38
|
+
if (ar || !(i in from)) {
|
|
39
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
40
|
+
ar[i] = from[i];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
44
|
+
};
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
exports.calcOnBrand = exports.calculateBaseHueAndCorrectionRange = exports.applyWarningHuePatch = exports.applyAbneyShift = exports.getAbneyHueShift = exports.getPalette = void 0;
|
|
47
|
+
var culori_1 = require("culori");
|
|
48
|
+
var apca_w3_1 = require("apca-w3");
|
|
49
|
+
var DefaultSwatch = __importStar(require("../constants/default-swatch"));
|
|
50
|
+
var chroma_settings_1 = require("../constants/chroma-settings");
|
|
51
|
+
var abney_correction_1 = require("../constants/abney-correction");
|
|
52
|
+
var promo_hue_shift_1 = require("../constants/promo-hue-shift");
|
|
53
|
+
var warning_hue_patch_1 = require("../constants/warning-hue-patch");
|
|
54
|
+
function getPalette(_a) {
|
|
55
|
+
var color = _a.color, _b = _a.type, type = _b === void 0 ? 'default' : _b, customSettings = _a.settings;
|
|
56
|
+
var defaultSettings = {
|
|
57
|
+
chromaSettings: chroma_settings_1.CHROMA_SETTINGS,
|
|
58
|
+
abneyCorrection: abney_correction_1.ABNEY_CORRECTION,
|
|
59
|
+
promoHueShifts: promo_hue_shift_1.PROMO_HUE_SHIFTS,
|
|
60
|
+
warningHuePatch: warning_hue_patch_1.WARNING_HUE_PATCH,
|
|
61
|
+
};
|
|
62
|
+
var settings = __assign(__assign({}, defaultSettings), customSettings);
|
|
63
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
64
|
+
var oklchColor = toOklch(color);
|
|
65
|
+
var currentHue = (oklchColor === null || oklchColor === void 0 ? void 0 : oklchColor.h) || 0;
|
|
66
|
+
var toNorm = function (x) { return x / 100; };
|
|
67
|
+
var calculateChromaValue = function (rel, min, max, baseChromaMax) {
|
|
68
|
+
var raw = (baseChromaMax * rel) / 100;
|
|
69
|
+
var value = raw;
|
|
70
|
+
if (min !== undefined) {
|
|
71
|
+
value = Math.max(toNorm(min), value);
|
|
72
|
+
}
|
|
73
|
+
if (max !== undefined) {
|
|
74
|
+
value = Math.min(toNorm(max), value);
|
|
75
|
+
}
|
|
76
|
+
return Math.min(value, baseChromaMax);
|
|
77
|
+
};
|
|
78
|
+
var result = {
|
|
79
|
+
vivid: {},
|
|
80
|
+
normal: {},
|
|
81
|
+
dim: {},
|
|
82
|
+
};
|
|
83
|
+
var isWarning = type === 'warning';
|
|
84
|
+
for (var Lstr in settings.chromaSettings) {
|
|
85
|
+
var L = +Lstr;
|
|
86
|
+
if (L === 100) {
|
|
87
|
+
result.vivid[L] = "oklch(100% 0 0)";
|
|
88
|
+
result.normal[L] = "oklch(100% 0 0)";
|
|
89
|
+
result.dim[L] = "oklch(100% 0 0)";
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
var hueAfterWarningPatch = applyWarningHuePatch(currentHue, L, settings.warningHuePatch, isWarning);
|
|
93
|
+
var appliedHueShift = applyAbneyShift(L, hueAfterWarningPatch, settings.abneyCorrection);
|
|
94
|
+
var chromaMax = (0, culori_1.clampChroma)({ mode: 'oklch', l: L / 100, c: 1, h: appliedHueShift }, 'oklch').c;
|
|
95
|
+
var currentParams = settings.chromaSettings[L];
|
|
96
|
+
var vividN = calculateChromaValue(currentParams.vivid.rel, currentParams.vivid.min, currentParams.vivid.max, chromaMax);
|
|
97
|
+
var normN = calculateChromaValue(currentParams.normal.rel, currentParams.normal.min, currentParams.normal.max, chromaMax);
|
|
98
|
+
var dimN = calculateChromaValue(currentParams.dim.rel, currentParams.dim.min, currentParams.dim.max, chromaMax);
|
|
99
|
+
result.vivid[L] = "oklch(".concat(L, "% ").concat(vividN.toFixed(3), " ").concat(appliedHueShift.toFixed(0), ")");
|
|
100
|
+
result.normal[L] = "oklch(".concat(L, "% ").concat(normN.toFixed(3), " ").concat(appliedHueShift.toFixed(0), ")");
|
|
101
|
+
result.dim[L] = "oklch(".concat(L, "% ").concat(dimN.toFixed(3), " ").concat(appliedHueShift.toFixed(0), ")");
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
exports.getPalette = getPalette;
|
|
106
|
+
function getAbneyHueShift(lightness, currentHue, abneyData) {
|
|
107
|
+
var lightnessData = abneyData[lightness];
|
|
108
|
+
if (!lightnessData) {
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
var hueRanges = Object.keys(lightnessData)
|
|
112
|
+
.map(Number)
|
|
113
|
+
.sort(function (a, b) { return a - b; });
|
|
114
|
+
var selectedHueRange = hueRanges[0];
|
|
115
|
+
for (var i = 0; i < hueRanges.length; i++) {
|
|
116
|
+
var startRange = hueRanges[i];
|
|
117
|
+
var endRange = hueRanges[i + 1] !== undefined ? hueRanges[i + 1] : 360;
|
|
118
|
+
if (currentHue >= startRange && currentHue < endRange) {
|
|
119
|
+
selectedHueRange = startRange;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
if (i === hueRanges.length - 1 && currentHue >= startRange && currentHue < 360) {
|
|
123
|
+
selectedHueRange = startRange;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return lightnessData[selectedHueRange] !== undefined ? lightnessData[selectedHueRange] : 0;
|
|
128
|
+
}
|
|
129
|
+
exports.getAbneyHueShift = getAbneyHueShift;
|
|
130
|
+
function applyAbneyShift(lightness, currentHue, abneyData) {
|
|
131
|
+
var abneyShift = getAbneyHueShift(lightness, currentHue, abneyData);
|
|
132
|
+
return (currentHue + abneyShift + 360) % 360;
|
|
133
|
+
}
|
|
134
|
+
exports.applyAbneyShift = applyAbneyShift;
|
|
135
|
+
function applyWarningHuePatch(currentHue, lightness, warningHuePatchData, isWarningMode) {
|
|
136
|
+
if (isWarningMode) {
|
|
137
|
+
var patch = warningHuePatchData[lightness];
|
|
138
|
+
if (patch !== undefined) {
|
|
139
|
+
return (currentHue + patch + 360) % 360;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return currentHue;
|
|
143
|
+
}
|
|
144
|
+
exports.applyWarningHuePatch = applyWarningHuePatch;
|
|
145
|
+
function findClosestLightnessStep(targetL, availableLightnessSteps) {
|
|
146
|
+
if (availableLightnessSteps.length === 0) {
|
|
147
|
+
return targetL;
|
|
148
|
+
}
|
|
149
|
+
var sortedSteps = __spreadArray([], availableLightnessSteps, true).sort(function (a, b) { return a - b; });
|
|
150
|
+
var closestStep = sortedSteps[0];
|
|
151
|
+
var minDiff = Math.abs(targetL - closestStep);
|
|
152
|
+
for (var i = 1; i < sortedSteps.length; i++) {
|
|
153
|
+
var currentStep = sortedSteps[i];
|
|
154
|
+
var diff = Math.abs(targetL - currentStep);
|
|
155
|
+
if (diff < minDiff || (diff === minDiff && currentStep > closestStep)) {
|
|
156
|
+
minDiff = diff;
|
|
157
|
+
closestStep = currentStep;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return closestStep;
|
|
161
|
+
}
|
|
162
|
+
function calculateBaseHueAndCorrectionRange(inputColorString, abneyData) {
|
|
163
|
+
try {
|
|
164
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
165
|
+
var oklch = toOklch(inputColorString);
|
|
166
|
+
if (!oklch) {
|
|
167
|
+
console.warn("Could not parse color string: ".concat(inputColorString));
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
var targetLightness = Math.round(oklch.l * 100);
|
|
171
|
+
var targetHue_1 = oklch.h;
|
|
172
|
+
if (isNaN(targetHue_1)) {
|
|
173
|
+
console.warn("Achromatic color detected (".concat(inputColorString, "). Defaulting hue to 0."));
|
|
174
|
+
targetHue_1 = 0;
|
|
175
|
+
}
|
|
176
|
+
var availableLightnessSteps = Object.keys(abneyData).map(Number);
|
|
177
|
+
if (availableLightnessSteps.length === 0) {
|
|
178
|
+
console.warn('Abney correction data is empty, cannot calculate base hue.');
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
var closestLightness = findClosestLightnessStep(targetLightness, availableLightnessSteps);
|
|
182
|
+
var lightnessCorrectionData = abneyData[closestLightness];
|
|
183
|
+
if (!lightnessCorrectionData) {
|
|
184
|
+
console.warn("No Abney correction data for lightness ".concat(closestLightness, "."));
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
var correctedHueMap_1 = Object.entries(lightnessCorrectionData).map(function (_a) {
|
|
188
|
+
var rawHueStr = _a[0], shift = _a[1];
|
|
189
|
+
var rawHue = Number(rawHueStr);
|
|
190
|
+
return {
|
|
191
|
+
rawHue: rawHue,
|
|
192
|
+
shift: shift,
|
|
193
|
+
correctedHue: (rawHue + shift + 360) % 360,
|
|
194
|
+
};
|
|
195
|
+
});
|
|
196
|
+
correctedHueMap_1.sort(function (a, b) {
|
|
197
|
+
if (a.correctedHue !== b.correctedHue) {
|
|
198
|
+
return a.correctedHue - b.correctedHue;
|
|
199
|
+
}
|
|
200
|
+
return a.rawHue - b.rawHue;
|
|
201
|
+
});
|
|
202
|
+
if (correctedHueMap_1.length === 0) {
|
|
203
|
+
console.warn("No hue ranges defined for lightness ".concat(closestLightness, "."));
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
var findCorrectRange = function () {
|
|
207
|
+
var nextRangeIndex = correctedHueMap_1.findIndex(function (range) { return range.correctedHue > targetHue_1; });
|
|
208
|
+
if (nextRangeIndex === 0) {
|
|
209
|
+
return correctedHueMap_1[correctedHueMap_1.length - 1];
|
|
210
|
+
}
|
|
211
|
+
if (nextRangeIndex > 0) {
|
|
212
|
+
return correctedHueMap_1[nextRangeIndex - 1];
|
|
213
|
+
}
|
|
214
|
+
return correctedHueMap_1[correctedHueMap_1.length - 1];
|
|
215
|
+
};
|
|
216
|
+
var selectedRange = findCorrectRange();
|
|
217
|
+
if (!selectedRange) {
|
|
218
|
+
console.error('Could not determine the correct hue range.');
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
var baseHue = (targetHue_1 - selectedRange.shift + 360) % 360;
|
|
222
|
+
return {
|
|
223
|
+
baseHue: baseHue,
|
|
224
|
+
correctionLightness: closestLightness,
|
|
225
|
+
correctionHueRange: selectedRange.rawHue,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
console.error('Error calculating base hue:', error);
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.calculateBaseHueAndCorrectionRange = calculateBaseHueAndCorrectionRange;
|
|
234
|
+
function calcOnBrand(hex) {
|
|
235
|
+
var whiteContrast = Number((0, apca_w3_1.calcAPCA)('#fff', hex));
|
|
236
|
+
var blackContrast = Number((0, apca_w3_1.calcAPCA)('#000', hex));
|
|
237
|
+
if (whiteContrast - 10 <= blackContrast) {
|
|
238
|
+
return DefaultSwatch.whiteAlpha;
|
|
239
|
+
}
|
|
240
|
+
return DefaultSwatch.blackAlpha;
|
|
241
|
+
}
|
|
242
|
+
exports.calcOnBrand = calcOnBrand;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPromoHueShift = exports.getPromo = void 0;
|
|
4
|
+
var culori_1 = require("culori");
|
|
5
|
+
var promo_hue_shift_1 = require("../constants/promo-hue-shift");
|
|
6
|
+
function getPromo(color, hueShifts) {
|
|
7
|
+
if (hueShifts === void 0) { hueShifts = promo_hue_shift_1.PROMO_HUE_SHIFTS; }
|
|
8
|
+
try {
|
|
9
|
+
var toOklch = (0, culori_1.converter)('oklch');
|
|
10
|
+
var oklchColor = toOklch(color);
|
|
11
|
+
if (!oklchColor) {
|
|
12
|
+
throw new Error("Invalid color string: ".concat(color));
|
|
13
|
+
}
|
|
14
|
+
var currentHue = oklchColor.h;
|
|
15
|
+
var promoHueShift = getPromoHueShift(currentHue, hueShifts);
|
|
16
|
+
var correctedHue = (currentHue + promoHueShift + 360) % 360;
|
|
17
|
+
var promoLightness = oklchColor.l * 100;
|
|
18
|
+
if (promoLightness >= 50) {
|
|
19
|
+
promoLightness = promoLightness - 32;
|
|
20
|
+
}
|
|
21
|
+
promoLightness = Math.min(Math.max(promoLightness, 30), 34);
|
|
22
|
+
var promoChroma = 0.1;
|
|
23
|
+
var finalLightness = Math.round(promoLightness) / 100;
|
|
24
|
+
var finalChroma = Math.round(promoChroma * 100) / 100;
|
|
25
|
+
var promoOklch = {
|
|
26
|
+
mode: 'oklch',
|
|
27
|
+
l: finalLightness,
|
|
28
|
+
c: finalChroma,
|
|
29
|
+
h: correctedHue,
|
|
30
|
+
};
|
|
31
|
+
return (0, culori_1.formatHex)((0, culori_1.clampChroma)(promoOklch, 'oklch'));
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.error('Error generating promo palette:', error);
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.getPromo = getPromo;
|
|
39
|
+
function getPromoHueShift(currentHue, promoHueShifts) {
|
|
40
|
+
var hueRanges = Object.keys(promoHueShifts)
|
|
41
|
+
.map(Number)
|
|
42
|
+
.sort(function (a, b) { return a - b; });
|
|
43
|
+
var selectedHueRange = hueRanges[0];
|
|
44
|
+
for (var i = 0; i < hueRanges.length; i++) {
|
|
45
|
+
var startRange = hueRanges[i];
|
|
46
|
+
var endRange = hueRanges[i + 1] !== undefined ? hueRanges[i + 1] : 360;
|
|
47
|
+
if (currentHue >= startRange && currentHue < endRange) {
|
|
48
|
+
selectedHueRange = startRange;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
if (i === hueRanges.length - 1 && (currentHue >= startRange || currentHue < hueRanges[0])) {
|
|
52
|
+
selectedHueRange = startRange;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return promoHueShifts[selectedHueRange] !== undefined ? promoHueShifts[selectedHueRange] : 0;
|
|
57
|
+
}
|
|
58
|
+
exports.getPromoHueShift = getPromoHueShift;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface BaseTokens {
|
|
2
|
+
brand: {
|
|
3
|
+
logo: ThemedValue;
|
|
4
|
+
original: string;
|
|
5
|
+
promo: string;
|
|
6
|
+
interactions: {
|
|
7
|
+
hover: ThemedValue;
|
|
8
|
+
pressed: ThemedValue;
|
|
9
|
+
};
|
|
10
|
+
palette: ColorPalette;
|
|
11
|
+
};
|
|
12
|
+
accent: {
|
|
13
|
+
original: ThemedValue;
|
|
14
|
+
interactions: {
|
|
15
|
+
hover: ThemedValue;
|
|
16
|
+
pressed: ThemedValue;
|
|
17
|
+
};
|
|
18
|
+
palette?: ColorPalette;
|
|
19
|
+
};
|
|
20
|
+
warning: ColorPalette;
|
|
21
|
+
error: ColorPalette;
|
|
22
|
+
success: ColorPalette;
|
|
23
|
+
gray: ColorWithScale<GrayScale>;
|
|
24
|
+
whiteAlpha: ColorWithScale<AlphaScale>;
|
|
25
|
+
blackAlpha: ColorWithScale<AlphaScale>;
|
|
26
|
+
onBrand: ColorWithScale<AlphaScale>;
|
|
27
|
+
onAccent?: ColorWithScale<AlphaScale>;
|
|
28
|
+
customizable: {
|
|
29
|
+
red: ColorPalette;
|
|
30
|
+
orange: ColorPalette;
|
|
31
|
+
green: ColorPalette;
|
|
32
|
+
mint: ColorPalette;
|
|
33
|
+
blue: ColorPalette;
|
|
34
|
+
blueDeep: ColorPalette;
|
|
35
|
+
violet: ColorPalette;
|
|
36
|
+
purple: ColorPalette;
|
|
37
|
+
yellow: ColorPalette;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface ColorPalette {
|
|
41
|
+
vivid: ColorWithScale<ChromaScale>;
|
|
42
|
+
normal: ColorWithScale<ChromaScale>;
|
|
43
|
+
dim: ColorWithScale<ChromaScale>;
|
|
44
|
+
}
|
|
45
|
+
type ChromaScale = 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96;
|
|
46
|
+
type AlphaScale = 4 | 6 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 100;
|
|
47
|
+
type GrayScale = 0 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96 | 98 | 100;
|
|
48
|
+
type ColorWithScale<T extends string | number> = {
|
|
49
|
+
[K in T]: string;
|
|
50
|
+
};
|
|
51
|
+
interface ThemedValue {
|
|
52
|
+
light: string;
|
|
53
|
+
dark: string;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface GeneratorColorChromaSettingsGroup {
|
|
2
|
+
[key: number]: {
|
|
3
|
+
vivid: GeneratorColorChromaSettings;
|
|
4
|
+
normal: GeneratorColorChromaSettings;
|
|
5
|
+
dim: GeneratorColorChromaSettings;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface GeneratorColorChromaSettings {
|
|
9
|
+
rel: number;
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface GeneratorColorPalette {
|
|
14
|
+
vivid: {
|
|
15
|
+
[key: number]: string;
|
|
16
|
+
};
|
|
17
|
+
normal: {
|
|
18
|
+
[key: number]: string;
|
|
19
|
+
};
|
|
20
|
+
dim: {
|
|
21
|
+
[key: number]: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface GeneratorColorAbneyCorrection {
|
|
25
|
+
[lightness: number]: {
|
|
26
|
+
[hueShiftRange: number]: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface GeneratorColorWarningHuePatch {
|
|
30
|
+
[lightness: number]: number;
|
|
31
|
+
}
|
|
32
|
+
export interface GeneratorPaletteParams {
|
|
33
|
+
color: string;
|
|
34
|
+
type?: 'default' | 'warning' | 'promo';
|
|
35
|
+
settings?: {
|
|
36
|
+
chromaSettings?: GeneratorColorChromaSettingsGroup;
|
|
37
|
+
abneyCorrection?: GeneratorColorAbneyCorrection;
|
|
38
|
+
promoHueShifts?: {
|
|
39
|
+
[hueRange: number]: number;
|
|
40
|
+
};
|
|
41
|
+
warningHuePatch?: GeneratorColorWarningHuePatch;
|
|
42
|
+
};
|
|
43
|
+
}
|