@cyberskill/design 2.1.0 → 2.3.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 (333) hide show
  1. package/DESIGN.md +70 -3
  2. package/README.md +3 -3
  3. package/VERSION +1 -1
  4. package/_ds_bundle.js +2 -2
  5. package/_ds_bundle.js.map +1 -1
  6. package/_ds_manifest.json +32 -32
  7. package/_esm/cs.mjs +2 -2
  8. package/base/collections.css +3 -3
  9. package/base/components.css +10 -5
  10. package/base/controls.css +8 -8
  11. package/base/data.css +4 -2
  12. package/base/feedback.css +5 -3
  13. package/base/forms.css +2 -2
  14. package/base/glass.css +5 -2
  15. package/base/interaction.css +1 -1
  16. package/base/navigation.css +4 -4
  17. package/base/responsive.css +4 -0
  18. package/base/shell.css +9 -9
  19. package/base/typography.css +4 -0
  20. package/components/api-discovery.json +1 -1
  21. package/components/api-index.json +14 -14
  22. package/components/lifecycle.json +13 -13
  23. package/components/prompt-api.json +2 -2
  24. package/components/release-compatibility.json +2 -28
  25. package/components/scenarios.json +321 -28
  26. package/components/specifications.json +7546 -3515
  27. package/components/static-html-reference.json +19 -19
  28. package/dist/esm/build.json +1 -1
  29. package/dist/styles.min.css +1 -1
  30. package/docs/component-scenarios.md +1 -1
  31. package/docs/consuming.md +1 -1
  32. package/docs/contrast-report.md +196 -1
  33. package/docs/conventions.md +1 -1
  34. package/docs/manual-at-matrix.md +3 -3
  35. package/docs/reference-catalog.json +23 -23
  36. package/docs/release-notes.md +14 -1
  37. package/docs/releasing.md +4 -2
  38. package/docs/static-html-reference.md +18 -18
  39. package/docs/template-inventory.json +1 -1
  40. package/docs/vi/component-scenarios.md +1 -1
  41. package/docs/vi/consuming.md +1 -1
  42. package/docs/vi/contrast-report.md +196 -1
  43. package/docs/vi/conventions.md +1 -1
  44. package/docs/vi/decisions/component-specification-evidence.md +1 -1
  45. package/docs/vi/entrypoints/DESIGN.md +70 -3
  46. package/docs/vi/entrypoints/README.md +3 -3
  47. package/docs/vi/manual-at-matrix.md +3 -3
  48. package/docs/vi/release-notes.md +14 -1
  49. package/docs/vi/releasing.md +4 -2
  50. package/docs/vi/static-html-reference.md +18 -18
  51. package/docs/viewer.html +76 -25
  52. package/guidance/agent-contract.json +2 -2
  53. package/guidelines/atomic-view.html +4 -3
  54. package/guidelines/elements-variants.html +14 -14
  55. package/guidelines/guideline-language.js +1 -1
  56. package/package.json +2 -1
  57. package/styles/components/manifest.json +148 -137
  58. package/styles.layered.css +365 -353
  59. package/styles.layered.provenance.json +15 -15
  60. package/tokens/declarations.json +423 -375
  61. package/tokens/element-seeds.json +41 -39
  62. package/tokens/elements.css +333 -333
  63. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  64. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  65. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  66. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  67. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  68. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  69. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  70. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  71. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  72. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  73. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  74. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  75. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  76. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  77. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  78. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  79. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  80. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  81. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  82. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  83. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  84. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  85. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  86. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  87. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  88. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  89. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  90. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  91. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  92. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  93. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  94. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  95. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  96. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  97. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  98. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  99. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  100. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  101. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  102. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  103. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  104. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  105. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  106. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  107. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  108. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  109. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  110. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  111. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  112. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  113. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  114. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  115. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  116. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  117. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  118. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  119. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  120. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  121. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  122. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  123. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  124. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  125. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  126. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  127. package/tokens/modes/index.json +1548 -1548
  128. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  129. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  130. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  131. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  132. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  133. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  134. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  135. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  136. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  137. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  138. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  139. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  140. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  141. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  142. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  143. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  144. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  145. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  146. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  147. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  148. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  149. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  150. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  151. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  152. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  153. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  154. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  155. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  156. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  157. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  158. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  159. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  160. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  161. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  162. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  163. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  164. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  165. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  166. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  167. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  168. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  169. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  170. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  171. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  172. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  173. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  174. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  175. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  176. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  177. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  178. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  179. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  180. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  181. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  182. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  183. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  184. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  185. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  186. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  187. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  188. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  189. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  190. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  191. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  192. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  193. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  194. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  195. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  196. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  197. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  198. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  199. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  200. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  201. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  202. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  203. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  204. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  205. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  206. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  207. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  208. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  209. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  210. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  211. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  212. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  213. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  214. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  215. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  216. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  217. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  218. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  219. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  220. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  221. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  222. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  223. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  224. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  225. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  226. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  227. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  228. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  229. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  230. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  231. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  232. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  233. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  234. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  235. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  236. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  237. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  238. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  239. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  240. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  241. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  242. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  243. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  244. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  245. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  246. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  247. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  248. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  249. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  250. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  251. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  252. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  253. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  254. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  255. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  256. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  257. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  258. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  259. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  260. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  261. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  262. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  263. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  264. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  265. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  266. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  267. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  268. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  269. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  270. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  271. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  272. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  273. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  274. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  275. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  276. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  277. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  278. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  279. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  280. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  281. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  282. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  283. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  284. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  285. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  286. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  287. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  288. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  289. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  290. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  291. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  292. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  293. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  294. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  295. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  296. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  297. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  298. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  299. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  300. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  301. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  302. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  303. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  304. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  305. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  306. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  307. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  308. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  309. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  310. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  311. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  312. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  313. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  314. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  315. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  316. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  317. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  318. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  319. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  320. package/tokens/native/CSModes.kt +631 -588
  321. package/tokens/native/CSModes.swift +631 -588
  322. package/tokens/native/CSTokens.kt +301 -301
  323. package/tokens/native/CSTokens.swift +301 -301
  324. package/tokens/native/cs_modes.dart +631 -588
  325. package/tokens/native/cs_tokens.dart +301 -301
  326. package/tokens/native/mode-provenance.json +11 -11
  327. package/tokens/provenance.json +6 -6
  328. package/tokens/tokens.dtcg.json +268 -268
  329. package/tokens/tokens.js +160 -160
  330. package/tokens/tokens.json +159 -159
  331. package/tokens/typography.css +2 -3
  332. package/tokens/variables.css +336 -333
  333. package/ui_kits/website/site.css +2 -2
package/_ds_manifest.json CHANGED
@@ -3195,7 +3195,7 @@
3195
3195
  "definedIn": "tokens/typography.css",
3196
3196
  "important": false,
3197
3197
  "declarationOrder": 112,
3198
- "sourceLine": 71
3198
+ "sourceLine": 70
3199
3199
  },
