@rijkshuisstijl-community/design-tokens 10.0.0 → 11.0.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +46 -1
  3. package/build.mjs +36 -10
  4. package/cssFixers.mjs +89 -0
  5. package/cssFixers.spec.mjs +98 -0
  6. package/dist/_variables.scss +20 -17
  7. package/dist/index.css +20 -17
  8. package/dist/index.d.ts +24 -19
  9. package/dist/index.js +23 -20
  10. package/dist/index.json +21 -19
  11. package/dist/index.tokens.json +33 -31
  12. package/dist/kern-lintblauw/_variables.scss +20 -17
  13. package/dist/kern-lintblauw/index.css +20 -17
  14. package/dist/kern-lintblauw/index.d.ts +24 -19
  15. package/dist/kern-lintblauw/index.js +23 -20
  16. package/dist/kern-lintblauw/index.json +21 -19
  17. package/dist/kern-lintblauw/index.tokens.json +33 -31
  18. package/dist/kern-lintblauw/root.css +20 -17
  19. package/dist/kern-lintblauw/tokens.d.ts +31 -28
  20. package/dist/kern-lintblauw/tokens.js +446 -531
  21. package/dist/root.css +20 -17
  22. package/dist/tokens.d.ts +31 -28
  23. package/dist/tokens.js +446 -531
  24. package/dist/uitvoerend-groen/_variables.scss +21 -18
  25. package/dist/uitvoerend-groen/index.css +21 -18
  26. package/dist/uitvoerend-groen/index.d.ts +24 -19
  27. package/dist/uitvoerend-groen/index.js +23 -20
  28. package/dist/uitvoerend-groen/index.json +21 -19
  29. package/dist/uitvoerend-groen/index.tokens.json +33 -31
  30. package/dist/uitvoerend-groen/root.css +21 -18
  31. package/dist/uitvoerend-groen/tokens.d.ts +31 -28
  32. package/dist/uitvoerend-groen/tokens.js +446 -531
  33. package/dist/uitvoerend-hemelblauw/_variables.scss +21 -18
  34. package/dist/uitvoerend-hemelblauw/index.css +21 -18
  35. package/dist/uitvoerend-hemelblauw/index.d.ts +24 -19
  36. package/dist/uitvoerend-hemelblauw/index.js +23 -20
  37. package/dist/uitvoerend-hemelblauw/index.json +21 -19
  38. package/dist/uitvoerend-hemelblauw/index.tokens.json +33 -31
  39. package/dist/uitvoerend-hemelblauw/root.css +21 -18
  40. package/dist/uitvoerend-hemelblauw/tokens.d.ts +31 -28
  41. package/dist/uitvoerend-hemelblauw/tokens.js +446 -531
  42. package/dist/uitvoerend-lintblauw/_variables.scss +21 -18
  43. package/dist/uitvoerend-lintblauw/index.css +21 -18
  44. package/dist/uitvoerend-lintblauw/index.d.ts +24 -19
  45. package/dist/uitvoerend-lintblauw/index.js +23 -20
  46. package/dist/uitvoerend-lintblauw/index.json +21 -19
  47. package/dist/uitvoerend-lintblauw/index.tokens.json +33 -31
  48. package/dist/uitvoerend-lintblauw/root.css +21 -18
  49. package/dist/uitvoerend-lintblauw/tokens.d.ts +31 -28
  50. package/dist/uitvoerend-lintblauw/tokens.js +446 -531
  51. package/dist/uitvoerend-oranje/_variables.scss +21 -18
  52. package/dist/uitvoerend-oranje/index.css +21 -18
  53. package/dist/uitvoerend-oranje/index.d.ts +24 -19
  54. package/dist/uitvoerend-oranje/index.js +23 -20
  55. package/dist/uitvoerend-oranje/index.json +21 -19
  56. package/dist/uitvoerend-oranje/index.tokens.json +33 -31
  57. package/dist/uitvoerend-oranje/root.css +21 -18
  58. package/dist/uitvoerend-oranje/tokens.d.ts +31 -28
  59. package/dist/uitvoerend-oranje/tokens.js +446 -531
  60. package/dist/uitvoerend-paars/_variables.scss +21 -18
  61. package/dist/uitvoerend-paars/index.css +21 -18
  62. package/dist/uitvoerend-paars/index.d.ts +24 -19
  63. package/dist/uitvoerend-paars/index.js +23 -20
  64. package/dist/uitvoerend-paars/index.json +21 -19
  65. package/dist/uitvoerend-paars/index.tokens.json +33 -31
  66. package/dist/uitvoerend-paars/root.css +21 -18
  67. package/dist/uitvoerend-paars/tokens.d.ts +31 -28
  68. package/dist/uitvoerend-paars/tokens.js +446 -531
  69. package/dist/uitvoerend-robijnrood/_variables.scss +21 -18
  70. package/dist/uitvoerend-robijnrood/index.css +21 -18
  71. package/dist/uitvoerend-robijnrood/index.d.ts +24 -19
  72. package/dist/uitvoerend-robijnrood/index.js +23 -20
  73. package/dist/uitvoerend-robijnrood/index.json +21 -19
  74. package/dist/uitvoerend-robijnrood/index.tokens.json +33 -31
  75. package/dist/uitvoerend-robijnrood/root.css +21 -18
  76. package/dist/uitvoerend-robijnrood/tokens.d.ts +31 -28
  77. package/dist/uitvoerend-robijnrood/tokens.js +446 -531
  78. package/figma/figma.tokens.json +90 -171
  79. package/package.json +4 -3
  80. package/src/generated/base.tokens.json +89 -170
  81. package/src/generated/kern-lintblauw/tokens.json +89 -170
  82. package/src/generated/themes.json +623 -1190
  83. package/src/generated/uitvoerend-groen/tokens.json +89 -170
  84. package/src/generated/uitvoerend-hemelblauw/tokens.json +89 -170
  85. package/src/generated/uitvoerend-lintblauw/tokens.json +89 -170
  86. package/src/generated/uitvoerend-oranje/tokens.json +89 -170
  87. package/src/generated/uitvoerend-paars/tokens.json +89 -170
  88. package/src/generated/uitvoerend-robijnrood/tokens.json +89 -170
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @rijkshuisstijl-community/design-tokens
2
2
 
