@openkfw/design-tokens 0.5.9 → 0.6.1

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.
@@ -1,24 +1,73 @@
1
1
  /* Establish the order of layers upfront */
2
- @layer reset, core, third-party, components, utility;
2
+ @layer reset, core, icons, third-party, components, utility;
3
3
  @layer core.tokens, core.base, core.variations;
4
+ @layer icons.base, icons.classes;
4
5
  @layer third-party.imports, third-party.overrides;
5
6
  @layer components.base, components.variations;
6
7
 
8
+ /* Custom Media Queries */
9
+ @import url("vendor/gen-custom-media.css");
10
+
7
11
  /* Reset, normalize, etc. */
8
12
  @import url("vendor/uaplus.css") layer(reset);
9
13
 
10
- /* KfW Design Tokens with Custom Media Queries */
14
+ /* KfW Design Tokens */
11
15
  @import url("@openkfw/design-tokens/output/css/kfw-design-tokens.light.css") layer(core.tokens);
12
- @import url("vendor/gen-custom-media.css");
16
+
17
+ /* Icons */
18
+ @import url("vendor/gen-icons.css") layer(icons.classes);
19
+
20
+ @layer icons.base {
21
+ :root {
22
+ --icon-size: 1.6rem;
23
+ --icon-size-lg: 2.4rem;
24
+ --icon-size-xl: 2.8rem;
25
+ --icon-size-2xl: 3.2rem;
26
+ --icon-size-3xl: 4rem;
27
+ }
28
+
29
+ .icon {
30
+ --size: var(--icon-size);
31
+
32
+ display: inline-block;
33
+ flex-shrink: 0;
34
+ vertical-align: top;
35
+ pointer-events: none;
36
+ mask-size: contain;
37
+ mask-position: center;
38
+ mask-repeat: no-repeat;
39
+ background-color: currentcolor;
40
+ mask-image: var(--icon);
41
+ min-width: var(--size);
42
+ min-height: var(--size);
43
+ }
44
+
45
+ .icon--large {
46
+ --size: var(--icon-size-lg);
47
+ }
48
+
49
+ .icon--xlarge {
50
+ --size: var(--icon-size-xl);
51
+ }
52
+
53
+ .icon--2xl {
54
+ --size: var(--icon-size-2xl);
55
+ }
56
+
57
+ .icon--3xl {
58
+ --size: var(--icon-size-3xl);
59
+ }
60
+ }
13
61
 