3200
3200
  {
3201
3201
  "name": "--cs-heading-weight-strong",
@@ -3204,7 +3204,7 @@
3204
3204
  "definedIn": "tokens/typography.css",
3205
3205
  "important": false,
3206
3206
  "declarationOrder": 113,
3207
- "sourceLine": 72
3207
+ "sourceLine": 71
3208
3208
  },
3209
3209
  {
3210
3210
  "name": "--cs-heading-weight",
@@ -3213,7 +3213,7 @@
3213
3213
  "definedIn": "tokens/typography.css",
3214
3214
  "important": false,
3215
3215
  "declarationOrder": 114,
3216
- "sourceLine": 73
3216
+ "sourceLine": 72
3217
3217
  },
3218
3218
  {
3219
3219
  "name": "--cs-heading-tracking",
@@ -3222,7 +3222,7 @@
3222
3222
  "definedIn": "tokens/typography.css",
3223
3223
  "important": false,
3224
3224
  "declarationOrder": 115,
3225
- "sourceLine": 74
3225
+ "sourceLine": 73
3226
3226
  },
3227
3227
  {
3228
3228
  "name": "--cs-icon-sm",
@@ -3231,7 +3231,7 @@
3231
3231
  "definedIn": "tokens/typography.css",
3232
3232
  "important": false,
3233
3233
  "declarationOrder": 116,
3234
- "sourceLine": 77
3234
+ "sourceLine": 76
3235
3235
  },
3236
3236
  {
3237
3237
  "name": "--cs-icon-md",
@@ -3240,7 +3240,7 @@
3240
3240
  "definedIn": "tokens/typography.css",
3241
3241
  "important": false,
3242
3242
  "declarationOrder": 117,
3243
- "sourceLine": 78
3243
+ "sourceLine": 77
3244
3244
  },
3245
3245
  {
3246
3246
  "name": "--cs-icon-lg",
@@ -3249,7 +3249,7 @@
3249
3249
  "definedIn": "tokens/typography.css",
3250
3250
  "important": false,
3251
3251
  "declarationOrder": 118,
3252
- "sourceLine": 79
3252
+ "sourceLine": 78
3253
3253
  },
3254
3254
  {
3255
3255
  "name": "--cs-space-0",
@@ -4479,7 +4479,7 @@
4479
4479
  },
4480
4480
  {
4481
4481
  "name": "--cs-accent-strong",
4482
- "value": "#916D10",
4482
+ "value": "#916D11",
4483
4483
  "kind": "color",
4484
4484
  "definedIn": "tokens/elements.css",
4485
4485
  "important": false,
@@ -4551,7 +4551,7 @@
4551
4551
  },
4552
4552
  {
4553
4553
  "name": "--cs-accent-grad-b",
4554
- "value": "#F3B958",
4554
+ "value": "#C4B78F",
4555
4555
  "kind": "color",
4556
4556
  "definedIn": "tokens/elements.css",
4557
4557
  "important": false,
@@ -5750,7 +5750,7 @@
5750
5750
  "scope": ".cs-display-face",
5751
5751
  "important": false,
5752
5752
  "declarationOrder": 1050,
5753
- "sourceLine": 20
5753
+ "sourceLine": 24
5754
5754
  },
5755
5755
  {
5756
5756
  "name": "--cs-term-border",
@@ -5858,8 +5858,8 @@
5858
5858
  "kind": "css-expression",
5859
5859
  "definedIn": "base/glass.css",
5860
5860
  "important": false,
5861
- "declarationOrder": 1063,
5862
- "sourceLine": 12
5861
+ "declarationOrder": 1066,
5862
+ "sourceLine": 15
5863
5863
  },
5864
5864
  {
5865
5865
  "name": "--cs-glass-whisper-border",
@@ -5867,8 +5867,8 @@
5867
5867
  "kind": "css-expression",
5868
5868
  "definedIn": "base/glass.css",
5869
5869
  "important": false,
5870
- "declarationOrder": 1064,
5871
- "sourceLine": 13
5870
+ "declarationOrder": 1067,
5871
+ "sourceLine": 16
5872
5872
  },
5873
5873
  {
5874
5874
  "name": "--cs-glass-light-bg",
@@ -5876,8 +5876,8 @@
5876
5876
  "kind": "css-expression",
5877
5877
  "definedIn": "base/glass.css",
5878
5878
  "important": false,
5879
- "declarationOrder": 1065,
5880
- "sourceLine": 14
5879
+ "declarationOrder": 1068,
5880
+ "sourceLine": 17
5881
5881
  },
5882
5882
  {
5883
5883
  "name": "--cs-glass-light-border",
@@ -5885,8 +5885,8 @@
5885
5885
  "kind": "css-expression",
5886
5886
  "definedIn": "base/glass.css",
5887
5887
  "important": false,
5888
- "declarationOrder": 1066,
5889
- "sourceLine": 15
5888
+ "declarationOrder": 1069,
5889
+ "sourceLine": 18
5890
5890
  },
5891
5891
  {
5892
5892
  "name": "--cs-glass-standard-bg",
@@ -5894,8 +5894,8 @@
5894
5894
  "kind": "css-expression",
5895
5895
  "definedIn": "base/glass.css",
5896
5896
  "important": false,
5897
- "declarationOrder": 1067,
5898
- "sourceLine": 16
5897
+ "declarationOrder": 1070,
5898
+ "sourceLine": 19
5899
5899
  },
5900
5900
  {
5901
5901
  "name": "--cs-glass-standard-border",
@@ -5903,8 +5903,8 @@
5903
5903
  "kind": "css-expression",
5904
5904
  "definedIn": "base/glass.css",
5905
5905
  "important": false,
5906
- "declarationOrder": 1068,
5907
- "sourceLine": 17
5906
+ "declarationOrder": 1071,
5907
+ "sourceLine": 20
5908
5908
  },
5909
5909
  {
5910
5910
  "name": "--cs-glass-heavy-bg",
@@ -5912,8 +5912,8 @@
5912
5912
  "kind": "css-expression",
5913
5913
  "definedIn": "base/glass.css",
5914
5914
  "important": false,
5915
- "declarationOrder": 1069,
5916
- "sourceLine": 18
5915
+ "declarationOrder": 1072,
5916
+ "sourceLine": 21
5917
5917
  },
5918
5918
  {
5919
5919
  "name": "--cs-glass-heavy-border",
@@ -5921,8 +5921,8 @@
5921
5921
  "kind": "css-expression",
5922
5922
  "definedIn": "base/glass.css",
5923
5923
  "important": false,
5924
- "declarationOrder": 1070,
5925
- "sourceLine": 19
5924
+ "declarationOrder": 1073,
5925
+ "sourceLine": 22
5926
5926
  },
5927
5927
  {
5928
5928
  "name": "--cs-color-border-default",
@@ -5937,7 +5937,7 @@
5937
5937
  }
5938
5938
  ],
5939
5939
  "important": false,