3
+ ## 11.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 378973a: Added licenses to Blockquote source code
8
+ - 13de6a7: Voor de Navigation List component zijn de design tokens gewijzigd en verwerkt in de CSS:
9
+ - `rhc.navigation-list.icon.background-color` hernoemd naar `rhc.navigation-list.item.icon-start.background-color`.
10
+ - `rhc.navigation-list.icon.border-radius` hernoemd naar `rhc.navigation-list.item.icon-start.border-radius`.
11
+ - `rhc.navigation-list.icon.color` hernoemd naar `rhc.navigation-list.item.icon-start.color`.
12
+ - `rhc.navigation-list.item.content.font-size` hernoemd naar `rhc.navigation-list.item.description.font-size`.
13
+ - `rhc.navigation-list.item.heading.color` hernoemd naar `rhc.navigation-list.item.label.color`.
14
+ - `rhc.navigation-list.item.icon.padding-block` hernoemd naar `rhc.navigation-list.item.icon-start.padding-block`.
15
+ - `rhc.navigation-list.item.icon.padding-inline` hernoemd naar `rhc.navigation-list.item.icon-start.padding-inline`.
16
+ - `rhc.navigation-list.item.icon.size` hernoemd naar `rhc.navigation-list.item.icon-start.size`.
17
+ - `rhc.navigation-list.item.color` is verwijderd en `rhc.navigation-list.item.description.color` is toegevoegd zodat de color netjes op de description word ingesteld en niet elders overschreven word.
18
+ - `rhc.navigation-list.item.description.line-height` is toegevoegd omdat we over het algemeen line-height instelbaar maken waar font-size instelbaar is.
19
+ - `rhc.navigation-list.item.icon-end.color` is toegevoegd zodat icon color van end-icon niet meer via common token is gezet.
20
+
21
+ ## 10.0.1
22
+
23
+ ### Patch Changes
24
+
25
+ - f5942a6: Parent key is verwijderd uit figma.tokens.json. Deze key is nooit in gebruik geweest, dit heeft geen impact.
26
+ - e7b3d60: Add section about adding new token sets in documentation
27
+ - 5f77bfa: Added transformations on CSS-tokens to allow for calculations with references, power (^) and sanitize any `roundTo` in tokens
28
+
3
29
  ## 10.0.0
4
30
 
5
31
  ### Major Changes
package/README.md CHANGED
@@ -44,7 +44,7 @@ Hieronder vind je instructies hoe je de standaard Rijkshuisstijl-community token
44
44
 
45
45
  ## Nieuw thema toevoegen
46
46
 
47
- Er zijn al verschillende bedrijfsthema's in de @rijkshuisstijl-community/design-tokens package waarvoor (gedeeltelijke) support is vanuit de Rijkshuisstijl-community. Hieronder volgt een uitleg hoe nog meer thema's kunnen worden toegevoegd
47
+ Er zijn al verschillende bedrijfsthema's in de @rijkshuisstijl-community/design-tokens package waarvoor (gedeeltelijke) support is vanuit de Rijkshuisstijl-community. Hieronder volgt een uitleg hoe nog meer thema's kunnen worden toegevoegd.
48
48
 
49
49
  ## Nieuwe thema tokens
50
50
 
@@ -166,3 +166,48 @@ Er zijn al verschillende bedrijfsthema's in de @rijkshuisstijl-community/design-
166
166
  };
167
167
  export default preview;