14
62
  @layer core {
15
63
  @layer tokens {
16
- :root {
17
- /* icons */
18
- --kfw-icon-arrow-down: svg-load("icons/arrow-down.svg", "var(--kfw-color-text)");
19
- --kfw-icon-arrow-down-fn: svg-load("icons/arrow-down.svg", "var(--kfw-color-fn)");
20
- --kfw-icon-calendar-fn: svg-load("icons/calendar.svg", "var(--kfw-color-fn)");
21
- --kfw-icon-time-fn: svg-load("icons/time.svg", "var(--kfw-color-fn)");
64
+ :root,
65
+ :host {
66
+ /* Base64 icons, used for elements without their own element or pseudo-elements (::before, ::after) like <select>, <input> */
67
+ --kfw-icon-base64-arrow-down: svg-load("icons/arrow-down.svg", "var(--kfw-color-text)");
68
+ --kfw-icon-base64-arrow-down-fn: svg-load("icons/arrow-down.svg", "var(--kfw-color-fn)");
69
+ --kfw-icon-base64-calendar-fn: svg-load("icons/calendar.svg", "var(--kfw-color-fn)");
70
+ --kfw-icon-base64-time-fn: svg-load("icons/time.svg", "var(--kfw-color-fn)");
22
71
 
23
72
  /* fluid shorthands */
24
73
  --kfw-safezone: clamp(var(--kfw-safezone-min), var(--kfw-safezone-val), var(--kfw-safezone-max));
@@ -85,13 +134,6 @@
85
134
  margin-block-end: 0;
86
135
  }
87
136
 
88
- ul,
89
- ol,
90
- menu {
91
- list-style: none inside none;
92
- padding-inline-start: 0;
93
- }
94
-
95
137
  mark {
96
138
  padding: 0.125rem 0.25rem;
97
139
  vertical-align: baseline;
@@ -107,6 +149,158 @@
107
149
  margin-block-start: var(--kfw-fontspace-2xsmall);
108
150
  }
109
151
 
152
+ /**
153
+ * Lists
154
+ */
155
+ ul,
156
+ ol,
157
+ menu {
158
+ list-style: none;
159
+ padding-inline-start: 0;
160
+ font-weight: var(--kfw-fontweight);
161
+ }
162
+
163
+ ul li ul,
164
+ ul li ol,
165
+ ol li ul,
166
+ ol li ol {
167
+ margin-block-start: var(--kfw-space-xsmall);
168
+ padding-inline-start: var(--kfw-space-small);
169
+ }
170
+
171
+ .list-item {
172
+ position: relative;
173
+ margin-block-end: var(--kfw-space-xsmall);
174
+ }
175
+
176
+ .list-item::before {
177
+ position: absolute;
178
+ top: 0;
179
+ left: 0;
180
+ pointer-events: none;
181
+ mask-size: contain;
182
+ mask-position: center;
183
+ mask-repeat: no-repeat;
184
+ background-repeat: no-repeat;
185
+ }
186
+
187
+ :where(.list--numbers, .list--letters, .list--caps, .list--icon, .list--big-checks, .list--checks, .list--bullets) > .list-item {
188
+ padding-inline-start: 2rem;
189
+ }
190
+
191
+ :where(.list--numbers, .list--letters, .list--caps, .list--icon, .list--big-checks, .list--checks, .list--bullets) > .list-item::before {
192
+ content: "";
193
+ }
194
+
195
+ :where(.list--numbers, .list--letters, .list--caps, .list--icon, .list--big-checks, .list--checks, .list--bullets) > .list-item :where(ul, ol) {
196
+ padding-inline-start: 0;
197
+ }
198
+
199
+ /* Numbered and Lettered Lists */
200
+ :where(.list--letters, .list--caps) {
201
+ counter-reset: item;
202
+ }
203
+
204
+ :where(.list--letters, .list--caps) .list-item::before {
205
+ content: counter(item, lower-latin) ".";
206
+ counter-increment: item;
207
+ font-weight: var(--kfw-fontweight-bold);
208
+ }
209
+
210
+ .list--caps .list-item::before {
211
+ content: counter(item, upper-latin) ".";
212
+ }
213
+
214
+ .list--numbers {
215
+ counter-reset: item-counter;
216
+ }
217
+
218
+ .list--numbers > .list-item::before {
219
+ content: counter(item-counter) ".";
220
+ counter-increment: item-counter;
221
+ font-weight: var(--kfw-fontweight-bold);
222
+ }
223
+
224
+ /* Check and Big Check Lists */
225
+ :where(.list--checks, .list--big-checks) > .list-item {
226
+ --icon: var(--kfw-icon-checked);
227
+ }
228
+
229
+ .list--checks > .list-item::before {
230
+ min-width: var(--icon-size);
231
+ min-height: var(--icon-size);
232
+ top: 0.3rem;
233
+ mask-image: var(--icon);
234
+ background-color: var(--kfw-color-background-dark-green);
235
+ }
236
+
237
+ .list--big-checks > .list-item {
238
+ --size: var(--icon-size-xl);
239
+ --space: 1.5rem;
240
+
241
+ padding-inline-start: calc(var(--size) + var(--space));
242
+ }
243
+
244
+ .list--big-checks > .list-item::before {
245
+ min-width: var(--size);
246
+ min-height: var(--size);
247
+ top: -0.1rem;
248
+ mask-image: var(--icon);
249
+ background-color: var(--kfw-color-background-dark-green);
250
+ }
251
+
252
+ @media (--kfw-breakpoint-desktop-large) {
253
+ .list--big-checks > .list-item {
254
+ --size: var(--icon-size-2xl);
255
+ --space: 1rem;
256
+ }
257
+
258
+ .list--big-checks > .list-item::before {
259
+ top: -0.3rem;
260
+ }
261
+ }
262
+
263
+ /* Icon Lists */
264
+ .list--icon > .list-item {
265
+ --size: var(--icon-size-lg);
266
+ --space: 1.5rem;
267
+ --icon: var(--kfw-icon-checked);
268
+
269
+ margin-block-end: var(--kfw-space-small);
270
+ font-weight: var(--kfw-fontweight-bold);
271
+ padding-inline-start: calc(var(--size) + var(--space));
272
+ }
273
+
274
+ .list--icon > .list-item::before {
275
+ --icon-color: var(--kfw-color-background-dark-green);
276
+
277
+ min-width: var(--size);
278
+ min-height: var(--size);
279
+ mask-image: var(--icon);
280
+ background-color: var(--icon-color);
281
+ top: -0.1rem;
282
+ }
283
+
284
+ /* Bullet Lists */
285
+ .list--bullets > .list-item {
286
+ --icon-size: 0.5rem;
287
+
288
+ padding-inline-start: calc(var(--icon-size) + 10px);
289
+ }
290
+
291
+ .list--bullets > .list-item::before {
292
+ min-width: var(--icon-size);
293
+ min-height: var(--icon-size);
294
+ top: 0.8rem;
295
+ mask-image: var(--kfw-icon-bullet-point);
296
+ background-color: currentcolor;
297
+ }
298
+
299
+ .list--bullets-empty > .list-item::before {
300
+ mask-image: var(--kfw-icon-bullet-point-empty);
301
+ background-color: currentcolor;
302
+ }
303
+
110
304
  /**
111
305
  * Table
112
306
  */
@@ -298,19 +492,6 @@
298
492
  line-height: var(--kfw-lineheight);
299
493
  }
300
494
 
301
- /**
302
- * Icon
303
- */
304
- .icon {
305
- display: inline-block;
306
- flex-shrink: 0;
307
- vertical-align: top;
308
- pointer-events: none;
309
- min-width: 1.6rem;
310
- min-height: 1.6rem;
311
- filter: color-to-filter(var(--kfw-color-text));
312
- }
313
-
314
495
  /**
315
496
  * Form
316
497
  */
@@ -331,6 +512,7 @@
331
512
  padding-inline: 1.5rem;
332
513
  padding-block: 1rem;
333
514
  background-color: var(--kfw-color-background);
515
+ background-repeat: no-repeat;
334
516
  }
335
517
 
336
518
  .form-control::placeholder {
@@ -357,12 +539,11 @@
357
539
  padding-block: 0;
358
540
  background-position: center right 1.5rem;
359
541
  background-size: 2.4rem auto;
360
- background-repeat: no-repeat;
361
- background-image: var(--kfw-icon-arrow-down-fn);
542
+ background-image: var(--kfw-icon-base64-arrow-down-fn);
362
543
  }
363
544
 
364
545
  select.form-control:disabled {
365
- background-image: var(--kfw-icon-arrow-down);
546
+ background-image: var(--kfw-icon-base64-arrow-down);
366
547
  }
367
548
 
368
549
  textarea.form-control {
@@ -382,11 +563,6 @@
382
563
  accent-color: var(--kfw-color-fn);
383
564
  }
384
565
 
385
- [type="color"] {
386
- padding-inline: 0.2rem;
387
- padding-block: 0;
388
- }
389
-
390
566
  textarea {
391
567
  display: block;
392
568
  resize: vertical;
@@ -409,7 +585,10 @@
409
585
  }
410
586
 
411
587
  :where(.form-text, .invalid-feedback, .valid-feedback) {
412
- display: block;
588
+ --space-between: 0.8rem;
589
+
590
+ gap: var(--space-between);
591
+ display: flex;
413
592
  width: 100%;
414
593
  margin-block-start: 0.8rem;
415
594
  font-size: var(--kfw-fontsize-small);
@@ -421,18 +600,10 @@
421
600
  color: var(--kfw-color-state-success);
422
601
  }
423
602
 
424
- .valid-feedback__icon {
425
- filter: color-to-filter(var(--kfw-color-state-success));
426
- }
427
-
428
603
  .invalid-feedback {
429
604
  color: var(--kfw-color-state-danger);
430
605
  }
431
606
 
432
- .invalid-feedback__icon {
433
- filter: color-to-filter(var(--kfw-color-state-danger));
434
- }
435
-
436
607
  :where(label, .form-label) {
437
608
  display: inline-block;
438
609
  margin-block-end: 0.8rem;
@@ -580,11 +751,11 @@
580
751
  }
581
752
 
582
753
  [type="date"]::-webkit-calendar-picker-indicator {
583
- content: var(--kfw-icon-calendar-fn);
754
+ content: var(--kfw-icon-base64-calendar-fn);
584
755
  }
585
756
 
586
757
  [type="time"]::-webkit-calendar-picker-indicator {
587
- content: var(--kfw-icon-time-fn);
758
+ content: var(--kfw-icon-base64-time-fn);
588
759
  }
589
760
 
590
761
  :where(a:not([role="button"]), [role="link"]) {
@@ -611,14 +782,6 @@
611
782
  gap: var(--space-between);
612
783
  }
613
784
 
614
- :where(a, [role="link"], button, [type="button"]) .icon {
615
- filter: color-to-filter(var(--kfw-color-fn));
616
- }
617
-
618
- :where(a, [role="link"], button, [type="button"]):where(:hover, :focus) .icon {
619
- filter: color-to-filter(var(--kfw-color-fn-active));
620
- }
621
-
622
785
  [type="file"]::file-selector-button,
623
786
  :where(button, [type="submit"], [type="reset"], [type="button"], [role="button"]) {
624
787
  --space-between: 0.8rem;
@@ -643,6 +806,7 @@
643
806
  border-width: var(--kfw-borderwidth);
644
807
  border-style: solid;
645
808
  border-color: transparent;
809
+ color: var(--kfw-color-fn);
646
810
  }
647
811
 
648
812
  :where([type="submit"], .button--primary) {
@@ -665,22 +829,6 @@
665
829
  text-decoration: underline;
666
830
  }
667
831
 
668
- .button--primary .icon {
669
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
670
- }
671
-
672
- .button--secondary .icon {
673
- filter: color-to-filter(var(--kfw-color-fn));
674
- }
675
-
676
- .button--primary:where(:hover, :focus) .icon {
677
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
678
- }
679
-
680
- .button--secondary:where(:hover, :focus) .icon {
681
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
682
- }
683
-
684
832
  [type="file"]::file-selector-button,
685
833
  :where([type="reset"], .button--secondary) {
686
834
  --button-border-color: var(--kfw-color-fn);
@@ -772,19 +920,13 @@
772
920
  padding: 0.25rem;
773
921
  margin: 0;
774
922
  cursor: pointer;
775
- border-radius: var(--kfw-borderradius); /* @todo check 1rem? */
923
+ border-radius: var(--kfw-borderradius);
776
924
  }
777
925
 
778
926
  .searchfield__button:where(:hover, :focus) {
779
927
  outline: 2px solid var(--kfw-color-fn-active);
780
928
  }
781
929
 
782
- .searchfield__icon {
783
- width: 2.4rem;
784
- height: 2.4rem;
785
- filter: color-to-filter(var(--kfw-color-fn));
786
- }
787
-
788
930
  /**
789
931
  * File-Upload
790
932
  */
@@ -817,10 +959,8 @@
817
959
  }
