@hirobius/design-system 0.23.2 → 0.24.1
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/CHANGELOG.md +57 -0
- package/DESIGN.md +8 -9
- package/README.md +24 -14
- package/UPGRADING.md +69 -1
- package/dist/css-contract.json +1 -1
- package/dist/hirobius-ui.js +253 -252
- package/dist/manifest.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +25 -12
- package/dist/types/src/app/design-system/generated-token-refs.d.ts +25 -12
- package/dist/types/src/app/design-system/generated-token-values.d.ts +25 -12
- package/dist/types/src/index.d.ts +54 -7
- package/dist/variables.css +67 -56
- package/docs/CONSUMING.md +7 -7
- package/hirobius.tokens.json +147 -100
- package/llms.txt +4 -13
- package/package.json +3 -2
- package/public/hds-manifest.json +230 -153
- package/public/llms/scroll.txt +2 -2
- package/public/llms-full.txt +12 -22
- package/public/llms.txt +4 -13
- package/src/app/data/component-api.json +1 -1
- package/upgrade/index.json +15 -1
- package/upgrade/releases/0.24.0.json +661 -0
- package/upgrade/releases/0.24.1.json +311 -0
package/hirobius.tokens.json
CHANGED
|
@@ -149,52 +149,99 @@
|
|
|
149
149
|
},
|
|
150
150
|
"$description": "Discrete values within the green range at defined lightness steps."
|
|
151
151
|
},
|
|
152
|
-
"
|
|
152
|
+
"graphite": {
|
|
153
153
|
"50": {
|
|
154
|
-
"$value": "#
|
|
155
|
-
"$description": "
|
|
154
|
+
"$value": "#f5f4f4",
|
|
155
|
+
"$description": "Graphite accent tint — faintest step."
|
|
156
156
|
},
|
|
157
157
|
"100": {
|
|
158
|
-
"$value": "#
|
|
159
|
-
"$description": "
|
|
158
|
+
"$value": "#e9e7e8",
|
|
159
|
+
"$description": "Graphite accent — very light warm tint."
|
|
160
160
|
},
|
|
161
161
|
"200": {
|
|
162
|
-
"$value": "#
|
|
163
|
-
"$description": "
|
|
162
|
+
"$value": "#d4d0d2",
|
|
163
|
+
"$description": "Graphite accent — light warm-grey; dark-mode rest accent fill."
|
|
164
164
|
},
|
|
165
165
|
"300": {
|
|
166
|
-
"$value": "#
|
|
167
|
-
"$description": "
|
|
166
|
+
"$value": "#b2abae",
|
|
167
|
+
"$description": "Graphite accent — soft mid-light step; dark-mode hover/link."
|
|
168
168
|
},
|
|
169
169
|
"400": {
|
|
170
|
-
"$value": "#
|
|
171
|
-
"$description": "
|
|
170
|
+
"$value": "#8b8488",
|
|
171
|
+
"$description": "Graphite accent — mid warm-grey step."
|
|
172
172
|
},
|
|
173
173
|
"500": {
|
|
174
|
-
"$value": "#
|
|
175
|
-
"$description": "
|
|
174
|
+
"$value": "#655e62",
|
|
175
|
+
"$description": "Graphite accent — mid step."
|
|
176
176
|
},
|
|
177
177
|
"600": {
|
|
178
|
-
"$value": "#
|
|
179
|
-
"$description": "
|
|
178
|
+
"$value": "#544d51",
|
|
179
|
+
"$description": "Graphite accent — mid-dark step."
|
|
180
180
|
},
|
|
181
181
|
"700": {
|
|
182
|
-
"$value": "#
|
|
183
|
-
"$description": "
|
|
182
|
+
"$value": "#433a3f",
|
|
183
|
+
"$description": "Graphite accent rest — the warm charcoal brand accent; white text as a fill (AA)."
|
|
184
184
|
},
|
|
185
185
|
"800": {
|
|
186
|
-
"$value": "#
|
|
187
|
-
"$description": "
|
|
186
|
+
"$value": "#352e32",
|
|
187
|
+
"$description": "Graphite accent — deep step; light-mode hover."
|
|
188
188
|
},
|
|
189
189
|
"900": {
|
|
190
|
-
"$value": "#
|
|
191
|
-
"$description": "
|
|
190
|
+
"$value": "#2a2428",
|
|
191
|
+
"$description": "Graphite accent — darkest usable step; light-mode pressed, dark-mode on-accent text."
|
|
192
192
|
},
|
|
193
193
|
"950": {
|
|
194
|
-
"$value": "#
|
|
195
|
-
"$description": "
|
|
194
|
+
"$value": "#19161a",
|
|
195
|
+
"$description": "Graphite accent — near-black warm substrate."
|
|
196
196
|
},
|
|
197
|
-
"$description": "
|
|
197
|
+
"$description": "Graphite, the warm-charcoal brand accent scale. Feedback colors keep their own scales."
|
|
198
|
+
},
|
|
199
|
+
"mauve": {
|
|
200
|
+
"50": {
|
|
201
|
+
"$value": "#fff0f6",
|
|
202
|
+
"$description": "Mauve tint, faintest step."
|
|
203
|
+
},
|
|
204
|
+
"100": {
|
|
205
|
+
"$value": "#f4e2ea",
|
|
206
|
+
"$description": "Mauve step 100, lightness-matched to graphite 100."
|
|
207
|
+
},
|
|
208
|
+
"200": {
|
|
209
|
+
"$value": "#e1cad4",
|
|
210
|
+
"$description": "Mauve step 200, lightness-matched to graphite 200."
|
|
211
|
+
},
|
|
212
|
+
"300": {
|
|
213
|
+
"$value": "#c0a4b1",
|
|
214
|
+
"$description": "Mauve step 300, lightness-matched to graphite 300."
|
|
215
|
+
},
|
|
216
|
+
"400": {
|
|
217
|
+
"$value": "#9d7b8a",
|
|
218
|
+
"$description": "Mauve step 400, lightness-matched to graphite 400."
|
|
219
|
+
},
|
|
220
|
+
"500": {
|
|
221
|
+
"$value": "#734b5e",
|
|
222
|
+
"$description": "Mauve anchor (#734B5E). Reserved; not mapped to any semantic token yet."
|
|
223
|
+
},
|
|
224
|
+
"600": {
|
|
225
|
+
"$value": "#674254",
|
|
226
|
+
"$description": "Mauve step 600, lightness-matched to graphite 600."
|
|
227
|
+
},
|
|
228
|
+
"700": {
|
|
229
|
+
"$value": "#523141",
|
|
230
|
+
"$description": "Mauve step 700, lightness-matched to graphite 700."
|
|
231
|
+
},
|
|
232
|
+
"800": {
|
|
233
|
+
"$value": "#432634",
|
|
234
|
+
"$description": "Mauve step 800, lightness-matched to graphite 800."
|
|
235
|
+
},
|
|
236
|
+
"900": {
|
|
237
|
+
"$value": "#361d29",
|
|
238
|
+
"$description": "Mauve step 900, lightness-matched to graphite 900."
|
|
239
|
+
},
|
|
240
|
+
"950": {
|
|
241
|
+
"$value": "#240f1a",
|
|
242
|
+
"$description": "Mauve, near-black substrate."
|
|
243
|
+
},
|
|
244
|
+
"$description": "Mauve, a reserved secondary scale lightness-matched to graphite. Defined for exploration; no semantic token uses it yet."
|
|
198
245
|
},
|
|
199
246
|
"violet": {
|
|
200
247
|
"50": {
|
|
@@ -282,7 +329,6 @@
|
|
|
282
329
|
"$description": "Discrete values within the amber range at defined lightness steps."
|
|
283
330
|
},
|
|
284
331
|
"stone": {
|
|
285
|
-
"$description": "Warm stone/brown palette for Concrete Creations brand accent ramp. PLACEHOLDER values pending final brand identity work.",
|
|
286
332
|
"100": {
|
|
287
333
|
"$value": "#F5EFE7",
|
|
288
334
|
"$description": "Stone 100 — near-white warm tint; accent-subtle surface."
|
|
@@ -314,7 +360,8 @@
|
|
|
314
360
|
"950": {
|
|
315
361
|
"$value": "#3A2E1F",
|
|
316
362
|
"$description": "Stone 950 — near-black warm tone; dark-mode subtle accent surface."
|
|
317
|
-
}
|
|
363
|
+
},
|
|
364
|
+
"$description": "Warm stone/brown palette for Concrete Creations brand accent ramp. PLACEHOLDER values pending final brand identity work."
|
|
318
365
|
},
|
|
319
366
|
"projectBrand": {
|
|
320
367
|
"microsoftGameDev": {
|
|
@@ -935,6 +982,14 @@
|
|
|
935
982
|
},
|
|
936
983
|
"$description": "96px width step."
|
|
937
984
|
},
|
|
985
|
+
"280": {
|
|
986
|
+
"$type": "dimension",
|
|
987
|
+
"$value": {
|
|
988
|
+
"value": 280,
|
|
989
|
+
"unit": "px"
|
|
990
|
+
},
|
|
991
|
+
"$description": "Docs-shell rail width (hds#280): our own number, not HeroUI's 268px; fits the longest top-level nav label with room."
|
|
992
|
+
},
|
|
938
993
|
"760": {
|
|
939
994
|
"$type": "dimension",
|
|
940
995
|
"$value": {
|
|
@@ -955,14 +1010,6 @@
|
|
|
955
1010
|
"value": 50,
|
|
956
1011
|
"unit": "ch"
|
|
957
1012
|
}
|
|
958
|
-
},
|
|
959
|
-
"280": {
|
|
960
|
-
"$type": "dimension",
|
|
961
|
-
"$value": {
|
|
962
|
-
"value": 280,
|
|
963
|
-
"unit": "px"
|
|
964
|
-
},
|
|
965
|
-
"$description": "Docs-shell rail width (hds#280): our own number, not HeroUI's 268px; fits the longest top-level nav label with room."
|
|
966
1013
|
}
|
|
967
1014
|
}
|
|
968
1015
|
},
|
|
@@ -1145,25 +1192,25 @@
|
|
|
1145
1192
|
}
|
|
1146
1193
|
},
|
|
1147
1194
|
"accent": {
|
|
1148
|
-
"$value": "{primitive.color.
|
|
1149
|
-
"$description": "Accent
|
|
1195
|
+
"$value": "{primitive.color.graphite.700}",
|
|
1196
|
+
"$description": "Accent fill, warm graphite. Dark in light mode, light warm-grey in dark mode; pair with content.onAccent.",
|
|
1150
1197
|
"$extensions": {
|
|
1151
1198
|
"com.figma.variables": {
|
|
1152
1199
|
"modes": {
|
|
1153
|
-
"Light": "{primitive.color.
|
|
1154
|
-
"Dark": "{primitive.color.
|
|
1200
|
+
"Light": "{primitive.color.graphite.700}",
|
|
1201
|
+
"Dark": "{primitive.color.graphite.200}"
|
|
1155
1202
|
}
|
|
1156
1203
|
}
|
|
1157
1204
|
}
|
|
1158
1205
|
},
|
|
1159
1206
|
"accentSubtle": {
|
|
1160
|
-
"$value": "{primitive.color.
|
|
1161
|
-
"$description": "Faint accent tint for hover states or highlights",
|
|
1207
|
+
"$value": "{primitive.color.graphite.50}",
|
|
1208
|
+
"$description": "Faint accent tint for hover states or highlights.",
|
|
1162
1209
|
"$extensions": {
|
|
1163
1210
|
"com.figma.variables": {
|
|
1164
1211
|
"modes": {
|
|
1165
|
-
"Light": "{primitive.color.
|
|
1166
|
-
"Dark": "{primitive.color.
|
|
1212
|
+
"Light": "{primitive.color.graphite.50}",
|
|
1213
|
+
"Dark": "{primitive.color.graphite.800}"
|
|
1167
1214
|
}
|
|
1168
1215
|
}
|
|
1169
1216
|
}
|
|
@@ -1275,25 +1322,25 @@
|
|
|
1275
1322
|
}
|
|
1276
1323
|
},
|
|
1277
1324
|
"accent": {
|
|
1278
|
-
"$value": "{primitive.color.
|
|
1279
|
-
"$description": "Accent-intent text/icon color —
|
|
1325
|
+
"$value": "{primitive.color.graphite.700}",
|
|
1326
|
+
"$description": "Accent-intent text/icon color — graphite, legible on page and card surfaces. Pair with underline/weight for link affordance.",
|
|
1280
1327
|
"$extensions": {
|
|
1281
1328
|
"com.figma.variables": {
|
|
1282
1329
|
"modes": {
|
|
1283
|
-
"Light": "{primitive.color.
|
|
1284
|
-
"Dark": "{primitive.color.
|
|
1330
|
+
"Light": "{primitive.color.graphite.700}",
|
|
1331
|
+
"Dark": "{primitive.color.graphite.300}"
|
|
1285
1332
|
}
|
|
1286
1333
|
}
|
|
1287
1334
|
}
|
|
1288
1335
|
},
|
|
1289
1336
|
"onAccent": {
|
|
1290
|
-
"$value": "{primitive.color.neutral.
|
|
1291
|
-
"$description": "Text
|
|
1337
|
+
"$value": "{primitive.color.neutral.50}",
|
|
1338
|
+
"$description": "Text and icons on accent fills: near-white in light mode, dark graphite in dark mode.",
|
|
1292
1339
|
"$extensions": {
|
|
1293
1340
|
"com.figma.variables": {
|
|
1294
1341
|
"modes": {
|
|
1295
|
-
"Light": "{primitive.color.neutral.
|
|
1296
|
-
"Dark": "{primitive.color.
|
|
1342
|
+
"Light": "{primitive.color.neutral.50}",
|
|
1343
|
+
"Dark": "{primitive.color.graphite.900}"
|
|
1297
1344
|
}
|
|
1298
1345
|
}
|
|
1299
1346
|
}
|
|
@@ -1394,13 +1441,13 @@
|
|
|
1394
1441
|
}
|
|
1395
1442
|
},
|
|
1396
1443
|
"accent": {
|
|
1397
|
-
"$value": "{primitive.color.
|
|
1398
|
-
"$description": "Accent border —
|
|
1444
|
+
"$value": "{primitive.color.graphite.700}",
|
|
1445
|
+
"$description": "Accent border — graphite, dark enough to read as a boundary on page and card surfaces.",
|
|
1399
1446
|
"$extensions": {
|
|
1400
1447
|
"com.figma.variables": {
|
|
1401
1448
|
"modes": {
|
|
1402
|
-
"Light": "{primitive.color.
|
|
1403
|
-
"Dark": "{primitive.color.
|
|
1449
|
+
"Light": "{primitive.color.graphite.700}",
|
|
1450
|
+
"Dark": "{primitive.color.graphite.300}"
|
|
1404
1451
|
}
|
|
1405
1452
|
}
|
|
1406
1453
|
}
|
|
@@ -1912,37 +1959,37 @@
|
|
|
1912
1959
|
"accent": {
|
|
1913
1960
|
"$type": "color",
|
|
1914
1961
|
"rest": {
|
|
1915
|
-
"$value": "{primitive.color.
|
|
1916
|
-
"$description": "Default accent fill for interactive elements at rest —
|
|
1962
|
+
"$value": "{primitive.color.graphite.700}",
|
|
1963
|
+
"$description": "Default accent fill for interactive elements at rest — warm graphite. Inverts per theme; pair with content.onAccent.",
|
|
1917
1964
|
"$extensions": {
|
|
1918
1965
|
"com.figma.variables": {
|
|
1919
1966
|
"modes": {
|
|
1920
|
-
"Light": "{primitive.color.
|
|
1921
|
-
"Dark": "{primitive.color.
|
|
1967
|
+
"Light": "{primitive.color.graphite.700}",
|
|
1968
|
+
"Dark": "{primitive.color.graphite.200}"
|
|
1922
1969
|
}
|
|
1923
1970
|
}
|
|
1924
1971
|
}
|
|
1925
1972
|
},
|
|
1926
1973
|
"hover": {
|
|
1927
|
-
"$value": "{primitive.color.
|
|
1974
|
+
"$value": "{primitive.color.graphite.800}",
|
|
1928
1975
|
"$description": "Accent fill on pointer hover.",
|
|
1929
1976
|
"$extensions": {
|
|
1930
1977
|
"com.figma.variables": {
|
|
1931
1978
|
"modes": {
|
|
1932
|
-
"Light": "{primitive.color.
|
|
1933
|
-
"Dark": "{primitive.color.
|
|
1979
|
+
"Light": "{primitive.color.graphite.800}",
|
|
1980
|
+
"Dark": "{primitive.color.graphite.300}"
|
|
1934
1981
|
}
|
|
1935
1982
|
}
|
|
1936
1983
|
}
|
|
1937
1984
|
},
|
|
1938
1985
|
"pressed": {
|
|
1939
|
-
"$value": "{primitive.color.
|
|
1986
|
+
"$value": "{primitive.color.graphite.900}",
|
|
1940
1987
|
"$description": "Accent fill during active press.",
|
|
1941
1988
|
"$extensions": {
|
|
1942
1989
|
"com.figma.variables": {
|
|
1943
1990
|
"modes": {
|
|
1944
|
-
"Light": "{primitive.color.
|
|
1945
|
-
"Dark": "{primitive.color.
|
|
1991
|
+
"Light": "{primitive.color.graphite.900}",
|
|
1992
|
+
"Dark": "{primitive.color.graphite.400}"
|
|
1946
1993
|
}
|
|
1947
1994
|
}
|
|
1948
1995
|
}
|
|
@@ -1972,37 +2019,37 @@
|
|
|
1972
2019
|
}
|
|
1973
2020
|
},
|
|
1974
2021
|
"content": {
|
|
1975
|
-
"$value": "{primitive.color.
|
|
1976
|
-
"$description": "Accent-intent text/icon color on neutral surfaces (
|
|
2022
|
+
"$value": "{primitive.color.graphite.700}",
|
|
2023
|
+
"$description": "Accent-intent text/icon color on neutral surfaces (graphite) — pair with underline/weight for link affordance.",
|
|
1977
2024
|
"$extensions": {
|
|
1978
2025
|
"com.figma.variables": {
|
|
1979
2026
|
"modes": {
|
|
1980
|
-
"Light": "{primitive.color.
|
|
1981
|
-
"Dark": "{primitive.color.
|
|
2027
|
+
"Light": "{primitive.color.graphite.700}",
|
|
2028
|
+
"Dark": "{primitive.color.graphite.300}"
|
|
1982
2029
|
}
|
|
1983
2030
|
}
|
|
1984
2031
|
}
|
|
1985
2032
|
},
|
|
1986
2033
|
"contentHover": {
|
|
1987
|
-
"$value": "{primitive.color.
|
|
2034
|
+
"$value": "{primitive.color.graphite.800}",
|
|
1988
2035
|
"$description": "Accent content color on pointer hover.",
|
|
1989
2036
|
"$extensions": {
|
|
1990
2037
|
"com.figma.variables": {
|
|
1991
2038
|
"modes": {
|
|
1992
|
-
"Light": "{primitive.color.
|
|
1993
|
-
"Dark": "{primitive.color.
|
|
2039
|
+
"Light": "{primitive.color.graphite.800}",
|
|
2040
|
+
"Dark": "{primitive.color.graphite.200}"
|
|
1994
2041
|
}
|
|
1995
2042
|
}
|
|
1996
2043
|
}
|
|
1997
2044
|
},
|
|
1998
2045
|
"subtle": {
|
|
1999
|
-
"$value": "{primitive.color.
|
|
2046
|
+
"$value": "{primitive.color.graphite.50}",
|
|
2000
2047
|
"$description": "Low-emphasis accent tint for hover backgrounds and selection highlights.",
|
|
2001
2048
|
"$extensions": {
|
|
2002
2049
|
"com.figma.variables": {
|
|
2003
2050
|
"modes": {
|
|
2004
|
-
"Light": "{primitive.color.
|
|
2005
|
-
"Dark": "{primitive.color.
|
|
2051
|
+
"Light": "{primitive.color.graphite.50}",
|
|
2052
|
+
"Dark": "{primitive.color.graphite.800}"
|
|
2006
2053
|
}
|
|
2007
2054
|
}
|
|
2008
2055
|
}
|
|
@@ -2214,13 +2261,13 @@
|
|
|
2214
2261
|
"tag": {
|
|
2215
2262
|
"background": {
|
|
2216
2263
|
"$type": "color",
|
|
2217
|
-
"$value": "{semantic.
|
|
2218
|
-
"$description": "
|
|
2264
|
+
"$value": "{semantic.color.surface.raised}",
|
|
2265
|
+
"$description": "Unselected tag surface color (matches the rendered pill; the active fill is activeBackground)."
|
|
2219
2266
|
},
|
|
2220
2267
|
"text": {
|
|
2221
2268
|
"$type": "color",
|
|
2222
|
-
"$value": "{semantic.color.content.
|
|
2223
|
-
"$description": "
|
|
2269
|
+
"$value": "{semantic.color.content.secondary}",
|
|
2270
|
+
"$description": "Unselected tag text color (the active label uses activeText)."
|
|
2224
2271
|
},
|
|
2225
2272
|
"border": {
|
|
2226
2273
|
"$type": "color",
|
|
@@ -2371,15 +2418,15 @@
|
|
|
2371
2418
|
},
|
|
2372
2419
|
"paddingY": {
|
|
2373
2420
|
"$type": "dimension",
|
|
2374
|
-
"$value": "{primitive.space.
|
|
2375
|
-
"$description": "Vertical button padding."
|
|
2421
|
+
"$value": "{primitive.space.2}",
|
|
2422
|
+
"$description": "Vertical button padding (8px, the md size; legacy flat alias of size.md.paddingY)."
|
|
2376
2423
|
},
|
|
2377
2424
|
"size": {
|
|
2378
2425
|
"sm": {
|
|
2379
2426
|
"paddingX": {
|
|
2380
2427
|
"$type": "dimension",
|
|
2381
|
-
"$value": "{primitive.space.
|
|
2382
|
-
"$description": "Small button horizontal padding (
|
|
2428
|
+
"$value": "{primitive.space.3}",
|
|
2429
|
+
"$description": "Small button horizontal padding (12px)."
|
|
2383
2430
|
},
|
|
2384
2431
|
"paddingY": {
|
|
2385
2432
|
"$type": "dimension",
|
|
@@ -2398,13 +2445,13 @@
|
|
|
2398
2445
|
},
|
|
2399
2446
|
"height": {
|
|
2400
2447
|
"$type": "dimension",
|
|
2401
|
-
"$value": "{primitive.
|
|
2402
|
-
"$description": "Small button height (
|
|
2448
|
+
"$value": "{primitive.size.32}",
|
|
2449
|
+
"$description": "Small button height (32px)."
|
|
2403
2450
|
},
|
|
2404
2451
|
"itemSpacing": {
|
|
2405
2452
|
"$type": "dimension",
|
|
2406
|
-
"$value": "{primitive.space.
|
|
2407
|
-
"$description": "Small button icon-to-label gap (
|
|
2453
|
+
"$value": "{primitive.space.2}",
|
|
2454
|
+
"$description": "Small button icon-to-label gap (8px)."
|
|
2408
2455
|
}
|
|
2409
2456
|
},
|
|
2410
2457
|
"md": {
|
|
@@ -2415,8 +2462,8 @@
|
|
|
2415
2462
|
},
|
|
2416
2463
|
"paddingY": {
|
|
2417
2464
|
"$type": "dimension",
|
|
2418
|
-
"$value": "{primitive.space.
|
|
2419
|
-
"$description": "Medium button vertical padding (
|
|
2465
|
+
"$value": "{primitive.space.2}",
|
|
2466
|
+
"$description": "Medium button vertical padding (8px; the 40px height drives the box)."
|
|
2420
2467
|
},
|
|
2421
2468
|
"fontSize": {
|
|
2422
2469
|
"$type": "dimension",
|
|
@@ -2452,8 +2499,8 @@
|
|
|
2452
2499
|
},
|
|
2453
2500
|
"fontSize": {
|
|
2454
2501
|
"$type": "dimension",
|
|
2455
|
-
"$value": "{primitive.typography.size.
|
|
2456
|
-
"$description": "Large button label size (
|
|
2502
|
+
"$value": "{primitive.typography.size.sm}",
|
|
2503
|
+
"$description": "Large button label size (14px, the same hds-type-ui role as md)."
|
|
2457
2504
|
},
|
|
2458
2505
|
"iconSize": {
|
|
2459
2506
|
"$type": "dimension",
|
|
@@ -2493,7 +2540,7 @@
|
|
|
2493
2540
|
},
|
|
2494
2541
|
"hover": {
|
|
2495
2542
|
"$type": "color",
|
|
2496
|
-
"$value": "{semantic.color.surface.
|
|
2543
|
+
"$value": "{semantic.color.surface.accentSubtle}",
|
|
2497
2544
|
"$description": "Secondary button hover fill."
|
|
2498
2545
|
},
|
|
2499
2546
|
"pressed": {
|
|
@@ -2510,18 +2557,18 @@
|
|
|
2510
2557
|
},
|
|
2511
2558
|
"hover": {
|
|
2512
2559
|
"$type": "color",
|
|
2513
|
-
"$value": "{semantic.color.border.
|
|
2560
|
+
"$value": "{semantic.color.border.accent}",
|
|
2514
2561
|
"$description": "Secondary button hover border."
|
|
2515
2562
|
},
|
|
2516
2563
|
"pressed": {
|
|
2517
2564
|
"$type": "color",
|
|
2518
|
-
"$value": "{semantic.color.border.
|
|
2519
|
-
"$description": "Secondary button pressed border."
|
|
2565
|
+
"$value": "{semantic.color.border.accent}",
|
|
2566
|
+
"$description": "Secondary button pressed border (the hover border still applies while pressed)."
|
|
2520
2567
|
},
|
|
2521
2568
|
"disabled": {
|
|
2522
2569
|
"$type": "color",
|
|
2523
|
-
"$value": "{semantic.color.border.
|
|
2524
|
-
"$description": "Secondary button disabled border."
|
|
2570
|
+
"$value": "{semantic.color.border.interactive}",
|
|
2571
|
+
"$description": "Secondary button disabled border (no disabled border class: the rest border stays)."
|
|
2525
2572
|
}
|
|
2526
2573
|
},
|
|
2527
2574
|
"text": {
|
|
@@ -2534,7 +2581,7 @@
|
|
|
2534
2581
|
"input": {
|
|
2535
2582
|
"bg": {
|
|
2536
2583
|
"$type": "color",
|
|
2537
|
-
"$value": "{semantic.color.surface.
|
|
2584
|
+
"$value": "{semantic.color.surface.page}"
|
|
2538
2585
|
},
|
|
2539
2586
|
"text": {
|
|
2540
2587
|
"$type": "color",
|
|
@@ -2554,7 +2601,7 @@
|
|
|
2554
2601
|
},
|
|
2555
2602
|
"paddingX": {
|
|
2556
2603
|
"$type": "dimension",
|
|
2557
|
-
"$value": "{primitive.space.
|
|
2604
|
+
"$value": "{primitive.space.3}"
|
|
2558
2605
|
},
|
|
2559
2606
|
"paddingY": {
|
|
2560
2607
|
"$type": "dimension",
|
|
@@ -2572,7 +2619,7 @@
|
|
|
2572
2619
|
},
|
|
2573
2620
|
"radius": {
|
|
2574
2621
|
"$type": "dimension",
|
|
2575
|
-
"$value": "{primitive.radius.
|
|
2622
|
+
"$value": "{primitive.radius.12}"
|
|
2576
2623
|
},
|
|
2577
2624
|
"padding": {
|
|
2578
2625
|
"$type": "dimension",
|
|
@@ -2580,7 +2627,7 @@
|
|
|
2580
2627
|
},
|
|
2581
2628
|
"gap": {
|
|
2582
2629
|
"$type": "dimension",
|
|
2583
|
-
"$value": "{
|
|
2630
|
+
"$value": "{semantic.space.scale.sm}"
|
|
2584
2631
|
}
|
|
2585
2632
|
},
|
|
2586
2633
|
"lightbox": {
|
package/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Hirobius Design System
|
|
2
2
|
|
|
3
|
-
Generated: 2026-10-
|
|
3
|
+
Generated: 2026-10-11T20:46:31.293Z
|
|
4
4
|
Primary sources: `public/hds-manifest.json`, `src/app/data/component-api.json`, `hirobius.tokens.json`
|
|
5
5
|
|
|
6
6
|
## Agents Using The Package: Start Here
|
|
@@ -82,15 +82,6 @@ One answer per need. Use the components after the arrow; what follows "Not:" is
|
|
|
82
82
|
- Docs pipeline: `public/hds-manifest.json` + `src/app/data/component-api.json` -> reflective docs pages
|
|
83
83
|
- AI entrypoint: read `public/llms.txt` before editing code
|
|
84
84
|
|
|
85
|
-
## Phase Snapshot
|
|
86
|
-
|
|
87
|
-
- foundation. Foundations - 63% - Token architecture, CSS pipeline, accessibility, and primitive scales.
|
|
88
|
-
- Criteria: done: W3C DTCG three-tier token architecture; done: CSS variable pipeline + token verify; partial: Primitive scales complete (color, type, space); todo: Token audit clean
|
|
89
|
-
- components. Components - 75% - Accessible React UI built from foundations and mapped toward Figma parity.
|
|
90
|
-
- Criteria: done: Component inventory with typed props; done: Action system architecture (buttons, links, groups); done: Prop tables and API doc coverage; todo: Figma parity mapping
|
|
91
|
-
- infrastructure-operations. Architecture - 55% - System delivery, Figma sync, automation, quality gates, and operational hygiene.
|
|
92
|
-
- Criteria: done: System manifest + llms.txt AI context; done: Release gate + full audit gate; done: Documentation automation (AST pipeline, LLMS sync); partial: Payload sweep + orphan cleanup; partial: Motion system foundations; todo: Figma library generated from tokens; todo: Code Connect CI + reverse sync; partial: AST gatekeeper + token schema validation; partial: A11y CI + visual regression pipeline; partial: Operational feedback loop + AI retrospective
|
|
93
|
-
|
|
94
85
|
## Component Inventory (Source Of Truth)
|
|
95
86
|
|
|
96
87
|
This file intentionally does not embed the full component list to avoid duplication and excess context.
|
|
@@ -107,7 +98,7 @@ This file intentionally does not embed prop tables or long-form API docs.
|
|
|
107
98
|
|
|
108
99
|
## Core set
|
|
109
100
|
|
|
110
|
-
The 43 components of the ratified core set
|
|
101
|
+
The 43 components of the ratified core set: brand-neutral, composable, imported from the package root. Build a screen from these first. Each has `core: true` in `public/hds-manifest.json` and is marked `[core]` under "Which one when". Composed pattern modules (page shells, forms, code blocks, page sections) are imported from `@hirobius/design-system/patterns`.
|
|
111
102
|
|
|
112
103
|
- Button (Actions)
|
|
113
104
|
- Avatar (Display)
|
|
@@ -265,7 +256,7 @@ Canonical primitives, cheapest-first (CSS before JS, JS before an opt-in depende
|
|
|
265
256
|
2. `Pin` (`position: sticky`) for a pinned scroll scene — the dependency-free basis for the "tall section + sticky child" pattern (GSAP's `pin: true`, done with zero JS). Give the pinned element a TALLER scrolling parent (e.g. `height: 300vh`) so it has room to travel; `top` is a CSS length offset, not a spacing token.
|
|
266
257
|
3. `useScrollProgress` (from `@hirobius/design-system/scroll`) only when the 0→1 scroll value is needed in React — cross-element choreography, canvas/WebGL, or a Motion (`motion/react`) `useTransform` binding that CSS `animation-timeline` cannot express. Thin, SSR-guarded wrapper over Motion `useScroll`; adds no new dependency.
|
|
267
258
|
4. `SmoothScroll` (from `@hirobius/design-system/scroll`, `lenis` as an OPTIONAL peer dep) only for opt-in momentum ("inertia") scrolling, mounted once at the app/site root. Never imported from the main barrel — consumers who skip it pay nothing. Reduced-motion-first: Lenis is not instantiated when the user prefers reduced motion, unless `ignoreReducedMotion` is set for a deliberate art-directed exception.
|
|
268
|
-
5. Do not adopt GSAP/ScrollTrigger, and do not wire Lenis directly outside `SmoothScroll`, inside the core library — the CSS + Motion stack above covers reveal/pin/scrub without new dependencies. Bespoke GSAP/Lenis/WebGL scenes stay app-level/downstream (marketing sites, the clients factory), composed from these primitives
|
|
259
|
+
5. Do not adopt GSAP/ScrollTrigger, and do not wire Lenis directly outside `SmoothScroll`, inside the core library — the CSS + Motion stack above covers reveal/pin/scrub without new dependencies. Bespoke GSAP/Lenis/WebGL scenes stay app-level/downstream (marketing sites, the clients factory), composed from these primitives.
|
|
269
260
|
|
|
270
261
|
Negative rules:
|
|
271
262
|
|
|
@@ -274,7 +265,7 @@ Negative rules:
|
|
|
274
265
|
- No GSAP/ScrollTrigger or bespoke Lenis wiring inside `@hirobius/design-system` — those stay app-level/downstream, composed from `Reveal`/`Pin`/`useScrollProgress`/`SmoothScroll`.
|
|
275
266
|
- Every scroll effect must degrade to fully visible/static content — never gate content visibility behind `animation-timeline` support or a scroll listener with no fallback.
|
|
276
267
|
|
|
277
|
-
Reference: `src/app/components/reveal.tsx`, `src/app/components/pin.tsx`, `src/scroll/` (`use-scroll-progress.ts`, `smooth-scroll.tsx`),
|
|
268
|
+
Reference: `src/app/components/reveal.tsx`, `src/app/components/pin.tsx`, `src/scroll/` (`use-scroll-progress.ts`, `smooth-scroll.tsx`), and the Reveal pattern page on the docs site (`/docs/patterns/reveal`) for golden-path examples.
|
|
278
269
|
|
|
279
270
|
## HDS Card Anatomy (mandatory — every property is non-negotiable)
|
|
280
271
|
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"author": "Adrian Milsap",
|
|
20
20
|
"license": "MIT AND OFL-1.1",
|
|
21
21
|
"private": false,
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.24.1",
|
|
23
23
|
"engines": {
|
|
24
24
|
"node": ">=20",
|
|
25
25
|
"pnpm": ">=8"
|
|
@@ -290,6 +290,7 @@
|
|
|
290
290
|
"check:a11y": "pnpm lint --rule '{\"jsx-a11y/alt-text\":\"error\",\"jsx-a11y/img-redundant-alt\":\"error\"}'",
|
|
291
291
|
"check:attributions": "node scripts/check-attributions.mjs",
|
|
292
292
|
"check:binding-drift": "node scripts/check-binding-drift.mjs",
|
|
293
|
+
"check:component-token-binding": "node scripts/check-component-token-binding.mjs",
|
|
293
294
|
"check:brand": "node scripts/check-brand.mjs",
|
|
294
295
|
"check:breakpoints": "node scripts/check-hardcoded-breakpoints.mjs",
|
|
295
296
|
"check:colors": "node scripts/check-hardcoded-colors.mjs",
|
|
@@ -393,7 +394,7 @@
|
|
|
393
394
|
"manifest:generate": "node scripts/generate-manifest.mjs && node scripts/generate-component-api.mjs && node scripts/enrich-manifest.mjs",
|
|
394
395
|
"manifest:project": "node scripts/generate-manifest-projection.mjs",
|
|
395
396
|
"prebuild:lib": "node scripts/generate-component-api.mjs",
|
|
396
|
-
"pretest": "node scripts/validate-manifest.mjs && node scripts/check-manifest-drift.mjs && node scripts/check-manifest-schema-semver.mjs && node scripts/audit-component-integrity.mjs --completeness && node scripts/audit-component-integrity.mjs --api && node scripts/check-source-canon.mjs && node scripts/check-binding-drift.mjs && node scripts/check-registry.mjs && node scripts/check-tenant-tokens.mjs && node scripts/check-props-exports.mjs && knip --no-exit-code && node scripts/check-dark-alias-flip.mjs && node scripts/check-focus-states.mjs && node scripts/generate-consumer-skill.mjs --check && node scripts/generate-agents-md.mjs --check && node scripts/check-deprecations.mjs && node scripts/upgrade/schema.mjs --check && node scripts/upgrade/compile.mjs --check && node scripts/check-docs.mjs && node --test scripts/check-docs.selftest.mjs && node scripts/check-upgrade-ledger.mjs",
|
|
397
|
+
"pretest": "node scripts/validate-manifest.mjs && node scripts/check-manifest-drift.mjs && node scripts/check-manifest-schema-semver.mjs && node scripts/audit-component-integrity.mjs --completeness && node scripts/audit-component-integrity.mjs --api && node scripts/check-source-canon.mjs && node scripts/check-binding-drift.mjs && node scripts/check-component-token-binding.mjs --report && node scripts/check-registry.mjs && node scripts/check-tenant-tokens.mjs && node scripts/check-props-exports.mjs && knip --no-exit-code && node scripts/check-dark-alias-flip.mjs && node scripts/check-focus-states.mjs && node scripts/generate-consumer-skill.mjs --check && node scripts/generate-agents-md.mjs --check && node scripts/check-deprecations.mjs && node scripts/upgrade/schema.mjs --check && node scripts/upgrade/compile.mjs --check && node scripts/check-docs.mjs && node --test scripts/check-docs.selftest.mjs && node scripts/check-upgrade-ledger.mjs",
|
|
397
398
|
"pretypecheck": "node scripts/audit-tokens.mjs --report-only",
|
|
398
399
|
"preview:build": "vite build --config preview/vite.config.mjs",
|
|
399
400
|
"promote": "node scripts/promote.mjs",
|