ui-foundations 0.3.2 → 0.6.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 (87) hide show
  1. package/README.md +181 -37
  2. package/dist/assets/icons/checkmark.svg +1 -0
  3. package/dist/core/index.css +8 -7
  4. package/dist/macros/ui.njk +203 -0
  5. package/dist/main.css +941 -210
  6. package/dist/react/accordion.js +36 -0
  7. package/dist/react/avatar.js +34 -0
  8. package/dist/react/badge.js +41 -0
  9. package/dist/react/button.js +4 -6
  10. package/dist/react/checkbox.js +21 -8
  11. package/dist/react/divider.js +31 -0
  12. package/dist/react/icon.js +8 -1
  13. package/dist/react/index.js +8 -0
  14. package/dist/react/label.js +1 -1
  15. package/dist/react/radio.js +45 -0
  16. package/dist/react/switch.js +9 -8
  17. package/dist/react/tabs.js +72 -0
  18. package/dist/react/textarea.js +38 -0
  19. package/dist/react/tooltip.js +25 -0
  20. package/dist/react/warn-dev.js +15 -0
  21. package/dist/tokens/css/{appearance-(modes).tokens.mode-dark.css → appearance-modes.tokens.mode-dark.css} +6 -6
  22. package/dist/tokens/css/{appearance-(modes).tokens.mode-light.css → appearance-modes.tokens.mode-light.css} +1 -1
  23. package/dist/tokens/css/{components-(ui).tokens.css → components-ui.tokens.css} +73 -32
  24. package/dist/tokens/css/core-primitives.tokens.css +240 -0
  25. package/dist/tokens/css/{semantics-(roles).tokens.css → semantics-roles.tokens.css} +1 -1
  26. package/dist/tokens/css/themes-brands.tokens.brand-a.css +22 -0
  27. package/dist/tokens/css/{themes-(brands).tokens.brand-b.css → themes-brands.tokens.brand-b.css} +9 -9
  28. package/dist/tokens/css/themes-brands.tokens.brand-c.css +22 -0
  29. package/dist/tokens/json/appearance-modes.tokens.mode-dark.json +121 -0
  30. package/dist/tokens/json/appearance-modes.tokens.mode-light.json +121 -0
  31. package/dist/tokens/json/components-ui.tokens.json +713 -0
  32. package/dist/tokens/json/{core-(primitives).tokens.json → core-primitives.tokens.json} +526 -410
  33. package/dist/tokens/json/semantics-roles.tokens.json +141 -0
  34. package/dist/tokens/json/themes-brands.tokens.brand-a.json +81 -0
  35. package/dist/tokens/json/themes-brands.tokens.brand-b.json +81 -0
  36. package/dist/tokens/json/themes-brands.tokens.brand-c.json +81 -0
  37. package/dist/tokens/tokens.yaml +2722 -499
  38. package/dist/tokens/ts/{appearance-(modes).tokens.mode-dark.ts → appearance-modes.tokens.mode-dark.ts} +6 -6
  39. package/dist/tokens/ts/{appearance-(modes).tokens.mode-light.ts → appearance-modes.tokens.mode-light.ts} +1 -1
  40. package/dist/tokens/ts/{components-(ui).tokens.ts → components-ui.tokens.ts} +74 -33
  41. package/dist/tokens/ts/core-primitives.tokens.ts +265 -0
  42. package/dist/tokens/ts/{semantics-(roles).tokens.ts → semantics-roles.tokens.ts} +1 -1
  43. package/dist/tokens/ts/themes-brands.tokens.brand-a.ts +32 -0
  44. package/dist/tokens/ts/{themes-(brands).tokens.brand-b.ts → themes-brands.tokens.brand-b.ts} +9 -9
  45. package/dist/tokens/ts/{themes-(brands).tokens.brand-a.ts → themes-brands.tokens.brand-c.ts} +9 -9
  46. package/dist/ui/index.css +8 -0
  47. package/dist/ui/patterns/accordion.css +81 -0
  48. package/dist/ui/patterns/avatar.css +57 -0
  49. package/dist/ui/patterns/badge.css +49 -0
  50. package/dist/ui/patterns/checkbox.css +71 -22
  51. package/dist/ui/patterns/divider.css +25 -0
  52. package/dist/ui/patterns/radio.css +109 -0
  53. package/dist/ui/patterns/tabs.css +71 -0
  54. package/dist/ui/patterns/textarea.css +50 -0
  55. package/dist/ui/patterns/tooltip.css +64 -0
  56. package/docs/README.md +38 -0
  57. package/docs/agentic/README.md +35 -0
  58. package/docs/agentic/assistant-behavior-rules.md +48 -0
  59. package/docs/agentic/skills/component-accessibility-audit.md +132 -0
  60. package/docs/agentic/skills/ux-writing-coach.md +116 -0
  61. package/docs/foundations/README.md +31 -0
  62. package/docs/foundations/foundation-001-token-layering.md +6 -0
  63. package/docs/foundations/foundation-002-naming-and-grouping.md +6 -0
  64. package/docs/foundations/foundation-003-color-semantics-and-status.md +6 -0
  65. package/docs/foundations/foundation-004-typography-scale-and-line-height.md +6 -0
  66. package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +6 -0
  67. package/docs/foundations/foundation-006-z-index-layering.md +6 -0
  68. package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +7 -1
  69. package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +6 -0
  70. package/docs/foundations/foundation-009-component-boundaries-and-utility.md +6 -0
  71. package/docs/foundations/foundation-010-implementation-and-pipeline-workflow.md +6 -0
  72. package/docs/foundations/foundation-011-branching-and-release-governance.md +6 -0
  73. package/docs/foundations/foundation-012-minimal-markup-and-composition.md +6 -0
  74. package/package.json +16 -11
  75. package/dist/tokens/css/core-(primitives).tokens.css +0 -127
  76. package/dist/tokens/css/themes-(brands).tokens.brand-a.css +0 -22
  77. package/dist/tokens/json/appearance-(modes).tokens.mode-dark.json +0 -182
  78. package/dist/tokens/json/appearance-(modes).tokens.mode-light.json +0 -182
  79. package/dist/tokens/json/components-(ui).tokens.json +0 -739
  80. package/dist/tokens/json/semantics-(roles).tokens.json +0 -203
  81. package/dist/tokens/json/themes-(brands).tokens.brand-a.json +0 -115
  82. package/dist/tokens/json/themes-(brands).tokens.brand-b.json +0 -115
  83. package/dist/tokens/ts/core-(primitives).tokens.ts +0 -152
  84. package/docs/agentic/skills/README.md +0 -51
  85. package/docs/agentic/skills/design-ops-specialist/SKILL.md +0 -60
  86. package/docs/agentic/skills/design-system-architect/SKILL.md +0 -106
  87. package/docs/agentic/team-ai-playbook.md +0 -226