168
168
  ```
169
+
170
+ ## Nieuwe token set toevoegen
171
+
172
+ Als je tokensets toevoegt vanuit de code in `figma.tokens.json`, zitten daar regels aan vast.
173
+ Voor elke nieuwe tokenset, zoals bijvoorbeeld `components/pagination/ams`:
174
+
175
+ ```json
176
+ "components/pagination/ams": {
177
+ "ams": {
178
+ "pagination": {
179
+ "font-family": {
180
+ "keys...": "values..."
181
+ }
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ is ook een entry nodig in `.$metadata.tokenSetOrder`: (op alfabetische volgorde aub)
188
+
189
+ ```json
190
+ "$metadata": {
191
+ "tokenSetOrder": [
192
+ "brand/color",
193
+ "components/pagination/ams",
194
+ "etc..."
195
+ ]
196
+ }
197
+ ```
198
+
199
+ én in _elk_ thema `.$themes[x].selectedTokenSets`: (op alfabetische volgorde aub)
200
+
201
+ ```json
202
+ "$themes": [
203
+ {
204
+ "id": "05865788a086eeac7ffc4514736ccd777f1ff95c",
205
+ "name": "wetgevend",
206
+ "$figmaStyleReferences": {},
207
+ "selectedTokenSets": {
208
+ "components/pagination/ams": "enabled",
209
+ "other/groups...": "enabled"
210
+ }
211
+ }
212
+ ]
213
+ ```
package/build.mjs CHANGED
@@ -1,10 +1,11 @@
1
1
  import { existsSync, mkdirSync } from 'fs';
2
2
  import { readFile, writeFile } from 'node:fs/promises';
3
- import path from 'path';
3
+ import { posix } from 'path';
4
4
  import StyleDictionary from 'style-dictionary';
5
-
6
5
  import { register } from '@tokens-studio/sd-transforms';
7
6
 
7
+ import { fixCSSFile } from './cssFixers.mjs';
8
+
8
9
  // Will take the theme name and remove all spaces and make it lowercase
9
10
  const normalizeThemeName = (name) => {
10
11
  return name.toLowerCase().replace(/\s+/g, '');
@@ -22,6 +23,30 @@ const removeUnitlessLineHeightTransform = () => {
22
23
  }
23
24
  };
24
25
 
26
+ StyleDictionary.registerAction({
27
+ name: 'fixCSSTokens',
28
+ do: async function (_dictionary, config) {
29
+ const buildPath = config.buildPath || 'dist/';
30
+ const files = config.files || [];
31
+ // TS allows roundTo(), exponentiation (^) and basic calculations (without `calc()`) in their values, but these are not valid CSS.
32
+ for (const file of files) {
33
+ const filePath = posix.join(buildPath, file.destination);
34
+ console.log('🔧 fixing css:', filePath);
35
+ await fixCSSFile(filePath);
36
+ }
37
+ },
38
+ // No undo action available - files are deleted during cleanup.
39
+ undo: function () {},
40
+ });
41
+
42
+ // Custom header to add generation date
43
+ StyleDictionary.registerFileHeader({
44
+ name: 'nlds-rhc-header',
45
+ fileHeader: function (defaultMessage) {
46
+ return [...defaultMessage, `Generated on ${new Date().toUTCString()}`];
47
+ },
48
+ });
49
+
25
50
  const excludes = [
26
51
  'components/avatar',
27
52
  'components/form-field-option-label',
@@ -43,6 +68,9 @@ const getPlatformsConfig = (buildPath, themeName) => {
43
68
  transforms: ['name/camel'],
44
69
  buildPath,
45
70
  excludes,
71
+ options: {
72
+ fileHeader: 'nlds-rhc-header',
73
+ },
46
74
  files: [
47
75
  {
48
76
  format: 'typescript/es6-declarations',
@@ -75,28 +103,26 @@ const getPlatformsConfig = (buildPath, themeName) => {
75
103
  transforms: ['name/kebab'],
76
104
  buildPath,
77
105
  excludes,
106
+ actions: ['fixCSSTokens'],
107
+ options: {
108
+ fileHeader: 'nlds-rhc-header',
109
+ outputReferences: true,
110
+ },
78
111
  files: [
79
112
  {
80
113
  destination: 'root.css',
81
114
  format: 'css/variables',
82
- options: {
83
- outputReferences: true,
84
- },
85
115
  },
86
116
  {
87
117
  destination: 'index.css',
88
118
  format: 'css/variables',
89
119
  options: {
90
120
  selector: `.${themeName}`,
91
- outputReferences: true,
92
121
  },
93
122
  },
94
123
  {
95
124
  destination: '_variables.scss',
96
125
  format: 'scss/variables',
97
- options: {
98
- outputReferences: true,
99
- },
100
126
  },
101
127
  ],
102
128
  },
@@ -136,7 +162,7 @@ async function buildThemes() {
136
162
  }
137
163
 
138
164
  // Write individual theme tokens
139
- await writeFile(path.join(themesDir, `tokens.json`), JSON.stringify(themeData.tokens, null, 2));
165
+ await writeFile(posix.join(themesDir, `tokens.json`), JSON.stringify(themeData.tokens, null, 2));
140
166
 
141
167
  const config = getPlatformsConfig(`dist/${themeName}/`, themeName);
142
168
  // Create a separate Style Dictionary instance for each theme
package/cssFixers.mjs ADDED
@@ -0,0 +1,89 @@
1
+ import { readFile, writeFile } from 'fs/promises';
2
+
3
+ // When using `outputReferences: true` in Style Dictionary (see `build.mjs`), any calculations/transforms are overwritten by the css-var-names.
4
+ // So you'll end up with invalid CSS like:
5
+ // `--my-var: var(--my-length) + 20px;` - see: https://github.com/style-dictionary/style-dictionary/issues/1055
6
+ // We will need to fix any invalid stuff from Tokens Studio (TS) here as a post-build step.
7
+ // This applies to both .css and .scss files.
8
+
9
+ const varRegex = /(?<prefix>^\s*--[^:]+:\s*)(?<value>[^;]+?)(?<suffix>\s*;)/gm;
10
+
11
+ export async function fixCSSFile(filePath) {
12
+ let content = await readFile(filePath, 'utf-8');
13
+
14
+ content = await fixRoundTo(content);
15
+ content = await fixExponentiation(content);
16
+ content = await fixCalc(content);
17
+
18
+ await writeFile(filePath, content);
19
+ }
20
+
21
+ // This will wrap any calculations in `calc()`.
22
+ export function fixCalc(content) {
23
+ const operatorRegex = /(?:\s\+\s|\s-\s|\/|\*)/;
24
+
25
+ return content.replace(varRegex, (match, prefix, value, suffix) => {
26
+ if (!value.match(operatorRegex)) {
27
+ return match;
28
+ }
29
+
30
+ return `${prefix}calc(${value})${suffix}`;
31
+ });
32
+ }
33
+
34
+ // Exponentiation (^) is not supported in CSS, so we need to convert it to pow(base, exponent)
35
+ export function fixExponentiation(content) {
36
+ const exponentiationRegex =
37
+ /([0-9]*\.?[0-9]+(?:[a-z%]+)?|var\([^)]+\))\s*\^\s*([0-9]*\.?[0-9]+(?:[a-z%]+)?|var\([^)]+\))/g;
38
+
39
+ return content.replace(varRegex, (match, prefix, value, suffix) => {
40
+ if (!value.includes('^')) {
41
+ return match;
42
+ }
43
+
44
+ const fixedValue = value.replace(exponentiationRegex, (_match, base, exponent) => {
45
+ return `pow(${base}, ${exponent})`;
46
+ });
47
+
48
+ return `${prefix}${fixedValue}${suffix}`;
49
+ });
50
+ }
51
+
52
+ // This will strip out any roundTo() calls, as CSS doesn't support it.
53
+ // It does allow round(), but that needs a rounding interval, which is unknown at this point.
54
+ // See https://developer.mozilla.org/en-US/docs/Web/CSS/round
55
+ export function fixRoundTo(content) {
56
+ return content.replace(varRegex, (match, prefix, value, suffix) => {
57
+ if (!value.includes('roundTo(')) {
58
+ return match;
59
+ }
60
+
61
+ // Handle nested parentheses by processing the string character by character
62
+ let fixedValue = value;
63
+ let result = '';
64
+ let i = 0;
65
+
66
+ while (i < fixedValue.length) {
67
+ if (fixedValue.slice(i, i + 8) === 'roundTo(') {
68
+ // Found roundTo(, now find the matching closing parenthesis
69
+ i += 8; // Skip "roundTo("
70
+ let parenCount = 1;
71
+ let start = i;
72
+
73
+ while (i < fixedValue.length && parenCount > 0) {
74
+ if (fixedValue[i] === '(') parenCount++;
75
+ if (fixedValue[i] === ')') parenCount--;
76
+ i++;
77
+ }
78
+
79
+ // Extract the content between parentheses and add to result
80
+ result += fixedValue.slice(start, i - 1);
81
+ } else {
82
+ result += fixedValue[i];
83
+ i++;
84
+ }
85
+ }
86
+
87
+ return `${prefix}${result}${suffix}`;
88
+ });
89
+ }
@@ -0,0 +1,98 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { fixCalc, fixExponentiation, fixRoundTo } from './cssFixers.mjs';
3
+
4
+ describe('css fixers', () => {
5
+ describe('fixCalc', () => {
6
+ test('should wrap adding calculations in calc()', async () => {
7
+ const input = '--some-var: 100px + 50%;';
8
+ const output = '--some-var: calc(100px + 50%);';
9
+ expect(fixCalc(input)).toBe(output);
10
+ });
11
+ test('should wrap calculations with variables in calc()', async () => {
12
+ const input = '--some-var: 100px + var(--some-other-var);';
13
+ const output = '--some-var: calc(100px + var(--some-other-var));';
14
+ expect(fixCalc(input)).toBe(output);
15
+ });
16
+ test('should wrap calculations with variables in calc()', async () => {
17
+ const input = '--some-var: var(--some-other-var) + 100px;';
18
+ const output = '--some-var: calc(var(--some-other-var) + 100px);';
19
+ expect(fixCalc(input)).toBe(output);
20
+ });
21
+ test('should wrap subtraction calculations in calc()', async () => {
22
+ const input = '--some-var: 100px - 50px;';
23
+ const output = '--some-var: calc(100px - 50px);';
24
+ expect(fixCalc(input)).toBe(output);
25
+ });
26
+ test('should wrap multiplication calculations in calc()', async () => {
27
+ const input = '--some-var: 10px * 2;';
28
+ const output = '--some-var: calc(10px * 2);';
29
+ expect(fixCalc(input)).toBe(output);
30
+ });
31
+ test('should wrap division calculations in calc()', async () => {
32
+ const input = '--some-var: 100px / 2;';
33
+ const output = '--some-var: calc(100px / 2);';
34
+ expect(fixCalc(input)).toBe(output);
35
+ });
36
+ test('should wrap mixed calculations in calc()', async () => {
37
+ const input = '--some-var: var(--base) * 2 - 10px;';
38
+ const output = '--some-var: calc(var(--base) * 2 - 10px);';
39
+ expect(fixCalc(input)).toBe(output);
40
+ });
41
+ test('should not wrap single variables in calc()', async () => {
42
+ const input = '--some-var: var(--other-var);';
43
+ const output = '--some-var: var(--other-var);';
44
+ expect(fixCalc(input)).toBe(output);
45
+ });
46
+ test('should not wrap simple values in calc()', async () => {
47
+ const input = '--some-var: 10px;';
48
+ const output = '--some-var: 10px;';
49
+ expect(fixCalc(input)).toBe(output);
50
+ });
51
+ });
52
+
53
+ describe('fixExponentiation', () => {
54
+ test('should convert ^ to pow()', async () => {
55
+ const input = '--some-var: 2^3;';
56
+ const output = '--some-var: pow(2, 3);';
57
+ expect(fixExponentiation(input)).toBe(output);
58
+ });
59
+ test('should convert ^ to pow() with variable as base', async () => {
60
+ const input = '--some-var: var(--base)^3;';
61
+ const output = '--some-var: pow(var(--base), 3);';
62
+ expect(fixExponentiation(input)).toBe(output);
63
+ });
64
+ test('should convert ^ to pow() with variable as exponent', async () => {
65
+ const input = '--some-var: 2^var(--exponent);';
66
+ const output = '--some-var: pow(2, var(--exponent));';
67
+ expect(fixExponentiation(input)).toBe(output);
68
+ });
69
+ test('should convert ^ to pow() with variables as both base and exponent', async () => {
70
+ const input = '--some-var: var(--base)^var(--exponent);';
71
+ const output = '--some-var: pow(var(--base), var(--exponent));';
72
+ expect(fixExponentiation(input)).toBe(output);
73
+ });
74
+ });
75
+
76
+ describe('fixRoundTo', () => {
77
+ test('should remove roundTo()', async () => {
78
+ const input = '--some-var: roundTo(10px);';
79
+ const output = '--some-var: 10px;';
80
+ expect(fixRoundTo(input)).toBe(output);
81
+ });
82
+ test('should remove roundTo() with variable', async () => {
83
+ const input = '--some-var: roundTo(var(--base-size));';
84
+ const output = '--some-var: var(--base-size);';
85
+ expect(fixRoundTo(input)).toBe(output);
86
+ });
87
+ test('should remove roundTo() with calc function', async () => {
88
+ const input = '--some-var: roundTo(calc(10px + 5px));';
89
+ const output = '--some-var: calc(10px + 5px);';
90
+ expect(fixRoundTo(input)).toBe(output);
91
+ });
92
+ test('should remove roundTo() with calc function containing variables', async () => {
93
+ const input = '--some-var: roundTo(calc(var(--base) * 2));';
94
+ const output = '--some-var: calc(var(--base) * 2);';
95
+ expect(fixRoundTo(input)).toBe(output);
96
+ });
97
+ });
98
+ });
@@ -1,5 +1,6 @@
1
1
 
2
2
  // Do not edit directly, this file was auto-generated.
3
+ // Generated on Tue, 30 Dec 2025 09:35:37 GMT
3
4
 
4
5
  $rhc-border-radius-round: 999px;
5
6
  $rhc-border-radius-none: 0px;
@@ -493,21 +494,22 @@ $rhc-nav-bar-link-padding-inline-end: $rhc-space-150;
493
494
  $rhc-nav-bar-link-padding-inline-start: $rhc-space-150;
494
495
  $rhc-nav-bar-link-column-gap: $rhc-space-100;
495
496
  $rhc-nav-bar-background-color: $rhc-color-wit;
496
- $rhc-navigation-list-icon-border-radius: $rhc-border-radius-round;
497
- $rhc-navigation-list-item-icon-padding-inline: $rhc-space-100;
498
- $rhc-navigation-list-item-icon-padding-block: $rhc-space-100;
499
- $rhc-navigation-list-item-icon-size: $rhc-size-icon-md;
500
- $rhc-navigation-list-item-content-column-gap: $rhc-space-100;
501
- $rhc-navigation-list-item-content-row-gap: $rhc-space-50;
502
- $rhc-navigation-list-item-label-line-height: $rhc-text-line-height-md;
503
- $rhc-navigation-list-item-active-background-color: $rhc-color-cool-grey-100;
504
- $rhc-navigation-list-item-hover-background-color: $rhc-color-cool-grey-50;
505
- $rhc-navigation-list-item-border-width: $rhc-border-width-sm;
506
497
  $rhc-navigation-list-item-border-color: $rhc-color-cool-grey-300;
498
+ $rhc-navigation-list-item-border-width: $rhc-border-width-sm;
507
499
  $rhc-navigation-list-item-column-gap: $rhc-space-200;
508
500
  $rhc-navigation-list-item-min-height: $rhc-size-pointer-target;
509
501
  $rhc-navigation-list-item-padding-block: $rhc-space-150;
510
502
  $rhc-navigation-list-item-padding-inline: $rhc-space-200;
503
+ $rhc-navigation-list-item-active-background-color: $rhc-color-cool-grey-100;
504
+ $rhc-navigation-list-item-hover-background-color: $rhc-color-cool-grey-50;
505
+ $rhc-navigation-list-item-content-column-gap: $rhc-space-100; // [code-only]
506
+ $rhc-navigation-list-item-content-row-gap: $rhc-space-50; // [code-only]
507
+ $rhc-navigation-list-item-description-line-height: $rhc-text-line-height-md;
508
+ $rhc-navigation-list-item-icon-start-border-radius: $rhc-border-radius-round;
509
+ $rhc-navigation-list-item-icon-start-padding-block: $rhc-space-100;
510
+ $rhc-navigation-list-item-icon-start-padding-inline: $rhc-space-100;
511
+ $rhc-navigation-list-item-icon-start-size: $rhc-size-icon-md;
512
+ $rhc-navigation-list-item-label-line-height: $rhc-text-line-height-md;
511
513
  $rhc-radio-group-padding-block-end: $rhc-space-100;
512
514
  $rhc-radio-group-padding-block-start: $rhc-space-100;
513
515
  $rhc-radio-group-row-gap: $rhc-space-200;
@@ -1052,16 +1054,17 @@ $rhc-nav-bar-link-font-size: $rhc-text-font-size-md;
1052
1054
  $rhc-nav-bar-heading-font-weight: $rhc-text-font-weight-strong;
1053
1055
  $rhc-nav-bar-color: $rhc-color-primary-500;
1054
1056
  $rhc-nav-bar-border-color: $rhc-color-primary-400;
1055
- $rhc-navigation-list-icon-background-color: $rhc-color-foreground-default;
1056
- $rhc-navigation-list-icon-color: $rhc-color-foreground-on-dark-color;
1057
- $rhc-navigation-list-item-content-font-size: $rhc-text-font-size-md;
1057
+ $rhc-navigation-list-item-background-color: $rhc-color-bg-document;
1058
+ $rhc-navigation-list-item-focus-background-color: $rhc-color-primary-50;
1059
+ $rhc-navigation-list-item-description-color: $rhc-color-foreground-subtle;
1060
+ $rhc-navigation-list-item-description-font-size: $rhc-text-font-size-md;
1061
+ $rhc-navigation-list-item-icon-end-color: $rhc-color-foreground-subtle;
1062
+ $rhc-navigation-list-item-icon-start-background-color: $rhc-color-foreground-default;
1063
+ $rhc-navigation-list-item-icon-start-color: $rhc-color-foreground-on-dark-color;
1064
+ $rhc-navigation-list-item-label-color: $rhc-color-foreground-default;
1058
1065
  $rhc-navigation-list-item-label-font-family: $rhc-text-font-family-default;
1059
1066
  $rhc-navigation-list-item-label-font-size: $rhc-text-font-size-xl;
1060
1067
  $rhc-navigation-list-item-label-font-weight: $rhc-text-font-weight-strong;
1061
- $rhc-navigation-list-item-focus-background-color: $rhc-color-primary-50;
1062
- $rhc-navigation-list-item-background-color: $rhc-color-bg-document;
1063
- $rhc-navigation-list-item-color: $rhc-color-foreground-subtle;
1064
- $rhc-navigation-list-item-heading-color: $rhc-color-foreground-default;
1065
1068
  $rhc-sidenav-link-font-size: $rhc-text-font-size-md;
1066
1069
  $rhc-sidenav-link-font-family: $rhc-text-font-family-default;
1067
1070
  $rhc-sidenav-link-font-weight: $rhc-text-font-weight-default;
package/dist/index.css CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly, this file was auto-generated.
3
+ * Generated on Tue, 30 Dec 2025 09:35:37 GMT
3
4
  */
4
5
 
5
6
  .rhc-theme {
@@ -495,21 +496,22 @@
495
496
  --rhc-nav-bar-link-padding-inline-start: var(--rhc-space-150);
496
497
  --rhc-nav-bar-link-column-gap: var(--rhc-space-100);
497
498
  --rhc-nav-bar-background-color: var(--rhc-color-wit);
498
- --rhc-navigation-list-icon-border-radius: var(--rhc-border-radius-round);
499
- --rhc-navigation-list-item-icon-padding-inline: var(--rhc-space-100);
500
- --rhc-navigation-list-item-icon-padding-block: var(--rhc-space-100);
501
- --rhc-navigation-list-item-icon-size: var(--rhc-size-icon-md);
502
- --rhc-navigation-list-item-content-column-gap: var(--rhc-space-100);
503
- --rhc-navigation-list-item-content-row-gap: var(--rhc-space-50);
504
- --rhc-navigation-list-item-label-line-height: var(--rhc-text-line-height-md);
505
- --rhc-navigation-list-item-active-background-color: var(--rhc-color-cool-grey-100);
506
- --rhc-navigation-list-item-hover-background-color: var(--rhc-color-cool-grey-50);
507
- --rhc-navigation-list-item-border-width: var(--rhc-border-width-sm);
508
499
  --rhc-navigation-list-item-border-color: var(--rhc-color-cool-grey-300);
500
+ --rhc-navigation-list-item-border-width: var(--rhc-border-width-sm);
509
501
  --rhc-navigation-list-item-column-gap: var(--rhc-space-200);
510
502
  --rhc-navigation-list-item-min-height: var(--rhc-size-pointer-target);
511
503
  --rhc-navigation-list-item-padding-block: var(--rhc-space-150);
512
504
  --rhc-navigation-list-item-padding-inline: var(--rhc-space-200);
505
+ --rhc-navigation-list-item-active-background-color: var(--rhc-color-cool-grey-100);
506
+ --rhc-navigation-list-item-hover-background-color: var(--rhc-color-cool-grey-50);
507
+ --rhc-navigation-list-item-content-column-gap: var(--rhc-space-100); /** [code-only] */
508
+ --rhc-navigation-list-item-content-row-gap: var(--rhc-space-50); /** [code-only] */
509
+ --rhc-navigation-list-item-description-line-height: var(--rhc-text-line-height-md);
510
+ --rhc-navigation-list-item-icon-start-border-radius: var(--rhc-border-radius-round);
511
+ --rhc-navigation-list-item-icon-start-padding-block: var(--rhc-space-100);
512
+ --rhc-navigation-list-item-icon-start-padding-inline: var(--rhc-space-100);
513
+ --rhc-navigation-list-item-icon-start-size: var(--rhc-size-icon-md);
514
+ --rhc-navigation-list-item-label-line-height: var(--rhc-text-line-height-md);
513
515
  --rhc-radio-group-padding-block-end: var(--rhc-space-100);
514
516
  --rhc-radio-group-padding-block-start: var(--rhc-space-100);
515
517
  --rhc-radio-group-row-gap: var(--rhc-space-200);
@@ -1054,16 +1056,17 @@
1054
1056
  --rhc-nav-bar-heading-font-weight: var(--rhc-text-font-weight-strong);
1055
1057
  --rhc-nav-bar-color: var(--rhc-color-primary-500);
1056
1058
  --rhc-nav-bar-border-color: var(--rhc-color-primary-400);
1057
- --rhc-navigation-list-icon-background-color: var(--rhc-color-foreground-default);
1058
- --rhc-navigation-list-icon-color: var(--rhc-color-foreground-on-dark-color);
1059
- --rhc-navigation-list-item-content-font-size: var(--rhc-text-font-size-md);
1059
+ --rhc-navigation-list-item-background-color: var(--rhc-color-bg-document);
1060
+ --rhc-navigation-list-item-focus-background-color: var(--rhc-color-primary-50);
1061
+ --rhc-navigation-list-item-description-color: var(--rhc-color-foreground-subtle);
1062
+ --rhc-navigation-list-item-description-font-size: var(--rhc-text-font-size-md);
1063
+ --rhc-navigation-list-item-icon-end-color: var(--rhc-color-foreground-subtle);
1064
+ --rhc-navigation-list-item-icon-start-background-color: var(--rhc-color-foreground-default);
1065
+ --rhc-navigation-list-item-icon-start-color: var(--rhc-color-foreground-on-dark-color);
1066
+ --rhc-navigation-list-item-label-color: var(--rhc-color-foreground-default);
1060
1067
  --rhc-navigation-list-item-label-font-family: var(--rhc-text-font-family-default);
1061
1068
  --rhc-navigation-list-item-label-font-size: var(--rhc-text-font-size-xl);
1062
1069
  --rhc-navigation-list-item-label-font-weight: var(--rhc-text-font-weight-strong);
1063
- --rhc-navigation-list-item-focus-background-color: var(--rhc-color-primary-50);
1064
- --rhc-navigation-list-item-background-color: var(--rhc-color-bg-document);
1065
- --rhc-navigation-list-item-color: var(--rhc-color-foreground-subtle);
1066
- --rhc-navigation-list-item-heading-color: var(--rhc-color-foreground-default);
1067
1070
  --rhc-sidenav-link-font-size: var(--rhc-text-font-size-md);
1068
1071
  --rhc-sidenav-link-font-family: var(--rhc-text-font-family-default);
1069
1072
  --rhc-sidenav-link-font-weight: var(--rhc-text-font-weight-default);
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly, this file was auto-generated.
3
+ * Generated on Tue, 30 Dec 2025 09:35:37 GMT
3
4
  */
4
5
 
5
6
  export const rhcBorderRadiusRound: string;
@@ -434,31 +435,35 @@ export const rhcNavBarHeadingFontWeight: string;
434
435
  export const rhcNavBarBackgroundColor: string;
435
436
  export const rhcNavBarColor: string;
436
437
  export const rhcNavBarBorderColor: string;
437
- export const rhcNavigationListIconBackgroundColor: string;
438
- export const rhcNavigationListIconBorderRadius: string;
439
- export const rhcNavigationListIconColor: string;
440
- export const rhcNavigationListItemIconPaddingInline: string;
441
- export const rhcNavigationListItemIconPaddingBlock: string;
442
- export const rhcNavigationListItemIconSize: string;
443
- export const rhcNavigationListItemContentFontSize: string;
444
- export const rhcNavigationListItemContentColumnGap: string;
445
- export const rhcNavigationListItemContentRowGap: string;
446
- export const rhcNavigationListItemLabelFontFamily: string;
447
- export const rhcNavigationListItemLabelFontSize: string;
448
- export const rhcNavigationListItemLabelFontWeight: string;
449
- export const rhcNavigationListItemLabelLineHeight: string;
450
- export const rhcNavigationListItemActiveBackgroundColor: string;
451
- export const rhcNavigationListItemHoverBackgroundColor: string;
452
- export const rhcNavigationListItemFocusBackgroundColor: string;
453
438
  export const rhcNavigationListItemBackgroundColor: string;
454
- export const rhcNavigationListItemColor: string;
455
- export const rhcNavigationListItemBorderWidth: string;
456
439
  export const rhcNavigationListItemBorderColor: string;
457
- export const rhcNavigationListItemHeadingColor: string;
440
+ export const rhcNavigationListItemBorderWidth: string;
458
441
  export const rhcNavigationListItemColumnGap: string;
459
442
  export const rhcNavigationListItemMinHeight: string;
460
443
  export const rhcNavigationListItemPaddingBlock: string;
461
444
  export const rhcNavigationListItemPaddingInline: string;
445
+ export const rhcNavigationListItemActiveBackgroundColor: string;
446
+ export const rhcNavigationListItemHoverBackgroundColor: string;
447
+ export const rhcNavigationListItemFocusBackgroundColor: string;
448
+ /** [code-only] */
449
+ export const rhcNavigationListItemContentColumnGap: string;
450
+ /** [code-only] */
451
+ export const rhcNavigationListItemContentRowGap: string;
452
+ export const rhcNavigationListItemDescriptionColor: string;
453
+ export const rhcNavigationListItemDescriptionFontSize: string;
454
+ export const rhcNavigationListItemDescriptionLineHeight: string;
455
+ export const rhcNavigationListItemIconEndColor: string;
456
+ export const rhcNavigationListItemIconStartBackgroundColor: string;
457
+ export const rhcNavigationListItemIconStartBorderRadius: string;
458
+ export const rhcNavigationListItemIconStartColor: string;
459
+ export const rhcNavigationListItemIconStartPaddingBlock: string;
460
+ export const rhcNavigationListItemIconStartPaddingInline: string;
461
+ export const rhcNavigationListItemIconStartSize: string;
462
+ export const rhcNavigationListItemLabelColor: string;
463
+ export const rhcNavigationListItemLabelFontFamily: string;
464
+ export const rhcNavigationListItemLabelFontSize: string;
465
+ export const rhcNavigationListItemLabelFontWeight: string;
466
+ export const rhcNavigationListItemLabelLineHeight: string;
462
467
  export const rhcRadioGroupPaddingBlockEnd: string;
463
468
  export const rhcRadioGroupPaddingBlockStart: string;
464
469
  export const rhcRadioGroupRowGap: string;
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly, this file was auto-generated.
3
+ * Generated on Tue, 30 Dec 2025 09:35:37 GMT
3
4
  */
4
5
 
5
6
  export const rhcBorderRadiusRound = "999px";
@@ -435,32 +436,34 @@ export const rhcNavBarHeadingFontWeight = "700";
435
436
  export const rhcNavBarBackgroundColor = "#ffffff";
436
437
  export const rhcNavBarColor = "#154273";
437
438
  export const rhcNavBarBorderColor = "#4f7196";
438
- export const rhcNavigationListIconBackgroundColor = "#0f172a";
439
- export const rhcNavigationListIconBorderRadius = "999px";
440
- export const rhcNavigationListIconColor = "#ffffff";
441
- export const rhcNavigationListItemIconPaddingInline = "0.5rem";
442
- export const rhcNavigationListItemIconPaddingBlock = "0.5rem";
443
- export const rhcNavigationListItemIconSize = "24px";
444
- export const rhcNavigationListItemContentFontSize = "1.25rem";
445
- export const rhcNavigationListItemContentColumnGap = "0.5rem";
446
- export const rhcNavigationListItemContentRowGap = "0.25rem";
447
- export const rhcNavigationListItemLabelFontFamily =
448
- "'Fira Sans', Arial, Verdana, sans-serif";
449
- export const rhcNavigationListItemLabelFontSize = "1.875rem";
450
- export const rhcNavigationListItemLabelFontWeight = "700";
451
- export const rhcNavigationListItemLabelLineHeight = "150%";
452
- export const rhcNavigationListItemActiveBackgroundColor = "#f1f5f9";
453
- export const rhcNavigationListItemHoverBackgroundColor = "#f8fafc";
454
- export const rhcNavigationListItemFocusBackgroundColor = "#dce3ea";
455
439
  export const rhcNavigationListItemBackgroundColor = "#ffffff";
456
- export const rhcNavigationListItemColor = "#334155";
457
- export const rhcNavigationListItemBorderWidth = "1px";
458
440
  export const rhcNavigationListItemBorderColor = "#cbd5e1";
459
- export const rhcNavigationListItemHeadingColor = "#0f172a";
441
+ export const rhcNavigationListItemBorderWidth = "1px";
460
442
  export const rhcNavigationListItemColumnGap = "1rem";
461
443
  export const rhcNavigationListItemMinHeight = "48px";
462
444
  export const rhcNavigationListItemPaddingBlock = "0.75rem";
463
445
  export const rhcNavigationListItemPaddingInline = "1rem";
446
+ export const rhcNavigationListItemActiveBackgroundColor = "#f1f5f9";
447
+ export const rhcNavigationListItemHoverBackgroundColor = "#f8fafc";
448
+ export const rhcNavigationListItemFocusBackgroundColor = "#dce3ea";
449
+ export const rhcNavigationListItemContentColumnGap = "0.5rem"; // [code-only]
450
+ export const rhcNavigationListItemContentRowGap = "0.25rem"; // [code-only]
451
+ export const rhcNavigationListItemDescriptionColor = "#334155";
452
+ export const rhcNavigationListItemDescriptionFontSize = "1.25rem";
453
+ export const rhcNavigationListItemDescriptionLineHeight = "150%";
454
+ export const rhcNavigationListItemIconEndColor = "#334155";
455
+ export const rhcNavigationListItemIconStartBackgroundColor = "#0f172a";
456
+ export const rhcNavigationListItemIconStartBorderRadius = "999px";
457
+ export const rhcNavigationListItemIconStartColor = "#ffffff";
458
+ export const rhcNavigationListItemIconStartPaddingBlock = "0.5rem";
459
+ export const rhcNavigationListItemIconStartPaddingInline = "0.5rem";
460
+ export const rhcNavigationListItemIconStartSize = "24px";
461
+ export const rhcNavigationListItemLabelColor = "#0f172a";
462
+ export const rhcNavigationListItemLabelFontFamily =
463
+ "'Fira Sans', Arial, Verdana, sans-serif";
464
+ export const rhcNavigationListItemLabelFontSize = "1.875rem";
465
+ export const rhcNavigationListItemLabelFontWeight = "700";
466
+ export const rhcNavigationListItemLabelLineHeight = "150%";
464
467
  export const rhcRadioGroupPaddingBlockEnd = "0.5rem";
465
468
  export const rhcRadioGroupPaddingBlockStart = "0.5rem";
466
469
  export const rhcRadioGroupRowGap = "1rem";