5940
- "declarationOrder": 1071,
5940
+ "declarationOrder": 1074,
5941
5941
  "sourceLine": 144
5942
5942
  },
5943
5943
  {
@@ -5953,7 +5953,7 @@
5953
5953
  }
5954
5954
  ],
5955
5955
  "important": false,
5956
- "declarationOrder": 1072,
5956
+ "declarationOrder": 1075,
5957
5957
  "sourceLine": 144
5958
5958
  },
5959
5959
  {
@@ -5969,7 +5969,7 @@
5969
5969
  }
5970
5970
  ],
5971
5971
  "important": false,
5972
- "declarationOrder": 1073,
5972
+ "declarationOrder": 1076,
5973
5973
  "sourceLine": 145
5974
5974
  },
5975
5975
  {
@@ -5985,7 +5985,7 @@
5985
5985
  }
5986
5986
  ],
5987
5987
  "important": false,
5988
- "declarationOrder": 1074,
5988
+ "declarationOrder": 1077,
5989
5989
  "sourceLine": 145
5990
5990
  },
5991
5991
  {
@@ -6001,7 +6001,7 @@
6001
6001
  }
6002
6002
  ],
6003
6003
  "important": false,
6004
- "declarationOrder": 1075,
6004
+ "declarationOrder": 1078,
6005
6005
  "sourceLine": 150
6006
6006
  },
6007
6007
  {
@@ -6017,7 +6017,7 @@
6017
6017
  }
6018
6018
  ],
6019
6019
  "important": false,
6020
- "declarationOrder": 1076,
6020
+ "declarationOrder": 1079,
6021
6021
  "sourceLine": 150
6022
6022
  }
6023
6023
  ],
package/_esm/cs.mjs CHANGED
@@ -1,4 +1,4 @@
1
- // CyberSkill Design System — ESM entry point (GENERATED by scripts/generate-export-catalog.mjs at v2.1.0).
1
+ // CyberSkill Design System — ESM entry point (GENERATED by scripts/generate-export-catalog.mjs at v2.3.0).
2
2
  // No build step: import this module directly in a browser. It loads the pinned umd-react@19.2.8
3
3
  // distribution; its retained React and ReactDOM files report runtime version 19.2.4.
4
4
  // (official React 19 dropped UMD; pinned + SRI; skipped when window.React already exists), side-loads
@@ -33,7 +33,7 @@ if (!found()) await ensureScript("../_ds_bundle.js");
33
33
  export const CS = g[found()];
34
34
  if (!CS) throw new Error("cs.js: bundle loaded but no CyberSkillDesignSystem_* namespace found");
35
35
  export default CS;
36
- export const VERSION = "2.1.0";
36
+ export const VERSION = "2.3.0";
37
37
  export const AIDisclosureBadge = CS.AIDisclosureBadge;
38
38
  export const Accordion = CS.Accordion;
39
39
  export const Alert = CS.Alert;
@@ -27,7 +27,7 @@ button.cs-item--interactive { border: 1px solid transparent; background: var(--c
27
27
  .cs-item--interactive:hover { background: var(--cs-color-surface-raised); border-color: var(--cs-color-border-default); }
28
28
  }
29
29
  .cs-item--interactive:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
30
- .cs-item.is-selected { border-color: var(--cs-color-brand-ochre); background: var(--cs-accent-tint, var(--cs-color-surface-raised)); }
30
+ .cs-item.is-selected { border-color: var(--cs-accent); background: var(--cs-accent-tint, var(--cs-color-surface-raised)); }
31
31
  .cs-item.is-disabled, .cs-item[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; pointer-events: none; }
32
32
  /* Static Item text remains information, rather than an inactive control. */
33
33
  div.cs-item.is-disabled { opacity: 1; }
@@ -47,7 +47,7 @@ div.cs-item.is-disabled { opacity: 1; }
47
47
  .cs-timeline__item { display: grid; grid-template-columns: 26px 1fr; gap: 14px; padding-block-end: var(--cs-space-5); position: relative; }
48
48
  .cs-timeline__item:not(:last-child)::before { content: ""; position: absolute; inset-block: 26px 0; inset-inline-start: 12px; inline-size: 2px; background: var(--cs-color-border-default); }
49
49
  .cs-timeline__marker { inline-size: 26px; block-size: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg, #fff); font-size: var(--cs-font-size-xs); font-weight: 700; z-index: 1; }
50
- .cs-timeline__item--now .cs-timeline__marker { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); }
50
+ .cs-timeline__item--now .cs-timeline__marker { background: var(--cs-accent-bright); color: var(--cs-accent-on); }
51
51
  .cs-timeline__item--todo .cs-timeline__marker { background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); }
52
52
  .cs-timeline__title { font-weight: 700; margin: 2px 0 2px; }
53
53
  .cs-timeline__meta { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); font-family: var(--cs-font-family-mono); }
@@ -92,7 +92,7 @@ div.cs-item.is-disabled { opacity: 1; }
92
92
 
93
93
  /* EmptyState */
94
94
  .cs-empty { text-align: center; padding: 48px 24px; display: grid; gap: 8px; justify-items: center; }
95
- .cs-empty__icon { inline-size: 56px; block-size: 56px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in oklab, var(--cs-color-brand-ochre) 24%, var(--cs-color-surface-panel)); color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); margin-block-end: 6px; }
95
+ .cs-empty__icon { inline-size: 56px; block-size: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 24%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); margin-block-end: 6px; }
96
96
  .cs-empty__title { font-size: var(--cs-text-h4); font-weight: 700; }
97
97
  .cs-empty__body { color: var(--cs-color-text-muted); max-inline-size: 380px; }
98
98
  .cs-empty__actions { margin-block-start: 12px; display: flex; gap: 10px; }
@@ -38,8 +38,8 @@
38
38
 