@@ -1,5 +1,5 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.721Z
2
+ // Generated on 2026-05-22T09:23:10.604Z
3
3
 
4
4
  export const tokens = {
5
5
  "colors": {
@@ -13,7 +13,7 @@ export const tokens = {
13
13
  "--color-text-success": "var(--brand-color-functional-success)",
14
14
  "--color-fill-surface": "var(--color-neutral-1000)",
15
15
  "--color-fill-disabled": "var(--color-neutral-300)",
16
- "--color-fill-hover": "var(--color-neutral-alpha-500)",
16
+ "--color-fill-hover": "var(--color-neutral-alpha-inverse-100)",
17
17
  "--color-fill-brand": "var(--brand-color-primary)",
18
18
  "--color-fill-subtle": "var(--brand-color-subtle)",
19
19
  "--color-fill-active": "var(--brand-color-accent)",
@@ -25,10 +25,10 @@ export const tokens = {
25
25
  "--color-border-brand": "var(--brand-color-primary)",
26
26
  "--color-border-disabled": "var(--color-neutral-500)",
27
27
  "--color-border-danger": "var(--brand-color-functional-danger)",
28
- "--color-overlay-backdrop": "var(--color-neutral-alpha-400)",
29
- "--color-overlay-hover": "var(--color-neutral-alpha-200)",
30
- "--color-overlay-active": "var(--color-neutral-alpha-400)",
31
- "--color-overlay-selected": "var(--color-neutral-alpha-600)",
28
+ "--color-overlay-backdrop": "var(--color-neutral-alpha-inverse-400)",
29
+ "--color-overlay-hover": "var(--color-neutral-alpha-inverse-100)",
30
+ "--color-overlay-active": "var(--color-neutral-alpha-inverse-200)",
31
+ "--color-overlay-selected": "var(--color-neutral-alpha-inverse-300)",
32
32
  "--color-focus": "var(--brand-color-primary-dark)"
33
33
  }
34
34
  } as const;
@@ -1,5 +1,5 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.719Z
2
+ // Generated on 2026-05-22T09:23:10.601Z
3
3
 
4
4
  export const tokens = {
5
5
  "colors": {
@@ -1,5 +1,5 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.724Z
2
+ // Generated on 2026-05-22T09:23:10.611Z
3
3
 
4
4
  export const tokens = {
5
5
  "components": {
@@ -62,49 +62,36 @@ export const tokens = {
62
62
  "--input-text-text-color-default": "var(--color-text-default)",
63
63
  "--input-text-text-color-hover": "var(--color-text-default)",
64
64
  "--input-text-text-color-active": "var(--color-text-default)",
65
- "--input-text-border-color-default": "var(--color-border-default)",
66
- "--input-text-border-color-hover": "var(--color-border-brand)",
67
- "--input-text-border-color-active": "var(--color-border-brand)",
68
- "--input-text-border-color-focus": "var(--color-border-brand)",
69
- "--input-text-border-color-invalid": "var(--color-border-danger)",
70
- "--input-text-border-color-valid": "var(--color-border-strong)",
71
- "--input-text-container-background-default": "var(--color-fill-surface)",
72
- "--input-text-container-background-hover": "var(--color-fill-surface)",
73
- "--input-text-container-background-focus": "var(--color-fill-surface)",
74
- "--input-text-container-background-active": "var(--color-fill-surface)",
65
+ "--input-text-text-color-disabled": "var(--color-text-disabled)",
75
66
  "--input-text-text-color-placeholder": "var(--color-text-subtle)",
76
- "--input-text-height-min": "2.5rem",
67
+ "--input-border-border-color-default": "var(--color-border-default)",
68
+ "--input-border-border-color-hover": "var(--color-border-brand)",
69
+ "--input-border-border-color-active": "var(--color-border-brand)",
70
+ "--input-border-border-color-focus": "var(--color-border-brand)",
71
+ "--input-border-border-size-default": "var(--size-border-100)",
72
+ "--input-border-border-size-hover": "var(--size-border-100)",
73
+ "--input-border-border-size-active": "var(--size-border-200)",
74
+ "--input-border-border-radius": "var(--brand-corner-input)",
75
+ "--input-border-border-color-disabled": "var(--color-border-disabled)",
76
+ "--input-border-border-color-invalid": "var(--color-border-danger)",
77
+ "--input-border-border-color-valid": "var(--color-border-strong)",
77
78
  "--input-font-family": "var(--brand-font-base)",
78
79
  "--input-font-weight": "var(--typography-body-font-weight)",
79
80
  "--input-font-size": "var(--typography-label-font-size)",
80
81
  "--input-line-height": "var(--typography-body-line-height)",
81
- "--input-border-size-default": "var(--size-border-100)",
82
- "--input-border-size-hover": "var(--size-border-100)",
83
- "--input-border-size-active": "var(--size-border-200)",
84
- "--input-border-radius": "var(--brand-corner-input)",
82
+ "--input-container-background-default": "var(--color-fill-surface)",
83
+ "--input-container-background-hover": "var(--color-fill-surface)",
84
+ "--input-container-background-focus": "var(--color-fill-surface)",
85
+ "--input-container-background-active": "var(--color-fill-surface)",
86
+ "--input-container-background-disabled": "var(--color-fill-disabled)",
85
87
  "--input-padding-inline": "var(--size-spacing-200)",
86
88
  "--input-padding-inline-icon-only": "var(--size-spacing-200)",
87
89
  "--input-padding-block": "var(--size-spacing-200)",
88
90
  "--input-gap": "var(--size-spacing-200)",
89
- "--input-text-color-disabled": "var(--color-text-disabled)",
90
- "--input-border-color-disabled": "var(--color-border-disabled)",
91
- "--input-container-background-disabled": "var(--color-fill-disabled)",
92
91
  "--input-overlay-hover": "var(--color-transparent)",
93
92
  "--input-overlay-active": "var(--color-transparent)",
94
93
  "--input-height": "2.5rem",
95
- "--input-checkbox-text-color-default": "var(--color-text-default)",
96
- "--input-checkbox-text-color-hover": "var(--color-text-default)",
97
- "--input-checkbox-text-color-active": "var(--color-text-inverse)",
98
- "--input-checkbox-border-color-default": "var(--color-border-subtle)",
99
- "--input-checkbox-border-color-hover": "var(--color-border-brand)",
100
- "--input-checkbox-border-color-active": "var(--color-border-brand)",
101
- "--input-checkbox-border-color-focus": "var(--color-border-brand)",
102
- "--input-checkbox-border-color-invalid": "var(--color-border-danger)",
103
- "--input-checkbox-border-color-valid": "var(--color-border-strong)",
104
- "--input-checkbox-container-background-default": "var(--color-fill-surface)",
105
- "--input-checkbox-container-background-hover": "var(--color-fill-surface)",
106
- "--input-checkbox-container-background-focus": "var(--color-fill-surface)",
107
- "--input-checkbox-container-background-active": "var(--color-fill-brand)",
94
+ "--input-height-min": "2.5rem",
108
95
  "--form-group-gap": "var(--size-spacing-400)",
109
96
  "--form-group-title-color": "var(--color-text-default)",
110
97
  "--form-padding-inline": "var(--size-spacing-400)",
@@ -116,7 +103,61 @@ export const tokens = {
116
103
  "--form-field-helper-text-color-invalid": "var(--color-text-danger)",
117
104
  "--form-container-background": "var(--color-fill-surface)",
118
105
  "--form-container-border-color": "var(--color-border-subtle)",
119
- "--form-border-size": "var(--size-border-100)"
106
+ "--form-border-size": "var(--size-border-100)",
107
+ "--checkbox-text-color-default": "var(--color-text-default)",
108
+ "--checkbox-text-color-hover": "var(--color-text-strong)",
109
+ "--checkbox-text-color-active": "var(--color-text-inverse)",
110
+ "--checkbox-border-color-default": "var(--color-border-subtle)",
111
+ "--checkbox-border-color-hover": "var(--color-border-strong)",
112
+ "--checkbox-border-color-active": "var(--color-border-brand)",
113
+ "--checkbox-border-color-focus": "var(--color-border-brand)",
114
+ "--checkbox-border-color-invalid": "var(--color-border-danger)",
115
+ "--checkbox-border-color-valid": "var(--color-border-strong)",
116
+ "--checkbox-border-color-disabled": "var(--color-border-disabled)",
117
+ "--checkbox-border-size-hover": "var(--size-border-200)",
118
+ "--checkbox-border-size-disabled": "var(--size-border-000)",
119
+ "--checkbox-border-size-default": "var(--size-border-100)",
120
+ "--checkbox-container-background-default": "var(--color-fill-surface)",
121
+ "--checkbox-container-background-hover": "var(--color-fill-surface)",
122
+ "--checkbox-container-background-focus": "var(--color-fill-surface)",
123
+ "--checkbox-container-background-active": "var(--color-fill-brand)",
124
+ "--checkbox-container-background-disabled": "var(--color-fill-disabled)",
125
+ "--checkbox-text-color-disabled": "var(--color-text-disabled)",
126
+ "--input-radio-text-color-default": "var(--color-text-default)",
127
+ "--input-radio-text-color-disabled": "var(--color-text-disabled)",
128
+ "--input-radio-border-color-default": "var(--color-border-subtle)",
129
+ "--input-radio-border-color-hover": "var(--color-border-strong)",
130
+ "--input-radio-border-color-active": "var(--color-border-brand)",
131
+ "--input-radio-border-color-disabled": "var(--color-border-disabled)",
132
+ "--input-radio-container-background-default": "var(--color-fill-surface)",
133
+ "--input-radio-container-background-disabled": "var(--color-fill-disabled)",
134
+ "--radio-border-size-default": "var(--size-border-100)",
135
+ "--radio-border-size-hover": "var(--size-border-200)",
136
+ "--radio-border-size-disabled": "var(--size-border-000)",
137
+ "--badge-default-text-color": "var(--color-text-default)",
138
+ "--badge-default-border-color": "var(--color-transparent)",
139
+ "--badge-default-container-background": "var(--color-fill-subtle)",
140
+ "--badge-brand-text-color": "var(--color-text-inverse)",
141
+ "--badge-brand-border-color": "var(--color-transparent)",
142
+ "--badge-brand-container-background": "var(--color-fill-brand)",
143
+ "--badge-success-text-color": "var(--color-text-inverse)",
144
+ "--badge-success-border-color": "var(--color-transparent)",
145
+ "--badge-success-container-background": "var(--color-fill-success)",
146
+ "--badge-font-family": "var(--brand-font-lead)",
147
+ "--badge-font-weight": "var(--typography-label-font-weight)",
148
+ "--badge-font-size": "var(--typography-label-font-size)",
149
+ "--badge-line-height": "var(--typography-label-line-height)",
150
+ "--badge-border-size-default": "var(--size-border-100)",
151
+ "--badge-border-radius": "var(--brand-corner-input)",
152
+ "--badge-padding-inline": "var(--size-spacing-400)",
153
+ "--badge-padding-inline-icon-only": "var(--size-spacing-200)",
154
+ "--badge-padding-block": "var(--size-spacing-200)",
155
+ "--badge-gap": "var(--size-spacing-200)",
156
+ "--badge-height-min": "2.5rem",
157
+ "--badge-width-min": "2.5rem",
158
+ "--badge-danger-container-background": "var(--color-fill-danger)",
159
+ "--badge-danger-border-color": "var(--color-transparent)",
160
+ "--badge-danger-text-color": "var(--color-text-inverse)"
120
161
  }
121
162
  } as const;
122
163
 
@@ -0,0 +1,265 @@
1
+ // Auto-generated design tokens from Figma
2
+ // Generated on 2026-05-22T09:23:10.621Z
3
+
4
+ export const tokens = {
5
+ "colors": {
6
+ "--color-neutral-100": "rgb(230 230 230)",
7
+ "--color-neutral-200": "rgb(204 204 204)",
8
+ "--color-neutral-300": "rgb(179 179 179)",
9
+ "--color-neutral-400": "rgb(128 128 128)",
10
+ "--color-neutral-500": "rgb(128 128 128)",
11
+ "--color-neutral-600": "rgb(102 102 102)",
12
+ "--color-neutral-700": "rgb(77 77 77)",
13
+ "--color-neutral-800": "rgb(51 51 51)",
14
+ "--color-neutral-900": "rgb(26 26 26)",
15
+ "--color-neutral-1000": "rgb(0 0 0)",
16
+ "--color-neutral-alpha-100": "rgba(0 0 0 / 0.1)",
17
+ "--color-neutral-alpha-200": "rgba(0 0 0 / 0.2)",
18
+ "--color-neutral-alpha-300": "rgba(0 0 0 / 0.3)",
19
+ "--color-neutral-alpha-400": "rgba(0 0 0 / 0.4)",
20
+ "--color-neutral-alpha-500": "rgba(0 0 0 / 0.5)",
21
+ "--color-neutral-alpha-600": "rgba(0 0 0 / 0.6)",
22
+ "--color-neutral-alpha-700": "rgba(0 0 0 / 0.7)",
23
+ "--color-neutral-alpha-800": "rgba(0 0 0 / 0.8)",
24
+ "--color-neutral-alpha-900": "rgba(0 0 0 / 0.9)",
25
+ "--color-neutral-alpha-000": "rgba(0 0 0 / 0)",
26
+ "--color-neutral-alpha-inverse-100": "rgba(255 255 255 / 0.1)",
27
+ "--color-neutral-alpha-inverse-200": "rgba(255 255 255 / 0.2)",
28
+ "--color-neutral-alpha-inverse-300": "rgba(255 255 255 / 0.3)",
29
+ "--color-neutral-alpha-inverse-400": "rgba(255 255 255 / 0.4)",
30
+ "--color-neutral-alpha-inverse-500": "rgba(255 255 255 / 0.5)",
31
+ "--color-neutral-alpha-inverse-600": "rgba(255 255 255 / 0.6)",
32
+ "--color-neutral-alpha-inverse-700": "rgba(255 255 255 / 0.7)",
33
+ "--color-neutral-alpha-inverse-800": "rgba(255 255 255 / 0.8)",
34
+ "--color-neutral-alpha-inverse-900": "rgba(255 255 255 / 0.9)",
35
+ "--color-neutral-alpha-inverse-000": "rgba(255 255 255 / 0)",
36
+ "--color-neutral-000": "rgb(255 255 255)",
37
+ "--color-brand-b-purple-200": "rgb(222 192 255)",
38
+ "--color-brand-b-purple-300": "rgb(196 143 255)",
39
+ "--color-brand-b-purple-600": "rgb(151 71 255)",
40
+ "--color-brand-b-purple-700": "rgb(122 20 255)",
41
+ "--color-brand-b-purple-800": "rgb(85 26 139)",
42
+ "--color-brand-b-purple-900": "rgb(58 18 95)",
43
+ "--color-brand-b-blue-100": "rgb(206 219 253)",
44
+ "--color-brand-b-blue-200": "rgb(158 183 250)",
45
+ "--color-brand-b-blue-300": "rgb(109 147 248)",
46
+ "--color-brand-b-blue-400": "rgb(61 111 245)",
47
+ "--color-brand-b-blue-500": "rgb(12 75 243)",
48
+ "--color-brand-b-blue-600": "rgb(10 60 194)",
49
+ "--color-brand-b-blue-700": "rgb(7 45 146)",
50
+ "--color-brand-b-blue-800": "rgb(5 30 97)",
51
+ "--color-brand-b-blue-900": "rgb(2 15 49)",
52
+ "--color-brand-b-red-100": "rgb(255 255 255)",
53
+ "--color-brand-b-red-200": "rgb(255 204 204)",
54
+ "--color-brand-b-red-300": "rgb(255 153 153)",
55
+ "--color-brand-b-red-400": "rgb(255 102 102)",
56
+ "--color-brand-b-red-500": "rgb(255 51 51)",
57
+ "--color-brand-b-red-600": "rgb(255 0 0)",
58
+ "--color-brand-b-red-700": "rgb(153 0 0)",
59
+ "--color-brand-b-red-800": "rgb(102 0 0)",
60
+ "--color-brand-b-red-900": "rgb(51 0 0)",
61
+ "--color-brand-b-green-100": "rgb(246 254 250)",
62
+ "--color-brand-b-green-200": "rgb(200 249 223)",
63
+ "--color-brand-b-green-300": "rgb(154 244 196)",
64
+ "--color-brand-b-green-400": "rgb(108 239 170)",
65
+ "--color-brand-b-green-500": "rgb(62 234 143)",
66
+ "--color-brand-b-green-600": "rgb(19 174 92)",
67
+ "--color-brand-b-green-700": "rgb(14 129 68)",
68
+ "--color-brand-b-green-800": "rgb(8 69 36)",
69
+ "--color-brand-b-green-900": "rgb(4 37 19)",
70
+ "--color-transparent": "rgba(0 0 0 / 0)",
71
+ "--color-brand-a-green-100": "rgb(243 246 233)",
72
+ "--color-brand-a-green-200": "rgb(223 231 197)",
73
+ "--color-brand-a-green-300": "rgb(207 219 169)",
74
+ "--color-brand-a-green-400": "rgb(191 207 140)",
75
+ "--color-brand-a-green-500": "rgb(175 195 111)",
76
+ "--color-brand-a-green-600": "rgb(159 183 82)",
77
+ "--color-brand-a-green-700": "rgb(137 158 66)",
78
+ "--color-brand-a-green-800": "rgb(112 129 54)",
79
+ "--color-brand-a-green-900": "rgb(81 93 39)",
80
+ "--color-brand-a-red-100": "rgb(254 251 251)",
81
+ "--color-brand-a-red-200": "rgb(250 224 230)",
82
+ "--color-brand-a-red-300": "rgb(244 179 195)",
83
+ "--color-brand-a-red-400": "rgb(238 135 160)",
84
+ "--color-brand-a-red-500": "rgb(231 90 124)",
85
+ "--color-brand-a-red-600": "rgb(225 46 89)",
86
+ "--color-brand-a-red-700": "rgb(191 28 67)",
87
+ "--color-brand-a-red-800": "rgb(147 21 52)",
88
+ "--color-brand-a-red-900": "rgb(102 15 36)",
89
+ "--color-brand-a-sand-100": "rgb(240 240 229)",
90
+ "--color-brand-a-sand-200": "rgb(221 222 197)",
91
+ "--color-brand-a-sand-300": "rgb(192 193 172)",
92
+ "--color-brand-a-sand-400": "rgb(164 165 147)",
93
+ "--color-brand-a-sand-500": "rgb(136 137 122)",
94
+ "--color-brand-a-sand-600": "rgb(108 109 97)",
95
+ "--color-brand-a-sand-700": "rgb(80 81 72)",
96
+ "--color-brand-a-sand-800": "rgb(52 52 47)",
97
+ "--color-brand-a-sand-900": "rgb(24 24 22)",
98
+ "--color-brand-c-blue-10": "rgb(27 17 92)",
99
+ "--color-brand-c-blue-20": "rgb(7 45 146)",
100
+ "--color-brand-c-blue-30": "rgb(10 60 194)",
101
+ "--color-brand-c-blue-40": "rgb(12 75 243)",
102
+ "--color-brand-c-blue-50": "rgb(53 103 246)",
103
+ "--color-brand-c-blue-60": "rgb(109 147 248)",
104
+ "--color-brand-c-blue-70": "rgb(148 176 250)",
105
+ "--color-brand-c-blue-80": "rgb(182 200 252)",
106
+ "--color-brand-c-blue-90": "rgb(216 226 253)",
107
+ "--color-brand-c-blue-100": "rgb(27 17 92)",
108
+ "--color-brand-c-coolblue-10": "rgb(5 68 97)",
109
+ "--color-brand-c-coolblue-20": "rgb(7 102 146)",
110
+ "--color-brand-c-coolblue-30": "rgb(10 136 194)",
111
+ "--color-brand-c-coolblue-40": "rgb(12 170 243)",
112
+ "--color-brand-c-coolblue-50": "rgb(56 185 245)",
113
+ "--color-brand-c-coolblue-60": "rgb(112 203 244)",
114
+ "--color-brand-c-coolblue-70": "rgb(169 223 248)",
115
+ "--color-brand-c-coolblue-80": "rgb(198 234 251)",
116
+ "--color-brand-c-coolblue-90": "rgb(226 244 253)",
117
+ "--color-brand-c-coolblue-100": "rgb(11 68 97)",
118
+ "--color-brand-c-green-10": "rgb(5 66 61)",
119
+ "--color-brand-c-green-20": "rgb(36 111 73)",
120
+ "--color-brand-c-green-30": "rgb(43 161 104)",
121
+ "--color-brand-c-green-40": "rgb(48 182 117)",
122
+ "--color-brand-c-green-50": "rgb(97 196 141)",
123
+ "--color-brand-c-green-60": "rgb(135 210 166)",
124
+ "--color-brand-c-green-70": "rgb(169 224 191)",
125
+ "--color-brand-c-green-80": "rgb(197 228 205)",
126
+ "--color-brand-c-green-90": "rgb(223 246 235)",
127
+ "--color-brand-c-green-100": "rgb(239 251 245)",
128
+ "--color-brand-c-red-10": "rgb(96 6 9)",
129
+ "--color-brand-c-red-20": "rgb(144 9 14)",
130
+ "--color-brand-c-red-30": "rgb(192 12 18)",
131
+ "--color-brand-c-red-40": "rgb(240 15 23)",
132
+ "--color-brand-c-red-50": "rgb(242 58 65)",
133
+ "--color-brand-c-red-60": "rgb(246 111 116)",
134
+ "--color-brand-c-red-70": "rgb(248 150 153)",
135
+ "--color-brand-c-red-80": "rgb(250 183 185)",
136
+ "--color-brand-c-red-90": "rgb(253 226 227)",
137
+ "--color-brand-c-red-100": "rgb(254 236 236)",
138
+ "--color-brand-c-orange-10": "rgb(102 61 0)",
139
+ "--color-brand-c-orange-20": "rgb(153 92 0)",
140
+ "--color-brand-c-orange-30": "rgb(204 122 0)",
141
+ "--color-brand-c-orange-40": "rgb(255 153 0)",
142
+ "--color-brand-c-orange-50": "rgb(255 171 46)",
143
+ "--color-brand-c-orange-60": "rgb(255 194 102)",
144
+ "--color-brand-c-orange-70": "rgb(255 210 143)",
145
+ "--color-brand-c-orange-80": "rgb(255 224 178)",
146
+ "--color-brand-c-orange-90": "rgb(255 239 214)",
147
+ "--color-brand-c-orange-100": "rgb(255 247 235)",
148
+ "--color-brand-c-purple-10": "rgb(57 17 92)",
149
+ "--color-brand-c-purple-20": "rgb(81 7 146)",
150
+ "--color-brand-c-purple-30": "rgb(108 10 194)",
151
+ "--color-brand-c-purple-40": "rgb(135 12 243)",
152
+ "--color-brand-c-purple-50": "rgb(156 53 246)",
153
+ "--color-brand-c-purple-60": "rgb(183 109 248)",
154
+ "--color-brand-c-purple-70": "rgb(202 148 250)",
155
+ "--color-brand-c-purple-80": "rgb(219 182 252)",
156
+ "--color-brand-c-purple-90": "rgb(236 216 253)",
157
+ "--color-brand-c-purple-100": "rgb(245 236 254)",
158
+ "--color-brand-c-midnight-10": "rgb(11 9 45)"
159
+ },
160
+ "typography": {
161
+ "--font-size-md": "1rem",
162
+ "--font-size-xs": ".75rem",
163
+ "--font-size-sm": ".875rem",
164
+ "--font-size-lg": "1.25rem",
165
+ "--font-size-xl": "1.5rem",
166
+ "--font-size-xxl": "2rem",
167
+ "--font-size-xxxl": "2.5rem",
168
+ "--font-weight-100": 100,
169
+ "--font-weight-200": 200,
170
+ "--font-weight-300": 300,
171
+ "--font-weight-400": 400,
172
+ "--font-weight-500": 500,
173
+ "--font-weight-600": 600,
174
+ "--font-weight-700": 700,
175
+ "--font-weight-800": 800,
176
+ "--font-weight-900": 900,
177
+ "--font-family-sans": "Inter",
178
+ "--font-family-serif": "Rokkitt",
179
+ "--font-family-mono": "SFMono-Regular",
180
+ "--line-height-xs": "1rem",
181
+ "--line-height-sm": "1.25rem",
182
+ "--line-height-md": "1.5rem",
183
+ "--line-height-lg": "1.75rem",
184
+ "--line-height-xl": "2rem",
185
+ "--line-height-xxl": "2.75rem",
186
+ "--line-height-xxxl": "3.5rem"
187
+ },
188
+ "spacing": {
189
+ "--size-spacing-100": ".25rem",
190
+ "--size-spacing-200": ".5rem",
191
+ "--size-spacing-300": ".75rem",
192
+ "--size-spacing-400": "1rem",
193
+ "--size-spacing-500": "1.25rem",
194
+ "--size-spacing-600": "1.5rem",
195
+ "--size-spacing-700": "2rem",
196
+ "--size-spacing-800": "2.5rem",
197
+ "--size-spacing-900": "3rem",
198
+ "--size-spacing-1000": "4rem",
199
+ "--size-spacing-000": "0"
200
+ },
201
+ "radii": {
202
+ "--size-radius-100": ".125rem",
203
+ "--size-radius-200": ".25rem",
204
+ "--size-radius-300": ".375rem",
205
+ "--size-radius-400": ".5rem",
206
+ "--size-radius-500": ".75rem",
207
+ "--size-radius-600": "1rem",
208
+ "--size-radius-700": "1.25rem",
209
+ "--size-radius-800": "1.5rem",
210
+ "--size-radius-900": "2rem",
211
+ "--size-radius-000": "0",
212
+ "--size-radius-full": "625rem"
213
+ },
214
+ "shadows": {
215
+ "--shadow-focus": ".5rem"
216
+ },
217
+ "components": {
218
+ "--size-border-100": ".0625rem",
219
+ "--size-border-200": ".125rem",
220
+ "--size-border-300": ".1875rem",
221
+ "--size-border-000": "0",
222
+ "--layout-columns": 12,
223
+ "--layout-gutter": "1rem",
224
+ "--layout-max-width": "1236px",
225
+ "--layout-column-max-width": "412px",
226
+ "--layout-float-breakpoint": "1220px",
227
+ "--layout-base-grid": ".25rem",
228
+ "--zindex-fixed": 1030,
229
+ "--zindex-sticky": 1020,
230
+ "--zindex-dropdown": 1000,
231
+ "--zindex-dropdown-base": 900,
232
+ "--zindex-modal": 1050,
233
+ "--zindex-base": 0,
234
+ "--zindex-tooltip": 1070,
235
+ "--zindex-raised": 1,
236
+ "--zindex-popover": 1060,
237
+ "--zindex-modal-overlay": 1040,
238
+ "--zindex-hidden": -1
239
+ },
240
+ "breakpoints": {
241
+ "--breakpoint-100": "580px",
242
+ "--breakpoint-200": "760px",
243
+ "--breakpoint-300": "960px",
244
+ "--breakpoint-400": "1200px",
245
+ "--breakpoint-500": "1440px",
246
+ "--breakpoint-600": "1920px"
247
+ },
248
+ "containers": {
249
+ "--container-100": "192px",
250
+ "--container-200": "384px",
251
+ "--container-300": "576px",
252
+ "--container-400": "768px",
253
+ "--container-500": "960px",
254
+ "--container-600": "1152px"
255
+ }
256
+ } as const;
257
+
258
+ export type ColorToken = keyof typeof tokens.colors;
259
+ export type TypographyToken = keyof typeof tokens.typography;
260
+ export type SpacingToken = keyof typeof tokens.spacing;
261
+ export type RadiusToken = keyof typeof tokens.radii;
262
+ export type ShadowToken = keyof typeof tokens.shadows;
263
+ export type BreakpointToken = keyof typeof tokens.breakpoints;
264
+ export type ContainerToken = keyof typeof tokens.containers;
265
+ export type ComponentToken = keyof typeof tokens.components;
@@ -1,5 +1,5 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.733Z
2
+ // Generated on 2026-05-22T09:23:10.624Z
3
3
 
4
4
  export const tokens = {
5
5
  "typography": {
@@ -0,0 +1,32 @@
1
+ // Auto-generated design tokens from Figma
2
+ // Generated on 2026-05-22T09:23:10.626Z
3
+
4
+ export const tokens = {
5
+ "colors": {
6
+ "--brand-color-functional-success": "var(--color-brand-c-green-30)",
7
+ "--brand-color-functional-danger": "var(--color-brand-c-red-30)",
8
+ "--brand-color-functional-base": "var(--color-brand-c-blue-10)",
9
+ "--brand-color-functional-base-dark": "var(--color-brand-c-midnight-10)",
10
+ "--brand-color-primary": "var(--color-brand-c-blue-40)",
11
+ "--brand-color-accent": "var(--color-brand-c-coolblue-60)",
12
+ "--brand-color-primary-dark": "var(--color-brand-c-blue-10)",
13
+ "--brand-color-accent-dark": "var(--color-brand-c-coolblue-10)",
14
+ "--brand-color-subtle": "var(--color-neutral-500)",
15
+ "--brand-color-subtle-dark": "var(--color-neutral-800)",
16
+ "--brand-color-subtle-light": "var(--color-neutral-200)"
17
+ },
18
+ "typography": {
19
+ "--brand-font-base": "var(--font-family-sans)",
20
+ "--brand-font-lead": "var(--font-family-serif)"
21
+ },
22
+ "radii": {
23
+ "--brand-corner-button": "var(--size-radius-full)",
24
+ "--brand-corner-card": "var(--size-radius-300)",
25
+ "--brand-corner-modal": "var(--size-radius-400)",
26
+ "--brand-corner-input": "var(--size-radius-200)"
27
+ }
28
+ } as const;
29
+
30
+ export type ColorToken = keyof typeof tokens.colors;
31
+ export type TypographyToken = keyof typeof tokens.typography;
32
+ export type RadiusToken = keyof typeof tokens.radii;
@@ -1,16 +1,16 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.734Z
2
+ // Generated on 2026-05-22T09:23:10.628Z
3
3
 
4
4
  export const tokens = {
5
5
  "colors": {
6
- "--brand-color-functional-success": "var(--color-brand-b-green)",
7
- "--brand-color-functional-danger": "var(--color-brand-b-red)",
8
- "--brand-color-functional-base": "var(--color-brand-b-purple-600)",
9
- "--brand-color-functional-base-dark": "var(--color-brand-b-purple-800)",
10
- "--brand-color-primary": "var(--color-brand-b-blue-500)",
11
- "--brand-color-accent": "var(--color-brand-b-purple-600)",
12
- "--brand-color-primary-dark": "var(--color-brand-b-blue-700)",
13
- "--brand-color-accent-dark": "var(--color-brand-b-purple-800)",
6
+ "--brand-color-functional-success": "var(--color-brand-b-green-600)",
7
+ "--brand-color-functional-danger": "var(--color-brand-b-red-600)",
8
+ "--brand-color-functional-base": "var(--color-brand-b-purple-700)",
9
+ "--brand-color-functional-base-dark": "var(--color-brand-b-purple-900)",
10
+ "--brand-color-primary": "var(--color-brand-b-purple-600)",
11
+ "--brand-color-accent": "var(--color-brand-b-green-400)",
12
+ "--brand-color-primary-dark": "var(--color-brand-b-purple-800)",
13
+ "--brand-color-accent-dark": "var(--color-brand-b-green-800)",
14
14
  "--brand-color-subtle": "var(--color-neutral-500)",
15
15
  "--brand-color-subtle-dark": "var(--color-neutral-800)",
16
16
  "--brand-color-subtle-light": "var(--color-neutral-200)"
@@ -1,16 +1,16 @@
1
1
  // Auto-generated design tokens from Figma
2
- // Generated on 2026-03-31T20:27:09.734Z
2
+ // Generated on 2026-05-22T09:23:10.629Z
3
3
 
4
4
  export const tokens = {
5
5
  "colors": {
6
- "--brand-color-functional-success": "var(--color-brand-a-green)",
7
- "--brand-color-functional-danger": "var(--color-brand-a-red)",
8
- "--brand-color-functional-base": "var(--color-brand-a-blue-700)",
9
- "--brand-color-functional-base-dark": "var(--color-brand-a-blue-800)",
10
- "--brand-color-primary": "var(--color-brand-a-purple-600)",
11
- "--brand-color-accent": "var(--color-brand-a-blue-500)",
12
- "--brand-color-primary-dark": "var(--color-brand-a-purple-800)",
13
- "--brand-color-accent-dark": "var(--color-brand-a-blue-700)",
6
+ "--brand-color-functional-success": "var(--color-brand-a-green-600)",
7
+ "--brand-color-functional-danger": "var(--color-brand-a-red-600)",
8
+ "--brand-color-functional-base": "var(--color-brand-a-green-700)",
9
+ "--brand-color-functional-base-dark": "var(--color-brand-a-green-900)",
10
+ "--brand-color-primary": "var(--color-brand-a-sand-700)",
11
+ "--brand-color-accent": "var(--color-brand-a-green-400)",
12
+ "--brand-color-primary-dark": "var(--color-brand-a-sand-900)",
13
+ "--brand-color-accent-dark": "var(--color-brand-a-green-600)",
14
14
  "--brand-color-subtle": "var(--color-neutral-500)",
15
15
  "--brand-color-subtle-dark": "var(--color-neutral-800)",
16
16
  "--brand-color-subtle-light": "var(--color-neutral-200)"
package/dist/ui/index.css CHANGED
@@ -3,4 +3,12 @@
3
3
  @import url("./patterns/input.css") layer(components);
4
4
  @import url("./patterns/icon.css") layer(components);
5
5
  @import url("./patterns/checkbox.css") layer(components);
6
+ @import url("./patterns/radio.css") layer(components);
6
7
  @import url("./patterns/switch.css") layer(components);
8
+ @import url("./patterns/badge.css") layer(components);
9
+ @import url("./patterns/divider.css") layer(components);
10
+ @import url("./patterns/textarea.css") layer(components);
11
+ @import url("./patterns/avatar.css") layer(components);
12
+ @import url("./patterns/accordion.css") layer(components);
13
+ @import url("./patterns/tabs.css") layer(components);
14
+ @import url("./patterns/tooltip.css") layer(components);
@@ -0,0 +1,81 @@
1
+ @layer components {
2
+ .accordion {
3
+ display: flex;
4
+ flex-direction: column;
5
+ border: var(--size-border-100) solid var(--color-border-default);
6
+ border-radius: var(--size-radius-400);
7
+ overflow: hidden;
8
+ }
9
+
10
+ .accordion-item {
11
+ border-block-start: var(--size-border-100) solid var(--color-border-default);
12
+ }
13
+
14
+ .accordion-item:first-child {
15
+ border-block-start: none;
16
+ }
17
+
18
+ .accordion-item > summary {
19
+ display: flex;
20
+ align-items: center;
21
+ gap: var(--size-spacing-200);
22
+ padding-inline: var(--size-spacing-400);
23
+ padding-block: var(--size-spacing-300);
24
+ font-family: var(--font-family-sans);
25
+ font-size: var(--font-size-md);
26
+ font-weight: var(--font-weight-600);
27
+ line-height: var(--line-height-md);
28
+ color: var(--color-text-default);
29
+ cursor: pointer;
30
+ list-style: none;
31
+ user-select: none;
32
+ }
33
+
34
+ .accordion-item > summary::-webkit-details-marker {
35
+ display: none;
36
+ }
37
+
38
+ .accordion-item > summary::before {
39
+ content: "";
40
+ display: inline-block;
41
+ inline-size: 0.5rem;
42
+ block-size: 0.5rem;
43
+ border-inline-end: var(--size-border-200) solid currentColor;
44
+ border-block-end: var(--size-border-200) solid currentColor;
45
+ transform: rotate(-45deg);
46
+ transition: transform 0.2s ease;
47
+ flex-shrink: 0;
48
+ }
49
+
50
+ .accordion-item[open] > summary::before {
51
+ transform: rotate(45deg);
52
+ }
53
+
54
+ .accordion-item > summary:hover,
55
+ .accordion-item > summary.is-hover {
56
+ background: var(--color-fill-hover);
57
+ }
58
+
59
+ .accordion-item > summary:focus-visible,
60
+ .accordion-item > summary.is-focus-visible {
61
+ outline: none;
62
+ box-shadow: inset 0 0 0 var(--shadow-focus) var(--color-focus);
63
+ }
64
+
65
+ .accordion-item__content {
66
+ padding-inline: var(--size-spacing-400);
67
+ padding-block: var(--size-spacing-300);
68
+ font-family: var(--font-family-sans);
69
+ font-size: var(--font-size-md);
70
+ line-height: var(--line-height-md);
71
+ color: var(--color-text-default);
72
+ }
73
+
74
+ /* ── Disabled ── */
75
+
76
+ .accordion-item.is-disabled > summary {
77
+ color: var(--color-text-disabled);
78
+ cursor: not-allowed;
79
+ pointer-events: none;
80
+ }
81
+ }