@revikornmann/muka-ui 0.27.1 → 0.27.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.
Files changed (40) hide show
  1. package/dist/cjs/components/Avatar/Avatar.css +45 -11
  2. package/dist/cjs/components/Avatar/Avatar.js +4 -1
  3. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  4. package/dist/cjs/components/Avatar/AvatarGroup.js +4 -2
  5. package/dist/cjs/components/Avatar/AvatarGroup.js.map +1 -1
  6. package/dist/cjs/components/Tabs/Tabs.js +6 -3
  7. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  8. package/dist/esm/components/Avatar/Avatar.css +45 -11
  9. package/dist/esm/components/Avatar/Avatar.js +4 -1
  10. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  11. package/dist/esm/components/Avatar/AvatarGroup.js +4 -2
  12. package/dist/esm/components/Avatar/AvatarGroup.js.map +1 -1
  13. package/dist/esm/components/Tabs/Tabs.js +6 -3
  14. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  15. package/dist/styles/components/Avatar.css +45 -11
  16. package/dist/styles/index.css +766 -724
  17. package/dist/styles/muka-dark.css +766 -724
  18. package/dist/styles/muka-light.css +766 -724
  19. package/dist/styles/tokens-bouwplan-dark.css +15 -7
  20. package/dist/styles/tokens-bouwplan-light.css +15 -7
  21. package/dist/styles/tokens-fscl-dark.css +15 -7
  22. package/dist/styles/tokens-fscl-light.css +15 -7
  23. package/dist/styles/tokens-grip-dark.css +15 -7
  24. package/dist/styles/tokens-grip-light.css +15 -7
  25. package/dist/styles/tokens-muka-dark.css +15 -7
  26. package/dist/styles/tokens-muka-light.css +15 -7
  27. package/dist/styles/tokens-wireframe-dark.css +15 -7
  28. package/dist/styles/tokens-wireframe-light.css +15 -7
  29. package/dist/styles/wireframe-dark.css +766 -724
  30. package/dist/styles/wireframe-light.css +766 -724
  31. package/dist/types/components/Avatar/Avatar.d.ts +4 -1
  32. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  33. package/dist/types/components/Avatar/AvatarGroup.d.ts +8 -0
  34. package/dist/types/components/Avatar/AvatarGroup.d.ts.map +1 -1
  35. package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
  36. package/docs/consumers/brand.md +6 -2
  37. package/docs/consumers/setup-instructions.md +35 -3
  38. package/package.json +1 -1
  39. package/skills/setup-muka/SKILL.md +36 -3
  40. package/tokens/t4-components/avatar.json +46 -8