818
960
 
819
961
  .file-upload__icon {
820
- width: 4rem;
821
- height: 4rem;
962
+ color: var(--kfw-color-fn);
822
963
  margin: 2rem;
823
- filter: color-to-filter(var(--kfw-color-fn));
824
964
  }
825
965
 
826
966
  /**
@@ -1113,6 +1253,18 @@
1113
1253
  margin-block-end: var(--kfw-space-small);
1114
1254
  }
1115
1255
 
1256
+ .color-palette__label {
1257
+ text-wrap: balance;
1258
+ display: block;
1259
+ padding: 0.5rem;
1260
+ margin-block-end: 0;
1261
+ }
1262
+
1263
+ .color-palette__container {
1264
+ text-align: center;
1265
+ padding-inline: var(--kfw-space-xsmall);
1266
+ }
1267
+
1116
1268
  .color-palette__color {
1117
1269
  display: block;
1118
1270
  width: 100%;
@@ -1138,18 +1290,6 @@
1138
1290
  border-inline-end: var(--kfw-borderwidth) solid var(--kfw-color-fn-inactive);
1139
1291
  }
1140
1292
  }
1141
-
1142
- .color-palette__label {
1143
- text-wrap: balance;
1144
- display: block;
1145
- padding: 0.5rem;
1146
- margin-block-end: 0;
1147
- }
1148
-
1149
- .color-palette__container {
1150
- text-align: center;
1151
- padding-inline: var(--kfw-space-xsmall);
1152
- }
1153
1293
  }
1154
1294
 
1155
1295
  @layer variations {
@@ -1172,14 +1312,6 @@
1172
1312
  text-decoration: none;
1173
1313
  }
1174
1314
 
1175
- :where(.bg-dark, .footer) :where([role="link"], a:not([role="button"])) .icon {
1176
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
1177
- }
1178
-
1179
- :where(.bg-dark, .footer) :where(button, [type="submit"], [type="reset"], [type="button"], [role="button"]) .icon {
1180
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
1181
- }
1182
-
1183
1315
  :where(.bg-dark, .footer) :where(.button--primary, [type="submit"]) {
1184
1316
  --button-color: var(--kfw-color-fn);
1185
1317
  --button-bg: var(--kfw-color-text-on-dark-bg);
@@ -1189,10 +1321,6 @@
1189
1321
  --button-border-color-hover: var(--kfw-color-text-on-dark-bg);
1190
1322
  }
1191
1323
 
1192
- :where(.bg-dark, .footer) :where(.button--primary, [type="submit"]) .icon {
1193
- filter: color-to-filter(var(--kfw-color-fn));
1194
- }
1195
-
1196
1324
  :where(.bg-dark, .footer) :where(.button--secondary, [type="reset"]) {
1197
1325
  --button-color: var(--kfw-color-text-on-dark-bg);
1198
1326
  --button-border-color: var(--kfw-color-text-on-dark-bg);
@@ -1201,14 +1329,6 @@
1201
1329
  --button-border-color-hover: var(--kfw-color-text-on-dark-bg);
1202
1330
  }
1203
1331
 
1204
- :where(.bg-dark, .footer) :where(.button--secondary, [type="reset"]) .icon {
1205
- filter: color-to-filter(var(--kfw-color-text-on-dark-bg));
1206
- }
1207
-
1208
- :where(.bg-dark, .footer) :where(.button--secondary, [type="reset"]):where(:hover, :focus) .icon {
1209
- filter: color-to-filter(var(--kfw-color-text));
1210
- }
1211
-
1212
1332
  :where(.bg-dark, .footer) .button--tertiary {
1213
1333
  --button-color: var(--kfw-color-text-on-dark-bg);
1214
1334
  --button-color-hover: var(--kfw-color-text-on-dark-bg);
@@ -0,0 +1,105 @@
1
+ /* Auto-generated icon classes */
2
+
3
+ :root,
4
+ :host {
5
+ --kfw-icon-alert: url("../icons/alert.svg");
6
+ --kfw-icon-arrow-down: url("../icons/arrow-down.svg");
7
+ --kfw-icon-arrow-left: url("../icons/arrow-left.svg");
8
+ --kfw-icon-arrow-right: url("../icons/arrow-right.svg");
9
+ --kfw-icon-arrow-up: url("../icons/arrow-up.svg");
10
+ --kfw-icon-bullet-point-empty: url("../icons/bullet-point-empty.svg");
11
+ --kfw-icon-bullet-point: url("../icons/bullet-point.svg");
12
+ --kfw-icon-calendar: url("../icons/calendar.svg");
13
+ --kfw-icon-checked: url("../icons/checked.svg");
14
+ --kfw-icon-delete: url("../icons/delete.svg");
15
+ --kfw-icon-dialogue: url("../icons/dialogue.svg");
16
+ --kfw-icon-exclamation-mark-filled: url("../icons/exclamation-mark-filled.svg");
17
+ --kfw-icon-home: url("../icons/home.svg");
18
+ --kfw-icon-lock: url("../icons/lock.svg");
19
+ --kfw-icon-login: url("../icons/login.svg");
20
+ --kfw-icon-personal-settings: url("../icons/personal-settings.svg");
21
+ --kfw-icon-plus: url("../icons/plus.svg");
22
+ --kfw-icon-search: url("../icons/search.svg");
23
+ --kfw-icon-time: url("../icons/time.svg");
24
+ --kfw-icon-upload: url("../icons/upload.svg");
25
+ }
26
+
27
+ .icon--alert {
28
+ --icon: var(--kfw-icon-alert);
29
+ }
30
+
31
+ .icon--arrow-down {
32
+ --icon: var(--kfw-icon-arrow-down);
33
+ }
34
+
35
+ .icon--arrow-left {
36
+ --icon: var(--kfw-icon-arrow-left);
37
+ }
38
+
39
+ .icon--arrow-right {
40
+ --icon: var(--kfw-icon-arrow-right);
41
+ }
42
+
43
+ .icon--arrow-up {
44
+ --icon: var(--kfw-icon-arrow-up);
45
+ }
46
+
47
+ .icon--bullet-point-empty {
48
+ --icon: var(--kfw-icon-bullet-point-empty);
49
+ }
50
+
51
+ .icon--bullet-point {
52
+ --icon: var(--kfw-icon-bullet-point);
53
+ }
54
+
55
+ .icon--calendar {
56
+ --icon: var(--kfw-icon-calendar);
57
+ }
58
+
59
+ .icon--checked {
60
+ --icon: var(--kfw-icon-checked);
61
+ }
62
+
63
+ .icon--delete {
64
+ --icon: var(--kfw-icon-delete);
65
+ }
66
+
67
+ .icon--dialogue {
68
+ --icon: var(--kfw-icon-dialogue);
69
+ }
70
+
71
+ .icon--exclamation-mark-filled {
72
+ --icon: var(--kfw-icon-exclamation-mark-filled);
73
+ }
74
+
75
+ .icon--home {
76
+ --icon: var(--kfw-icon-home);
77
+ }
78
+
79
+ .icon--lock {
80
+ --icon: var(--kfw-icon-lock);
81
+ }
82
+
83
+ .icon--login {
84
+ --icon: var(--kfw-icon-login);
85
+ }
86
+
87
+ .icon--personal-settings {
88
+ --icon: var(--kfw-icon-personal-settings);
89
+ }
90
+
91
+ .icon--plus {
92
+ --icon: var(--kfw-icon-plus);
93
+ }
94
+
95
+ .icon--search {
96
+ --icon: var(--kfw-icon-search);
97
+ }
98
+
99
+ .icon--time {
100
+ --icon: var(--kfw-icon-time);
101
+ }
102
+
103
+ .icon--upload {
104
+ --icon: var(--kfw-icon-upload);
105
+ }
@@ -1,10 +1,10 @@
1
1
  /**
2
- * KfW Design Tokens v0.5.9 | MPL-2.0 | https://github.com/openkfw/design-tokens
2
+ * KfW Design Tokens v0.6.1 | MPL-2.0 | https://github.com/openkfw/design-tokens
3
3
  */
