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.
- package/README.md +181 -37
- package/dist/assets/icons/checkmark.svg +1 -0
- package/dist/core/index.css +8 -7
- package/dist/macros/ui.njk +203 -0
- package/dist/main.css +941 -210
- package/dist/react/accordion.js +36 -0
- package/dist/react/avatar.js +34 -0
- package/dist/react/badge.js +41 -0
- package/dist/react/button.js +4 -6
- package/dist/react/checkbox.js +21 -8
- package/dist/react/divider.js +31 -0
- package/dist/react/icon.js +8 -1
- package/dist/react/index.js +8 -0
- package/dist/react/label.js +1 -1
- package/dist/react/radio.js +45 -0
- package/dist/react/switch.js +9 -8
- package/dist/react/tabs.js +72 -0
- package/dist/react/textarea.js +38 -0
- package/dist/react/tooltip.js +25 -0
- package/dist/react/warn-dev.js +15 -0
- package/dist/tokens/css/{appearance-(modes).tokens.mode-dark.css → appearance-modes.tokens.mode-dark.css} +6 -6
- package/dist/tokens/css/{appearance-(modes).tokens.mode-light.css → appearance-modes.tokens.mode-light.css} +1 -1
- package/dist/tokens/css/{components-(ui).tokens.css → components-ui.tokens.css} +73 -32
- package/dist/tokens/css/core-primitives.tokens.css +240 -0
- package/dist/tokens/css/{semantics-(roles).tokens.css → semantics-roles.tokens.css} +1 -1
- package/dist/tokens/css/themes-brands.tokens.brand-a.css +22 -0
- package/dist/tokens/css/{themes-(brands).tokens.brand-b.css → themes-brands.tokens.brand-b.css} +9 -9
- package/dist/tokens/css/themes-brands.tokens.brand-c.css +22 -0
- package/dist/tokens/json/appearance-modes.tokens.mode-dark.json +121 -0
- package/dist/tokens/json/appearance-modes.tokens.mode-light.json +121 -0
- package/dist/tokens/json/components-ui.tokens.json +713 -0
- package/dist/tokens/json/{core-(primitives).tokens.json → core-primitives.tokens.json} +526 -410
- package/dist/tokens/json/semantics-roles.tokens.json +141 -0
- package/dist/tokens/json/themes-brands.tokens.brand-a.json +81 -0
- package/dist/tokens/json/themes-brands.tokens.brand-b.json +81 -0
- package/dist/tokens/json/themes-brands.tokens.brand-c.json +81 -0
- package/dist/tokens/tokens.yaml +2722 -499
- package/dist/tokens/ts/{appearance-(modes).tokens.mode-dark.ts → appearance-modes.tokens.mode-dark.ts} +6 -6
- package/dist/tokens/ts/{appearance-(modes).tokens.mode-light.ts → appearance-modes.tokens.mode-light.ts} +1 -1
- package/dist/tokens/ts/{components-(ui).tokens.ts → components-ui.tokens.ts} +74 -33
- package/dist/tokens/ts/core-primitives.tokens.ts +265 -0
- package/dist/tokens/ts/{semantics-(roles).tokens.ts → semantics-roles.tokens.ts} +1 -1
- package/dist/tokens/ts/themes-brands.tokens.brand-a.ts +32 -0
- package/dist/tokens/ts/{themes-(brands).tokens.brand-b.ts → themes-brands.tokens.brand-b.ts} +9 -9
- package/dist/tokens/ts/{themes-(brands).tokens.brand-a.ts → themes-brands.tokens.brand-c.ts} +9 -9
- package/dist/ui/index.css +8 -0
- package/dist/ui/patterns/accordion.css +81 -0
- package/dist/ui/patterns/avatar.css +57 -0
- package/dist/ui/patterns/badge.css +49 -0
- package/dist/ui/patterns/checkbox.css +71 -22
- package/dist/ui/patterns/divider.css +25 -0
- package/dist/ui/patterns/radio.css +109 -0
- package/dist/ui/patterns/tabs.css +71 -0
- package/dist/ui/patterns/textarea.css +50 -0
- package/dist/ui/patterns/tooltip.css +64 -0
- package/docs/README.md +38 -0
- package/docs/agentic/README.md +35 -0
- package/docs/agentic/assistant-behavior-rules.md +48 -0
- package/docs/agentic/skills/component-accessibility-audit.md +132 -0
- package/docs/agentic/skills/ux-writing-coach.md +116 -0
- package/docs/foundations/README.md +31 -0
- package/docs/foundations/foundation-001-token-layering.md +6 -0
- package/docs/foundations/foundation-002-naming-and-grouping.md +6 -0
- package/docs/foundations/foundation-003-color-semantics-and-status.md +6 -0
- package/docs/foundations/foundation-004-typography-scale-and-line-height.md +6 -0
- package/docs/foundations/foundation-005-responsive-breakpoints-and-containers.md +6 -0
- package/docs/foundations/foundation-006-z-index-layering.md +6 -0
- package/docs/foundations/foundation-007-typography-selectors-and-specificity.md +7 -1
- package/docs/foundations/foundation-008-mode-activation-and-consumer-control.md +6 -0
- package/docs/foundations/foundation-009-component-boundaries-and-utility.md +6 -0
- package/docs/foundations/foundation-010-implementation-and-pipeline-workflow.md +6 -0
- package/docs/foundations/foundation-011-branching-and-release-governance.md +6 -0
- package/docs/foundations/foundation-012-minimal-markup-and-composition.md +6 -0
- package/package.json +16 -11
- package/dist/tokens/css/core-(primitives).tokens.css +0 -127
- package/dist/tokens/css/themes-(brands).tokens.brand-a.css +0 -22
- package/dist/tokens/json/appearance-(modes).tokens.mode-dark.json +0 -182
- package/dist/tokens/json/appearance-(modes).tokens.mode-light.json +0 -182
- package/dist/tokens/json/components-(ui).tokens.json +0 -739
- package/dist/tokens/json/semantics-(roles).tokens.json +0 -203
- package/dist/tokens/json/themes-(brands).tokens.brand-a.json +0 -115
- package/dist/tokens/json/themes-(brands).tokens.brand-b.json +0 -115
- package/dist/tokens/ts/core-(primitives).tokens.ts +0 -152
- package/docs/agentic/skills/README.md +0 -51
- package/docs/agentic/skills/design-ops-specialist/SKILL.md +0 -60
- package/docs/agentic/skills/design-system-architect/SKILL.md +0 -106
- package/docs/agentic/team-ai-playbook.md +0 -226
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
|
|
3
|
-
"Typography": {
|
|
4
|
-
"Heading": {
|
|
5
|
-
"Font Family": {
|
|
6
|
-
"$type": "fontFamily",
|
|
7
|
-
"$value": {
|
|
8
|
-
"$ref": "Brand/Font/Lead"
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
"Font Size": {
|
|
12
|
-
"md": {
|
|
13
|
-
"$type": "number",
|
|
14
|
-
"$value": {
|
|
15
|
-
"$ref": "Font/Size/md"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"xs": {
|
|
19
|
-
"$type": "number",
|
|
20
|
-
"$value": {
|
|
21
|
-
"$ref": "Font/Size/xs"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"sm": {
|
|
25
|
-
"$type": "number",
|
|
26
|
-
"$value": {
|
|
27
|
-
"$ref": "Font/Size/sm"
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
"lg": {
|
|
31
|
-
"$type": "number",
|
|
32
|
-
"$value": {
|
|
33
|
-
"$ref": "Font/Size/lg"
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"xl": {
|
|
37
|
-
"$type": "number",
|
|
38
|
-
"$value": {
|
|
39
|
-
"$ref": "Font/Size/xl"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"xxl": {
|
|
43
|
-
"$type": "number",
|
|
44
|
-
"$value": {
|
|
45
|
-
"$ref": "Font/Size/xxl"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"xxxl": {
|
|
49
|
-
"$type": "number",
|
|
50
|
-
"$value": {
|
|
51
|
-
"$ref": "Font/Size/xxxl"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"Font Weight": {
|
|
56
|
-
"$type": "fontWeight",
|
|
57
|
-
"$value": {
|
|
58
|
-
"$ref": "Font/Weight/700"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"Line Height": {
|
|
62
|
-
"md": {
|
|
63
|
-
"$type": "number",
|
|
64
|
-
"$value": {
|
|
65
|
-
"$ref": "Line Height/md"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
"xs": {
|
|
69
|
-
"$type": "number",
|
|
70
|
-
"$value": {
|
|
71
|
-
"$ref": "Line Height/xs"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"sm": {
|
|
75
|
-
"$type": "number",
|
|
76
|
-
"$value": {
|
|
77
|
-
"$ref": "Line Height/sm"
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
"lg": {
|
|
81
|
-
"$type": "number",
|
|
82
|
-
"$value": {
|
|
83
|
-
"$ref": "Line Height/lg"
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
"xl": {
|
|
87
|
-
"$type": "number",
|
|
88
|
-
"$value": {
|
|
89
|
-
"$ref": "Line Height/xl"
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"xxl": {
|
|
93
|
-
"$type": "number",
|
|
94
|
-
"$value": {
|
|
95
|
-
"$ref": "Line Height/xxl"
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
"xxxl": {
|
|
99
|
-
"$type": "number",
|
|
100
|
-
"$value": {
|
|
101
|
-
"$ref": "Line Height/xxxl"
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
"Code": {
|
|
107
|
-
"$type": "fontFamily",
|
|
108
|
-
"$value": {
|
|
109
|
-
"$ref": "Font/Family/Mono"
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
"Label": {
|
|
113
|
-
"Font Family": {
|
|
114
|
-
"$type": "fontFamily",
|
|
115
|
-
"$value": {
|
|
116
|
-
"$ref": "Brand/Font/Lead"
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
"Font Weight": {
|
|
120
|
-
"$type": "fontWeight",
|
|
121
|
-
"$value": {
|
|
122
|
-
"$ref": "Font/Weight/600"
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
"Font Size": {
|
|
126
|
-
"$type": "number",
|
|
127
|
-
"$value": {
|
|
128
|
-
"$ref": "Font/Size/md"
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
"Line Height": {
|
|
132
|
-
"$type": "number",
|
|
133
|
-
"$value": {
|
|
134
|
-
"$ref": "Line Height/md"
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
"Gap": {
|
|
138
|
-
"$type": "number",
|
|
139
|
-
"$value": {
|
|
140
|
-
"$ref": "Size/Spacing/200"
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
"Body": {
|
|
145
|
-
"Font Family": {
|
|
146
|
-
"$type": "fontFamily",
|
|
147
|
-
"$value": {
|
|
148
|
-
"$ref": "Brand/Font/Base"
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
"Font Weight": {
|
|
152
|
-
"$type": "fontWeight",
|
|
153
|
-
"$value": {
|
|
154
|
-
"$ref": "Font/Weight/400"
|
|
155
|
-
}
|
|
156
|
-
},
|
|
157
|
-
"Font Size": {
|
|
158
|
-
"$type": "number",
|
|
159
|
-
"$value": {
|
|
160
|
-
"$ref": "Font/Size/md"
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
"Line Height": {
|
|
164
|
-
"$type": "number",
|
|
165
|
-
"$value": {
|
|
166
|
-
"$ref": "Line Height/md"
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
"Corner": {
|
|
172
|
-
"Button Radius": {
|
|
173
|
-
"$type": "number",
|
|
174
|
-
"$value": {
|
|
175
|
-
"$ref": "Brand/Corner/Button"
|
|
176
|
-
}
|
|
177
|
-
},
|
|
178
|
-
"Card Radius": {
|
|
179
|
-
"$type": "number",
|
|
180
|
-
"$value": {
|
|
181
|
-
"$ref": "Brand/Corner/Card"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
"Modal Radius": {
|
|
185
|
-
"$type": "number",
|
|
186
|
-
"$value": {
|
|
187
|
-
"$ref": "Brand/Corner/Modal"
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
"Form Radius": {
|
|
191
|
-
"$type": "number",
|
|
192
|
-
"$value": {
|
|
193
|
-
"$ref": "Brand/Corner/Card"
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
"Checkbox Radius": {
|
|
197
|
-
"$type": "number",
|
|
198
|
-
"$value": {
|
|
199
|
-
"$ref": "Brand/Corner/Input"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
|
|
3
|
-
"Brand": {
|
|
4
|
-
"Color": {
|
|
5
|
-
"Functional": {
|
|
6
|
-
"Success": {
|
|
7
|
-
"$type": "color",
|
|
8
|
-
"$value": {
|
|
9
|
-
"$ref": "Color/Brand A/Green"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"Danger": {
|
|
13
|
-
"$type": "color",
|
|
14
|
-
"$value": {
|
|
15
|
-
"$ref": "Color/Brand A/Red"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"Base": {
|
|
19
|
-
"$type": "color",
|
|
20
|
-
"$value": {
|
|
21
|
-
"$ref": "Color/Brand A/Blue/700"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"Base Dark": {
|
|
25
|
-
"$type": "color",
|
|
26
|
-
"$value": {
|
|
27
|
-
"$ref": "Color/Brand A/Blue/800"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"Primary": {
|
|
32
|
-
"$type": "color",
|
|
33
|
-
"$value": {
|
|
34
|
-
"$ref": "Color/Brand A/Purple/600"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"Accent": {
|
|
38
|
-
"$type": "color",
|
|
39
|
-
"$value": {
|
|
40
|
-
"$ref": "Color/Brand A/Blue/500"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"Primary Dark": {
|
|
44
|
-
"$type": "color",
|
|
45
|
-
"$value": {
|
|
46
|
-
"$ref": "Color/Brand A/Purple/800"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"Accent Dark": {
|
|
50
|
-
"$type": "color",
|
|
51
|
-
"$value": {
|
|
52
|
-
"$ref": "Color/Brand A/Blue/700"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"Subtle": {
|
|
56
|
-
"$type": "color",
|
|
57
|
-
"$value": {
|
|
58
|
-
"$ref": "Color/Neutral/500"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"Subtle Dark": {
|
|
62
|
-
"$type": "color",
|
|
63
|
-
"$value": {
|
|
64
|
-
"$ref": "Color/Neutral/800"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"Subtle Light": {
|
|
68
|
-
"$type": "color",
|
|
69
|
-
"$value": {
|
|
70
|
-
"$ref": "Color/Neutral/200"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"Font": {
|
|
75
|
-
"Base": {
|
|
76
|
-
"$type": "string",
|
|
77
|
-
"$value": {
|
|
78
|
-
"$ref": "Font/Family/Sans"
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"Lead": {
|
|
82
|
-
"$type": "string",
|
|
83
|
-
"$value": {
|
|
84
|
-
"$ref": "Font/Family/Serif"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"Corner": {
|
|
89
|
-
"Button": {
|
|
90
|
-
"$type": "number",
|
|
91
|
-
"$value": {
|
|
92
|
-
"$ref": "Size/Radius/700"
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"Card": {
|
|
96
|
-
"$type": "number",
|
|
97
|
-
"$value": {
|
|
98
|
-
"$ref": "Size/Radius/200"
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"Modal": {
|
|
102
|
-
"$type": "number",
|
|
103
|
-
"$value": {
|
|
104
|
-
"$ref": "Size/Radius/400"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"Input": {
|
|
108
|
-
"$type": "number",
|
|
109
|
-
"$value": {
|
|
110
|
-
"$ref": "Size/Radius/200"
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://www.designtokens.org/schemas/2025.10/format.json",
|
|
3
|
-
"Brand": {
|
|
4
|
-
"Color": {
|
|
5
|
-
"Functional": {
|
|
6
|
-
"Success": {
|
|
7
|
-
"$type": "color",
|
|
8
|
-
"$value": {
|
|
9
|
-
"$ref": "Color/Brand A/Green"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"Danger": {
|
|
13
|
-
"$type": "color",
|
|
14
|
-
"$value": {
|
|
15
|
-
"$ref": "Color/Brand A/Red"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"Base": {
|
|
19
|
-
"$type": "color",
|
|
20
|
-
"$value": {
|
|
21
|
-
"$ref": "Color/Brand A/Blue/700"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"Base Dark": {
|
|
25
|
-
"$type": "color",
|
|
26
|
-
"$value": {
|
|
27
|
-
"$ref": "Color/Brand A/Blue/800"
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"Primary": {
|
|
32
|
-
"$type": "color",
|
|
33
|
-
"$value": {
|
|
34
|
-
"$ref": "Color/Brand A/Purple/600"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"Accent": {
|
|
38
|
-
"$type": "color",
|
|
39
|
-
"$value": {
|
|
40
|
-
"$ref": "Color/Brand A/Blue/500"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"Primary Dark": {
|
|
44
|
-
"$type": "color",
|
|
45
|
-
"$value": {
|
|
46
|
-
"$ref": "Color/Brand A/Purple/800"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"Accent Dark": {
|
|
50
|
-
"$type": "color",
|
|
51
|
-
"$value": {
|
|
52
|
-
"$ref": "Color/Brand A/Blue/700"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"Subtle": {
|
|
56
|
-
"$type": "color",
|
|
57
|
-
"$value": {
|
|
58
|
-
"$ref": "Color/Neutral/500"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"Subtle Dark": {
|
|
62
|
-
"$type": "color",
|
|
63
|
-
"$value": {
|
|
64
|
-
"$ref": "Color/Neutral/800"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"Subtle Light": {
|
|
68
|
-
"$type": "color",
|
|
69
|
-
"$value": {
|
|
70
|
-
"$ref": "Color/Neutral/200"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"Font": {
|
|
75
|
-
"Base": {
|
|
76
|
-
"$type": "string",
|
|
77
|
-
"$value": {
|
|
78
|
-
"$ref": "Font/Family/Sans"
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"Lead": {
|
|
82
|
-
"$type": "string",
|
|
83
|
-
"$value": {
|
|
84
|
-
"$ref": "Font/Family/Serif"
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"Corner": {
|
|
89
|
-
"Button": {
|
|
90
|
-
"$type": "number",
|
|
91
|
-
"$value": {
|
|
92
|
-
"$ref": "Size/Radius/700"
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"Card": {
|
|
96
|
-
"$type": "number",
|
|
97
|
-
"$value": {
|
|
98
|
-
"$ref": "Size/Radius/200"
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"Modal": {
|
|
102
|
-
"$type": "number",
|
|
103
|
-
"$value": {
|
|
104
|
-
"$ref": "Size/Radius/400"
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"Input": {
|
|
108
|
-
"$type": "number",
|
|
109
|
-
"$value": {
|
|
110
|
-
"$ref": "Size/Radius/200"
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
// Auto-generated design tokens from Figma
|
|
2
|
-
// Generated on 2026-03-31T20:27:09.731Z
|
|
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-000": "rgb(255 255 255)",
|
|
27
|
-
"--color-brand-a-purple-200": "rgb(222 192 255)",
|
|
28
|
-
"--color-brand-a-purple-600": "rgb(151 71 255)",
|
|
29
|
-
"--color-brand-a-purple-800": "rgb(85 26 139)",
|
|
30
|
-
"--color-brand-a-blue-200": "rgb(226 244 253)",
|
|
31
|
-
"--color-brand-a-blue-500": "rgb(112 203 244)",
|
|
32
|
-
"--color-brand-a-blue-700": "rgb(12 75 243)",
|
|
33
|
-
"--color-brand-a-blue-800": "rgb(27 17 92)",
|
|
34
|
-
"--color-brand-a-green": "rgb(19 174 92)",
|
|
35
|
-
"--color-brand-a-red": "rgb(255 0 0)",
|
|
36
|
-
"--color-brand-b-purple-200": "rgb(196 143 255)",
|
|
37
|
-
"--color-brand-b-purple-600": "rgb(122 20 255)",
|
|
38
|
-
"--color-brand-b-purple-800": "rgb(58 18 95)",
|
|
39
|
-
"--color-brand-b-blue-200": "rgb(179 226 250)",
|
|
40
|
-
"--color-brand-b-blue-500": "rgb(66 186 240)",
|
|
41
|
-
"--color-brand-b-blue-700": "rgb(10 60 194)",
|
|
42
|
-
"--color-brand-b-blue-800": "rgb(14 9 47)",
|
|
43
|
-
"--color-brand-b-red": "rgb(204 0 0)",
|
|
44
|
-
"--color-brand-b-green": "rgb(14 129 68)",
|
|
45
|
-
"--color-transparent": "rgba(0 0 0 / 0)"
|
|
46
|
-
},
|
|
47
|
-
"typography": {
|
|
48
|
-
"--font-size-md": "1rem",
|
|
49
|
-
"--font-size-xs": ".75rem",
|
|
50
|
-
"--font-size-sm": ".875rem",
|
|
51
|
-
"--font-size-lg": "1.25rem",
|
|
52
|
-
"--font-size-xl": "1.5rem",
|
|
53
|
-
"--font-size-xxl": "2rem",
|
|
54
|
-
"--font-size-xxxl": "2.5rem",
|
|
55
|
-
"--font-weight-100": 100,
|
|
56
|
-
"--font-weight-200": 200,
|
|
57
|
-
"--font-weight-300": 300,
|
|
58
|
-
"--font-weight-400": 400,
|
|
59
|
-
"--font-weight-500": 500,
|
|
60
|
-
"--font-weight-600": 600,
|
|
61
|
-
"--font-weight-700": 700,
|
|
62
|
-
"--font-weight-800": 800,
|
|
63
|
-
"--font-weight-900": 900,
|
|
64
|
-
"--font-family-sans": "Inter",
|
|
65
|
-
"--font-family-serif": "Rokkitt",
|
|
66
|
-
"--font-family-mono": "SFMono-Regular",
|
|
67
|
-
"--line-height-xs": "1rem",
|
|
68
|
-
"--line-height-sm": "1.25rem",
|
|
69
|
-
"--line-height-md": "1.5rem",
|
|
70
|
-
"--line-height-lg": "1.75rem",
|
|
71
|
-
"--line-height-xl": "2rem",
|
|
72
|
-
"--line-height-xxl": "2.75rem",
|
|
73
|
-
"--line-height-xxxl": "3.5rem"
|
|
74
|
-
},
|
|
75
|
-
"spacing": {
|
|
76
|
-
"--size-spacing-100": ".25rem",
|
|
77
|
-
"--size-spacing-200": ".5rem",
|
|
78
|
-
"--size-spacing-300": ".75rem",
|
|
79
|
-
"--size-spacing-400": "1rem",
|
|
80
|
-
"--size-spacing-500": "1.25rem",
|
|
81
|
-
"--size-spacing-600": "1.5rem",
|
|
82
|
-
"--size-spacing-700": "2rem",
|
|
83
|
-
"--size-spacing-800": "2.5rem",
|
|
84
|
-
"--size-spacing-900": "3rem",
|
|
85
|
-
"--size-spacing-1000": "4rem",
|
|
86
|
-
"--size-spacing-000": "0"
|
|
87
|
-
},
|
|
88
|
-
"radii": {
|
|
89
|
-
"--size-radius-100": ".125rem",
|
|
90
|
-
"--size-radius-200": ".25rem",
|
|
91
|
-
"--size-radius-300": ".375rem",
|
|
92
|
-
"--size-radius-400": ".5rem",
|
|
93
|
-
"--size-radius-500": ".75rem",
|
|
94
|
-
"--size-radius-600": "1rem",
|
|
95
|
-
"--size-radius-700": "1.25rem",
|
|
96
|
-
"--size-radius-800": "1.5rem",
|
|
97
|
-
"--size-radius-900": "2rem",
|
|
98
|
-
"--size-radius-000": "0",
|
|
99
|
-
"--size-radius-full": "625rem"
|
|
100
|
-
},
|
|
101
|
-
"shadows": {
|
|
102
|
-
"--shadow-focus": ".5rem"
|
|
103
|
-
},
|
|
104
|
-
"components": {
|
|
105
|
-
"--size-border-100": ".0625rem",
|
|
106
|
-
"--size-border-200": ".125rem",
|
|
107
|
-
"--size-border-300": ".1875rem",
|
|
108
|
-
"--size-border-000": "0",
|
|
109
|
-
"--layout-columns": 12,
|
|
110
|
-
"--layout-gutter": "1rem",
|
|
111
|
-
"--layout-max-width": "1236px",
|
|
112
|
-
"--layout-column-max-width": "412px",
|
|
113
|
-
"--layout-float-breakpoint": "1220px",
|
|
114
|
-
"--layout-base-grid": ".25rem",
|
|
115
|
-
"--zindex-fixed": 1030,
|
|
116
|
-
"--zindex-sticky": 1020,
|
|
117
|
-
"--zindex-dropdown": 1000,
|
|
118
|
-
"--zindex-dropdown-base": 900,
|
|
119
|
-
"--zindex-modal": 1050,
|
|
120
|
-
"--zindex-base": 0,
|
|
121
|
-
"--zindex-tooltip": 1070,
|
|
122
|
-
"--zindex-raised": 1,
|
|
123
|
-
"--zindex-popover": 1060,
|
|
124
|
-
"--zindex-modal-overlay": 1040,
|
|
125
|
-
"--zindex-hidden": -1
|
|
126
|
-
},
|
|
127
|
-
"breakpoints": {
|
|
128
|
-
"--breakpoint-100": "580px",
|
|
129
|
-
"--breakpoint-200": "760px",
|
|
130
|
-
"--breakpoint-300": "960px",
|
|
131
|
-
"--breakpoint-400": "1200px",
|
|
132
|
-
"--breakpoint-500": "1440px",
|
|
133
|
-
"--breakpoint-600": "1920px"
|
|
134
|
-
},
|
|
135
|
-
"containers": {
|
|
136
|
-
"--container-100": "192px",
|
|
137
|
-
"--container-200": "384px",
|
|
138
|
-
"--container-300": "576px",
|
|
139
|
-
"--container-400": "768px",
|
|
140
|
-
"--container-500": "960px",
|
|
141
|
-
"--container-600": "1152px"
|
|
142
|
-
}
|
|
143
|
-
} as const;
|
|
144
|
-
|
|
145
|
-
export type ColorToken = keyof typeof tokens.colors;
|
|
146
|
-
export type TypographyToken = keyof typeof tokens.typography;
|
|
147
|
-
export type SpacingToken = keyof typeof tokens.spacing;
|
|
148
|
-
export type RadiusToken = keyof typeof tokens.radii;
|
|
149
|
-
export type ShadowToken = keyof typeof tokens.shadows;
|
|
150
|
-
export type BreakpointToken = keyof typeof tokens.breakpoints;
|
|
151
|
-
export type ContainerToken = keyof typeof tokens.containers;
|
|
152
|
-
export type ComponentToken = keyof typeof tokens.components;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Agentic Skills
|
|
2
|
-
|
|
3
|
-
This directory contains repo-specific skills for AI-assisted design-system work.
|
|
4
|
-
|
|
5
|
-
## Available skills
|
|
6
|
-
|
|
7
|
-
### design-ops-specialist
|
|
8
|
-
|
|
9
|
-
Use for tactical, proposal-first work:
|
|
10
|
-
|
|
11
|
-
- minimal component drafts
|
|
12
|
-
- token naming proposals
|
|
13
|
-
- CSS pattern structure suggestions
|
|
14
|
-
- optional React wrapper API sketches
|
|
15
|
-
- docs/playground integration plans
|
|
16
|
-
|
|
17
|
-
Best when the question is close to implementation and should stay incremental and non-breaking.
|
|
18
|
-
|
|
19
|
-
Path:
|
|
20
|
-
- `docs/agentic/skills/design-ops-specialist/SKILL.md`
|
|
21
|
-
|
|
22
|
-
### design-system-architect
|
|
23
|
-
|
|
24
|
-
Use for strategic, system-level work:
|
|
25
|
-
|
|
26
|
-
- foundation reviews
|
|
27
|
-
- token governance decisions
|
|
28
|
-
- component boundary decisions
|
|
29
|
-
- Figma/code reconciliation
|
|
30
|
-
- architecture-level handoff and system recommendations
|
|
31
|
-
|
|
32
|
-
Best when the question is about whether something belongs in the system at all, how foundations should evolve, or how to restore consistency across Figma, tokens, code, and docs.
|
|
33
|
-
|
|
34
|
-
Path:
|
|
35
|
-
- `docs/agentic/skills/design-system-architect/SKILL.md`
|
|
36
|
-
|
|
37
|
-
## Quick selection guide
|
|
38
|
-
|
|
39
|
-
Use `design-ops-specialist` when the question sounds like:
|
|
40
|
-
|
|
41
|
-
- "Propose a draft for this component"
|
|
42
|
-
- "How should the token names look?"
|
|
43
|
-
- "What files would change?"
|
|
44
|
-
- "How would the CSS and docs be structured?"
|
|
45
|
-
|
|
46
|
-
Use `design-system-architect` when the question sounds like:
|
|
47
|
-
|
|
48
|
-
- "Should this be a standalone component or composition?"
|
|
49
|
-
- "Do we need new semantic tokens?"
|
|
50
|
-
- "Are the foundations still coherent?"
|
|
51
|
-
- "How do we reconcile Figma and code drift?"
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-ops-specialist
|
|
3
|
-
description: "Tactical proposal-first guidance for token-first component work in this repo and package consumers. Use when a request asks for a minimal component draft, token naming proposal, CSS pattern structure under src/ui/patterns, optional React wrapper API, docs/playground integration, or a concrete implementation plan that should stay incremental and non-breaking. Prefer design-system-architect instead when the request is about foundations, token governance, component-boundary decisions, Figma/code drift, or system-wide architecture."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Design Ops Specialist
|
|
7
|
-
|
|
8
|
-
## Intent
|
|
9
|
-
|
|
10
|
-
Use this skill for tactical, proposal-first work before or just ahead of implementation.
|
|
11
|
-
|
|
12
|
-
This skill is narrower than `design-system-architect`.
|
|
13
|
-
|
|
14
|
-
- Use `design-ops-specialist` for concrete component drafts and repo-shaped implementation proposals.
|
|
15
|
-
- Use `design-system-architect` for system-wide reviews, governance, and architecture decisions.
|
|
16
|
-
|
|
17
|
-
## Workflow
|
|
18
|
-
|
|
19
|
-
1. Confirm scope and constraints:
|
|
20
|
-
- component name
|
|
21
|
-
- parts / variants / states
|
|
22
|
-
- platform or framework constraints
|
|
23
|
-
- whether the ask is proposal-only or implementation-adjacent
|
|
24
|
-
2. Align with source rules:
|
|
25
|
-
- `docs/foundations/`
|
|
26
|
-
- `docs/agentic/assistant-behavior-rules.md`
|
|
27
|
-
- `docs/agentic/team-ai-playbook.md`
|
|
28
|
-
3. If the request implies a new system component, call out that boundary validation is required and defer the strategic decision to `design-system-architect` when needed.
|
|
29
|
-
4. Produce a concise proposal by default, with no code changes unless explicitly requested.
|
|
30
|
-
5. Keep proposals minimal, incremental, and non-breaking.
|
|
31
|
-
|
|
32
|
-
## Output format
|
|
33
|
-
|
|
34
|
-
Provide these sections:
|
|
35
|
-
|
|
36
|
-
1. Boundary assumption
|
|
37
|
-
- whether this is assumed to be composition or a valid standalone candidate
|
|
38
|
-
- if unclear, say so briefly
|
|
39
|
-
2. Token naming proposal
|
|
40
|
-
- prefix, variants, parts, states
|
|
41
|
-
- alignment to foundations naming rules
|
|
42
|
-
3. CSS pattern structure
|
|
43
|
-
- target files under `src/ui/patterns` or existing family integration
|
|
44
|
-
- expected class names and token hookups
|
|
45
|
-
4. Optional React wrapper API
|
|
46
|
-
- only when requested or clearly needed
|
|
47
|
-
- props mapped to token variants/states
|
|
48
|
-
5. Docs + playground integration
|
|
49
|
-
- required docs pages/sections
|
|
50
|
-
- playground additions or updates
|
|
51
|
-
6. Implementation surface
|
|
52
|
-
- exact repo paths likely to change
|
|
53
|
-
|
|
54
|
-
## Guardrails
|
|
55
|
-
|
|
56
|
-
- Prefer extending existing patterns over introducing new frameworks.
|
|
57
|
-
- Keep recommendations compatible with token-first and Figma-aligned architecture.
|
|
58
|
-
- Do not broaden into foundations governance unless explicitly asked.
|
|
59
|
-
- If requirements are underspecified, ask targeted clarifying questions or state minimal assumptions.
|
|
60
|
-
- If the task is really about whether something belongs in the system at all, hand off conceptually to `design-system-architect`.
|