39
39
  .cs-button--secondary {
40
40
  background: var(--cs-color-surface-panel, #ffffff);
41
- border-color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-brand-ochre));
42
- color: var(--_cs-light, var(--cs-color-brand-umber, #45210e))var(--_cs-dark, var(--cs-color-brand-ochre));
41
+ border-color: var(--_cs-light, var(--cs-accent-strong, #45210e))var(--_cs-dark, var(--cs-accent, #f4ba17));
42
+ color: var(--_cs-light, var(--cs-color-text-accent, #45210e))var(--_cs-dark, var(--cs-color-text-accent, #f4ba17));
43
43
  }
44
44
  .cs-button--secondary:hover { background: var(--cs-color-surface-raised, #fbf4e9); filter: none; }
45
45
 
@@ -129,7 +129,7 @@
129
129
 
130
130
  /* ---- Dialog ---- */
131
131
  .cs-dialog-layer { inset: 0; position: fixed; z-index: var(--cs-depth-modal); }
132
- .cs-dialog__overlay { background: rgba(31, 19, 11, 0.42); inset: 0; position: absolute; }
132
+ .cs-dialog__overlay { background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); inset: 0; position: absolute; }
133
133
  .cs-dialog {
134
134
  background: var(--cs-color-surface-panel, #ffffff);
135
135
  border-radius: var(--cs-radius-md, 8px);
@@ -190,9 +190,14 @@
190
190
  .cs-table-wrap--status { padding: var(--cs-space-4, 16px) 0; }
191
191
  .cs-table { border-collapse: collapse; color: var(--cs-color-text-primary, #45210e); inline-size: 100%; }
192
192
  .cs-table th, .cs-table td {
193
- border-block-end: 1px solid rgba(69, 33, 14, 0.18);
193
+ border-block-end: 1px solid var(--cs-color-border-subtle, var(--_cs-border-subtle));
194
194
  padding: 0.625rem 0.75rem; text-align: start;
195
195
  }
196
+ .cs-table th.cs-table__cell--numeric,
197
+ .cs-table td.cs-table__cell--numeric {
198
+ font-variant-numeric: tabular-nums;
199
+ text-align: end;
200
+ }
196
201
  .cs-table thead th {
197
202
  font-size: var(--cs-font-size-xs, 0.75rem); text-transform: uppercase;
198
203
  letter-spacing: var(--cs-letter-spacing-caps, 0.08em); color: var(--cs-color-text-muted, #3f2d21);
@@ -210,7 +215,7 @@
210
215
  .cs-ai-disclosure__panel {
211
216
  background: var(--cs-color-surface-panel, #ffffff);
212
217
  color: var(--cs-color-text-primary, #45210e);
213
- border: 1px solid rgba(69, 33, 14, 0.18); border-radius: var(--cs-radius-md, 8px);
218
+ border: 1px solid var(--cs-color-border-subtle, var(--_cs-border-subtle)); border-radius: var(--cs-radius-md, 8px);
214
219
  box-shadow: var(--cs-shadow-xs, 0 1px 2px rgba(31, 19, 11, 0.08));
215
220
  display: grid; gap: 0.375rem; inset-block-start: calc(100% + 0.375rem); inset-inline-start: 0;
216
221
  min-inline-size: 18rem; padding: 0.75rem; position: absolute; z-index: var(--cs-depth-dropdown, 60);
package/base/controls.css CHANGED
@@ -29,12 +29,12 @@
29
29
  .cs-stepper input::-webkit-outer-spin-button, .cs-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
30
30
 
31
31
  /* Slider (native range) */
32
- .cs-slider { inline-size: 100%; accent-color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); block-size: 22px; cursor: pointer; }
32
+ .cs-slider { inline-size: 100%; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); block-size: 22px; cursor: pointer; }
33
33
  .cs-slider:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 4px; border-radius: var(--cs-radius-full); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
34
34
 
35
35
  /* FileUpload / dropzone */
36
36
  .cs-dropzone { display: grid; gap: 6px; justify-items: center; text-align: center; border: 2px dashed var(--cs-color-border-default); border-radius: var(--cs-radius-lg); padding: 28px 24px; background: var(--cs-color-surface-raised); cursor: pointer; color: var(--cs-color-text-primary); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), background var(--cs-duration-fast) var(--cs-ease-standard); }
37
- .cs-dropzone:hover, .cs-dropzone.is-dragging { border-color: var(--cs-color-brand-ochre); background: color-mix(in oklab, var(--cs-color-brand-ochre) 8%, var(--cs-color-surface-panel)); }
37
+ .cs-dropzone:hover, .cs-dropzone.is-dragging { border-color: var(--cs-accent); background: color-mix(in oklab, var(--cs-accent) 8%, var(--cs-color-surface-panel)); }
38
38
  .cs-dropzone__icon { color: var(--cs-color-text-accent); }
39
39
  .cs-dropzone__title { font-weight: 700; }
40
40
  .cs-dropzone__hint { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }
@@ -42,7 +42,7 @@
42
42
  /* SegmentedControl (matches Status Hub lens switcher) */
43
43
  .cs-segmented { display: inline-flex; gap: 4px; background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-full); padding: 3px; }
44
44
  .cs-segmented button { border: 0; background: transparent; border-radius: var(--cs-radius-full); padding: 7px 15px; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-accent); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
45
- .cs-segmented button[aria-checked="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-selected="true"] { background: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); color: var(--_cs-light, var(--cs-color-text-inverse))var(--_cs-dark, var(--cs-color-brand-umber)); }
45
+ .cs-segmented button[aria-checked="true"], .cs-segmented button[aria-pressed="true"], .cs-segmented button[aria-selected="true"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); }
46
46
 
47
47
  /* StatusIndicator */
48
48
  .cs-status { display: inline-flex; align-items: center; gap: 7px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-sm); font-weight: 600; color: var(--cs-color-text-primary); }
@@ -65,7 +65,7 @@
65
65
  .cs-toggle:disabled { opacity: .5; cursor: not-allowed; }
66
66
  .cs-rating { display: inline-flex; gap: 4px; }
67
67
  .cs-rating button { background: none; border: 0; padding: 2px; cursor: pointer; color: var(--cs-color-border-default); display: grid; place-items: center; }
68
- .cs-rating button.on { color: var(--cs-color-brand-ochre); }
68
+ .cs-rating button.on { color: var(--cs-accent); }
69
69
  .cs-rating[data-readonly="true"] button { cursor: default; }
70
70
  .cs-rating button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; border-radius: 4px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
71
71
  .cs-otp { display: inline-flex; gap: 8px; }
@@ -175,7 +175,7 @@
175
175
  @keyframes cs-img-shimmer { from { opacity: .55; } to { opacity: .9; } }
176
176
  .cs-image.is-zoomable { cursor: zoom-in; }
177
177
  .cs-image__fallback { display: grid; place-items: center; min-block-size: 80px; block-size: 100%; color: var(--cs-color-text-muted); }
178
- .cs-image__zoom { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: rgba(26, 17, 8, .82); display: grid; place-items: center; cursor: zoom-out; }
178
+ .cs-image__zoom { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: color-mix(in oklab, var(--cs-color-brand-umber, #45210e) 82%, transparent); display: grid; place-items: center; cursor: zoom-out; }
179
179
  .cs-image__zoom img { max-inline-size: 88vw; max-block-size: 86vh; border-radius: var(--cs-radius-md); box-shadow: var(--cs-shadow-xl); }
180
180
  .cs-image__zoom button { position: absolute; inset-block-start: 18px; inset-inline-end: 18px; inline-size: 40px; block-size: 40px; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .12); color: #fff; /* on-dark-chrome ink */ font-size: var(--cs-font-size-base); cursor: pointer; }
181
181
  .cs-toolbar { display: inline-flex; align-items: center; gap: 4px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-md); padding: 4px; }
@@ -287,8 +287,8 @@
287
287
  .cs-colorpicker__grid button.on { outline: var(--cs-focus-ring, 3px) solid var(--cs-color-accent-ochre); outline-offset: 1px; }
288
288
  .cs-colorpicker__grid button:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
289
289
  .cs-colorpicker__hex input { inline-size: 110px; font: 600 13px var(--cs-font-family-mono); color: var(--cs-color-text-primary); background: var(--cs-color-surface-raised); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-sm); padding: 6px 8px; }
290
- .cs-tour__scrim { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: rgba(26, 17, 8, .45); }
291
- .cs-tour__hole { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 1); border-radius: var(--cs-radius-md); box-shadow: 0 0 0 4000px rgba(26, 17, 8, .45); outline: var(--cs-focus-ring, 3px) solid var(--cs-color-brand-ochre); pointer-events: none; background: transparent; }
290
+ .cs-tour__scrim { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); }
291
+ .cs-tour__hole { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 1); border-radius: var(--cs-radius-md); box-shadow: 0 0 0 4000px var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); outline: var(--cs-focus-ring, 3px) solid var(--cs-color-brand-ochre); pointer-events: none; background: transparent; }
292
292
  .cs-tour__pop { position: fixed; z-index: calc(var(--cs-depth-modal, 100) + 2); inline-size: 280px; background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 14px 16px; }
293
293
  .cs-tour__pop b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }
294
294
  .cs-tour__pop p { margin: 6px 0 12px; font-size: var(--cs-font-size-sm); line-height: 1.5; color: var(--cs-color-text-muted); }
@@ -304,7 +304,7 @@
304
304
  .cs-splitter__bar { inline-size: 8px; cursor: col-resize; background: var(--cs-color-surface-raised); border-inline: 1px solid var(--cs-color-border-default); touch-action: none; }
305
305
  .cs-splitter__bar:hover { background: var(--cs-accent-tint); }
306
306
  .cs-splitter__bar:focus-visible { background: var(--cs-color-surface-raised); outline: 2px solid var(--cs-color-text-primary); outline-offset: -2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
307
- .cs-hotkeys__sheet { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: rgba(26, 17, 8, .45); display: grid; place-items: center; }
307
+ .cs-hotkeys__sheet { position: fixed; inset: 0; z-index: var(--cs-depth-modal, 100); background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); display: grid; place-items: center; }
308
308
  .cs-hotkeys__card { background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); padding: 18px 20px; min-inline-size: 300px; }
309
309
  .cs-hotkeys__card b { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-primary); }
310
310
  .cs-hotkeys__card ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
package/base/data.css CHANGED
@@ -3,8 +3,10 @@
3
3
  /* Card */
4
4
  .cs-card { background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-sm); color: var(--cs-color-text-primary); overflow: hidden; }
5
5
  .cs-card--flat { box-shadow: none; }
6
+ .cs-card--raised { background: var(--cs-color-surface-raised); }
7
+ .cs-card--featured { background: var(--_cs-light, var(--cs-color-surface-raised))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 12%, var(--cs-color-surface-panel))); border-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); box-shadow: var(--cs-shadow-md); }
6
8
  .cs-card--interactive { cursor: pointer; transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }
