@openkfw/design-tokens 0.1.1 → 0.1.3

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 CHANGED
@@ -4,9 +4,9 @@ KfW Design Tokens is the source of truth for designing KfW-branded digital produ
4
4
  The tokens follow a template that complies with the <a href="https://tr.designtokens.org/">W3C DTCG format</a>.
5
5
  The documentation for how to using design tokens is accessible only <a href="https://brand-guide.kfw.de/document/85/de#/user-interface/user-interface">internally</a>.
6
6
 
7
- ![Design Tokens badge](https://img.shields.io/badge/openkfw-design--tokens-005a8c) [![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen)](./LICENSE)
7
+ ![Design Tokens badge](https://img.shields.io/badge/openkfw-design--tokens-005a8c) [![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen)](./LICENSE) ![GitHub repo size](https://img.shields.io/github/repo-size/openkfw/design-tokens.svg?style=flat-square) ![GitHub package.json version ](https://img.shields.io/github/package-json/v/openkfw/design-tokens) [![NPM package](https://img.shields.io/npm/v/@openkfw/design-tokens.svg)](https://www.npmjs.com/package/@openkfw/design-tokens)
8
8
 
9
- # Customizing KfW Design Tokens for open source
9
+ ## Customizing KfW Design Tokens for open source
10
10
 
11
11
  Although the source code for KfW Design Tokens is free and available under the MPL 2.0 License, KfW fully reserves all rights to the KfW brand. To prevent users from getting confused about the source of a digital product or experience, there are strict restrictions on using the KfW brand and design, even when built into code that we provide. For any customization other than explicitly for the KfW, you must replace the KfW theme. To use KfW Design Tokens as open source software and customize it, please follow the instructions.
12
12
 
@@ -14,7 +14,7 @@ Although the source code for KfW Design Tokens is free and available under the M
14
14
 
15
15
  Run the following command to install the Design Tokens:
16
16
 
17
- ```
17
+ ```bash
18
18
  npm install @openkfw/design-tokens
19
19
  ```
20
20
 
@@ -24,16 +24,18 @@ Import or use files inside the `output` folder, e.g.:
24
24
  @import url("@openkfw/design-tokens/output/web_stable_10px/css/kfw-design-tokens.light.css");
25
25
  ```
26
26
 
27
- # Contributing
27
+ ## ❤️ Contributing
28
28
 
29
29
  Our commitment to open source means that we are enabling - even encouraging - all interested parties to contribute.
30
30
 
31
- # Licensing
31
+ ## 📒 Licensing
32
32
 
33
33
  Copyright (c) 2025 KfW
34
34
 
35
- Licensed under the **Mozilla Public License 2.0 (MPL-2.0)** (the "License"); you may not use this file except in compliance with the License.
35
+ Licensed under the **Mozilla Public License 2.0 (MPL-2.0)** (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License by reviewing the file [LICENSE](./LICENSE) in the repository. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the [LICENSE](./LICENSE) for the specific language governing permissions and limitations under the License.
36
+
37
+ ## 💁 FAQ
36
38
 
37
- You may obtain a copy of the License by reviewing the file [LICENSE](./LICENSE) in the repository.
39
+ ### How can I use breakpoint design tokens in Tailwind CSS?
38
40
 
39
- Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the [LICENSE](./LICENSE) for the specific language governing permissions and limitations under the License.
41
+ In Tailwind CSS v3, you can easily add breakpoints by defining them in your tailwind.config.js file using JavaScript. In Tailwind CSS v4, if you want to use CSS variables with breakpoints, you may need to utilize a preprocessor like <a href="https://v3.tailwindcss.com/docs/using-with-preprocessors#using-sass-less-or-stylus">Sass</a>, as CSS variables and breakpoints do not work seamlessly together in that version.
package/output/README.md CHANGED
@@ -13,20 +13,10 @@ This document describes the structure of the `/output` directory and provides an
13
13
  ├── /web_stable_10px
14
14
  └── /web_next_16px
15
15
  ```
16
+ In the /output directory, you will find all available output formats for Figma, Penpot, JSON, and Web (CSS, SCSS, JS).
16
17
 
17
- ### /figma and /penpot
18
-
19
- These folders contain design specifications for Figma and Penpot, respectively. All tokens are specified with pixel values.
20
-
21
- ### /json
22
-
23
- This folder contains specifications for documentation. All tokens are specified with pixel values.
24
-
25
- ### /web_stable_10px
26
-
27
- This folder contains styles (CSS, SCSS, JS) for applications that adhere to the KfW standard of 10px = 1rem, such as MeineKfW, KfW.de, and the Online Credit Portal.
28
-
29
-
30
- ### /web_next_16px
31
-
32
- This folder contains styles for applications that use 16px = 1rem (the default browser font size), such as third-party systems like Storybook and Frontify.
18
+ In the Web, we differentiate between `/web_stable_10px` and `/web_next_16px`, which use different REM root values.
19
+ For KfW.de, MeineKfW, education, and other KfW applications, we use 62.5% (16px = 1.6rem) by default for readability
20
+ reasons, meaning that 1rem equals 10px. In third-party systems where we cannot influence the REM root value and it
21
+ corresponds to the standard browser font size of 16px (100%), /web_next_16px should be used instead.
22
+ Please note that a font size of 10px should never be used. Therefore, it is advisable to set the font size in the to 1.6rem.
@@ -491,10 +491,6 @@
491
491
  "$type": "color"
492
492
  }
493
493
  },
494
- "Accent": {
495
- "$value": "#b7f9aa",
496
- "$type": "color"
497
- },
498
494
  "Opaque": {
499
495
  "White-90": {
500
496
  "$value": "#ffffffe6",
@@ -706,7 +702,7 @@
706
702
  "$type": "dimension"
707
703
  },
708
704
  "Heading-6": {
709
- "$value": "20px",
705
+ "$value": "10px",
710
706
  "$type": "dimension"
711
707
  }
712
708
  },
@@ -5059,37 +5059,6 @@
5059
5059
  ]
5060
5060
  }
5061
5061
  },
5062
- "accent": {
5063
- "key": "{semantic.color.accent}",
5064
- "$value": {
5065
- "colorSpace": "srgb",
5066
- "components": [
5067
- 0.7176,
5068
- 0.9765,
5069
- 0.6667
5070
- ],
5071
- "hex": "#b7f9aa"
5072
- },
5073
- "filePath": "tokens/tokens.json",
5074
- "isSource": true,
5075
- "$type": "color",
5076
- "original": {
5077
- "$value": "{base.color.green.300}",
5078
- "$type": "color",
5079
- "key": "{semantic.color.accent}"
5080
- },
5081
- "name": "kfw-color-accent",
5082
- "attributes": {
5083
- "category": "semantic",
5084
- "type": "color",
5085
- "item": "accent"
5086
- },
5087
- "path": [
5088
- "semantic",
5089
- "color",
5090
- "accent"
5091
- ]
5092
- },
5093
5062
  "opaque": {
5094
5063
  "white-90": {
5095
5064
  "key": "{semantic.color.opaque.white-90}",
@@ -6460,13 +6429,13 @@
6460
6429
  "key": "{semantic.fontspace.heading-6}",
6461
6430
  "$value": {
6462
6431
  "unit": "px",
6463
- "value": 20
6432
+ "value": 10
6464
6433
  },
6465
6434
  "filePath": "tokens/tokens.json",
6466
6435
  "isSource": true,
6467
6436
  "$type": "dimension",
6468
6437
  "original": {
6469
- "$value": "{base.space.static.20}",
6438
+ "$value": "{base.space.static.10}",
6470
6439
  "$type": "dimension",
6471
6440
  "key": "{semantic.fontspace.heading-6}"
6472
6441
  },
@@ -491,10 +491,6 @@
491
491
  "$type": "color"
492
492
  }
493
493
  },
494
- "Accent": {
495
- "$value": "#b7f9aa",
496
- "$type": "color"
497
- },
498
494
  "Opaque": {
499
495
  "White-90": {
500
496
  "$value": "#ffffffe6",
@@ -706,7 +702,7 @@
706
702
  "$type": "dimension"
707
703
  },
708
704
  "Heading-6": {
709
- "$value": "20px",
705
+ "$value": "10px",
710
706
  "$type": "dimension"
711
707
  }
712
708
  },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -174,7 +174,6 @@
174
174
  --kfw-color-background-light-green: #ecfded;
175
175
  --kfw-color-background-dark-blue: #00375b;
176
176
  --kfw-color-background-dark-green: #398357;
177
- --kfw-color-accent: #b7f9aa;
178
177
  --kfw-color-opaque-white-90: #ffffffe6;
179
178
  --kfw-color-opaque-white-95: #fffffff2;
180
179
  --kfw-color-opaque-gray-500-10: #41484c1a;
@@ -222,7 +221,7 @@
222
221
  --kfw-fontspace-heading-3: 0.625rem;
223
222
  --kfw-fontspace-heading-4: 0.625rem;
224
223
  --kfw-fontspace-heading-5: 0.625rem;
225
- --kfw-fontspace-heading-6: 1.25rem;
224
+ --kfw-fontspace-heading-6: 0.625rem;
226
225
  --kfw-fontsize: 1rem;
227
226
  --kfw-fontsize-introduction: 1.25rem;
228
227
  --kfw-fontsize-small: 0.875rem;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -352,11 +352,6 @@ export const KfwColorBackgroundDarkGreen: {
352
352
  components: number[];
353
353
  hex: string;
354
354
  };
355
- export const KfwColorAccent: {
356
- colorSpace: string;
357
- components: number[];
358
- hex: string;
359
- };
360
355
  export const KfwColorOpaqueWhite90: {
361
356
  colorSpace: string;
362
357
  components: number[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -354,11 +354,6 @@ export const KfwColorBackgroundDarkGreen = {
354
354
  components: [0.2235, 0.5137, 0.3412],
355
355
  hex: "#398357",
356
356
  };
357
- export const KfwColorAccent = {
358
- colorSpace: "srgb",
359
- components: [0.7176, 0.9765, 0.6667],
360
- hex: "#b7f9aa",
361
- };
362
357
  export const KfwColorOpaqueWhite90 = {
363
358
  colorSpace: "srgb",
364
359
  components: [1, 1, 1],
@@ -521,7 +516,7 @@ export const KfwFontspaceHeading2 = "1.25rem";
521
516
  export const KfwFontspaceHeading3 = "0.625rem";
522
517
  export const KfwFontspaceHeading4 = "0.625rem";
523
518
  export const KfwFontspaceHeading5 = "0.625rem";
524
- export const KfwFontspaceHeading6 = "1.25rem";
519
+ export const KfwFontspaceHeading6 = "0.625rem";
525
520
  export const KfwFontsize = "1rem";
526
521
  export const KfwFontsizeIntroduction = "1.25rem";
527
522
  export const KfwFontsizeSmall = "0.875rem";
@@ -1,5 +1,5 @@
1
1
 
2
- // KfW Design Tokens v0.1.1
2
+ // KfW Design Tokens v0.1.3
3
3
  // Copyright 2025
4
4
  // Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
 
@@ -170,7 +170,6 @@ $kfw-color-background-light-blue: #e9f5fb;
170
170
  $kfw-color-background-light-green: #ecfded;
171
171
  $kfw-color-background-dark-blue: #00375b;
172
172
  $kfw-color-background-dark-green: #398357;
173
- $kfw-color-accent: #b7f9aa;
174
173
  $kfw-color-opaque-white-90: #ffffffe6;
175
174
  $kfw-color-opaque-white-95: #fffffff2;
176
175
  $kfw-color-opaque-gray-500-10: #41484c1a;
@@ -218,7 +217,7 @@ $kfw-fontspace-heading-2: 1.25rem;
218
217
  $kfw-fontspace-heading-3: 0.625rem;
219
218
  $kfw-fontspace-heading-4: 0.625rem;
220
219
  $kfw-fontspace-heading-5: 0.625rem;
221
- $kfw-fontspace-heading-6: 1.25rem;
220
+ $kfw-fontspace-heading-6: 0.625rem;
222
221
  $kfw-fontsize: 1rem;
223
222
  $kfw-fontsize-introduction: 1.25rem;
224
223
  $kfw-fontsize-small: 0.875rem;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -174,7 +174,6 @@
174
174
  --kfw-color-background-light-green: #ecfded;
175
175
  --kfw-color-background-dark-blue: #00375b;
176
176
  --kfw-color-background-dark-green: #398357;
177
- --kfw-color-accent: #b7f9aa;
178
177
  --kfw-color-opaque-white-90: #ffffffe6;
179
178
  --kfw-color-opaque-white-95: #fffffff2;
180
179
  --kfw-color-opaque-gray-500-10: #41484c1a;
@@ -222,7 +221,7 @@
222
221
  --kfw-fontspace-heading-3: 1rem;
223
222
  --kfw-fontspace-heading-4: 1rem;
224
223
  --kfw-fontspace-heading-5: 1rem;
225
- --kfw-fontspace-heading-6: 2rem;
224
+ --kfw-fontspace-heading-6: 1rem;
226
225
  --kfw-fontsize: 1.6rem;
227
226
  --kfw-fontsize-introduction: 2rem;
228
227
  --kfw-fontsize-small: 1.4rem;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -352,11 +352,6 @@ export const KfwColorBackgroundDarkGreen: {
352
352
  components: number[];
353
353
  hex: string;
354
354
  };
355
- export const KfwColorAccent: {
356
- colorSpace: string;
357
- components: number[];
358
- hex: string;
359
- };
360
355
  export const KfwColorOpaqueWhite90: {
361
356
  colorSpace: string;
362
357
  components: number[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * KfW Design Tokens v0.1.1
2
+ * KfW Design Tokens v0.1.3
3
3
  * Copyright 2025
4
4
  * Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
  */
@@ -354,11 +354,6 @@ export const KfwColorBackgroundDarkGreen = {
354
354
  components: [0.2235, 0.5137, 0.3412],
355
355
  hex: "#398357",
356
356
  };
357
- export const KfwColorAccent = {
358
- colorSpace: "srgb",
359
- components: [0.7176, 0.9765, 0.6667],
360
- hex: "#b7f9aa",
361
- };
362
357
  export const KfwColorOpaqueWhite90 = {
363
358
  colorSpace: "srgb",
364
359
  components: [1, 1, 1],
@@ -521,7 +516,7 @@ export const KfwFontspaceHeading2 = "2rem";
521
516
  export const KfwFontspaceHeading3 = "1rem";
522
517
  export const KfwFontspaceHeading4 = "1rem";
523
518
  export const KfwFontspaceHeading5 = "1rem";
524
- export const KfwFontspaceHeading6 = "2rem";
519
+ export const KfwFontspaceHeading6 = "1rem";
525
520
  export const KfwFontsize = "1.6rem";
526
521
  export const KfwFontsizeIntroduction = "2rem";
527
522
  export const KfwFontsizeSmall = "1.4rem";
@@ -1,5 +1,5 @@
1
1
 
2
- // KfW Design Tokens v0.1.1
2
+ // KfW Design Tokens v0.1.3
3
3
  // Copyright 2025
4
4
  // Licensed under MPL-2.0 (https://github.com/openkfw/design-tokens/blob/main/LICENSE)
5
5
 
@@ -170,7 +170,6 @@ $kfw-color-background-light-blue: #e9f5fb;
170
170
  $kfw-color-background-light-green: #ecfded;
171
171
  $kfw-color-background-dark-blue: #00375b;
172
172
  $kfw-color-background-dark-green: #398357;
173
- $kfw-color-accent: #b7f9aa;
174
173
  $kfw-color-opaque-white-90: #ffffffe6;
175
174
  $kfw-color-opaque-white-95: #fffffff2;
176
175
  $kfw-color-opaque-gray-500-10: #41484c1a;
@@ -218,7 +217,7 @@ $kfw-fontspace-heading-2: 2rem;
218
217
  $kfw-fontspace-heading-3: 1rem;
219
218
  $kfw-fontspace-heading-4: 1rem;
220
219
  $kfw-fontspace-heading-5: 1rem;
221
- $kfw-fontspace-heading-6: 2rem;
220
+ $kfw-fontspace-heading-6: 1rem;
222
221
  $kfw-fontsize: 1.6rem;
223
222
  $kfw-fontsize-introduction: 2rem;
224
223
  $kfw-fontsize-small: 1.4rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openkfw/design-tokens",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "The source of truth for KfW-branded digital products.",
5
5
  "files": [
6
6
  "output",
@@ -41,17 +41,17 @@
41
41
  "npm-check-updates": "^18.0.1"
42
42
  },
43
43
  "devDependencies": {
44
- "@eslint/js": "^9.33.0",
44
+ "@eslint/js": "^9.34.0",
45
45
  "@tsconfig/node22": "^22.0.2",
46
- "concurrently": "^9.2.0",
46
+ "concurrently": "^9.2.1",
47
47
  "deep-get-set-ts": "^1.1.1",
48
- "eslint": "^9.33.0",
48
+ "eslint": "^9.34.0",
49
49
  "json5": "^2.2.3",
50
50
  "jsoneditor-cli": "^1.1.0",
51
51
  "lodash": "4.17.21",
52
52
  "prettier": "^3.6.2",
53
- "style-dictionary": "^5.0.1",
54
- "tsx": "^4.20.4",
53
+ "style-dictionary": "^5.0.2",
54
+ "tsx": "^4.20.5",
55
55
  "typescript": "^5.9.2",
56
56
  "typescript-eslint": "^8.40.0"
57
57
  }
@@ -1142,9 +1142,6 @@
1142
1142
  $value: "{base.color.green.700}",
1143
1143
  },
1144
1144
  },
1145
- accent: {
1146
- $value: "{base.color.green.300}",
1147
- },
1148
1145
  opaque: {
1149
1146
  "white-90": {
1150
1147
  $value: "{base.color.white.90}",
@@ -1313,7 +1310,7 @@
1313
1310
  $value: "{base.space.static.10}",
1314
1311
  },
1315
1312
  "heading-6": {
1316
- $value: "{base.space.static.20}",
1313
+ $value: "{base.space.static.10}",
1317
1314
  },
1318
1315
  },
1319
1316
  fontsize: {
@@ -292,7 +292,6 @@
292
292
  "dark-blue": { "$value": "{base.color.blue.800}" },
293
293
  "dark-green": { "$value": "{base.color.green.700}" }
294
294
  },
295
- "accent": { "$value": "{base.color.green.300}" },
296
295
  "opaque": {
297
296
  "white-90": { "$value": "{base.color.white.90}" },
298
297
  "white-95": { "$value": "{base.color.white.95}" },
@@ -370,7 +369,7 @@
370
369
  "heading-3": { "$value": "{base.space.static.10}" },
371
370
  "heading-4": { "$value": "{base.space.static.10}" },
372
371
  "heading-5": { "$value": "{base.space.static.10}" },
373
- "heading-6": { "$value": "{base.space.static.20}" }
372
+ "heading-6": { "$value": "{base.space.static.10}" }
374
373
  },
375
374
  "fontsize": {
376
375
  "$type": "dimension",