@cyberskill/design 2.8.0 → 2.9.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 (383) hide show
  1. package/DESIGN.md +7 -7
  2. package/README.md +14 -8
  3. package/SECURITY.md +4 -4
  4. package/SKILL.md +1 -1
  5. package/VERSION +1 -1
  6. package/_ds_bundle.js +2 -2
  7. package/_ds_bundle.js.map +1 -1
  8. package/_ds_manifest.json +210 -200
  9. package/_esm/cs.mjs +2 -2
  10. package/base/a11y.css +18 -2
  11. package/base/ai.css +2 -2
  12. package/base/collections.css +6 -3
  13. package/base/components.css +107 -20
  14. package/base/controls.css +55 -27
  15. package/base/data.css +17 -5
  16. package/base/feedback.css +8 -0
  17. package/base/forms.css +7 -4
  18. package/base/glass.css +95 -0
  19. package/base/navigation.css +9 -1
  20. package/base/responsive.css +9 -4
  21. package/components/contracts.json +202 -62
  22. package/components/css-index.json +145 -41
  23. package/components/data/data.card.html +1 -1
  24. package/components/prompt-api.json +2 -2
  25. package/components/release-compatibility.json +1 -1
  26. package/components/specifications.json +204 -64
  27. package/components/static-html-reference.json +20 -20
  28. package/dist/esm/build.json +1 -1
  29. package/dist/styles.css +385 -86
  30. package/dist/styles.min.css +1 -1
  31. package/docs/benchmark-rubric.md +1 -1
  32. package/docs/consuming.md +1 -1
  33. package/docs/contrast-report.md +8 -8
  34. package/docs/conventions.md +5 -5
  35. package/docs/decisions.md +2 -2
  36. package/docs/deploy.md +1 -1
  37. package/docs/design-styles.md +9 -8
  38. package/docs/doctrine.md +1 -1
  39. package/docs/four-axes.md +3 -3
  40. package/docs/quality-gates.md +3 -1
  41. package/docs/reference-catalog.json +52 -52
  42. package/docs/release-notes.md +18 -2
  43. package/docs/static-html-reference.md +18 -18
  44. package/docs/storybook.md +1 -1
  45. package/docs/template-inventory.json +35 -35
  46. package/docs/vi/benchmark-rubric.md +1 -1
  47. package/docs/vi/consuming.md +1 -1
  48. package/docs/vi/contrast-report.md +8 -8
  49. package/docs/vi/conventions.md +5 -5
  50. package/docs/vi/decisions.md +2 -2
  51. package/docs/vi/deploy.md +1 -1
  52. package/docs/vi/design-styles.md +9 -8
  53. package/docs/vi/doctrine.md +1 -1
  54. package/docs/vi/entrypoints/CONTRIBUTING.md +9 -2
  55. package/docs/vi/entrypoints/DESIGN.md +7 -7
  56. package/docs/vi/entrypoints/README.md +14 -8
  57. package/docs/vi/entrypoints/SKILL.md +1 -1
  58. package/docs/vi/entrypoints/llms.txt +1 -1
  59. package/docs/vi/four-axes.md +3 -3
  60. package/docs/vi/quality-gates.md +3 -1
  61. package/docs/vi/release-notes.md +18 -2
  62. package/docs/vi/static-html-reference.md +18 -18
  63. package/docs/vi/storybook.md +1 -1
  64. package/guidance/agent-contract.json +3 -3
  65. package/guidelines/atomic-view.html +7 -7
  66. package/guidelines/brand-imagery.html +1 -1
  67. package/guidelines/colors-surfaces.html +4 -4
  68. package/guidelines/colors-text.html +4 -4
  69. package/guidelines/elements-components.html +3 -3
  70. package/guidelines/elements-concept.html +1 -1
  71. package/guidelines/guideline-language.js +1 -1
  72. package/guidelines/motion.html +4 -4
  73. package/guidelines/responsive-bilingual.html +4 -4
  74. package/llms.txt +1 -1
  75. package/package.json +1 -1
  76. package/styles/components/manifest.json +179 -139
  77. package/styles.layered.css +245 -59
  78. package/styles.layered.provenance.json +16 -16
  79. package/templates/_vendor/doc-export.js +8 -1
  80. package/templates/ai-cluster-demo.html +2 -2
  81. package/templates/app-shell/AppShell.dc.html +2 -2
  82. package/templates/bod-deck/BodDeck.dc.html +3 -3
  83. package/templates/bod-investor-update/BodInvestorUpdate.dc.html +1 -1
  84. package/templates/dashboard/Dashboard.dc.html +2 -2
  85. package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +2 -2
  86. package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +1 -1
  87. package/templates/email/Email-VN-standalone.html +2 -2
  88. package/templates/email-safe/email-announcement.html +5 -5
  89. package/templates/email-safe/email-dunning.html +5 -5
  90. package/templates/email-safe/email-investor.html +5 -5
  91. package/templates/email-safe/email-launch.html +5 -5
  92. package/templates/email-safe/email-newsletter.html +6 -6
  93. package/templates/email-safe/email-status.html +5 -5
  94. package/templates/email-safe/email-transactional.html +5 -5
  95. package/templates/kitchen-sink.html +10 -6
  96. package/templates/marketing-newsletter/MarketingNewsletter.dc.html +4 -4
  97. package/templates/marketing-page/MarketingPage.dc.html +4 -2
  98. package/templates/playground.html +5 -4
  99. package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +5 -5
  100. package/tokens/colors.css +1 -1
  101. package/tokens/declarations.json +1851 -1355
  102. package/tokens/element-seeds.json +1 -1
  103. package/tokens/elements.css +40 -10
  104. package/tokens/elevation.css +2 -2
  105. package/tokens/modes/dark__default__comfortable__high.dtcg.json +1 -1
  106. package/tokens/modes/dark__default__comfortable__standard.dtcg.json +1 -1
  107. package/tokens/modes/dark__default__compact__high.dtcg.json +1 -1
  108. package/tokens/modes/dark__default__compact__standard.dtcg.json +1 -1
  109. package/tokens/modes/dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  110. package/tokens/modes/dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  111. package/tokens/modes/dark__hoa-lava__compact__high.dtcg.json +1 -1
  112. package/tokens/modes/dark__hoa-lava__compact__standard.dtcg.json +1 -1
  113. package/tokens/modes/dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  114. package/tokens/modes/dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  115. package/tokens/modes/dark__hoa-plasma__compact__high.dtcg.json +1 -1
  116. package/tokens/modes/dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  117. package/tokens/modes/dark__hoa__comfortable__high.dtcg.json +1 -1
  118. package/tokens/modes/dark__hoa__comfortable__standard.dtcg.json +1 -1
  119. package/tokens/modes/dark__hoa__compact__high.dtcg.json +1 -1
  120. package/tokens/modes/dark__hoa__compact__standard.dtcg.json +1 -1
  121. package/tokens/modes/dark__kim-steel__comfortable__high.dtcg.json +1 -1
  122. package/tokens/modes/dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  123. package/tokens/modes/dark__kim-steel__compact__high.dtcg.json +1 -1
  124. package/tokens/modes/dark__kim-steel__compact__standard.dtcg.json +1 -1
  125. package/tokens/modes/dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  126. package/tokens/modes/dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  127. package/tokens/modes/dark__kim-titanium__compact__high.dtcg.json +1 -1
  128. package/tokens/modes/dark__kim-titanium__compact__standard.dtcg.json +1 -1
  129. package/tokens/modes/dark__kim__comfortable__high.dtcg.json +1 -1
  130. package/tokens/modes/dark__kim__comfortable__standard.dtcg.json +1 -1
  131. package/tokens/modes/dark__kim__compact__high.dtcg.json +1 -1
  132. package/tokens/modes/dark__kim__compact__standard.dtcg.json +1 -1
  133. package/tokens/modes/dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  134. package/tokens/modes/dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  135. package/tokens/modes/dark__moc-bamboo__compact__high.dtcg.json +1 -1
  136. package/tokens/modes/dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  137. package/tokens/modes/dark__moc-forest__comfortable__high.dtcg.json +1 -1
  138. package/tokens/modes/dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  139. package/tokens/modes/dark__moc-forest__compact__high.dtcg.json +1 -1
  140. package/tokens/modes/dark__moc-forest__compact__standard.dtcg.json +1 -1
  141. package/tokens/modes/dark__moc__comfortable__high.dtcg.json +1 -1
  142. package/tokens/modes/dark__moc__comfortable__standard.dtcg.json +1 -1
  143. package/tokens/modes/dark__moc__compact__high.dtcg.json +1 -1
  144. package/tokens/modes/dark__moc__compact__standard.dtcg.json +1 -1
  145. package/tokens/modes/dark__tho-clay__comfortable__high.dtcg.json +1 -1
  146. package/tokens/modes/dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  147. package/tokens/modes/dark__tho-clay__compact__high.dtcg.json +1 -1
  148. package/tokens/modes/dark__tho-clay__compact__standard.dtcg.json +1 -1
  149. package/tokens/modes/dark__tho-sand__comfortable__high.dtcg.json +1 -1
  150. package/tokens/modes/dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  151. package/tokens/modes/dark__tho-sand__compact__high.dtcg.json +1 -1
  152. package/tokens/modes/dark__tho-sand__compact__standard.dtcg.json +1 -1
  153. package/tokens/modes/dark__tho__comfortable__high.dtcg.json +1 -1
  154. package/tokens/modes/dark__tho__comfortable__standard.dtcg.json +1 -1
  155. package/tokens/modes/dark__tho__compact__high.dtcg.json +1 -1
  156. package/tokens/modes/dark__tho__compact__standard.dtcg.json +1 -1
  157. package/tokens/modes/dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  158. package/tokens/modes/dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  159. package/tokens/modes/dark__thuy-mist__compact__high.dtcg.json +1 -1
  160. package/tokens/modes/dark__thuy-mist__compact__standard.dtcg.json +1 -1
  161. package/tokens/modes/dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  162. package/tokens/modes/dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  163. package/tokens/modes/dark__thuy-ocean__compact__high.dtcg.json +1 -1
  164. package/tokens/modes/dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  165. package/tokens/modes/dark__thuy__comfortable__high.dtcg.json +1 -1
  166. package/tokens/modes/dark__thuy__comfortable__standard.dtcg.json +1 -1
  167. package/tokens/modes/dark__thuy__compact__high.dtcg.json +1 -1
  168. package/tokens/modes/dark__thuy__compact__standard.dtcg.json +1 -1
  169. package/tokens/modes/index.json +275 -275
  170. package/tokens/modes/light__default__comfortable__high.dtcg.json +1 -1
  171. package/tokens/modes/light__default__comfortable__standard.dtcg.json +1 -1
  172. package/tokens/modes/light__default__compact__high.dtcg.json +1 -1
  173. package/tokens/modes/light__default__compact__standard.dtcg.json +1 -1
  174. package/tokens/modes/light__hoa-lava__comfortable__high.dtcg.json +1 -1
  175. package/tokens/modes/light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  176. package/tokens/modes/light__hoa-lava__compact__high.dtcg.json +1 -1
  177. package/tokens/modes/light__hoa-lava__compact__standard.dtcg.json +1 -1
  178. package/tokens/modes/light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  179. package/tokens/modes/light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  180. package/tokens/modes/light__hoa-plasma__compact__high.dtcg.json +1 -1
  181. package/tokens/modes/light__hoa-plasma__compact__standard.dtcg.json +1 -1
  182. package/tokens/modes/light__hoa__comfortable__high.dtcg.json +1 -1
  183. package/tokens/modes/light__hoa__comfortable__standard.dtcg.json +1 -1
  184. package/tokens/modes/light__hoa__compact__high.dtcg.json +1 -1
  185. package/tokens/modes/light__hoa__compact__standard.dtcg.json +1 -1
  186. package/tokens/modes/light__kim-steel__comfortable__high.dtcg.json +1 -1
  187. package/tokens/modes/light__kim-steel__comfortable__standard.dtcg.json +1 -1
  188. package/tokens/modes/light__kim-steel__compact__high.dtcg.json +1 -1
  189. package/tokens/modes/light__kim-steel__compact__standard.dtcg.json +1 -1
  190. package/tokens/modes/light__kim-titanium__comfortable__high.dtcg.json +1 -1
  191. package/tokens/modes/light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  192. package/tokens/modes/light__kim-titanium__compact__high.dtcg.json +1 -1
  193. package/tokens/modes/light__kim-titanium__compact__standard.dtcg.json +1 -1
  194. package/tokens/modes/light__kim__comfortable__high.dtcg.json +1 -1
  195. package/tokens/modes/light__kim__comfortable__standard.dtcg.json +1 -1
  196. package/tokens/modes/light__kim__compact__high.dtcg.json +1 -1
  197. package/tokens/modes/light__kim__compact__standard.dtcg.json +1 -1
  198. package/tokens/modes/light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  199. package/tokens/modes/light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  200. package/tokens/modes/light__moc-bamboo__compact__high.dtcg.json +1 -1
  201. package/tokens/modes/light__moc-bamboo__compact__standard.dtcg.json +1 -1
  202. package/tokens/modes/light__moc-forest__comfortable__high.dtcg.json +1 -1
  203. package/tokens/modes/light__moc-forest__comfortable__standard.dtcg.json +1 -1
  204. package/tokens/modes/light__moc-forest__compact__high.dtcg.json +1 -1
  205. package/tokens/modes/light__moc-forest__compact__standard.dtcg.json +1 -1
  206. package/tokens/modes/light__moc__comfortable__high.dtcg.json +1 -1
  207. package/tokens/modes/light__moc__comfortable__standard.dtcg.json +1 -1
  208. package/tokens/modes/light__moc__compact__high.dtcg.json +1 -1
  209. package/tokens/modes/light__moc__compact__standard.dtcg.json +1 -1
  210. package/tokens/modes/light__tho-clay__comfortable__high.dtcg.json +1 -1
  211. package/tokens/modes/light__tho-clay__comfortable__standard.dtcg.json +1 -1
  212. package/tokens/modes/light__tho-clay__compact__high.dtcg.json +1 -1
  213. package/tokens/modes/light__tho-clay__compact__standard.dtcg.json +1 -1
  214. package/tokens/modes/light__tho-sand__comfortable__high.dtcg.json +1 -1
  215. package/tokens/modes/light__tho-sand__comfortable__standard.dtcg.json +1 -1
  216. package/tokens/modes/light__tho-sand__compact__high.dtcg.json +1 -1
  217. package/tokens/modes/light__tho-sand__compact__standard.dtcg.json +1 -1
  218. package/tokens/modes/light__tho__comfortable__high.dtcg.json +1 -1
  219. package/tokens/modes/light__tho__comfortable__standard.dtcg.json +1 -1
  220. package/tokens/modes/light__tho__compact__high.dtcg.json +1 -1
  221. package/tokens/modes/light__tho__compact__standard.dtcg.json +1 -1
  222. package/tokens/modes/light__thuy-mist__comfortable__high.dtcg.json +1 -1
  223. package/tokens/modes/light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  224. package/tokens/modes/light__thuy-mist__compact__high.dtcg.json +1 -1
  225. package/tokens/modes/light__thuy-mist__compact__standard.dtcg.json +1 -1
  226. package/tokens/modes/light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  227. package/tokens/modes/light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  228. package/tokens/modes/light__thuy-ocean__compact__high.dtcg.json +1 -1
  229. package/tokens/modes/light__thuy-ocean__compact__standard.dtcg.json +1 -1
  230. package/tokens/modes/light__thuy__comfortable__high.dtcg.json +1 -1
  231. package/tokens/modes/light__thuy__comfortable__standard.dtcg.json +1 -1
  232. package/tokens/modes/light__thuy__compact__high.dtcg.json +1 -1
  233. package/tokens/modes/light__thuy__compact__standard.dtcg.json +1 -1
  234. package/tokens/modes/system-dark__default__comfortable__high.dtcg.json +1 -1
  235. package/tokens/modes/system-dark__default__comfortable__standard.dtcg.json +1 -1
  236. package/tokens/modes/system-dark__default__compact__high.dtcg.json +1 -1
  237. package/tokens/modes/system-dark__default__compact__standard.dtcg.json +1 -1
  238. package/tokens/modes/system-dark__hoa-lava__comfortable__high.dtcg.json +1 -1
  239. package/tokens/modes/system-dark__hoa-lava__comfortable__standard.dtcg.json +1 -1
  240. package/tokens/modes/system-dark__hoa-lava__compact__high.dtcg.json +1 -1
  241. package/tokens/modes/system-dark__hoa-lava__compact__standard.dtcg.json +1 -1
  242. package/tokens/modes/system-dark__hoa-plasma__comfortable__high.dtcg.json +1 -1
  243. package/tokens/modes/system-dark__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  244. package/tokens/modes/system-dark__hoa-plasma__compact__high.dtcg.json +1 -1
  245. package/tokens/modes/system-dark__hoa-plasma__compact__standard.dtcg.json +1 -1
  246. package/tokens/modes/system-dark__hoa__comfortable__high.dtcg.json +1 -1
  247. package/tokens/modes/system-dark__hoa__comfortable__standard.dtcg.json +1 -1
  248. package/tokens/modes/system-dark__hoa__compact__high.dtcg.json +1 -1
  249. package/tokens/modes/system-dark__hoa__compact__standard.dtcg.json +1 -1
  250. package/tokens/modes/system-dark__kim-steel__comfortable__high.dtcg.json +1 -1
  251. package/tokens/modes/system-dark__kim-steel__comfortable__standard.dtcg.json +1 -1
  252. package/tokens/modes/system-dark__kim-steel__compact__high.dtcg.json +1 -1
  253. package/tokens/modes/system-dark__kim-steel__compact__standard.dtcg.json +1 -1
  254. package/tokens/modes/system-dark__kim-titanium__comfortable__high.dtcg.json +1 -1
  255. package/tokens/modes/system-dark__kim-titanium__comfortable__standard.dtcg.json +1 -1
  256. package/tokens/modes/system-dark__kim-titanium__compact__high.dtcg.json +1 -1
  257. package/tokens/modes/system-dark__kim-titanium__compact__standard.dtcg.json +1 -1
  258. package/tokens/modes/system-dark__kim__comfortable__high.dtcg.json +1 -1
  259. package/tokens/modes/system-dark__kim__comfortable__standard.dtcg.json +1 -1
  260. package/tokens/modes/system-dark__kim__compact__high.dtcg.json +1 -1
  261. package/tokens/modes/system-dark__kim__compact__standard.dtcg.json +1 -1
  262. package/tokens/modes/system-dark__moc-bamboo__comfortable__high.dtcg.json +1 -1
  263. package/tokens/modes/system-dark__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  264. package/tokens/modes/system-dark__moc-bamboo__compact__high.dtcg.json +1 -1
  265. package/tokens/modes/system-dark__moc-bamboo__compact__standard.dtcg.json +1 -1
  266. package/tokens/modes/system-dark__moc-forest__comfortable__high.dtcg.json +1 -1
  267. package/tokens/modes/system-dark__moc-forest__comfortable__standard.dtcg.json +1 -1
  268. package/tokens/modes/system-dark__moc-forest__compact__high.dtcg.json +1 -1
  269. package/tokens/modes/system-dark__moc-forest__compact__standard.dtcg.json +1 -1
  270. package/tokens/modes/system-dark__moc__comfortable__high.dtcg.json +1 -1
  271. package/tokens/modes/system-dark__moc__comfortable__standard.dtcg.json +1 -1
  272. package/tokens/modes/system-dark__moc__compact__high.dtcg.json +1 -1
  273. package/tokens/modes/system-dark__moc__compact__standard.dtcg.json +1 -1
  274. package/tokens/modes/system-dark__tho-clay__comfortable__high.dtcg.json +1 -1
  275. package/tokens/modes/system-dark__tho-clay__comfortable__standard.dtcg.json +1 -1
  276. package/tokens/modes/system-dark__tho-clay__compact__high.dtcg.json +1 -1
  277. package/tokens/modes/system-dark__tho-clay__compact__standard.dtcg.json +1 -1
  278. package/tokens/modes/system-dark__tho-sand__comfortable__high.dtcg.json +1 -1
  279. package/tokens/modes/system-dark__tho-sand__comfortable__standard.dtcg.json +1 -1
  280. package/tokens/modes/system-dark__tho-sand__compact__high.dtcg.json +1 -1
  281. package/tokens/modes/system-dark__tho-sand__compact__standard.dtcg.json +1 -1
  282. package/tokens/modes/system-dark__tho__comfortable__high.dtcg.json +1 -1
  283. package/tokens/modes/system-dark__tho__comfortable__standard.dtcg.json +1 -1
  284. package/tokens/modes/system-dark__tho__compact__high.dtcg.json +1 -1
  285. package/tokens/modes/system-dark__tho__compact__standard.dtcg.json +1 -1
  286. package/tokens/modes/system-dark__thuy-mist__comfortable__high.dtcg.json +1 -1
  287. package/tokens/modes/system-dark__thuy-mist__comfortable__standard.dtcg.json +1 -1
  288. package/tokens/modes/system-dark__thuy-mist__compact__high.dtcg.json +1 -1
  289. package/tokens/modes/system-dark__thuy-mist__compact__standard.dtcg.json +1 -1
  290. package/tokens/modes/system-dark__thuy-ocean__comfortable__high.dtcg.json +1 -1
  291. package/tokens/modes/system-dark__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  292. package/tokens/modes/system-dark__thuy-ocean__compact__high.dtcg.json +1 -1
  293. package/tokens/modes/system-dark__thuy-ocean__compact__standard.dtcg.json +1 -1
  294. package/tokens/modes/system-dark__thuy__comfortable__high.dtcg.json +1 -1
  295. package/tokens/modes/system-dark__thuy__comfortable__standard.dtcg.json +1 -1
  296. package/tokens/modes/system-dark__thuy__compact__high.dtcg.json +1 -1
  297. package/tokens/modes/system-dark__thuy__compact__standard.dtcg.json +1 -1
  298. package/tokens/modes/system-light__default__comfortable__high.dtcg.json +1 -1
  299. package/tokens/modes/system-light__default__comfortable__standard.dtcg.json +1 -1
  300. package/tokens/modes/system-light__default__compact__high.dtcg.json +1 -1
  301. package/tokens/modes/system-light__default__compact__standard.dtcg.json +1 -1
  302. package/tokens/modes/system-light__hoa-lava__comfortable__high.dtcg.json +1 -1
  303. package/tokens/modes/system-light__hoa-lava__comfortable__standard.dtcg.json +1 -1
  304. package/tokens/modes/system-light__hoa-lava__compact__high.dtcg.json +1 -1
  305. package/tokens/modes/system-light__hoa-lava__compact__standard.dtcg.json +1 -1
  306. package/tokens/modes/system-light__hoa-plasma__comfortable__high.dtcg.json +1 -1
  307. package/tokens/modes/system-light__hoa-plasma__comfortable__standard.dtcg.json +1 -1
  308. package/tokens/modes/system-light__hoa-plasma__compact__high.dtcg.json +1 -1
  309. package/tokens/modes/system-light__hoa-plasma__compact__standard.dtcg.json +1 -1
  310. package/tokens/modes/system-light__hoa__comfortable__high.dtcg.json +1 -1
  311. package/tokens/modes/system-light__hoa__comfortable__standard.dtcg.json +1 -1
  312. package/tokens/modes/system-light__hoa__compact__high.dtcg.json +1 -1
  313. package/tokens/modes/system-light__hoa__compact__standard.dtcg.json +1 -1
  314. package/tokens/modes/system-light__kim-steel__comfortable__high.dtcg.json +1 -1
  315. package/tokens/modes/system-light__kim-steel__comfortable__standard.dtcg.json +1 -1
  316. package/tokens/modes/system-light__kim-steel__compact__high.dtcg.json +1 -1
  317. package/tokens/modes/system-light__kim-steel__compact__standard.dtcg.json +1 -1
  318. package/tokens/modes/system-light__kim-titanium__comfortable__high.dtcg.json +1 -1
  319. package/tokens/modes/system-light__kim-titanium__comfortable__standard.dtcg.json +1 -1
  320. package/tokens/modes/system-light__kim-titanium__compact__high.dtcg.json +1 -1
  321. package/tokens/modes/system-light__kim-titanium__compact__standard.dtcg.json +1 -1
  322. package/tokens/modes/system-light__kim__comfortable__high.dtcg.json +1 -1
  323. package/tokens/modes/system-light__kim__comfortable__standard.dtcg.json +1 -1
  324. package/tokens/modes/system-light__kim__compact__high.dtcg.json +1 -1
  325. package/tokens/modes/system-light__kim__compact__standard.dtcg.json +1 -1
  326. package/tokens/modes/system-light__moc-bamboo__comfortable__high.dtcg.json +1 -1
  327. package/tokens/modes/system-light__moc-bamboo__comfortable__standard.dtcg.json +1 -1
  328. package/tokens/modes/system-light__moc-bamboo__compact__high.dtcg.json +1 -1
  329. package/tokens/modes/system-light__moc-bamboo__compact__standard.dtcg.json +1 -1
  330. package/tokens/modes/system-light__moc-forest__comfortable__high.dtcg.json +1 -1
  331. package/tokens/modes/system-light__moc-forest__comfortable__standard.dtcg.json +1 -1
  332. package/tokens/modes/system-light__moc-forest__compact__high.dtcg.json +1 -1
  333. package/tokens/modes/system-light__moc-forest__compact__standard.dtcg.json +1 -1
  334. package/tokens/modes/system-light__moc__comfortable__high.dtcg.json +1 -1
  335. package/tokens/modes/system-light__moc__comfortable__standard.dtcg.json +1 -1
  336. package/tokens/modes/system-light__moc__compact__high.dtcg.json +1 -1
  337. package/tokens/modes/system-light__moc__compact__standard.dtcg.json +1 -1
  338. package/tokens/modes/system-light__tho-clay__comfortable__high.dtcg.json +1 -1
  339. package/tokens/modes/system-light__tho-clay__comfortable__standard.dtcg.json +1 -1
  340. package/tokens/modes/system-light__tho-clay__compact__high.dtcg.json +1 -1
  341. package/tokens/modes/system-light__tho-clay__compact__standard.dtcg.json +1 -1
  342. package/tokens/modes/system-light__tho-sand__comfortable__high.dtcg.json +1 -1
  343. package/tokens/modes/system-light__tho-sand__comfortable__standard.dtcg.json +1 -1
  344. package/tokens/modes/system-light__tho-sand__compact__high.dtcg.json +1 -1
  345. package/tokens/modes/system-light__tho-sand__compact__standard.dtcg.json +1 -1
  346. package/tokens/modes/system-light__tho__comfortable__high.dtcg.json +1 -1
  347. package/tokens/modes/system-light__tho__comfortable__standard.dtcg.json +1 -1
  348. package/tokens/modes/system-light__tho__compact__high.dtcg.json +1 -1
  349. package/tokens/modes/system-light__tho__compact__standard.dtcg.json +1 -1
  350. package/tokens/modes/system-light__thuy-mist__comfortable__high.dtcg.json +1 -1
  351. package/tokens/modes/system-light__thuy-mist__comfortable__standard.dtcg.json +1 -1
  352. package/tokens/modes/system-light__thuy-mist__compact__high.dtcg.json +1 -1
  353. package/tokens/modes/system-light__thuy-mist__compact__standard.dtcg.json +1 -1
  354. package/tokens/modes/system-light__thuy-ocean__comfortable__high.dtcg.json +1 -1
  355. package/tokens/modes/system-light__thuy-ocean__comfortable__standard.dtcg.json +1 -1
  356. package/tokens/modes/system-light__thuy-ocean__compact__high.dtcg.json +1 -1
  357. package/tokens/modes/system-light__thuy-ocean__compact__standard.dtcg.json +1 -1
  358. package/tokens/modes/system-light__thuy__comfortable__high.dtcg.json +1 -1
  359. package/tokens/modes/system-light__thuy__comfortable__standard.dtcg.json +1 -1
  360. package/tokens/modes/system-light__thuy__compact__high.dtcg.json +1 -1
  361. package/tokens/modes/system-light__thuy__compact__standard.dtcg.json +1 -1
  362. package/tokens/native/CSModes.kt +129 -125
  363. package/tokens/native/CSModes.swift +129 -125
  364. package/tokens/native/CSTokens.kt +8 -8
  365. package/tokens/native/CSTokens.swift +8 -8
  366. package/tokens/native/cs_modes.dart +129 -125
  367. package/tokens/native/cs_tokens.dart +8 -8
  368. package/tokens/native/mode-provenance.json +11 -11
  369. package/tokens/provenance.json +6 -6
  370. package/tokens/styles.css +8 -4
  371. package/tokens/tokens.dtcg.json +26 -26
  372. package/tokens/tokens.js +12 -12
  373. package/tokens/tokens.json +11 -11
  374. package/tokens/variables.css +48 -15
  375. package/tokens/viewer.html +1 -0
  376. package/ui_kits/status-hub/login.html +3 -3
  377. package/ui_kits/status-hub/project.html +4 -6
  378. package/ui_kits/status-hub/settings.html +2 -3
  379. package/ui_kits/status-hub/status.css +24 -15
  380. package/ui_kits/website/careers.html +10 -17
  381. package/ui_kits/website/chat.html +14 -3
  382. package/ui_kits/website/site.css +21 -21
  383. package/ui_kits/website/work.html +4 -10