7
- .cs-card--interactive:hover { border-color: var(--cs-color-brand-ochre); box-shadow: var(--cs-shadow-md); }
9
+ .cs-card--interactive:hover { border-color: var(--cs-accent); box-shadow: var(--cs-shadow-md); }
8
10
  .cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre), var(--cs-shadow-sm); transition: border-color var(--cs-duration-fast) var(--cs-ease-standard), transform var(--cs-duration-fast) var(--cs-ease-standard); }
9
11
  .cs-card--flat.cs-card--interactive:focus-visible { box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
10
12
  .cs-card--interactive:active { transform: translateY(1px); }
@@ -27,7 +29,7 @@
27
29
  .cs-stat__delta--flat { color: var(--cs-color-text-muted); }
28
30
 
29
31
  /* Avatar */
30
- .cs-avatar { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--cs-color-brand-umber); color: var(--cs-color-brand-ochre); font-family: var(--cs-font-family-ui); font-weight: 700; flex: none; user-select: none; }
32
+ .cs-avatar { display: inline-grid; place-items: center; overflow: hidden; border-radius: 50%; background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); font-family: var(--cs-font-family-ui); font-weight: 700; flex: none; user-select: none; }
31
33
  .cs-avatar img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
32
34
  .cs-avatar--sm { inline-size: 28px; block-size: 28px; font-size: var(--cs-font-size-xs); }
33
35
  .cs-avatar--md { inline-size: 40px; block-size: 40px; font-size: var(--cs-font-size-sm); }
package/base/feedback.css CHANGED
@@ -1,9 +1,11 @@
1
1
  /* CyberSkill — feedback + status (.cs-*). Semantic colour never the only signal. */
2
2
 
3
3
  /* Badge — compact status label */
4
- .cs-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-xs); font-weight: 700; line-height: 1; padding: 4px 9px; border-radius: var(--cs-radius-full); text-transform: uppercase; letter-spacing: 0.04em; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }
4
+ .cs-badge { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cs-font-family-ui); font-size: var(--cs-font-size-xs); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; padding: 4px 9px; border-radius: var(--cs-radius-full); text-transform: uppercase; letter-spacing: 0.04em; background: var(--cs-color-surface-raised); color: var(--cs-color-text-accent); border: 1px solid var(--cs-color-border-default); }
5
5
  .cs-badge--solid { border-color: transparent; color: #fff; /* on-brand-umber ink (allowlisted; text-inverse flips in dark) */ background: var(--cs-color-brand-umber); }
6
6
  .cs-badge--ochre { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border-color: transparent; }
7
+ [data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--solid { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); }
8
+ [data-cs-element]:not([data-cs-element="tho"]:not([data-cs-variant]), [data-cs-element="tho"][data-cs-variant=""]) .cs-badge--ochre { background: var(--cs-accent-tint); color: var(--cs-color-text-accent); border-color: color-mix(in oklab, var(--cs-accent) 55%, transparent); }
7
9
  .cs-badge--success { background: var(--cs-color-semantic-success); color: var(--cs-color-semantic-success-fg); border-color: transparent; }
8
10
  .cs-badge--danger { background: var(--cs-color-semantic-danger); color: var(--cs-color-semantic-danger-fg); border-color: transparent; }
9
11
  .cs-badge--warning { background: var(--cs-color-semantic-warning); color: var(--cs-color-semantic-warning-fg); border-color: transparent; }
@@ -49,12 +51,12 @@
49
51
  @media (prefers-reduced-motion: reduce) { .cs-toast { animation: none; } }
50
52
 
51
53
  /* Spinner */
52
- .cs-spinner { display: inline-block; inline-size: 20px; block-size: 20px; border-radius: 50%; border: 2.5px solid color-mix(in oklab, var(--cs-color-brand-umber) 22%, transparent); border-color: var(--_cs-light, color-mix(in oklab, var(--cs-color-brand-umber) 22%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-color-brand-ochre) 26%, transparent)); border-top-color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); animation: cs-spin 0.62s linear infinite; }
54
+ .cs-spinner { display: inline-block; inline-size: 20px; block-size: 20px; border-radius: 50%; border: 2.5px solid color-mix(in oklab, var(--cs-accent-strong) 22%, transparent); border-color: var(--_cs-light, color-mix(in oklab, var(--cs-accent-strong) 22%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 26%, transparent)); border-top-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); animation: cs-spin 0.62s linear infinite; }
53
55
  @media (prefers-reduced-motion: reduce) { .cs-spinner { animation: none; } }
