@digdir/designsystemet 0.1.0-alpha.17 → 0.1.0-alpha.19
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/LICENSE +7 -0
- package/dist/bin/designsystemet.js +24 -28
- package/dist/src/colors/colorUtils.js +223 -315
- package/dist/src/colors/index.js +3 -3
- package/dist/src/colors/themeUtils.js +227 -319
- package/dist/src/colors/types.js +0 -1
- package/dist/src/init/createTokensPackage.js +223 -201
- package/dist/src/init/generateMetadataJson.js +19 -14
- package/dist/src/init/generateThemesJson.js +49 -40
- package/dist/src/init/index.js +7 -4
- package/dist/src/init/nextStepsMarkdown.js +15 -13
- package/dist/src/init/template/prettier.config.js +5 -7
- package/dist/src/init/template/template-files/package.json +1 -0
- package/dist/src/init/utils.js +11 -7
- package/dist/src/migrations/beta-to-v1.js +342 -339
- package/dist/src/migrations/codemods/css/plugins.js +40 -36
- package/dist/src/migrations/codemods/css/run.js +15 -20
- package/dist/src/migrations/codemods/jsx/classname-prefix.js +57 -63
- package/dist/src/migrations/codemods/jsx/run.js +17 -19
- package/dist/src/migrations/index.js +6 -3
- package/dist/src/migrations/react-beta-to-v1.js +4 -3
- package/dist/src/tokens/actions.js +25 -23
- package/dist/src/tokens/build.js +65 -51
- package/dist/src/tokens/configs.js +188 -223
- package/dist/src/tokens/formats/css.js +143 -150
- package/dist/src/tokens/formats/js-tokens.js +27 -26
- package/dist/src/tokens/transformers.js +39 -41
- package/dist/src/tokens/utils/noCase.js +25 -25
- package/dist/src/tokens/utils/permutateThemes.js +50 -64
- package/dist/src/tokens/utils/utils.js +12 -25
- package/package.json +8 -3
- package/dist/src/test/a.css +0 -39
- package/dist/src/test/jsx-test.js +0 -12
- package/dist/types/bin/designsystemet.d.ts +0 -3
- package/dist/types/bin/designsystemet.d.ts.map +0 -1
- package/dist/types/src/colors/colorUtils.d.ts +0 -126
- package/dist/types/src/colors/colorUtils.d.ts.map +0 -1
- package/dist/types/src/colors/index.d.ts +0 -4
- package/dist/types/src/colors/index.d.ts.map +0 -1
- package/dist/types/src/colors/themeUtils.d.ts +0 -102
- package/dist/types/src/colors/themeUtils.d.ts.map +0 -1
- package/dist/types/src/colors/types.d.ts +0 -16
- package/dist/types/src/colors/types.d.ts.map +0 -1
- package/dist/types/src/init/createTokensPackage.d.ts +0 -5
- package/dist/types/src/init/createTokensPackage.d.ts.map +0 -1
- package/dist/types/src/init/generateMetadataJson.d.ts +0 -6
- package/dist/types/src/init/generateMetadataJson.d.ts.map +0 -1
- package/dist/types/src/init/generateThemesJson.d.ts +0 -3
- package/dist/types/src/init/generateThemesJson.d.ts.map +0 -1
- package/dist/types/src/init/index.d.ts +0 -3
- package/dist/types/src/init/index.d.ts.map +0 -1
- package/dist/types/src/init/nextStepsMarkdown.d.ts +0 -3
- package/dist/types/src/init/nextStepsMarkdown.d.ts.map +0 -1
- package/dist/types/src/init/template/prettier.config.d.mts +0 -9
- package/dist/types/src/init/template/prettier.config.d.mts.map +0 -1
- package/dist/types/src/init/utils.d.ts +0 -4
- package/dist/types/src/init/utils.d.ts.map +0 -1
- package/dist/types/src/migrations/beta-to-v1.d.ts +0 -3
- package/dist/types/src/migrations/beta-to-v1.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/css/plugins.d.ts +0 -6
- package/dist/types/src/migrations/codemods/css/plugins.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/css/run.d.ts +0 -8
- package/dist/types/src/migrations/codemods/css/run.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/jsx/classname-prefix.d.ts +0 -10
- package/dist/types/src/migrations/codemods/jsx/classname-prefix.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/jsx/run.d.ts +0 -7
- package/dist/types/src/migrations/codemods/jsx/run.d.ts.map +0 -1
- package/dist/types/src/migrations/index.d.ts +0 -6
- package/dist/types/src/migrations/index.d.ts.map +0 -1
- package/dist/types/src/migrations/react-beta-to-v1.d.ts +0 -3
- package/dist/types/src/migrations/react-beta-to-v1.d.ts.map +0 -1
- package/dist/types/src/test/jsx-test.d.ts +0 -4
- package/dist/types/src/test/jsx-test.d.ts.map +0 -1
- package/dist/types/src/tokens/actions.d.ts +0 -6
- package/dist/types/src/tokens/actions.d.ts.map +0 -1
- package/dist/types/src/tokens/build.d.ts +0 -11
- package/dist/types/src/tokens/build.d.ts.map +0 -1
- package/dist/types/src/tokens/configs.d.ts +0 -31
- package/dist/types/src/tokens/configs.d.ts.map +0 -1
- package/dist/types/src/tokens/formats/css.d.ts +0 -5
- package/dist/types/src/tokens/formats/css.d.ts.map +0 -1
- package/dist/types/src/tokens/formats/js-tokens.d.ts +0 -6
- package/dist/types/src/tokens/formats/js-tokens.d.ts.map +0 -1
- package/dist/types/src/tokens/transformers.d.ts +0 -5
- package/dist/types/src/tokens/transformers.d.ts.map +0 -1
- package/dist/types/src/tokens/utils/noCase.d.ts +0 -11
- package/dist/types/src/tokens/utils/noCase.d.ts.map +0 -1
- package/dist/types/src/tokens/utils/permutateThemes.d.ts +0 -17
- package/dist/types/src/tokens/utils/permutateThemes.d.ts.map +0 -1
- package/dist/types/src/tokens/utils/utils.d.ts +0 -24
- package/dist/types/src/tokens/utils/utils.d.ts.map +0 -1
|
@@ -1,336 +1,244 @@
|
|
|
1
1
|
import { BackgroundColor, Color, Theme } from "@adobe/leonardo-contrast-colors";
|
|
2
2
|
import { Hsluv } from "hsluv";
|
|
3
|
-
import { getContrastFromHex, getContrastFromLightness, getLightnessFromHex } from "./colorUtils
|
|
4
|
-
const blueBaseColor =
|
|
5
|
-
const greenBaseColor =
|
|
6
|
-
const orangeBaseColor =
|
|
7
|
-
const purpleBaseColor =
|
|
8
|
-
const redBaseColor =
|
|
9
|
-
const yellowBaseColor =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
26,
|
|
60
|
-
32,
|
|
61
|
-
35,
|
|
62
|
-
47,
|
|
63
|
-
77,
|
|
64
|
-
textSubDarkLightness,
|
|
65
|
-
textDefDarkLightness
|
|
66
|
-
];
|
|
67
|
-
} else {
|
|
68
|
-
lightnessScale = [
|
|
69
|
-
1,
|
|
70
|
-
6,
|
|
71
|
-
14,
|
|
72
|
-
20,
|
|
73
|
-
26,
|
|
74
|
-
58,
|
|
75
|
-
70,
|
|
76
|
-
82,
|
|
77
|
-
80,
|
|
78
|
-
95
|
|
79
|
-
];
|
|
80
|
-
}
|
|
81
|
-
const getColorContrasts = (color, lightnessScale, backgroundColor)=>{
|
|
82
|
-
return lightnessScale.map((lightness)=>getContrastFromLightness(lightness, color, backgroundColor));
|
|
83
|
-
};
|
|
84
|
-
return new Color({
|
|
85
|
-
name: 'color',
|
|
86
|
-
colorKeys: [
|
|
87
|
-
color
|
|
88
|
-
],
|
|
89
|
-
ratios: [
|
|
90
|
-
...getColorContrasts(color, lightnessScale.slice(0, 8), leoBackgroundColor.colorKeys[0]),
|
|
91
|
-
baseDefaultContrast,
|
|
92
|
-
baseHoverContrast,
|
|
93
|
-
baseActiveContrast,
|
|
94
|
-
...getColorContrasts(color, lightnessScale.slice(8), leoBackgroundColor.colorKeys[0])
|
|
95
|
-
]
|
|
96
|
-
});
|
|
3
|
+
import { getContrastFromHex, getContrastFromLightness, getLightnessFromHex } from "./colorUtils";
|
|
4
|
+
const blueBaseColor = "#0A71C0";
|
|
5
|
+
const greenBaseColor = "#078D19";
|
|
6
|
+
const orangeBaseColor = "#CA5C21";
|
|
7
|
+
const purpleBaseColor = "#663299";
|
|
8
|
+
const redBaseColor = "#C01B1B";
|
|
9
|
+
const yellowBaseColor = "#EABF28";
|
|
10
|
+
const generateThemeColor = (color, mode, contrastMode = "aa") => {
|
|
11
|
+
const leoBackgroundColor = new BackgroundColor({
|
|
12
|
+
name: "backgroundColor",
|
|
13
|
+
colorKeys: ["#ffffff"],
|
|
14
|
+
ratios: [1]
|
|
15
|
+
});
|
|
16
|
+
let colorLightness = getLightnessFromHex(color);
|
|
17
|
+
if (mode === "dark" || mode === "contrast") {
|
|
18
|
+
color = getBaseColor(color);
|
|
19
|
+
colorLightness = colorLightness <= 30 ? 70 : 100 - colorLightness;
|
|
20
|
+
}
|
|
21
|
+
const multiplier = colorLightness <= 30 ? -8 : 8;
|
|
22
|
+
const baseDefaultContrast = getContrastFromLightness(colorLightness, color, leoBackgroundColor.colorKeys[0]);
|
|
23
|
+
const baseHoverContrast = getContrastFromLightness(
|
|
24
|
+
colorLightness - multiplier,
|
|
25
|
+
color,
|
|
26
|
+
leoBackgroundColor.colorKeys[0]
|
|
27
|
+
);
|
|
28
|
+
const baseActiveContrast = getContrastFromLightness(
|
|
29
|
+
colorLightness - multiplier * 2,
|
|
30
|
+
color,
|
|
31
|
+
leoBackgroundColor.colorKeys[0]
|
|
32
|
+
);
|
|
33
|
+
const textSubLightLightness = contrastMode === "aa" ? 42 : 30;
|
|
34
|
+
const textDefLightLightness = contrastMode === "aa" ? 18 : 12;
|
|
35
|
+
const textSubDarkLightness = contrastMode === "aa" ? 67 : 80;
|
|
36
|
+
const textDefDarkLightness = contrastMode === "aa" ? 90 : 94;
|
|
37
|
+
let lightnessScale = [];
|
|
38
|
+
if (mode === "light") {
|
|
39
|
+
lightnessScale = [100, 96, 90, 84, 78, 76, 54, 33, textSubLightLightness, textDefLightLightness];
|
|
40
|
+
} else if (mode === "dark") {
|
|
41
|
+
lightnessScale = [10, 14, 20, 26, 32, 35, 47, 77, textSubDarkLightness, textDefDarkLightness];
|
|
42
|
+
} else {
|
|
43
|
+
lightnessScale = [1, 6, 14, 20, 26, 58, 70, 82, 80, 95];
|
|
44
|
+
}
|
|
45
|
+
const getColorContrasts = (color2, lightnessScale2, backgroundColor) => {
|
|
46
|
+
return lightnessScale2.map((lightness) => getContrastFromLightness(lightness, color2, backgroundColor));
|
|
47
|
+
};
|
|
48
|
+
return new Color({
|
|
49
|
+
name: "color",
|
|
50
|
+
colorKeys: [color],
|
|
51
|
+
ratios: [
|
|
52
|
+
...getColorContrasts(color, lightnessScale.slice(0, 8), leoBackgroundColor.colorKeys[0]),
|
|
53
|
+
baseDefaultContrast,
|
|
54
|
+
baseHoverContrast,
|
|
55
|
+
baseActiveContrast,
|
|
56
|
+
...getColorContrasts(color, lightnessScale.slice(8), leoBackgroundColor.colorKeys[0])
|
|
57
|
+
]
|
|
58
|
+
});
|
|
97
59
|
};
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
1
|
|
113
|
-
]
|
|
114
|
-
});
|
|
115
|
-
const theme = new Theme({
|
|
116
|
-
colors: [
|
|
117
|
-
themeColor
|
|
118
|
-
],
|
|
119
|
-
backgroundColor: leoBackgroundColor,
|
|
120
|
-
lightness: 100
|
|
121
|
-
});
|
|
122
|
-
const outputArray = [];
|
|
123
|
-
for(let i = 0; i < theme.contrastColorValues.length; i++){
|
|
124
|
-
outputArray.push({
|
|
125
|
-
hex: theme.contrastColorValues[i],
|
|
126
|
-
number: i + 1,
|
|
127
|
-
name: getColorNameFromNumber(i + 1)
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
outputArray.push({
|
|
131
|
-
hex: calculateContrastOneColor(theme.contrastColorValues[8]),
|
|
132
|
-
number: 14,
|
|
133
|
-
name: getColorNameFromNumber(14)
|
|
134
|
-
});
|
|
60
|
+
const generateScaleForColor = (color, mode, contrastMode = "aa") => {
|
|
61
|
+
const themeColor = generateThemeColor(color, mode, contrastMode);
|
|
62
|
+
const leoBackgroundColor = new BackgroundColor({
|
|
63
|
+
name: "backgroundColor",
|
|
64
|
+
colorKeys: ["#ffffff"],
|
|
65
|
+
ratios: [1]
|
|
66
|
+
});
|
|
67
|
+
const theme = new Theme({
|
|
68
|
+
colors: [themeColor],
|
|
69
|
+
backgroundColor: leoBackgroundColor,
|
|
70
|
+
lightness: 100
|
|
71
|
+
});
|
|
72
|
+
const outputArray = [];
|
|
73
|
+
for (let i = 0; i < theme.contrastColorValues.length; i++) {
|
|
135
74
|
outputArray.push({
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
75
|
+
hex: theme.contrastColorValues[i],
|
|
76
|
+
number: i + 1,
|
|
77
|
+
name: getColorNameFromNumber(i + 1)
|
|
139
78
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
79
|
+
}
|
|
80
|
+
outputArray.push({
|
|
81
|
+
hex: calculateContrastOneColor(theme.contrastColorValues[8]),
|
|
82
|
+
number: 14,
|
|
83
|
+
name: getColorNameFromNumber(14)
|
|
84
|
+
});
|
|
85
|
+
outputArray.push({
|
|
86
|
+
hex: calculateContrastTwoColor(theme.contrastColorValues[8]),
|
|
87
|
+
number: 15,
|
|
88
|
+
name: getColorNameFromNumber(15)
|
|
89
|
+
});
|
|
90
|
+
if (mode === "light") {
|
|
91
|
+
outputArray[8].hex = color;
|
|
92
|
+
}
|
|
93
|
+
return outputArray;
|
|
144
94
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return {
|
|
155
|
-
light: lightScale,
|
|
156
|
-
dark: darkScale,
|
|
157
|
-
contrast: contrastScale
|
|
158
|
-
};
|
|
95
|
+
const generateThemeForColor = (color, contrastMode = "aa") => {
|
|
96
|
+
const lightScale = generateScaleForColor(color, "light", contrastMode);
|
|
97
|
+
const darkScale = generateScaleForColor(color, "dark", contrastMode);
|
|
98
|
+
const contrastScale = generateScaleForColor(color, "contrast", contrastMode);
|
|
99
|
+
return {
|
|
100
|
+
light: lightScale,
|
|
101
|
+
dark: darkScale,
|
|
102
|
+
contrast: contrastScale
|
|
103
|
+
};
|
|
159
104
|
};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
105
|
+
const generateGlobalColors = ({ contrastMode = "aa" }) => {
|
|
106
|
+
const blueTheme = generateThemeForColor(blueBaseColor, contrastMode);
|
|
107
|
+
const greenTheme = generateThemeForColor(greenBaseColor, contrastMode);
|
|
108
|
+
const orangeTheme = generateThemeForColor(orangeBaseColor, contrastMode);
|
|
109
|
+
const purpleTheme = generateThemeForColor(purpleBaseColor, contrastMode);
|
|
110
|
+
const redTheme = generateThemeForColor(redBaseColor, contrastMode);
|
|
111
|
+
const yellowTheme = generateThemeForColor(yellowBaseColor, contrastMode);
|
|
112
|
+
return {
|
|
113
|
+
blue: blueTheme,
|
|
114
|
+
green: greenTheme,
|
|
115
|
+
orange: orangeTheme,
|
|
116
|
+
purple: purpleTheme,
|
|
117
|
+
red: redTheme,
|
|
118
|
+
yellow: yellowTheme
|
|
119
|
+
};
|
|
175
120
|
};
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
accent: accentTheme,
|
|
190
|
-
neutral: neutralTheme,
|
|
191
|
-
brand1: brand1Theme,
|
|
192
|
-
brand2: brand2Theme,
|
|
193
|
-
brand3: brand3Theme
|
|
194
|
-
};
|
|
121
|
+
const generateColorTheme = ({ colors, contrastMode = "aa" }) => {
|
|
122
|
+
const accentTheme = generateThemeForColor(colors.accent, contrastMode);
|
|
123
|
+
const neutralTheme = generateThemeForColor(colors.neutral, contrastMode);
|
|
124
|
+
const brand1Theme = generateThemeForColor(colors.brand1, contrastMode);
|
|
125
|
+
const brand2Theme = generateThemeForColor(colors.brand2, contrastMode);
|
|
126
|
+
const brand3Theme = generateThemeForColor(colors.brand3, contrastMode);
|
|
127
|
+
return {
|
|
128
|
+
accent: accentTheme,
|
|
129
|
+
neutral: neutralTheme,
|
|
130
|
+
brand1: brand1Theme,
|
|
131
|
+
brand2: brand2Theme,
|
|
132
|
+
brand3: brand3Theme
|
|
133
|
+
};
|
|
195
134
|
};
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
*/ export const calculateContrastOneColor = (baseColor)=>{
|
|
202
|
-
const contrastWhite = getContrastFromHex(baseColor, '#ffffff');
|
|
203
|
-
const contrastBlack = getContrastFromHex(baseColor, '#000000');
|
|
204
|
-
const lightness = contrastWhite >= contrastBlack ? 100 : 0;
|
|
205
|
-
// const color = createColorWithLightness(baseColor, lightness);
|
|
206
|
-
return lightness === 0 ? '#000000' : '#ffffff';
|
|
135
|
+
const calculateContrastOneColor = (baseColor) => {
|
|
136
|
+
const contrastWhite = getContrastFromHex(baseColor, "#ffffff");
|
|
137
|
+
const contrastBlack = getContrastFromHex(baseColor, "#000000");
|
|
138
|
+
const lightness = contrastWhite >= contrastBlack ? 100 : 0;
|
|
139
|
+
return lightness === 0 ? "#000000" : "#ffffff";
|
|
207
140
|
};
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
const doubleALightnessModifier = lightness <= 40 ? 60 : lightness >= 60 ? 60 : 50;
|
|
218
|
-
let targetLightness = 0;
|
|
219
|
-
const contrastDirection = contrastWhite >= contrastBlack ? 'lighten' : 'darken';
|
|
220
|
-
targetLightness = contrastDirection === 'lighten' ? lightness + doubleALightnessModifier : lightness - doubleALightnessModifier;
|
|
221
|
-
return createColorWithLightness(color, targetLightness);
|
|
141
|
+
const calculateContrastTwoColor = (color) => {
|
|
142
|
+
const contrastWhite = getContrastFromHex(color, "#ffffff");
|
|
143
|
+
const contrastBlack = getContrastFromHex(color, "#000000");
|
|
144
|
+
const lightness = getLightnessFromHex(color);
|
|
145
|
+
const doubleALightnessModifier = lightness <= 40 ? 60 : lightness >= 60 ? 60 : 50;
|
|
146
|
+
let targetLightness = 0;
|
|
147
|
+
const contrastDirection = contrastWhite >= contrastBlack ? "lighten" : "darken";
|
|
148
|
+
targetLightness = contrastDirection === "lighten" ? lightness + doubleALightnessModifier : lightness - doubleALightnessModifier;
|
|
149
|
+
return createColorWithLightness(color, targetLightness);
|
|
222
150
|
};
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
if (defaultAgainstWhite >= 4.5 && activeAgainstWhite >= 4.5) {
|
|
235
|
-
return true;
|
|
236
|
-
} else if (defaultAgainstBlack >= 4.5 && activeAgainstBlack >= 4.5) {
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
return false;
|
|
151
|
+
const canTextBeUsedOnColors = (baseDefaultColor, baseActiveColor) => {
|
|
152
|
+
const defaultAgainstWhite = getContrastFromHex(baseDefaultColor, "#ffffff");
|
|
153
|
+
const defaultAgainstBlack = getContrastFromHex(baseDefaultColor, "#000000");
|
|
154
|
+
const activeAgainstWhite = getContrastFromHex(baseActiveColor, "#ffffff");
|
|
155
|
+
const activeAgainstBlack = getContrastFromHex(baseActiveColor, "#000000");
|
|
156
|
+
if (defaultAgainstWhite >= 4.5 && activeAgainstWhite >= 4.5) {
|
|
157
|
+
return true;
|
|
158
|
+
} else if (defaultAgainstBlack >= 4.5 && activeAgainstBlack >= 4.5) {
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
return false;
|
|
240
162
|
};
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
163
|
+
const createColorWithLightness = (color, lightness) => {
|
|
164
|
+
const leoBackgroundColor = new BackgroundColor({
|
|
165
|
+
name: "backgroundColor",
|
|
166
|
+
colorKeys: ["#ffffff"],
|
|
167
|
+
ratios: [1]
|
|
168
|
+
});
|
|
169
|
+
const colors = new Color({
|
|
170
|
+
name: "color",
|
|
171
|
+
colorKeys: [color],
|
|
172
|
+
ratios: [getContrastFromLightness(lightness, color, "#ffffff")]
|
|
173
|
+
});
|
|
174
|
+
const theme = new Theme({
|
|
175
|
+
colors: [colors],
|
|
176
|
+
backgroundColor: leoBackgroundColor,
|
|
177
|
+
lightness: 100
|
|
178
|
+
});
|
|
179
|
+
return theme.contrastColorValues[0];
|
|
180
|
+
};
|
|
181
|
+
const getColorNumberFromName = (name) => {
|
|
182
|
+
const colorMap = {
|
|
183
|
+
"Background Default": 1,
|
|
184
|
+
"Background Subtle": 2,
|
|
185
|
+
"Surface Default": 3,
|
|
186
|
+
"Surface Hover": 4,
|
|
187
|
+
"Surface Active": 5,
|
|
188
|
+
"Border Subtle": 6,
|
|
189
|
+
"Border Default": 7,
|
|
190
|
+
"Border Strong": 8,
|
|
191
|
+
"Base Default": 9,
|
|
192
|
+
"Base Hover": 10,
|
|
193
|
+
"Base Active": 11,
|
|
194
|
+
"Text Subtle": 12,
|
|
195
|
+
"Text Default": 13,
|
|
196
|
+
"Contrast Default": 14,
|
|
197
|
+
"Contrast Subtle": 15
|
|
198
|
+
};
|
|
199
|
+
return colorMap[name];
|
|
274
200
|
};
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
'Text Default': 13,
|
|
295
|
-
'Contrast Default': 14,
|
|
296
|
-
'Contrast Subtle': 15
|
|
297
|
-
};
|
|
298
|
-
return colorMap[name];
|
|
201
|
+
const getColorNameFromNumber = (number) => {
|
|
202
|
+
const colorMap = {
|
|
203
|
+
1: "Background Default",
|
|
204
|
+
2: "Background Subtle",
|
|
205
|
+
3: "Surface Default",
|
|
206
|
+
4: "Surface Hover",
|
|
207
|
+
5: "Surface Active",
|
|
208
|
+
6: "Border Subtle",
|
|
209
|
+
7: "Border Default",
|
|
210
|
+
8: "Border Strong",
|
|
211
|
+
9: "Base Default",
|
|
212
|
+
10: "Base Hover",
|
|
213
|
+
11: "Base Active",
|
|
214
|
+
12: "Text Subtle",
|
|
215
|
+
13: "Text Default",
|
|
216
|
+
14: "Contrast Default",
|
|
217
|
+
15: "Contrast Subtle"
|
|
218
|
+
};
|
|
219
|
+
return colorMap[number];
|
|
299
220
|
};
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
const colorMap = {
|
|
307
|
-
1: 'Background Default',
|
|
308
|
-
2: 'Background Subtle',
|
|
309
|
-
3: 'Surface Default',
|
|
310
|
-
4: 'Surface Hover',
|
|
311
|
-
5: 'Surface Active',
|
|
312
|
-
6: 'Border Subtle',
|
|
313
|
-
7: 'Border Default',
|
|
314
|
-
8: 'Border Strong',
|
|
315
|
-
9: 'Base Default',
|
|
316
|
-
10: 'Base Hover',
|
|
317
|
-
11: 'Base Active',
|
|
318
|
-
12: 'Text Subtle',
|
|
319
|
-
13: 'Text Default',
|
|
320
|
-
14: 'Contrast Default',
|
|
321
|
-
15: 'Contrast Subtle'
|
|
322
|
-
};
|
|
323
|
-
return colorMap[number];
|
|
221
|
+
const getBaseColor = (color) => {
|
|
222
|
+
const conv = new Hsluv();
|
|
223
|
+
conv.hex = color;
|
|
224
|
+
conv.hexToHsluv();
|
|
225
|
+
conv.hsluvToHex();
|
|
226
|
+
return conv.hex;
|
|
324
227
|
};
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
conv.hex = color;
|
|
328
|
-
conv.hexToHsluv();
|
|
329
|
-
// conv.hsluv_l = 100 - conv.hsluv_l;
|
|
330
|
-
// conv.hsluv_s = getSaturationForDarkMode(color, conv.hsluv_s);
|
|
331
|
-
conv.hsluvToHex();
|
|
332
|
-
return conv.hex;
|
|
228
|
+
const getCssVariable = (colorType, colorNumber) => {
|
|
229
|
+
return `--ds-${colorType}-${getColorNameFromNumber(colorNumber).toLowerCase().replace(/\s/g, "-")}`;
|
|
333
230
|
};
|
|
334
|
-
export
|
|
335
|
-
|
|
231
|
+
export {
|
|
232
|
+
calculateContrastOneColor,
|
|
233
|
+
calculateContrastTwoColor,
|
|
234
|
+
canTextBeUsedOnColors,
|
|
235
|
+
createColorWithLightness,
|
|
236
|
+
generateColorTheme,
|
|
237
|
+
generateGlobalColors,
|
|
238
|
+
generateScaleForColor,
|
|
239
|
+
generateThemeForColor,
|
|
240
|
+
getBaseColor,
|
|
241
|
+
getColorNameFromNumber,
|
|
242
|
+
getColorNumberFromName,
|
|
243
|
+
getCssVariable
|
|
336
244
|
};
|
package/dist/src/colors/types.js
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|