package/docs/storybook.md CHANGED
@@ -19,7 +19,7 @@ Storybook **10** is the **product site** for operators on `design.cyberskill.wor
19
19
  - `States` (or a Matrix subsection) covering `disabled` / `loading` / `error` / `busy` when those argTypes exist
20
20
  - Every discrete `size` / `variant` enum option mounted in a matrix-family story
21
21
  - `FullMatrix` when ≥1 of {size enums, variant enums, state keys} exist — the size × variant × key-state product via shared helpers in `stories/lib/matrix.jsx`
22
- - Toolbar globals: Theme (light · dark · **system**) × Element × Language × Style (same axes as templates / Atomic View). Element lists **all 15** Ngũ Hành packs (`tokens.elements` / template EL maps / Storybook toolbar) — not a subset. Style’s sole pack is **liquid-glass**.
22
+ - Toolbar globals: Theme (light · dark · **system**) × Element × Language (`vi` · `en`) × Style (`liquid-glass` · `matte-paper`; same axes as templates / Atomic View). Element lists **all 15** Ngũ Hành packs (`tokens.elements` / template EL maps / Storybook toolbar) — not a subset.
23
23
  - **Docs/** published operator documentation — nested **Start / Guides / Maintainers**, curated MDX for high-traffic pages, one sidebar story per public catalog markdown page, and a Documentation Library iframe of `/docs/viewer.html` (EN·VI). Canonical prose remains `docs/*.md`; Storybook is the live reading surface. **Release Notes/** curated product prose (**no CHANGELOG.md**); **Status/** embeds `_audit/run.html` full-bleed
24
24
  - **Templates/** public starting points — Gallery (Atomic View Templates tier + kitchen-sink/playground) and every manifest template under Atomic View categories (including **HR** / `vn-*`). Regen CSF with `node scripts/generate-template-stories.mjs` after template renames
25
25
  - **Pages/** public UI kits (Status Hub, Marketing site, Slide deck)
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "name": "App shell",
7
7
  "path": "templates/app-shell/AppShell.dc.html",
8
- "sha256": "f71017a26f12b71d9e653dff79635ed14d5eb4a3dac9c5ce095188c537b858e3",
8
+ "sha256": "db367cea935919c4ad90d7fdb3513309d04bebb575269ee756b2be6f074e82b7",
9
9
  "declaredProps": [
10
10
  {
11
11
  "language": {
@@ -946,7 +946,7 @@
946
946
  {
947
947
  "name": "Board · Meeting deck",
948
948
  "path": "templates/bod-deck/BodDeck.dc.html",
949
- "sha256": "83a2ea61af568fef5600a002bf646af8fda7467e83778439524edc51514b2431",
949
+ "sha256": "ce30fa21a80ab6eb6f198e16f13c928d1a9c8ab73883b83fcd53d087b9423fb4",
950
950
  "declaredProps": [
951
951
  {
952
952
  "language": {
@@ -1248,7 +1248,7 @@
1248
1248
  {
1249
1249
  "name": "Board · Investor update email",
1250
1250
  "path": "templates/bod-investor-update/BodInvestorUpdate.dc.html",
1251
- "sha256": "3d62bb7dc28fd362ba9b2d28fb37829b5c0a64019bb158aa3cccf56e32e87449",
1251
+ "sha256": "88c598968753b234520386d60124fdda2b28692b4c27fd6b096b9c36c0fe2817",
1252
1252
  "declaredProps": [
1253
1253
  {
1254
1254
  "language": {
@@ -2529,7 +2529,7 @@
2529
2529
  {
2530
2530
  "name": "Dashboard",
2531
2531
  "path": "templates/dashboard/Dashboard.dc.html",
2532
- "sha256": "e39de5367d3b0309a9c29ad61ab379707b327fb71cb19d1fe87f8e7b9ab64f6d",
2532
+ "sha256": "abf3996bfbaaf7deb62e5ce0a6958c16b73db630237be8135f9838436bec76aa",
2533
2533
  "declaredProps": [
2534
2534
  {
2535
2535
  "language": {
@@ -3535,7 +3535,7 @@
3535
3535
  {
3536
3536
  "name": "Delivery · QBR deck",
3537
3537
  "path": "templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html",
3538
- "sha256": "2463e404a33208fca14222473d571c58e096ca6b97cfa1de788bd1490299d011",
3538
+ "sha256": "05de5ad0d238f840edb63c6b014bd2b03ebe7f8598f8bdf83560949178434047",
3539
3539
  "declaredProps": [
3540
3540
  {
3541
3541
  "language": {
@@ -4180,7 +4180,7 @@
4180
4180
  {
4181
4181
  "name": "Delivery · Weekly status email",
4182
4182
  "path": "templates/delivery-status-email/DeliveryStatusEmail.dc.html",
4183
- "sha256": "fed3c9b079806e96a2db546ffb730fe1a89743fef73f77735c6ace53062f6377",
4183
+ "sha256": "6734c66af11496ee1d4bd2d3d65e44aaf807e795c3d947cff3db536ef6cfbd3b",
4184
4184
  "declaredProps": [
4185
4185
  {
4186
4186
  "language": {
@@ -4831,7 +4831,7 @@
4831
4831
  },
4832
4832
  {
4833
4833
  "path": "templates/email/Email-VN-standalone.html",
4834
- "sha256": "d9e5ff722c8558d086212dc5cbcc03c80302cd1be5bd4469e20530dae399f940"
4834
+ "sha256": "90ec1856210e2de7ead5e6664bb8b31754bd0978e69c71bf2ec58a7d18c72acc"
4835
4835
  },
4836
4836
  {
4837
4837
  "path": "templates/email/content-schema.json",
@@ -8073,7 +8073,7 @@
8073
8073
  {
8074
8074
  "name": "Marketing · Newsletter",
8075
8075
  "path": "templates/marketing-newsletter/MarketingNewsletter.dc.html",
8076
- "sha256": "b87b3d465883dbdcb3325572caf3a025b1396788b1995e6f42193de7bfeabfbc",
8076
+ "sha256": "e4d585ae9e5a59619e19497b5bab1d738a218a91dbb8e4c3cca250c681dfdcb4",
8077
8077
  "declaredProps": [
8078
8078
  {
8079
8079
  "element": {
@@ -8246,7 +8246,7 @@
8246
8246
  {
8247
8247
  "name": "Marketing page",
8248
8248
  "path": "templates/marketing-page/MarketingPage.dc.html",
8249
- "sha256": "54fa23a31a7037210672fe43548ff07229d58faf818ef90afcf5898d1d50db83",
8249
+ "sha256": "7fecead46d1c300013885f0e8b0e247379858c70c52e514560185854d487660c",
8250
8250
  "declaredProps": [
8251
8251
  {
8252
8252
  "language": {
@@ -9243,7 +9243,7 @@
9243
9243
  {
9244
9244
  "name": "Sales · Proposal deck",
9245
9245
  "path": "templates/sales-proposal-deck/SalesProposalDeck.dc.html",
9246
- "sha256": "1ce3b5aa09d263b7fdab25002ed6975bafff9b503d2e58d3b0cbfe0d7f023fff",
9246
+ "sha256": "5669ae23ec2e63eff285ff9fe83fd2df0defaca8124f3eb78b2925b0cae345bf",
9247
9247
  "declaredProps": [
9248
9248
  {
9249
9249
  "language": {
@@ -15883,7 +15883,7 @@
15883
15883
  "staticTemplates": [
15884
15884
  {
15885
15885
  "path": "templates/ai-cluster-demo.html",
15886
- "sha256": "3210cd4aee5846a5d8c4a6122da2ad30db518d481c394fc9f667661b0e7c74fc",
15886
+ "sha256": "9cf7e96ec61eba60798ac07c26365449374137d09053ca2a328567320d893c74",
15887
15887
  "declaredProps": [],
15888
15888
  "componentImports": [],
15889
15889
  "references": [
@@ -15924,7 +15924,7 @@
15924
15924
  },
15925
15925
  {
15926
15926
  "path": "templates/email-safe/email-announcement.html",
15927
- "sha256": "29cad37338838444a77b0936b9bbde1a06a5fc34636010e24e09f1503be37e34",
15927
+ "sha256": "4a3d54e89f42114daf58f5ea369209a3daf335b54f9103db65a12c7c26608a18",
15928
15928
  "declaredProps": [],
15929
15929
  "componentImports": [],
15930
15930
  "references": [
@@ -15953,7 +15953,7 @@
15953
15953
  },
15954
15954
  {
15955
15955
  "path": "templates/email-safe/email-dunning.html",
15956
- "sha256": "9100096d9c98b0d4b2b69a35252d7570be598fc7190aa0894470a0254cdb7c8a",
15956
+ "sha256": "07bb3e41aab075f49b89aa0c6fd5f301462402d92722c6b23db33101d25b8950",
15957
15957
  "declaredProps": [],
15958
15958
  "componentImports": [],
15959
15959
  "references": [
@@ -15978,7 +15978,7 @@
15978
15978
  },
15979
15979
  {
15980
15980
  "path": "templates/email-safe/email-investor.html",
15981
- "sha256": "ac5657a766c611df061c8f7749c3daaeedc23ff938e9d4f863b875f1e2e03108",
15981
+ "sha256": "5f60931d1c202d1959a5043d98f458ca1acf2d38c18d7c9e2f738d727e88aa3c",
15982
15982
  "declaredProps": [],
15983
15983
  "componentImports": [],
15984
15984
  "references": [
@@ -16007,7 +16007,7 @@
16007
16007
  },
16008
16008
  {
16009
16009
  "path": "templates/email-safe/email-launch.html",
16010
- "sha256": "fb7ba5ae2edb3183819af9d03759559fb4fbd40998c164c2cb455a0b4eb826f2",
16010
+ "sha256": "2760d0fdfcb783b9c0d774b5e4f65979d85247e9b752d89830ba2e820cdbff72",
16011
16011
  "declaredProps": [],
16012
16012
  "componentImports": [],
16013
16013
  "references": [
@@ -16036,7 +16036,7 @@
16036
16036
  },
16037
16037
  {
16038
16038
  "path": "templates/email-safe/email-newsletter.html",
16039
- "sha256": "ae18d0e6ea9601cdcb40a0338fe531a59e3e09261dcca9d0bdaf37b4ac89aca8",
16039
+ "sha256": "c9f2d5cc58ca5d06e93f0efdd781d2010afa8d2ab09bb12d6c20330672b22afe",
16040
16040
  "declaredProps": [],
16041
16041
  "componentImports": [],
16042
16042
  "references": [
@@ -16061,7 +16061,7 @@
16061
16061
  },
16062
16062
  {
16063
16063
  "path": "templates/email-safe/email-status.html",
16064
- "sha256": "4cbad8501f53d82db895393929fe99a32bb265e47f1a62f822cfe0f09afc289d",
16064
+ "sha256": "8da3bdfbe87b239e4dcca944cc4c5f741f54e87279818197c324a5b079a50a30",
16065
16065
  "declaredProps": [],
16066
16066
  "componentImports": [],
16067
16067
  "references": [
@@ -16090,7 +16090,7 @@
16090
16090
  },
16091
16091
  {
16092
16092
  "path": "templates/email-safe/email-transactional.html",
16093
- "sha256": "c0149ff3410b4750bf54d6435d7f0a761ef33a96642c6dd53d721e94f130b451",
16093
+ "sha256": "c53f93020d4e00ca29f77179cf07bf04dd7fe24018d4fe725e0263ba9fa30f85",
16094
16094
  "declaredProps": [],
16095
16095
  "componentImports": [],
16096
16096
  "references": [
@@ -16119,7 +16119,7 @@
16119
16119
  },
16120
16120
  {
16121
16121
  "path": "templates/email/Email-VN-standalone.html",
16122
- "sha256": "d9e5ff722c8558d086212dc5cbcc03c80302cd1be5bd4469e20530dae399f940",
16122
+ "sha256": "90ec1856210e2de7ead5e6664bb8b31754bd0978e69c71bf2ec58a7d18c72acc",
16123
16123
  "declaredProps": [
16124
16124
  {
16125
16125
  "element": {
@@ -16213,7 +16213,7 @@
16213
16213
  },
16214
16214
  {
16215
16215
  "path": "templates/kitchen-sink.html",
16216
- "sha256": "d5ac87fd3552c4dd6a98cf49556cace99913643a063cef2e6db841902e9020fe",
16216
+ "sha256": "99d628a06f5c9cf7add246f2224eca7000dd9c7f57c60918ea5e008e95614fd0",
16217
16217
  "declaredProps": [],
16218
16218
  "componentImports": [],
16219
16219
  "references": [
@@ -16264,7 +16264,7 @@
16264
16264
  },
16265
16265
  {
16266
16266
  "path": "templates/playground.html",
16267
- "sha256": "2f297972aa67d79199f45b39bce09fbd180d8094002132f497df78538ccea92c",
16267
+ "sha256": "5b1c198164f7568f5b43ad49baacab0a578e8217b28967244c7037121e2189a3",
16268
16268
  "declaredProps": [],
16269
16269
  "componentImports": [],
16270
16270
  "references": [
@@ -16370,15 +16370,15 @@
16370
16370
  },
16371
16371
  {
16372
16372
  "path": "ui_kits/status-hub/login.html",
16373
- "sha256": "633642cf574f171c5b570e10a4a0df4403dcd64ad5b7a5188625e1df6bacd35d"
16373
+ "sha256": "f46e9006291737031236c813628650508781491455976fffc2f03dcbb2acadf9"
16374
16374
  },
16375
16375
  {
16376
16376
  "path": "ui_kits/status-hub/project.html",
16377
- "sha256": "abd4f5f7fb4fa6bb96c9550795eb64fa695fecfdfbf7fd913952c29336cc8ca1"
16377
+ "sha256": "e6611104e329d66ccf0f64f3d9fe9cdc307b6f95aa440945fc449053884cef3a"
16378
16378
  },
16379
16379
  {
16380
16380
  "path": "ui_kits/status-hub/settings.html",
16381
- "sha256": "cc4405af38350a0b9b71eddeadcdfb827274017d78d96f0f7b2a8ca140402780"
16381
+ "sha256": "786a5eec1bf5cdf96279e5c1bc6abcb8dff5e3d7add00ad488acd601aee83b73"
16382
16382
  },
16383
16383
  {
16384
16384
  "path": "ui_kits/status-hub/static-locale.js",
@@ -16386,7 +16386,7 @@
16386
16386
  },
16387
16387
  {
16388
16388
  "path": "ui_kits/status-hub/status.css",
16389
- "sha256": "d4f602209ab8b46eabeaf57e1fcb9de23003c6a9f0f8a28add8d84e736bfa4fc"
16389
+ "sha256": "af221fa3f0aa6bf88bb6f37bc4b10ff537e88ed10f7e27118ca4ccbfd502d3db"
16390
16390
  }
16391
16391
  ],
16392
16392
  "pages": [
@@ -16457,7 +16457,7 @@
16457
16457
  },
16458
16458
  {
16459
16459
  "path": "ui_kits/status-hub/login.html",
16460
- "sha256": "633642cf574f171c5b570e10a4a0df4403dcd64ad5b7a5188625e1df6bacd35d",
16460
+ "sha256": "f46e9006291737031236c813628650508781491455976fffc2f03dcbb2acadf9",
16461
16461
  "declaredProps": [],
16462
16462
  "componentImports": [],
16463
16463
  "references": [
@@ -16502,7 +16502,7 @@
16502
16502
  },
16503
16503
  {
16504
16504
  "path": "ui_kits/status-hub/project.html",
16505
- "sha256": "abd4f5f7fb4fa6bb96c9550795eb64fa695fecfdfbf7fd913952c29336cc8ca1",
16505
+ "sha256": "e6611104e329d66ccf0f64f3d9fe9cdc307b6f95aa440945fc449053884cef3a",
16506
16506
  "declaredProps": [],
16507
16507
  "componentImports": [],
16508
16508
  "references": [
@@ -16559,7 +16559,7 @@
16559
16559
  },
16560
16560
  {
16561
16561
  "path": "ui_kits/status-hub/settings.html",
16562
- "sha256": "cc4405af38350a0b9b71eddeadcdfb827274017d78d96f0f7b2a8ca140402780",
16562
+ "sha256": "786a5eec1bf5cdf96279e5c1bc6abcb8dff5e3d7add00ad488acd601aee83b73",
16563
16563
  "declaredProps": [],
16564
16564
  "componentImports": [],
16565
16565
  "references": [
@@ -16625,11 +16625,11 @@
16625
16625
  },
16626
16626
  {
16627
16627
  "path": "ui_kits/website/careers.html",
16628
- "sha256": "81860652897199c92191df0ccf9f8df6dcca7154b4b7e96ffee16556878d5600"
16628
+ "sha256": "8cd1fdc601fd2a811dc4dccffd283874514fad4ce0e6b06bf41a9b918fb7cd75"
16629
16629
  },
16630
16630
  {
16631
16631
  "path": "ui_kits/website/chat.html",
16632
- "sha256": "541914b9e553f074acba60b7afa57a1424d1c350bce6d104b1a8f521bdea596c"
16632
+ "sha256": "99e55034cc8df4d7e36e368bb23b49fc9f428d0694d6bca2b5470a82a4a5bc26"
16633
16633
  },
16634
16634
  {
16635
16635
  "path": "ui_kits/website/copy.js",
@@ -16641,17 +16641,17 @@
16641
16641
  },
16642
16642
  {
16643
16643
  "path": "ui_kits/website/site.css",
16644
- "sha256": "e6f142d768535b0116d33c58a1c99ce31c2e4075363456a76a062f0635de6fa1"
16644
+ "sha256": "7d7bf4f1df1b83c9e0506a7a23a8e31f046ad0af3cff1e70234ef01a2aaadb19"
16645
16645
  },
16646
16646
  {
16647
16647
  "path": "ui_kits/website/work.html",
16648
- "sha256": "305357e2c9b2c08f13c5c2b903ad62b924495b270d874d92b8169be9ffb39741"
16648
+ "sha256": "d67ff33970d1b737f9c8c61c186abe58deb0d359f6ec7b3e478ee3de7151aad7"
16649
16649
  }
16650
16650
  ],
16651
16651
  "pages": [
16652
16652
  {
16653
16653
  "path": "ui_kits/website/careers.html",
16654
- "sha256": "81860652897199c92191df0ccf9f8df6dcca7154b4b7e96ffee16556878d5600",
16654
+ "sha256": "8cd1fdc601fd2a811dc4dccffd283874514fad4ce0e6b06bf41a9b918fb7cd75",
16655
16655
  "declaredProps": [],
16656
16656
  "componentImports": [],
16657
16657
  "references": [
@@ -16736,7 +16736,7 @@
16736
16736
  },
16737
16737
  {
16738
16738
  "path": "ui_kits/website/chat.html",
16739
- "sha256": "541914b9e553f074acba60b7afa57a1424d1c350bce6d104b1a8f521bdea596c",
16739
+ "sha256": "99e55034cc8df4d7e36e368bb23b49fc9f428d0694d6bca2b5470a82a4a5bc26",
16740
16740
  "declaredProps": [],
16741
16741
  "componentImports": [],
16742
16742
  "references": [
@@ -16864,7 +16864,7 @@
16864
16864
  },
16865
16865
  {
16866
16866
  "path": "ui_kits/website/work.html",
16867
- "sha256": "305357e2c9b2c08f13c5c2b903ad62b924495b270d874d92b8169be9ffb39741",
16867
+ "sha256": "d67ff33970d1b737f9c8c61c186abe58deb0d359f6ec7b3e478ee3de7151aad7",
16868
16868
  "declaredProps": [],
16869
16869
  "componentImports": [],
16870
16870
  "references": [
@@ -28,7 +28,7 @@ Checklist tự kiểm khi tiến hóa CyberSkill Design System — chuẩn bên
28
28
 
29
29
  ## Checklist mở rộng style (`data-cs-style`)
30
30
 
31
- Sole pack hôm nay: **liquid-glass** (`tokens/styles.css`, gate `_audit/style-contract.html`). Khi thêm style pack ngoài liquid-glass:
31
+ Các pack hiện hành: **liquid-glass** (mặc định; vắng ≡ mặc định) và **matte-paper** (`tokens/styles.css` + `base/glass.css`, gate `_audit/style-contract.html`). Khi thêm style pack mới:
32
32
 
33
33
  1. Overlay token **tiêu thụ** 10 role `--cs-accent-*` sẵn có, gồm `--cs-accent-on-strong` (không invent pack Element song song).
34
34
  2. Specimen card + Storybook / Atomic View nếu style chọn được ở sản phẩm.
@@ -1,6 +1,6 @@
1
1
  # Tiêu thụ & nâng cấp CyberSkill Design System
2
2
 
3
- **Checkout nguồn:** VERSION **<!-- cs-source-version:checkout -->2.8.0<!-- /cs-source-version -->** là định danh nguồn cục bộ, không xác nhận phiên bản có trên registry. Với bản ứng viên chưa công bố, kiểm chứng tarball gói cục bộ hoặc checkout nguồn đã rà soát. Lệnh registry bên dưới chỉ bản ổn định 2.7.0 đã công bố (và inventory sibling ADOPT-001 ghi ngày tại 1.7.2), không tự đổi khi chuẩn bị bản phát hành. Chuẩn bị không cấp quyền công bố.
3
+ **Checkout nguồn:** VERSION **<!-- cs-source-version:checkout -->2.9.0<!-- /cs-source-version -->** là định danh nguồn cục bộ, không xác nhận phiên bản có trên registry. Với bản ứng viên chưa công bố, kiểm chứng tarball gói cục bộ hoặc checkout nguồn đã rà soát. Lệnh registry bên dưới chỉ bản ổn định 2.8.0 đã công bố (và inventory sibling ADOPT-001 ghi ngày tại 1.7.2), không tự đổi khi chuẩn bị bản phát hành. Chuẩn bị không cấp quyền công bố.
4
4
 
5
5
  Cách mọi project — do người hoặc agent điều khiển — áp dụng design system HTML-first này, và cách nhận update an toàn. Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # Báo cáo contrast — cặp elemental (APCA)
2
2
 
3
- Tạo · quét tại VERSION 2.8.0.
3
+ Tạo · quét tại VERSION 2.9.0.
4
4
 
5
5
  Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
6
6
 
@@ -104,10 +104,10 @@ Các dòng dùng màu `--cs-color-link` đã khai báo cho light hoặc dark. N
104
104
  | tho · sand | liên kết trên tint (chữ thân) | #695300 / #FEF8E7 | 6.98:1 | ✓ |
105
105
  | tho · sand | liên kết trên nền kem nâng tham chiếu (chữ thân) | #695300 / #FBF4E9 | 6.77:1 | ✓ |
106
106
  | tho · sand | liên kết trên panel tối tham chiếu (chữ thân) | #F9E5AE / #221710 | 14.06:1 | ✓ |
107
- | tho | liên kết trên trắng (chữ thân) | #644A05 / #FFFFFF | 8.32:1 | ✓ |
108
- | tho | liên kết trên trang tham chiếu (chữ thân) | #644A05 / #FFFDF8 | 8.19:1 | ✓ |
109
- | tho | liên kết trên tint (chữ thân) | #644A05 / #FBF4E9 | 7.62:1 | ✓ |
110
- | tho | liên kết trên nền kem nâng tham chiếu (chữ thân) | #644A05 / #FBF4E9 | 7.62:1 | ✓ |
107
+ | tho | liên kết trên trắng (chữ thân) | #744000 / #FFFFFF | 8.48:1 | ✓ |
108
+ | tho | liên kết trên trang tham chiếu (chữ thân) | #744000 / #FFFDF8 | 8.34:1 | ✓ |
109
+ | tho | liên kết trên tint (chữ thân) | #744000 / #FBF4E9 | 7.76:1 | ✓ |
110
+ | tho | liên kết trên nền kem nâng tham chiếu (chữ thân) | #744000 / #FBF4E9 | 7.76:1 | ✓ |
111
111
  | tho | liên kết trên panel tối tham chiếu (chữ thân) | #FFD57A / #221710 | 12.56:1 | ✓ |
112
112
  | tho · clay | liên kết trên trắng (chữ thân) | #462402 / #FFFFFF | 13.87:1 | ✓ |
113
113
  | tho · clay | liên kết trên trang tham chiếu (chữ thân) | #462402 / #FFFDF8 | 13.65:1 | ✓ |
@@ -184,8 +184,8 @@ Ghép `--cs-accent-strong` với `--cs-accent-on-strong`: cả pack light và da
184
184
  |---|---|---|---|---|
185
185
  | tho · sand | sáng | #FFFFFF / #856A03 | 80.8 | ✓ |
186
186
  | tho · sand | tối | #FFFFFF / #80671A | 82.2 | ✓ |
187
- | tho | sáng | #FFFFFF / #916D11 | 78.4 | ✓ |
188
- | tho | tối | #FFFFFF / #6E5205 | 90.1 | ✓ |
187
+ | tho | sáng | #FFFFFF / #A4631E | 78.4 | ✓ |
188
+ | tho | tối | #FFFFFF / #7D480C | 90.5 | ✓ |
189
189
  | tho · clay | sáng | #FFFFFF / #5A3004 | 99.5 | ✓ |
190
190
  | tho · clay | tối | #FFFFFF / #5C3001 | 99.3 | ✓ |
191
191
  | hoa · plasma | sáng | #FFFFFF / #896163 | 81.7 | ✓ |
@@ -221,7 +221,7 @@ Các ngưỡng đề xuất trong `_audit/apca-dark-preview.html`: bright ≥ 75
221
221
  | Pack | bright | accent | on | ink |
222
222
  |---|---|---|---|---|
223
223
  | tho · sand | 90.5 | 76.1 | 82.2 | 87.4 |
224
- | tho | 81.9 | 64.7 | 90.1 | 81 |
224
+ | tho | 81.9 | 64.7 | 90.5 | 81 |
225
225
  | tho · clay | 77.1 | 60.6 | 99.3 | 79.4 |
226
226
  | hoa · plasma | 89.4 | 75.1 | 82.8 | 86.4 |
227
227
  | hoa | 81.2 | 63.2 | 90.9 | 80.3 |
@@ -13,10 +13,10 @@ Mọi bề mặt render resolve bốn scope trực giao — không bao giờ mã
13
13
  |---|---|---|---|
14
14
  | **Theme** | `data-theme="dark\|system"` | light / dark / system (OS) | `tokens/colors.css` |
15
15
  | **Element** (Ngũ Hành) | `data-cs-element` + `data-cs-variant` | bản sắc hue theo sản phẩm | `tokens/elements.css` |
16
- | **Language** | `lang` / Language tweak | EN · VI bắt buộc; spike `ja` (primary subtag BCP-47) | registry component + props template — xem `docs/decisions/locale-architecture.md` |
17
- | **Style** | `data-cs-style` (tuỳ chọn; vắng ≡ `liquid-glass`) | pack vật liệu bề mặt | `tokens/styles.css` |
16
+ | **Language** | `lang` / Language tweak | EN · VI (`vi` mặc định trên bề mặt UI; spike `ja` nội bộ) | registry component + props template — xem `docs/decisions/locale-architecture.md` |
17
+ | **Style** | `data-cs-style` (tuỳ chọn; vắng ≡ `liquid-glass`) | pack vật liệu bề mặt (`liquid-glass` · `matte-paper`) | `tokens/styles.css` + `base/glass.css` |
18
18
 
19
- Pack Style duy nhất hiện nay là **liquid-glass**. Bất biến dưới mọi trục: anchors Umber/Ochre, voice, họ chữ, màu semantic status, chỉ báo focus ghép (contour text-primary + halo ochre), sàn APCA, target ≥44px.
19
+ Trục Style có hai pack: **liquid-glass** (mặc định) và **matte-paper** (bề mặt giấy mờ đặc sắc nét). Bất biến dưới mọi trục: anchors Umber/Ochre, voice, họ chữ, màu semantic status, chỉ báo focus ghép (contour text-primary + halo ochre), sàn APCA, target ≥44px.
20
20
 
21
21
  ## Ngữ pháp đặt tên
22
22
 
@@ -79,13 +79,13 @@ phần tử HTML, không dùng trong URL, thuộc tính, CSS hay script.
79
79
 
80
80
  **Element variant mới** — ở trong envelope oklch của element; đặt 10 token hợp đồng `--cs-accent-*` (gồm `--cs-accent-on-strong` ≥4.5:1 và APCA75 cho nội dung thường trên `-strong`) cộng `--cs-color-text-accent`/`--cs-color-link` (APCA-check cả hai); aurora wash kế thừa từ element qua `.cs-aurora-wash` (chỉ override class rule nếu variant thật sự cần ảnh riêng); đối tác gradient (`grad-b`) phải theo Tương sinh.
81
81
 
82
- **Ship check** — theo gate kiểm chứng portable trong `docs/doctrine.md`, rồi chạy `_audit/docs-consistency.html` **và** `_audit/namespace-portability.html` (cả hai phải xanh). VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.8.0<!-- /cs-source-version -->**.
82
+ **Ship check** — theo gate kiểm chứng portable trong `docs/doctrine.md`, rồi chạy `_audit/docs-consistency.html` **và** `_audit/namespace-portability.html` (cả hai phải xanh). VERSION của checkout nguồn **<!-- cs-source-version:checkout -->2.9.0<!-- /cs-source-version -->**.
83
83
 
84
84
  ## Decision log (owner duyệt)
85
85
 
86
86
  - Element thay thế hoàn toàn Ochre trong scope sản phẩm; cạnh hot-pink của plasma được duyệt (Th7 2026).
87
87
 
88
- - Trục: Theme × Element × Language × Style. Pack Style liquid-glass (sole pack; vắng ≡ mặc định).
88
+ - Trục: Theme × Element × Language × Style. Pack Style gồm `liquid-glass` (mặc định; vắng ≡ mặc định) và `matte-paper`.
89
89
 
90
90
  - Product registry **đã khóa** (Th7 2026) — tám ánh xạ portfolio trong `docs/products.md`; không invent ánh xạ product → element mới.
91
91
 
@@ -104,7 +104,7 @@ Theo dõi vận hành — không phải marketing sản phẩm, không phải ba
104
104
 
105
105
  7. **Hình học màu Element** (Th7 2026; thanh palette owner Th7 2026) — **30** bộ mặc định (5 × soft/middle/deep × light/dark) từ `tokens/element-seeds.json` (`npm run tokens:elements`): soft = pastel wash, middle = mặc định đồng bộ cường độ (Thổ middle ghim ochre logo), deep = anh em tối hơn rõ trong cùng họ hue; role hài hòa; khóa hue light↔dark; sàn APCA dark. Gate geometry yêu cầu cả minΔE và minΔL cộng L đơn điệu. Tên variant công khai không đổi. Hard gate: `_audit/element-geometry.html`. Rubric: `docs/benchmark-rubric.md`.
106
106
 
107
- 8. **Trục Style (`data-cs-style`)** (Th7 2026) — Trục sản phẩm thứ tư; sole pack live **liquid-glass** (vắng ≡ liquid-glass). Hợp đồng: `tokens/styles.css` + hard gate `_audit/style-contract.html`. Pack Style tương lai có thể mở rộng vô hạn, mỗi pack một ngôn ngữ phối màu riêng — chỉ qua owner + checklist Expansion Rule trong `docs/benchmark-rubric.md` (không invent pack tùy tiện).
107
+ 8. **Trục Style (`data-cs-style`)** (Th7 2026; mở rộng Th11 2026) — Trục sản phẩm thứ tư; hai pack hiện hành **liquid-glass** (mặc định; vắng ≡ liquid-glass) và **matte-paper** (bề mặt giấy mờ đặc sắc nét, không làm mờ nền, dành cho không gian biên tập/dày dữ liệu). Hợp đồng: `tokens/styles.css` + `base/glass.css` + hard gate `_audit/style-contract.html`. Pack Style tương lai chỉ mở rộng qua owner + checklist Expansion Rule trong `docs/benchmark-rubric.md` (không invent pack tùy tiện).
108
108
 
109
109
  9. **Identity Lab đã gỡ** (Th7 2026) — Lựa chọn owner: xóa `ui_kits/status-hub/identity-lab.html` và mọi tham chiếu product/docs/Storybook. Demo trục nằm ở Storybook toolbar Theme × Element × Language × Style, Atomic View, và specimen Elements Geometry. Các trục Theme × Element × Language × Style **vẫn là** hạ tầng sản phẩm (template, token, kit trung thành Thổ). Không hồi sinh Lab dưới tên khác nếu chưa có quyết định mới.
110
110
 
@@ -130,7 +130,7 @@ Quy tắc:
130
130
 
131
131
  Bản ghi chuẩn: [`docs/decisions/locale-architecture.md`](../decisions/locale-architecture.md) (EN).
132
132
 
133
- - Language vẫn là trục sản phẩm (Theme × Element × Language × Style). Giá trị là primary language subtag (`en` · `vi` · spike `ja`), không phải trục locale lồng, chưa dùng full region tag.
133
+ - Language vẫn là trục sản phẩm (Theme × Element × Language × Style). Trên bề mặt UI chỉ hiển thị `vi` · `en` (`vi` mặc định); `ja` giữ làm spike fallback BCP-47 nội bộ cho Pagination, không đưa lên thanh công cụ UI.
134
134
  - Registry giữ cặp EN·VI bắt buộc; bảng spike tùy chọn phải khớp key `en` khi có.
135
135
  - Mặc định tiếng Việt trước không đổi (`lang` trống → `vi`). Plural/ICU và biến thể vùng là follow-on.
136
136
 
package/docs/vi/deploy.md CHANGED
@@ -5,7 +5,7 @@ Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
5
5
  Hai track:
6
6
 
7
7
  1. **Design system portable (consumers)** — consumer HTML có thể link `styles.css` đã review và `_ds_bundle.js` tùy chọn, hoặc dùng entry legacy cho trình duyệt `_esm/cs.mjs`, mà không cần bundler. Import npm mặc định (`dist/esm/_esm/react.mjs`) là ESM đã biên dịch với React peer; app React cần bộ phân giải module tương thích. JSX nguồn vẫn có qua export nguồn tường minh. Storybook là công cụ của host. Payload npm portable theo `package.json` → `files`; hosting public dùng allowlist đã review trong `scripts/public-site-policy.json`.
8
- 2. **Host site (`design.cyberskill.world`)** — output tĩnh đóng gói cho Vercel. Packaging **có** chạy Node một lần lúc deploy để Storybook ship làm bề mặt sản phẩm tại `/`. Vẫn không có app server chạy dài.
8
+ 2. **Host site (`design.cyberskill.world`)** — output tĩnh đóng gói cho GitHub Pages (`.github/workflows/pages.yml` xuất bản `.vercel-static/` kèm `.nojekyll` và `CNAME`) hoặc mọi static host. Packaging **có** chạy Node một lần lúc deploy để Storybook ship làm bề mặt sản phẩm tại `/`. Vẫn không có app server chạy dài.
9
9
 
10
10
  Production **`/`** là build tĩnh Storybook. Legacy `/dashboard`, `/dashboard/`, `/dashboard.html`, `/dashboard/:path*`, `/playground`, `/playground/`, và `/playground/:path*` redirect về `/`.
11
11
 
@@ -1,13 +1,13 @@
1
1
  # Phong cách thiết kế
2
2
 
3
- Các trục styling sống là **Theme × Element × Language × Style**. Pack Style duy nhất hiện tại là **liquid-glass**; khi không có attribute style, pack này được dùng. Phần tử con không có attribute kế thừa phạm vi theme và element gần nhất; root trung tính mặc định sáng với các màu neo thương hiệu studio. Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
3
+ Các trục styling sống là **Theme × Element × Language × Style**. Trục Style có hai pack vật liệu bề mặt: **liquid-glass** (mặc định; khi không có attribute style, pack này được dùng) và **matte-paper** (bề mặt giấy mờ đặc sắc nét, không làm mờ nền). Phần tử con không có attribute kế thừa phạm vi theme và element gần nhất; root trung tính mặc định sáng với các màu neo thương hiệu studio. Xuất bản trên Storybook **Docs** tại `design.cyberskill.world`.
4
4
 
5
5
  | Trục | Cách đặt | Thay đổi gì |
6
6
  |---|---|---|
7
7
  | **Theme** | `data-theme="light"`, `"dark"` hoặc `"system"`; khi không có attribute, kế thừa phạm vi gần nhất (root trung tính mặc định sáng) | màu semantic sáng/tối (trục UI sản phẩm). Light tường minh đặt lại phạm vi dưới tổ tiên dark. System theo tuỳ chọn sáng/tối của OS qua `prefers-color-scheme`; Storybook toolbar và Atomic View có cả ba giá trị |
8
8
  | **Element** | `data-cs-element` + tùy chọn `data-cs-variant` | bản sắc sản phẩm Ngũ Hành (**15 pack** = 5 element × soft/middle/deep) |
9
- | **Language** | `lang` / Language tweak | nội dung dựng sẵn EN · VI, mặc định tiếng Việt; `ja` tuỳ chọn chỉ là thử nghiệm Pagination có giới hạn, không phải bao phủ tiếng Nhật đầy đủ |
10
- | **Style** | `data-cs-style` (tuỳ chọn; vắng ≡ `liquid-glass`) | Pack vật liệu bề mặt. Sole pack hôm nay: **liquid-glass** (`tokens/styles.css` + `base/glass.css`) |
9
+ | **Language** | `lang` / Language tweak | nội dung dựng sẵn EN · VI (`vi` mặc định trên các bề mặt UI); `ja` chỉ là thử nghiệm i18n nội bộ cho Pagination, không phải tùy chọn trên thanh công cụ UI |
10
+ | **Style** | `data-cs-style` (tuỳ chọn; vắng ≡ `liquid-glass`) | Pack vật liệu bề mặt: **liquid-glass** (kính mờ quang học mặc định) · **matte-paper** (bề mặt giấy mờ đặc sắc nét, `tokens/styles.css` + `base/glass.css`) |
11
11
 
12
12
  ## Hợp đồng màu Element
13
13
 
@@ -24,11 +24,12 @@ Nguồn sự thật: [`tokens/element-seeds.json`](../../tokens/element-seeds.js
24
24
  | **Không bao giờ remap** | Chỉ báo focus tổ hợp (viền text-primary + hào quang ochre) · màu semantic status |
25
25
  | **Gate hình học** | [`_audit/element-geometry.html`](../../_audit/element-geometry.html) — sync cường độ · tách variant · khóa hue |
26
26
 
27
- ## Pack Style — liquid-glass
27
+ ## Các pack Style — liquid-glass & matte-paper
28
28
 
29
- - Vật liệu liquid-glass (`cs-surface-*`) là ngôn ngữ bề mặt mặc định.
29
+ - **liquid-glass** (`cs-surface-*`, mặc định khi vắng `data-cs-style`) là ngôn ngữ bề mặt kính mờ quang học.
30
+ - **matte-paper** (`data-cs-style="matte-paper"`) tắt làm mờ nền, chuyển `.cs-surface-*` và `.cs-card` / `.cs-dialog` / `.cs-drawer` / `.cs-popover__panel` / `.cs-menu__list` sang nền đặc `--cs-color-surface-panel` / `--cs-color-surface-raised` với viền liền `1px` `--cs-color-border-default` và độ nổi phẳng (`--cs-shadow-xs`), phù hợp cho trình soạn thảo pháp lý/biên tập, bảng ERP dày dữ liệu và War-Room; phạm vi con `[data-cs-style="liquid-glass"]` khôi phục hiệu ứng kính mờ.
30
31
  - Radius, shadow và token kính đến từ `tokens/elevation.css` + `base/glass.css`; hợp đồng trục Style nằm ở [`tokens/styles.css`](../../tokens/styles.css).
31
- - Gate: [`_audit/style-contract.html`](../../_audit/style-contract.html) — allowlist chỉ `liquid-glass`.
32
+ - Gate: [`_audit/style-contract.html`](../../_audit/style-contract.html) — allowlist `liquid-glass` và `matte-paper`.
32
33
  - Từ chối theo doctrine: hue neon/cyberpunk lạnh, memphis vui nhộn, skeuomorphism đầy đủ, emoji trong chrome UI.
33
34
  - Họ chữ cố định và có tên token: Be Vietnam Pro (UI) · Space Grotesk (`--cs-font-family-display`, mặt chữ tiêu đề opt-in) · JetBrains Mono (code). Mặt chữ display là **role một scope có thể chọn dùng** qua `.cs-display-face`, không phải trục sản phẩm.
34
35
 
@@ -40,7 +41,7 @@ Nguồn sự thật: [`tokens/element-seeds.json`](../../tokens/element-seeds.js
40
41
  3. Pattern đã ghi trong `docs/conventions.md` + specimen card khi pattern cần tái sử dụng.
41
42
  4. Pack **`data-cs-style`** mới chỉ sau Expansion Rule — xem checklist trong [`docs/vi/benchmark-rubric.md`](benchmark-rubric.md). Style tiêu thụ cùng 10 role accent (gồm `on-strong`); không invent pack Element song song.
42
43
 
43
- Không invent trục sản phẩm thứ năm, và không thêm Style pack thứ hai khi chưa đủ checklist Expansion Rule.
44
+ Không invent trục sản phẩm thứ năm, và không thêm Style pack chưa rà soát khi chưa đủ checklist Expansion Rule.
44
45
 
45
46
  ## Công tắc theme nội bộ
46
47
 
@@ -53,7 +54,7 @@ Bảo trì generator nguồn rồi chạy `npm run tokens:generate` và `npm run
53
54
 
54
55
  ## Mật độ và vai trò khoảng cách công khai
55
56
 
56
- `data-cs-density="compact"` hiện tác động đến Button và các chỉ số dùng chung của `.cs-field__control`. TextField, Textarea, Select, NativeSelect và Mentions dùng lớp này. Các token của component mang giá trị ghi đè trực tiếp; các utility `--cs-density-*` riêng không chứng minh mức áp dụng rộng hơn. Mức tối thiểu của vùng bấm cho con trỏ thô vẫn được giữ.
57
+ `data-cs-density="compact"` thu gọn Button, chỉ số `.cs-field__control` dùng chung (TextField, Textarea, Select, NativeSelect, Mentions), và nhịp điệu khung chứa của `.cs-card`, `.cs-table`, `.cs-dialog`, `.cs-field`, `.cs-review-gate`, `.cs-alert`, `.cs-toast`, `.cs-tag`, `.cs-tab`, `.cs-menu`, `.cs-stat` và `.cs-divider` (có đặt lại cho `[data-cs-density="comfortable"]` lồng bên trong). Mức tối thiểu `>= 44px` của vùng bấm cho con trỏ thô vẫn được giữ nghiêm ngặt. `data-cs-contrast="high"` (và `prefers-contrast: more`) tăng cường tương phản cho token chữ/viền cùng các ô nhập biểu mẫu, viền tấm kính và đường kẻ ô bảng/datagrid.
57
58
 
58
59
  Chỉ thay giá trị trực tiếp bằng token khoảng cách khi chúng biểu đạt cùng một vai trò bố cục. Các sửa đổi hiện tại xác minh hình học không đổi và tác động thực tế khi thay token cho control và bố cục collection. Độ dày viền, cỡ chữ, hình học cố định và vùng bấm không tự động là ứng viên cho token khoảng cách. Vì vậy, thống kê `px` đo số giá trị, không đo số lỗi.
59
60
 
@@ -42,7 +42,7 @@ Kiểm sâu, không điểm danh bề mặt. Phủ **cả tập và mọi trạn
42
42
  | Ngôn ngữ | Việt Nam trước; mọi chuỗi UI gửi cặp EN + VN |
43
43
  | Sàn a11y | APCA Lc ≥ 75 chữ thân; không bao giờ gỡ focus ring; mục tiêu chạm ≥ 44px |
44
44
  | Trục | Theme × Element × Language × Style (độc lập) |
45
- | Gói Style | liquid-glass (gói duy nhất; vắng ≡ mặc định) |
45
+ | Gói Style | liquid-glass (mặc định; vắng ≡ mặc định) · matte-paper |
46
46
 
47
47
  Một accent mỗi bề mặt. Trạng thái ngữ nghĩa và chỉ báo focus tổ hợp (viền text-primary + hào quang ochre) không bao giờ elemental. Lumi luôn vàng trong mọi element.
48
48
 
@@ -15,7 +15,7 @@ Tệp này không thay thế doctrine, registry sản phẩm hay hướng dẫn
15
15
  - **Các màu neo tuân theo bảng doctrine suy ra từ nguồn bên dưới.** Mỗi bề mặt chỉ một accent (Ochre ở lõi; accent Ngũ Hành của sản phẩm trong scope `data-cs-element`). Mọi màu trung tính ngả ấm về umber — không dùng xám lạnh.
16
16
  - **Ưu tiên tiếng Việt và song ngữ** — cung cấp EN + VN, giữ dấu, dùng line-height phù hợp tiếng Việt. Mọi template song ngữ có `lang` ở gốc (xem quy ước → Ngôn ngữ trình đọc màn hình).
17
17
  - **Ngưỡng tiếp cận tối thiểu** — giữ chỉ báo tiêu điểm kết hợp (viền text-primary và quầng Ochre); vùng chạm ≥44px trên con trỏ thô; văn bản nội dung APCA Lc ≥ 75; tôn trọng `prefers-reduced-motion`/`prefers-contrast`. Kiểu tiêu điểm nằm trong `base/reset.css` và CSS component; `base/a11y.css` bao phủ kích thước con trỏ thô và cơ chế dự phòng tùy chọn. Kiểm chứng trạng thái tiêu điểm hiển thị sau thay đổi.
18
- - **Ngữ pháp** — Theme × Element × Language × Style là các trục độc lập. Gói phong cách là liquid-glass (gói duy nhất; không khai báo ≡ mặc định).
18
+ - **Ngữ pháp** — Theme × Element × Language × Style là các trục độc lập. Các gói phong cách gồm `liquid-glass` (mặc định; không khai báo ≡ mặc định) và `matte-paper`.
19
19
  - **Giọng điệu** — ấm áp / trực tiếp / trung thực / tôn trọng. Sản phẩm là “điều ước” mà Lumi giúp hiện thực hóa. Lumi luôn màu vàng trong mọi hành.
20
20
 
21
21
  ## Mở rộng và kiểm chứng
@@ -30,6 +30,13 @@ Quy tắc mở rộng và yêu cầu độ sâu kiểm chứng nằm trong **[`d
30
30
  - **Card / guideline** — `.html` với dòng đầu `<!-- @dsCard group="…" … -->`.
31
31
  - **Tài liệu** — EN + VI cho mọi `docs/*.md`; thêm trang vào thanh bên Storybook Docs (catalog + story) và `docs/viewer.html`. `docs-storybook-coverage` thất bại nếu trang chỉ tồn tại trong git.
32
32
 
33
+ ## Thiết lập, chạy, benchmark & quy trình phát hành
34
+
35
+ - **1. Toolchain & máy chủ cục bộ** — Chạy `node scripts/bootstrap-toolchain.mjs` và `node scripts/npm.mjs ci` trên Node >=22.12.0. Khởi chạy Storybook bằng `node scripts/npm.mjs run storybook` (`http://127.0.0.1:6006`) hoặc phục vụ kho nguồn tĩnh bằng `node scripts/npm.mjs run verify:serve` (`http://127.0.0.1:8765/_audit/run.html`). Trước khi chạy bảng cổng headless trên bản checkout mới, hãy tạo biên nhận pixel bằng `node _audit/ci/pixel-diff.mjs http://127.0.0.1:8765`, sau đó chạy `node _audit/ci/run-gates.mjs http://127.0.0.1:8765/_audit/run.html`.
36
+ - **2. Benchmark trình duyệt trực tiếp 20 chiều (`D1`–`D20`)** — Chạy `node scripts/npm.mjs run test:audit-regression` (`node _audit/ci/verify-audit-benchmarks-browser.mjs`) để kiểm chứng toàn bộ `129/129` phép kiểm tra `D1`–`D20` (`_audit/ci/fixtures/benchmark-20d.html`), `64/64` phép kiểm tra cơ sở (`_audit/ci/fixtures/benchmark-baseline.html`), `192/192` ô tương phản phi văn bản trên 32 scope `Theme × Element × Variant`, và `3/3` màn hình sản phẩm chịu tải Generation-2 (`_audit/ci/fixtures/benchmark-gen2.html`). Để thêm chiều đo mới (`D21+`) hoặc phép kiểm tra màn hình phức hợp, cập nhật `_audit/ci/lib/benchmark-checks.mjs` và fixture tương ứng trong `_audit/ci/fixtures/`.
37
+ - **3. Vòng lặp benchmark thiết kế AI bên ngoài (Google Stitch & Claude Design)** — Cung cấp `DESIGN.md` cho Google Stitch và `@cyberskill/design` + `DESIGN.md` cho Claude Design cùng các prompt chịu tải đa trục (ví dụ: bảng dữ liệu mật độ cao, split-pane lồng nhau, ngăn kéo di động con trỏ thô, theme tối Ngũ Hành). Kiểm tra kết quả render trên Chromium headless về độ tương phản, tràn bố cục, đồng nhất trạng thái lỗi và khoảng hở dấu tiếng Việt. Vá nguyên nhân gốc trong `tokens/*.css`, `base/*.css`, `components/` hoặc `scripts/design-md-lib.mjs`, khóa quy tắc mới vào `_audit/ci/lib/benchmark-checks.mjs`, rồi xóa các tệp HTML/ảnh chụp benchmark tạm thời để giữ kho nguồn sạch.
38
+ - **4. CI cục bộ nhanh, GitHub Pages & phát hành npm OIDC** — Chạy `node scripts/npm.mjs run build:check` để kiểm chứng toàn bộ độ mới và unit test, hoặc `node scripts/run-act-ci.mjs --stamp-current --with-status` để ghi biên nhận `ci/act/*` gắn với commit. Các bản đẩy lên nhánh `main` tự động xuất bản trang tĩnh (`npm run build:site` → `.vercel-static/` kèm `.nojekyll` và `CNAME`) lên `https://design.cyberskill.world/` qua `.github/workflows/pages.yml`. Để phát hành bản npm mới, chạy `node scripts/prepare-release.mjs --version X.Y.Z --source-sha <SHA> --write`, commit, gắn thẻ `vX.Y.Z` và đẩy lên để `.github/workflows/npm-publish.yml` phát hành `@cyberskill/design` với chứng thực nguồn gốc OIDC.
39
+
33
40
  Danh tính người bảo trì và đường đóng góp được ghi trong [MAINTAINERS.md](../../../MAINTAINERS.md). `.github/CODEOWNERS` chuyển yêu cầu review đến chủ sở hữu đã được bổ nhiệm; nó không bật quy tắc phê duyệt từ xa hay cấp quyền phát hành.
34
41
 
35
42
  ## Quy trình agent
@@ -71,7 +78,7 @@ Các bất biến của doctrine (suy ra từ nguồn):
71
78
  | Ngôn ngữ | Ưu tiên tiếng Việt; mỗi chuỗi giao diện có cặp EN + VN |
72
79
  | Ngưỡng tiếp cận tối thiểu | APCA Lc ≥ 75 cho văn bản nội dung; không bao giờ bỏ vòng tiêu điểm; vùng chạm ≥ 44px |
73
80
  | Các trục | Theme × Element × Language × Style (độc lập) |
74
- | Gói phong cách | liquid-glass (gói duy nhất; không khai báo ≡ mặc định) |
81
+ | Gói phong cách | liquid-glass (mặc định; không khai báo ≡ mặc định) · matte-paper |
75
82
 
76
83
  - **static-html** — `styles.css`; [hướng dẫn](../../../DESIGN.md). Dùng lớp .cs-*; .dc.html còn cần trình thông dịch được cung cấp hoặc runtime hiểu ngữ pháp đã được kiểm chứng.
77
84
  - **react** — `@cyberskill/design`; [hướng dẫn](../../../docs/consuming.md). ESM đã biên dịch với peer React; @cyberskill/design/source tường minh là JSX thô. Không cam kết CommonJS.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "CyberSkill Design System"
3
- version: "2.8.0"
3
+ version: "2.9.0"
4
4
  generated: "2026-07-23"
5
5
  generator: "scripts/generate-design-md.mjs (npm run build:design-md)"
6
6
  sources:
@@ -21,7 +21,7 @@ gate: "_audit/design-md-parity.html (window.__designmd)"
21
21
 
22
22
  - **Khẩu hiệu:** *Turn Your Will Into Real — Hiện Thực Hoá Ý Chí*.
23
23
  - **Điểm neo bất biến:** Umber `#45210E` (màu thương hiệu chính) · Ochre `#F4BA17` (màu nhấn). Không ánh xạ lại; chỉ báo focus kết hợp (đường viền text-primary + quầng ochre) là dấu hiệu nhận diện khả năng tiếp cận của toàn studio.
24
- - **Bốn trục:** Chủ đề (sáng · tối · theo hệ thống) × Nguyên tố (Ngũ Hành — Kim · Mộc · Thủy · Hỏa · Thổ, 15 gói nguyên tố×biến thể) × Ngôn ngữ (EN · VI) × Phong cách (`data-cs-style` — chỉ có gói **liquid-glass**; không khai báo ≡ mặc định).
24
+ - **Bốn trục:** Chủ đề (sáng · tối · theo hệ thống) × Nguyên tố (Ngũ Hành — Kim · Mộc · Thủy · Hỏa · Thổ, 15 gói nguyên tố×biến thể) × Ngôn ngữ (EN · VI) × Phong cách (`data-cs-style` — **liquid-glass** mặc định, không khai báo ≡ mặc định · **matte-paper** bề mặt giấy mờ đặc sắc nét).
25
25
  - **Phạm vi ngôn ngữ:** ưu tiên tiếng Việt; chuỗi của thành phần đã đăng ký phải có cặp EN + VI. Khả năng ngôn ngữ của từng mẫu được khai báo riêng; nội dung do bên dùng cung cấp cần được dịch và rà soát riêng. Giữ đầy đủ dấu; cặp ngôn ngữ được khai báo không chứng nhận chất lượng dịch hay cách phát âm của trình đọc màn hình.
26
26
  - **Không đặt chữ trên sắc độ trung gian `-accent`:** dùng `-bright` hoặc `-tint`, hoặc kết hợp nền `-strong` với `--cs-accent-on-strong` cho văn bản nội dung. `-accent` dành cho thanh, đường viền, phần tô tiến trình và mảng màu lớn không chứa chữ.
27
27
  - **Ngưỡng khả năng tiếp cận:** APCA Lc ≥ 75 cho văn bản nội dung · vùng chạm ≥ 44px · không loại bỏ vòng focus · tôn trọng `prefers-reduced-motion` / `prefers-contrast`.
@@ -45,7 +45,7 @@ Màu ngữ nghĩa cốt lõi. Giá trị tối là phần ghi đè `[data-theme=
45
45
  | `--cs-color-text-primary` | `#45210E` | `#f5ead9` |
46
46
  | `--cs-color-text-inverse` | `#FFFFFF` | `#1a1108` |
47
47
  | `--cs-color-text-accent` | `#6E3B0E` | `#FECD5D` |
48
- | `--cs-color-text-muted` | `#3F2D21` | `#E9D6C2` |
48
+ | `--cs-color-text-muted` | `#5E4436` | `#E9D6C2` |
49
49
  | `--cs-color-semantic-success` | `#166534` | `#4ADE80` |
50
50
  | `--cs-color-semantic-danger` | `#B42318` | `#FC9895` |
51
51
  | `--cs-color-semantic-warning` | `#92400E` | `#FBBF24` |
@@ -76,7 +76,7 @@ Gói màu nhấn mặc định = Thổ (nguyên tố của studio). Toàn bộ 1
76
76
  | Token | Giá trị |
77
77
  |---|---|
78
78
  | `--cs-accent` | `#F4BA17` |
79
- | `--cs-accent-strong` | `#916D11` |
79
+ | `--cs-accent-strong` | `#A4631E` |
80
80
  | `--cs-accent-bright` | `#F4BA17` |
81
81
  | `--cs-accent-on` | `#45210E` |
82
82
  | `--cs-accent-tint` | `#FBF4E9` |
@@ -297,9 +297,9 @@ Giá trị bóng là chuỗi CSS box-shadow nguyên gốc từ `$extensions["com
297
297
  |---|---|---|
298
298
  | `--cs-shadow-xs` | `0 1px 2px rgba(69, 33, 14, 0.06)` | `0 1px 2px rgba(0, 0, 0, 0.40)` |
299
299
  | `--cs-shadow-sm` | `0 1px 3px rgba(69, 33, 14, 0.04), 0 8px 24px rgba(69, 33, 14, 0.06)` | `0 1px 3px rgba(0, 0, 0, 0.34), 0 8px 24px rgba(0, 0, 0, 0.42)` |
300
- | `--cs-shadow-md` | `0 12px 30px rgba(31, 19, 11, 0.18)` | `0 12px 30px rgba(0, 0, 0, 0.50)` |
300
+ | `--cs-shadow-md` | `0 12px 30px rgba(69, 33, 14, 0.14)` | `0 12px 30px rgba(0, 0, 0, 0.50)` |
301
301
  | `--cs-shadow-lg` | `0 20px 60px rgba(69, 33, 14, 0.18)` | `0 20px 60px rgba(0, 0, 0, 0.55)` |
302
- | `--cs-shadow-xl` | `0 24px 80px rgba(31, 19, 11, 0.26)` | `0 24px 80px rgba(0, 0, 0, 0.62)` |
302
+ | `--cs-shadow-xl` | `0 24px 80px rgba(69, 33, 14, 0.24)` | `0 24px 80px rgba(0, 0, 0, 0.62)` |
303
303
 
304
304
  ### Thang chiều sâu và vật liệu Liquid Glass
305
305
 
@@ -432,7 +432,7 @@ Bố cục dựa trên nhịp không gian `4px` (`--cs-space-1` đến `--cs-spa
432
432
 
433
433
  ## Hướng dẫn prompt cho Agent và khung khởi tạo
434
434
 
435
- - **Thuộc tính gốc (`<html>`):** đặt `lang="vi"` (hoặc `lang="en"`), `data-theme="light"` (`"dark"` | `"system"`), tùy chọn `data-cs-element="tho"` (`"kim"` | `"moc"` | `"thuy"` | `"hoa"` | `"tho"`), tùy chọn `data-cs-density="comfortable"` (`"compact"`), và tùy chọn `data-cs-contrast="high"`.
435
+ - **Thuộc tính gốc (`<html>`):** đặt `lang="vi"` (hoặc `lang="en"`), `data-theme="light"` (`"dark"` | `"system"`), tùy chọn `data-cs-element="tho"` cùng `data-cs-variant` chính xác (`tho` `#45210E`/`#F4BA17`: mặc định/không khai báo, `"sand"`, `"clay"`, bí danh `"studio"`/`"ochre"`; `hoa` `#992515`/`#F26C4F`: mặc định/không khai báo, `"plasma"`, `"lava"`, bí danh `"ember"`; `thuy` `#0D5A8A`/`#58B4E8`: mặc định/không khai báo, `"mist"`, `"ocean"`, bí danh `"river"`; `moc` `#1F5C3A`/`#62C389`: mặc định/không khai báo, `"bamboo"`, `"forest"`, bí danh `"jade"`/`"leaf"`; `kim` `#374151`/`#D6DCE5`: mặc định/không khai báo, `"titanium"`, `"steel"`, bí danh `"gold"`/`"champagne"`/`"silver"`), tùy chọn `data-cs-style="liquid-glass"` (`"matte-paper"` cho bề mặt biên tập/mật độ cao đặc không nhòe kính), tùy chọn `data-cs-density="comfortable"` (`"compact"`), và tùy chọn `data-cs-contrast="standard"` (`"high"`). Các bí danh lớp CSS theo tên thành phần (`.cs-review-gate` / `.cs-human-review-gate`, `.cs-otp` / `.cs-input-otp`, `.cs-select` / `.cs-select__trigger`, và `.cs-datagrid tr.is-selected` / `tr.cs-item.is-selected`) cùng các lớp tài liệu pháp lý (`.cs-doc-sheet`, `.cs-doc-motto`, `.cs-doc-section-bar`, `.cs-doc-blank`, `.cs-doc-field`) được định kiểu tự nhiên.
436
436
  - **Chọn runtime:** nạp `styles.css` (hoặc `styles.layered.css`) cho HTML tĩnh `.cs-*`; nhập `@cyberskill/design` (`dist/esm/_esm/react.mjs`) cho React ESM đã biên dịch hoặc `@cyberskill/design/source` (`_esm/react.mjs`) cho JSX nguồn; chỉ dùng `templates/_vendor/support.js` khi xem trước tài liệu `.dc.html`.
437
437
  - **Danh sách kiểm tra khi viết prompt cho AI:** nêu rõ (1) runtime đích (`static-html` hay `react`), (2) chủ đề và nguyên tố Ngũ Hành (`data-theme`, `data-cs-element`), (3) cặp nội dung song ngữ (`vi` + `en` giữ nguyên dấu tiếng Việt), (4) khung chứa đáp ứng (`max-width: var(--cs-container-xl)` hoặc `.cs-cq`), và (5) căn chỉnh chữ số dạng bảng (`.cs-tabular` / `.cs-table__cell--numeric`) cho chỉ số và bảng.
438
438
  - **Tham chiếu nhanh màu sắc và token:** Màu thương hiệu chính Umber `#45210E` (`--cs-color-brand-umber`) · Màu nhấn Ochre `#F4BA17` (`--cs-color-brand-ochre`) · Nền trang `#FFFDF8` / tối `#1a1108` (`--cs-color-surface-page`) · Nền bảng `#FFFFFF` / tối `#221710` (`--cs-color-surface-panel`) · Nền nổi `#FBF4E9` / tối `#2b1e14` (`--cs-color-surface-raised`) · Viền mặc định `#E7D9C6` / tối `#4a3a2c` (`--cs-color-border-default`).