54
56
 
55
57
  /* Progress bar */
56
58
  .cs-progress { inline-size: 100%; block-size: 10px; border-radius: var(--cs-radius-full); background: var(--cs-color-surface-raised); overflow: hidden; }
57
- .cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-color-brand-ochre); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }
59
+ .cs-progress__fill { display: block; block-size: 100%; border-radius: inherit; background: var(--cs-accent); transition: inline-size var(--cs-duration-slow) var(--cs-ease-standard); }
58
60
  .cs-progress--umber .cs-progress__fill { background: var(--cs-color-brand-umber); }
59
61
  .cs-progress--success .cs-progress__fill { background: var(--cs-color-semantic-success); }
60
62
 
package/base/forms.css CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  /* Checkbox + Radio — native, brand accent */
19
19
  .cs-check, .cs-radio { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); line-height: 1.4; }
20
- .cs-check input, .cs-radio input { inline-size: 20px; block-size: 20px; margin: 0; flex: none; accent-color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); cursor: pointer; }
20
+ .cs-check input, .cs-radio input { inline-size: 20px; block-size: 20px; margin: 0; flex: none; accent-color: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); cursor: pointer; }
21
21
  .cs-check.is-disabled, .cs-radio.is-disabled { opacity: 0.55; cursor: not-allowed; }
22
22
  .cs-check__text, .cs-radio__text { display: grid; gap: 2px; }
23
23
  .cs-check__desc, .cs-radio__desc { font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); }
@@ -29,7 +29,7 @@
29
29
  .cs-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
30
30
  .cs-switch__track { inline-size: 44px; block-size: 26px; border-radius: 999px; background: var(--cs-color-border-default); position: relative; transition: background var(--cs-duration-fast) var(--cs-ease-standard); flex: none; }