@@ -45,7 +45,10 @@ export interface AvatarProps {
45
45
  * - Loading and error states
46
46
  * - Clickable support
47
47
  *
48
- * @accessibility WCAG 2.1 AA compliant
48
+ * @accessibility WCAG 2.1 AA, except initials contrast
49
+ * - Initials and "+N" use subtle text by design (Figma "Avatar"), about 2.5–3.4:1
50
+ * on the avatar fill, below the 4.5:1 AA text minimum. They are decorative:
51
+ * the accessible name comes from `name`, so always pass it
49
52
  * - Requires alt text when using image
50
53
  * - Uses role="img" with aria-label for non-image avatars
51
54
  * - Status indicators include aria-label
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,cAAc,CAAC;AAEtB;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,oBAAoB;IACpB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE5B,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAEhD,gCAAgC;IAChC,cAAc,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IAE9C,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAkKxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,cAAc,CAAC;AAEtB;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,oBAAoB;IACpB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAE5B,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAEhD,gCAAgC;IAChC,cAAc,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IAE9C,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAaD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAkKxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -13,6 +13,13 @@ export interface AvatarGroupProps {
13
13
  * (half) or `spacious` (a third).
14
14
  */
15
15
  spacing?: 'tight' | 'compact' | 'spacious';
16
+ /**
17
+ * Number shown in a badge on the top-right corner of the group, e.g. an
18
+ * unread count. Rendered as an info `BadgeNumber`; omit for no badge.
19
+ */
20
+ badge?: React.ReactNode;
21
+ /** Accessible label for the badge (e.g. "12 unread messages") */
22
+ badgeLabel?: string;
16
23
  /** Additional CSS classes */
17
24
  className?: string;
18
25
  /** Accessible label for the group */
@@ -30,6 +37,7 @@ export interface AvatarGroupProps {
30
37
  * - Three spacing modes: tight, compact, spacious
31
38
  * - Size propagation to child avatars
32
39
  * - Overflow counter display
40
+ * - Optional number badge on the top-right corner
33
41
  *
34
42
  * @accessibility WCAG 2.1 AA compliant
35
43
  * - Uses role="group" with aria-label
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../../../components/Avatar/AvatarGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAE3C,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoElD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../../../components/Avatar/AvatarGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAE3C;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiFlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAGnG,OAAO,YAAY,CAAC;AAEpB,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAkBnC,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,mBAAmB;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE7B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAuCpC,CAAC;AAGF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyD1C,CAAC;AAGF,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,gBAAgB;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,qEAAqE;IACrE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAyDlC,CAAC;AAGF,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqB5C,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../components/Tabs/Tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAGnG,OAAO,YAAY,CAAC;AAEpB,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAkBnC,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,mBAAmB;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE7B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAuCpC,CAAC;AAGF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyD1C,CAAC;AAGF,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,gBAAgB;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,qEAAqE;IACrE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAyDlC,CAAC;AAGF,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqB5C,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -214,8 +214,12 @@ const link = document.getElementById('muka-theme') as HTMLLinkElement;
214
214
  link.href = `/styles/tokens-acme-${mode}.css`;
215
215
  ```
216
216
 
217
- Copy the generated CSS into your static/public directory so those hrefs resolve.
218
- This is exactly how Muka's own Storybook switches between its ten themes.
217
+ Those hrefs need the generated CSS at a stable URL: have your token build write
218
+ or copy it into your static/public directory, as part of the same `build:tokens`
219
+ step described under [Keeping your brand current](#keeping-your-brand-current).
220
+ Don't keep a hand-made copy there — it stays frozen while the light stylesheet
221
+ moves on, and any token missing from the dark copy shows its light value in dark
222
+ mode. This is exactly how Muka's own Storybook switches between its ten themes.
219
223
 
220
224
  ## Keeping your brand current
221
225
 
@@ -71,9 +71,41 @@ document.getElementById('muka-theme').href =
71
71
  `/styles/tokens-${brand}-${mode}.css`;
72
72
  ```
73
73
 
74
- Copy the token CSS you need into your static/public directory (or let your
75
- bundler emit it at a stable URL) so those hrefs resolve. Muka's own Storybook
76
- switches between all ten themes exactly this way — see
74
+ Those hrefs need the token CSS at a stable URL. Copy it from the installed
75
+ package **as part of every `dev` and `build`** (or let your bundler emit it), so
76
+ it always matches the Muka version you have installed:
77
+
78
+ ```js
79
+ // scripts/sync-theme-tokens.mjs
80
+ import { copyFileSync, mkdirSync } from 'node:fs';
81
+ import { createRequire } from 'node:module';
82
+
83
+ const require = createRequire(import.meta.url);
84
+ mkdirSync('public/styles', { recursive: true });
85
+ for (const mode of ['light', 'dark']) {
86
+ const file = `tokens-muka-${mode}.css`;
87
+ copyFileSync(require.resolve(`@revikornmann/muka-ui/styles/${file}`), `public/styles/${file}`);
88
+ }
89
+ ```
90
+
91
+ ```json
92
+ "scripts": {
93
+ "sync:themes": "node scripts/sync-theme-tokens.mjs",
94
+ "dev": "npm run sync:themes && next dev",
95
+ "build": "npm run sync:themes && next build"
96
+ }
97
+ ```
98
+
99
+ Gitignore the copies (`public/styles/tokens-*.css`). Chain the script into
100
+ `dev` and `build` rather than using `predev` / `prebuild`: pnpm 9 skips `pre*`
101
+ scripts by default.
102
+
103
+ **Never commit a hand-made copy.** It is frozen at the version you copied, and
104
+ each Muka release adds tokens it lacks. A token missing from the dark copy keeps
105
+ the value from the light stylesheet, so new components show light colours in
106
+ dark mode (e.g. a white ring around grouped avatars).
107
+
108
+ Muka's own Storybook switches between all ten themes this way — see
77
109
  `.storybook/ThemeDecorator.ts` in the repo.
78
110
 
79
111
  ### `data-layout`: the one attribute that does do something
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revikornmann/muka-ui",
3
- "version": "0.27.1",
3
+ "version": "0.27.3",
4
4
  "description": "Muka Design System - Multi-brand design tokens and React components",
5
5
  "main": "dist/cjs/components/index.js",
6
6
  "module": "dist/esm/components/index.js",
@@ -82,9 +82,42 @@ const link = document.getElementById('muka-theme') as HTMLLinkElement;
82
82
  link.href = `/styles/tokens-${brand}-${mode}.css`;
83
83
  ```
84
84
 
85
- Copy the brand's token CSS into the app's static/public directory (or let the
86
- bundler emit it with a stable URL) so those hrefs resolve. This is exactly what
87
- Muka's own Storybook does.
85
+ Those hrefs need the brand's token CSS at a stable URL. Add a script that copies
86
+ it from the installed package into the app's static/public directory, run it
87
+ before `dev` and `build`, and gitignore the copies (or let the bundler emit the
88
+ CSS). Use the brand the app actually loads in place of `muka`:
89
+
90
+ ```js
91
+ // scripts/sync-theme-tokens.mjs
92
+ import { copyFileSync, mkdirSync } from 'node:fs';
93
+ import { createRequire } from 'node:module';
94
+
95
+ const require = createRequire(import.meta.url);
96
+ mkdirSync('public/styles', { recursive: true });
97
+ for (const mode of ['light', 'dark']) {
98
+ const file = `tokens-muka-${mode}.css`;
99
+ copyFileSync(require.resolve(`@revikornmann/muka-ui/styles/${file}`), `public/styles/${file}`);
100
+ }
101
+ ```
102
+
103
+ ```json
104
+ "scripts": {
105
+ "sync:themes": "node scripts/sync-theme-tokens.mjs",
106
+ "dev": "npm run sync:themes && next dev",
107
+ "build": "npm run sync:themes && next build"
108
+ }
109
+ ```
110
+
111
+ Gitignore the copies (`public/styles/tokens-*.css`). Chain the script into
112
+ `dev` and `build` rather than using `predev` / `prebuild`: pnpm 9 skips `pre*`
113
+ scripts by default.
114
+
115
+ **Never commit a hand-made copy.** It is frozen at the version you copied, and
116
+ each Muka release adds tokens it lacks. A token missing from the dark copy keeps
117
+ the value from the light stylesheet, so new components show light colours in
118
+ dark mode (e.g. a white ring around grouped avatars).
119
+
120
+ This is exactly how Muka's own Storybook switches themes.
88
121
 
89
122
  ### Fonts come from Muka — do not load them yourself
90
123
 
@@ -38,6 +38,38 @@
38
38
  "$value": "{size.10xl}"
39
39
  }
40
40
  },
41
+ "icon": {
42
+ "size": {
43
+ "3xs": {
44
+ "$type": "sizing",
45
+ "$value": "{size.md}"
46
+ },
47
+ "2xs": {
48
+ "$type": "sizing",
49
+ "$value": "{size.lg}"
50
+ },
51
+ "xs": {
52
+ "$type": "sizing",
53
+ "$value": "{size.xl}"
54
+ },
55
+ "sm": {
56
+ "$type": "sizing",
57
+ "$value": "{size.2xl}"
58
+ },
59
+ "md": {
60
+ "$type": "sizing",
61
+ "$value": "{size.3xl}"
62
+ },
63
+ "lg": {
64
+ "$type": "sizing",
65
+ "$value": "{size.4xl}"
66
+ },
67
+ "xl": {
68
+ "$type": "sizing",
69
+ "$value": "{size.6xl}"
70
+ }
71
+ }
72
+ },
41
73
  "color": {
42
74
  "background": {
43
75
  "default": {
@@ -52,7 +84,7 @@
52
84
  "foreground": {
53
85
  "default": {
54
86
  "$type": "color",
55
- "$value": "{color.text.default.default}"
87
+ "$value": "{color.text.subtle.default}"
56
88
  },
57
89
  "muted": {
58
90
  "$type": "color",
@@ -165,13 +197,13 @@
165
197
  },
166
198
  "overlap": {
167
199
  "tight": {
168
- "sm": {
200
+ "xs": {
169
201
  "$type": "dimension",
170
- "$value": "{spacing.8}"
202
+ "$value": "{spacing.7}"
171
203
  },
172
204
  "2xs": {
173
205
  "$type": "dimension",
174
- "$value": "{spacing.5}"
206
+ "$value": "{spacing.6}"
175
207
  },
176
208
  "3xs": {
177
209
  "$type": "dimension",
@@ -179,21 +211,21 @@
179
211
  }
180
212
  },
181
213
  "compact": {
182
- "sm": {
214
+ "xs": {
183
215
  "$type": "dimension",
184
216
  "$value": "{spacing.6}"
185
217
  },
186
218
  "2xs": {
187
219
  "$type": "dimension",
188
- "$value": "{spacing.4}"
220
+ "$value": "1.125rem"
189
221
  },
190
222
  "3xs": {
191
223
  "$type": "dimension",
192
- "$value": "{spacing.3}"
224
+ "$value": "0.875rem"
193
225
  }
194
226
  },
195
227
  "spacious": {
196
- "sm": {
228
+ "xs": {
197
229
  "$type": "dimension",
198
230
  "$value": "{spacing.4}"
199
231
  },
@@ -206,6 +238,12 @@
206
238
  "$value": "{spacing.2}"
207
239
  }
208
240
  }
241
+ },
242
+ "badge": {
243
+ "offset": {
244
+ "$type": "dimension",
245
+ "$value": "{spacing.1}"
246
+ }
209
247
  }
210
248
  }
211
249
  }