4
4
 
5
- [data-theme=light], :root:not([data-theme=dark]), :host(:not([data-theme=dark])) { color-scheme: light; }
5
+ :root, :host { color-scheme: light; }
6
6
 
7
- [data-theme=light], :root:not([data-theme=dark]), :host(:not([data-theme=dark])) {
7
+ :root, :host {
8
8
  --kfw-base-color-blue-100: #e9f5fb;
9
9
  --kfw-base-color-blue-400: #54b3e2;
10
10
  --kfw-base-color-blue-500: #007abc;
@@ -156,13 +156,15 @@
156
156
  --kfw-base-layout-gridgap-fluid-max: 3.6rem;
157
157
  --kfw-base-layout-gridgap-fluid-val: 3.529vi - 0.9176rem;
158
158
  --kfw-color-fn: #005a8c; /** Main interaction color for buttons and links (Blue 600) */
159
- --kfw-color-fn-active: #00446e; /** Interaction color when active (e.g., hover, Blue 700) */
159
+ --kfw-color-fn-active: #00446e; /** Main interaction color when active (e.g., hover, Blue 700) */
160
160
  --kfw-color-fn-inactive: #a1adb5; /** Interaction color when inactive (Gray 300) */
161
161
  --kfw-color-fn-border: #2d3134; /** Interaction border color (Gray 600) */
162
162
  --kfw-color-fn-label: #2d3134; /** Interaction label color (Gray 600) */
163
163
  --kfw-color-text: #2d3134; /** Main text color for body (Gray 600) */
164
164
  --kfw-color-text-on-dark-bg: #fff; /** Main text color on dark background (White) */
165
- --kfw-color-text-on-disabled: #fff; /** Main text color on disabled (White) */
165
+ --kfw-color-text-on-white-bg: #b7f9aa; /** Text color on white background (Green 300) */
166
+ --kfw-color-text-on-colored-bg: #00375b; /** Text color on colored background (Blue 800) */
167
+ --kfw-color-text-on-disabled: #fff; /** Text color on disabled (White) */
166
168
  --kfw-color-text-headline-on-dark-bg: #b7f9aa; /** Headline text color on dark background (Green 300) */
167
169
  --kfw-color-background: #fff; /** Main background color for body (White) */
168
170
  --kfw-color-background-subtle: #f6f7f8; /** Neutral (Gray 50) */
@@ -340,6 +340,14 @@
340
340
  "$value": "#fff",
341
341
  "$type": "color"
342
342
  },
343
+ "On-white-bg": {
344
+ "$value": "#b7f9aa",
345
+ "$type": "color"
346
+ },
347
+ "On-colored-bg": {
348
+ "$value": "#00375b",
349
+ "$type": "color"
350
+ },
343
351
  "On-disabled": {
344
352
  "$value": "#fff",
345
353
  "$type": "color"
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.5.9 | MPL-2.0 | https://github.com/openkfw/design-tokens
2
+ * KfW Design Tokens v0.6.1 | MPL-2.0 | https://github.com/openkfw/design-tokens
3
3
  */
4
4
 
5
5
  export const KfwBaseColorBlue100: {
@@ -275,7 +275,7 @@ export const KfwColorFn: {
275
275
  components: number[];
276
276
  hex: string;
277
277
  };
278
- /** Interaction color when active (e.g., hover, Blue 700) */
278
+ /** Main interaction color when active (e.g., hover, Blue 700) */
279
279
  export const KfwColorFnActive: {
280
280
  colorSpace: string;
281
281
  components: number[];
@@ -311,7 +311,19 @@ export const KfwColorTextOnDarkBg: {
311
311
  components: number[];
312
312
  hex: string;
313
313
  };
314
- /** Main text color on disabled (White) */
314
+ /** Text color on white background (Green 300) */
315
+ export const KfwColorTextOnWhiteBg: {
316
+ colorSpace: string;
317
+ components: number[];
318
+ hex: string;
319
+ };
320
+ /** Text color on colored background (Blue 800) */
321
+ export const KfwColorTextOnColoredBg: {
322
+ colorSpace: string;
323
+ components: number[];
324
+ hex: string;
325
+ };
326
+ /** Text color on disabled (White) */
315
327
  export const KfwColorTextOnDisabled: {
316
328
  colorSpace: string;
317
329
  components: number[];