31
31
  .cs-switch__track::after { content: ""; position: absolute; inset-block-start: 3px; inset-inline-start: 3px; inline-size: 20px; block-size: 20px; border-radius: 50%; background: var(--cs-color-surface-panel, #fff); box-shadow: var(--cs-shadow-xs); transition: transform var(--cs-duration-fast) var(--cs-ease-standard); }
32
- .cs-switch input:checked + .cs-switch__track { background: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); }
32
+ .cs-switch input:checked + .cs-switch__track { background: var(--_cs-light, var(--cs-accent-strong))var(--_cs-dark, var(--cs-accent)); }
33
33
  .cs-switch input:checked + .cs-switch__track::after { transform: translateX(18px); }
34
34
  .cs-switch input:focus-visible + .cs-switch__track { outline: 2px solid var(--cs-color-text-primary); outline-offset: 2px; box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
35
35
  .cs-switch:focus-within { outline-style: solid; outline-width: 2px; outline-color: var(--cs-color-text-primary); outline-offset: 4px; border-radius: 6px; }
package/base/glass.css CHANGED
@@ -9,6 +9,9 @@
9
9
 
10
10
  /* ---- 1. Composition from token scalars ---- */
11
11
  :root {
12
+ --_cs-border-subtle: var(--_cs-light, color-mix(in srgb, var(--cs-color-brand-umber, #45210e) 18%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-color-border-default, #4a3a2c) 82%, transparent));
13
+ --_cs-border-strong: var(--_cs-light, color-mix(in oklab, var(--cs-color-border-default, #e7d9c6) 65%, var(--cs-color-text-primary, #45210e)))var(--_cs-dark, color-mix(in oklab, var(--cs-color-border-default, #4a3a2c) 65%, var(--cs-color-text-primary, #f5ead9)));
14
+ --_cs-surface-scrim: var(--_cs-light, color-mix(in oklab, var(--cs-color-brand-umber, #45210e) 48%, transparent))var(--_cs-dark, color-mix(in oklab, var(--cs-color-surface-page, #1a1108) 72%, transparent));
12
15
  --cs-glass-whisper-bg: color-mix(in oklab, var(--cs-color-surface-page, #fffdf8) var(--cs-glass-whisper-opacity, 60%), transparent);
13
16
  --cs-glass-whisper-border: transparent;
14
17
  --cs-glass-light-bg: color-mix(in oklab, var(--cs-color-surface-panel, #fff) var(--cs-glass-light-opacity, 70%), transparent);
@@ -107,8 +110,8 @@
107
110
  .cs-aurora {
108
111
  background-color: var(--cs-color-brand-umber);
109
112
  background-image:
110
- radial-gradient(90% 120% at 12% -10%, color-mix(in oklab, var(--cs-color-brand-ochre) 46%, transparent), transparent 55%),
111
- radial-gradient(70% 90% at 88% 8%, color-mix(in oklab, #ffcf5c 32%, transparent), transparent 60%),
113
+ radial-gradient(90% 120% at 12% -10%, color-mix(in oklab, var(--cs-accent, var(--cs-color-brand-ochre)) 46%, transparent), transparent 55%),
114
+ radial-gradient(70% 90% at 88% 8%, color-mix(in oklab, var(--cs-accent-grad-b, #ffcf5c) 32%, transparent), transparent 60%),
112
115
  radial-gradient(120% 120% at 50% 120%, color-mix(in oklab, #1a1108 60%, transparent), transparent 60%);
113
116
  color: #fff; /* on-aurora wash */
114
117
  }
@@ -12,7 +12,7 @@
12
12
  }
13
13
  .cs-button--primary:hover:not(.is-disabled),
14
14
  .cs-button--danger:hover:not(.is-disabled) {
15
- box-shadow: 0 8px 20px rgba(69, 33, 14, 0.24);
15
+ box-shadow: var(--_cs-light, 0 8px 20px color-mix(in srgb, var(--cs-color-brand-umber, #45210e) 24%, transparent))var(--_cs-dark, var(--cs-shadow-md));
16
16
  transform: translateY(-1px);
17
17
  }
18
18
  .cs-button--primary:active:not(.is-disabled),
@@ -4,7 +4,7 @@
4
4
  .cs-tabs { display: flex; gap: 4px; overflow-x: auto; border-block-end: 1px solid var(--cs-color-border-default); }
5
5
  .cs-tab { flex-shrink: 0; appearance: none; border: 0; background: transparent; font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); color: var(--cs-color-text-muted); padding: 10px 14px; cursor: pointer; position: relative; border-block-end: 2px solid transparent; margin-block-end: 0; display: inline-flex; align-items: center; gap: 7px; }
6
6
  .cs-tab:hover { color: var(--cs-color-text-primary); }
7
- .cs-tab[aria-selected="true"] { color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); border-block-end-color: var(--cs-color-brand-ochre); }
7
+ .cs-tab[aria-selected="true"] { color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); border-block-end-color: var(--cs-accent); }
8
8
  .cs-tab:focus-visible { outline: 2px solid var(--cs-color-text-primary); outline-offset: -3px; border-radius: var(--cs-radius-sm); box-shadow: 0 0 0 5px var(--cs-color-accent-ochre); }
9
9
  .cs-tab__count { font-family: var(--cs-font-family-mono); font-size: var(--cs-font-size-xs); background: var(--cs-color-surface-raised); border-radius: var(--cs-radius-full); padding: 1px 7px; }
10
10
 
@@ -17,10 +17,10 @@
17
17
  .cs-breadcrumb__current { color: var(--cs-color-text-primary); font-weight: 600; }
18
18
 
19
19
  /* Pagination */
20
- .cs-pagination { display: inline-flex; align-items: center; gap: 4px; }
20
+ .cs-pagination { display: inline-flex; align-items: center; gap: 4px; font-variant-numeric: tabular-nums; }
21
21
  .cs-pagination button { min-inline-size: 38px; block-size: 38px; padding: 0 10px; border: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); color: var(--cs-color-text-primary); border-radius: var(--cs-radius-md); font: inherit; font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); cursor: pointer; display: inline-grid; place-items: center; }
22
- .cs-pagination button:hover:not(:disabled) { border-color: var(--cs-color-brand-ochre); }
23
- .cs-pagination button[aria-current="page"] { background: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); color: var(--_cs-light, var(--cs-color-text-inverse))var(--_cs-dark, var(--cs-color-brand-umber)); border-color: transparent; }
22
+ .cs-pagination button:hover:not(:disabled) { border-color: var(--cs-accent); }
23
+ .cs-pagination button[aria-current="page"] { background: var(--_cs-light, var(--cs-component-button-primary-bg))var(--_cs-dark, var(--cs-component-button-primary-bg)); color: var(--_cs-light, var(--cs-component-button-primary-fg))var(--_cs-dark, var(--cs-component-button-primary-fg)); border-color: transparent; }
24
24
  .cs-pagination button:disabled { opacity: 0.45; cursor: not-allowed; }
25
25
  .cs-pagination__ellipsis { padding: 0 4px; color: var(--cs-color-text-muted); }
26
26
 
@@ -37,10 +37,14 @@ img, svg, video, canvas { max-width: 100%; height: auto; }
37
37
  @media screen and (max-width: 768px) {
38
38
  .cs-desk { padding: 24px 10px !important; }
39
39
  .cs-sheet { padding: 40px 40px !important; }
40
+ .cs-display:where(:not(.cs-canvas-desk *)) { font-size: var(--cs-font-size-4xl); }
41
+ .cs-h1:where(:not(.cs-canvas-desk *)) { font-size: var(--cs-font-size-2xl); }
40
42
  }
41
43
  @media screen and (max-width: 640px) {
42
44
  .cs-desk { padding: 12px 6px !important; }
43
45
  .cs-sheet { padding: 26px 20px !important; border-radius: 8px !important; }
46
+ .cs-display:where(:not(.cs-canvas-desk *)) { font-size: var(--cs-font-size-3xl); }
47
+ .cs-h1:where(:not(.cs-canvas-desk *)) { font-size: var(--cs-font-size-xl); }
44
48
  }
45
49
  @media screen and (max-width: 360px) {
46
50
  .cs-sheet { padding: 20px 15px !important; }
package/base/shell.css CHANGED
@@ -6,8 +6,8 @@
6
6
  .cs-nav-item { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border-radius: var(--cs-radius-md); color: var(--cs-color-text-primary); font-family: var(--cs-font-family-ui); font-weight: 600; font-size: var(--cs-font-size-sm); text-decoration: none; cursor: pointer; border: 0; background: transparent; inline-size: 100%; text-align: start; }
7
7
  .cs-nav-item:hover { background: var(--cs-color-surface-raised); }
8
8
  .cs-nav-item__icon { flex: none; color: var(--cs-color-text-muted); display: grid; place-items: center; }
9
- .cs-nav-item.is-active { background: color-mix(in oklab, var(--cs-color-brand-ochre) 22%, var(--cs-color-surface-panel)); color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); }
10
- .cs-nav-item.is-active .cs-nav-item__icon { color: var(--_cs-light, var(--cs-color-brand-umber))var(--_cs-dark, var(--cs-color-brand-ochre)); }
9
+ .cs-nav-item.is-active { background: var(--_cs-light, var(--cs-accent-tint))var(--_cs-dark, color-mix(in oklab, var(--cs-accent) 22%, var(--cs-color-surface-panel))); color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); }
10
+ .cs-nav-item.is-active .cs-nav-item__icon { color: var(--_cs-light, var(--cs-color-text-accent))var(--_cs-dark, var(--cs-color-text-accent)); }
11
11
  .cs-nav-item__trail { margin-inline-start: auto; }
12
12
 
13
13
  /* Steps */
@@ -15,9 +15,9 @@
15
15
  .cs-step { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; position: relative; padding-inline-end: 12px; }
16
16
  .cs-step:not(:last-child)::after { content: ""; position: absolute; inset-block-start: 13px; inset-inline-start: 34px; inline-size: calc(100% - 46px); block-size: 2px; background: var(--cs-color-border-default); }
17
17
  .cs-step__marker { inline-size: 28px; block-size: 28px; border-radius: 50%; display: grid; place-items: center; font-family: var(--cs-font-family-mono); font-weight: 700; font-size: var(--cs-font-size-sm); background: var(--cs-color-surface-raised); color: var(--cs-color-text-muted); border: 1px solid var(--cs-color-border-default); z-index: 1; }
18
- .cs-step--done .cs-step__marker { background: var(--cs-color-brand-umber); color: #fff; /* on-brand-umber ink */ border-color: transparent; }
19
- .cs-step--done:not(:last-child)::after { background: var(--cs-color-brand-umber); }
20
- .cs-step--active .cs-step__marker { background: var(--cs-color-brand-ochre); color: var(--cs-color-brand-umber); border-color: transparent; box-shadow: 0 0 0 4px color-mix(in oklab, var(--cs-color-brand-ochre) 28%, transparent); }
18
+ .cs-step--done .cs-step__marker { background: var(--cs-accent-strong); color: var(--cs-accent-on-strong); border-color: transparent; }
19
+ .cs-step--done:not(:last-child)::after { background: var(--cs-accent-strong); }
20
+ .cs-step--active .cs-step__marker { background: var(--cs-accent-bright); color: var(--cs-accent-on); border-color: transparent; box-shadow: 0 0 0 4px color-mix(in oklab, var(--cs-accent) 28%, transparent); }
21
21
  .cs-step__title { font-weight: 700; font-size: var(--cs-font-size-sm); }
22
22
  .cs-step__body { font-size: var(--cs-font-size-xs); color: var(--cs-color-text-muted); }
23
23
 
@@ -27,9 +27,9 @@
27
27
  .cs-popover__panel--end { inset-inline-start: auto; inset-inline-end: 0; }
28
28
 
29
29
  /* Drawer */
30
- .cs-drawer-scrim { position: fixed; inset: 0; background: rgba(31, 19, 11, 0.42); z-index: var(--cs-depth-modal); }
31
- .cs-drawer { position: fixed; inset-block: 0; inset-inline-end: 0; inline-size: min(480px, 100%); background: var(--cs-color-surface-page); border-inline-start: 1px solid var(--cs-color-border-default); box-shadow: -18px 0 48px rgba(31, 19, 11, 0.22); z-index: calc(var(--cs-depth-modal) + 1); display: flex; flex-direction: column; animation: cs-drawer-in var(--cs-duration-base) var(--cs-ease-standard); }
32
- .cs-drawer--left { inset-inline: 0 auto; border-inline: none; border-inline-end: 1px solid var(--cs-color-border-default); box-shadow: 18px 0 48px rgba(31, 19, 11, 0.22); animation-name: cs-drawer-in-left; }
30
+ .cs-drawer-scrim { position: fixed; inset: 0; background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); z-index: var(--cs-depth-modal); }
31
+ .cs-drawer { position: fixed; inset-block: 0; inset-inline-end: 0; inline-size: min(480px, 100%); background: var(--cs-color-surface-page); border-inline-start: 1px solid var(--cs-color-border-default); box-shadow: var(--_cs-light, -18px 0 48px color-mix(in srgb, var(--cs-color-brand-umber, #45210e) 22%, transparent))var(--_cs-dark, var(--cs-shadow-xl)); z-index: calc(var(--cs-depth-modal) + 1); display: flex; flex-direction: column; animation: cs-drawer-in var(--cs-duration-base) var(--cs-ease-standard); }
32
+ .cs-drawer--left { inset-inline: 0 auto; border-inline: none; border-inline-end: 1px solid var(--cs-color-border-default); box-shadow: var(--_cs-light, 18px 0 48px color-mix(in srgb, var(--cs-color-brand-umber, #45210e) 22%, transparent))var(--_cs-dark, var(--cs-shadow-xl)); animation-name: cs-drawer-in-left; }
33
33
  .cs-drawer__header { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-block-end: 1px solid var(--cs-color-border-default); background: var(--cs-color-surface-panel); }
34
34
  .cs-drawer__title { margin: 0; font-size: var(--cs-text-h4); font-weight: 700; }
35
35
  .cs-drawer__close { margin-inline-start: auto; border: 0; background: transparent; cursor: pointer; color: var(--cs-color-text-muted); display: grid; place-items: center; padding: 4px; }
@@ -41,7 +41,7 @@
41
41
  @media (prefers-reduced-motion: reduce) { .cs-drawer { animation: none; } }
42
42
 
43
43
  /* CommandPalette */
44
- .cs-cmdk-scrim { position: fixed; inset: 0; background: rgba(31, 19, 11, 0.42); z-index: var(--cs-depth-modal); display: grid; align-items: start; justify-items: center; padding-block-start: 12vh; }
44
+ .cs-cmdk-scrim { position: fixed; inset: 0; background: var(--cs-color-surface-scrim, var(--_cs-surface-scrim)); z-index: var(--cs-depth-modal); display: grid; align-items: start; justify-items: center; padding-block-start: 12vh; }
45
45
  .cs-cmdk { inline-size: min(560px, 92vw); background: var(--cs-color-surface-panel); border: 1px solid var(--cs-color-border-default); border-radius: var(--cs-radius-lg); box-shadow: var(--cs-shadow-xl); overflow: hidden; }
46
46
  .cs-cmdk__search { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-block-end: 1px solid var(--cs-color-border-default); }
47
47
  .cs-cmdk__search svg { color: var(--cs-color-text-muted); }
@@ -2,7 +2,9 @@
2
2
  * weight + tracking so consumers write intent (.cs-h1) not magic numbers.
3
3
  * Built on the semantic aliases in tokens/typography.css. */
4
4
  .cs-display { font-family: var(--cs-heading-family); font-size: var(--cs-text-display); line-height: var(--cs-font-lineHeight-tight); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
5
+ .cs-display--fluid { font-family: var(--cs-heading-family); font-size: clamp(2.25rem, 1.5rem + 3.5vw, var(--cs-text-display)); line-height: var(--cs-font-lineHeight-tight); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
5
6
  .cs-h1 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h1); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
7
+ .cs-h1--fluid { font-family: var(--cs-heading-family); font-size: clamp(1.75rem, 1.25rem + 2vw, var(--cs-text-h1)); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight-strong); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
6
8
  .cs-h2 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h2); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight); letter-spacing: var(--cs-heading-tracking); text-wrap: balance; overflow-wrap: break-word; }
7
9
  .cs-h3 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h3); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-heading-weight); overflow-wrap: break-word; }
8
10
  .cs-h4 { font-family: var(--cs-heading-family); font-size: var(--cs-text-h4); line-height: var(--cs-font-lineHeight-heading); font-weight: var(--cs-font-weight-semibold); }
@@ -12,6 +14,8 @@
12
14
  .cs-caption { font-family: var(--cs-font-family-ui); font-size: var(--cs-text-caption); line-height: var(--cs-font-lineHeight-body); color: var(--cs-color-text-muted); }
13
15
  .cs-eyebrow { font-family: var(--cs-font-family-ui); font-size: var(--cs-text-eyebrow); font-weight: var(--cs-font-weight-bold); text-transform: uppercase; letter-spacing: var(--cs-letter-spacing-caps); color: var(--cs-color-text-accent); }
14
16
  .cs-mono { font-family: var(--cs-font-family-mono); }
17
+ .cs-tabular { font-variant-numeric: tabular-nums; }
18
+ .cs-prose { max-inline-size: var(--cs-prose-measure, 45rem); line-height: var(--cs-font-lineHeight-body, 1.5); }
15
19
  /* Opt in to the display face for a subtree — retargets --cs-heading-family so
16
20
  * .cs-display/.cs-h1…h4 and bare headings follow, body copy stays on the UI
17
21
  * face. Space Grotesk tops out at 700, so --cs-heading-weight-strong (800)
@@ -3,7 +3,7 @@
3
3
  "interpretation": "Discovery projection: every public export and authored prop definition, with inherited prop counts. Inherited native props, full signatures, support evidence/history and compiler metadata remain in components/api-index.json. Declarations remain authoritative; this projection does not establish runtime, semantic or human acceptance.",
4
4
  "completeIndex": {
5
5
  "path": "components/api-index.json",
6
- "sha256": "8e876f2a86a03a7380c9126c252eb1190becc020b4b59d0b6bf48ca33d7806d4"
6
+ "sha256": "468afbb6e09f78a1be6fe2b2b06bbd6ea30f4fa06abb835c191eb6490082854a"
7
7
  },
8
8
  "exports": [
9
9
  {