@cyberskill/design 1.0.0 → 1.1.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 (264) hide show
  1. package/DESIGN.md +10 -9
  2. package/README.md +31 -28
  3. package/SKILL.md +13 -9
  4. package/VERSION +1 -1
  5. package/_ds_bundle.js +660 -202
  6. package/_ds_manifest.json +1 -1
  7. package/_esm/cs.mjs +14 -8
  8. package/_esm/react.d.ts +216 -0
  9. package/_esm/react.mjs +114 -0
  10. package/base/collections.css +31 -0
  11. package/base/components.css +3 -0
  12. package/base/data.css +33 -0
  13. package/base/forms.css +8 -0
  14. package/base/interaction.css +1 -0
  15. package/base/typography.css +6 -0
  16. package/components/_i18n/strings.js +8 -4
  17. package/components/ai/ai-conversation.card.html +2 -2
  18. package/components/ai/ai-lumi.card.html +2 -2
  19. package/components/ai/ai.card.html +2 -2
  20. package/components/brand/brand.card.html +2 -2
  21. package/components/button/buttons.card.html +2 -2
  22. package/components/data/AspectRatio.d.ts +16 -0
  23. package/components/data/AspectRatio.figma.tsx +12 -0
  24. package/components/data/AspectRatio.jsx +16 -0
  25. package/components/data/AspectRatio.prompt.md +7 -0
  26. package/components/data/Collapsible.d.ts +21 -0
  27. package/components/data/Collapsible.figma.tsx +12 -0
  28. package/components/data/Collapsible.jsx +49 -0
  29. package/components/data/Collapsible.prompt.md +7 -0
  30. package/components/data/Image.d.ts +4 -0
  31. package/components/data/Image.prompt.md +2 -2
  32. package/components/data/Item.d.ts +26 -0
  33. package/components/data/Item.figma.tsx +12 -0
  34. package/components/data/Item.jsx +63 -0
  35. package/components/data/Item.prompt.md +10 -0
  36. package/components/data/ScrollArea.d.ts +16 -0
  37. package/components/data/ScrollArea.figma.tsx +12 -0
  38. package/components/data/ScrollArea.jsx +25 -0
  39. package/components/data/ScrollArea.prompt.md +7 -0
  40. package/components/data/collections.card.html +15 -4
  41. package/components/data/data.card.html +15 -4
  42. package/components/datatable/datatable.card.html +2 -2
  43. package/components/dialog/dialog.card.html +2 -2
  44. package/components/feedback/feedback-2.card.html +2 -2
  45. package/components/feedback/feedback.card.html +2 -2
  46. package/components/forms/Cascader.jsx +5 -3
  47. package/components/forms/Editor.prompt.md +1 -1
  48. package/components/forms/InputGroup.d.ts +4 -0
  49. package/components/forms/InputGroup.jsx +38 -8
  50. package/components/forms/InputGroup.prompt.md +3 -3
  51. package/components/forms/NativeSelect.d.ts +22 -0
  52. package/components/forms/NativeSelect.figma.tsx +12 -0
  53. package/components/forms/NativeSelect.jsx +56 -0
  54. package/components/forms/NativeSelect.prompt.md +10 -0
  55. package/components/forms/NumberField.d.ts +5 -0
  56. package/components/forms/NumberField.jsx +51 -7
  57. package/components/forms/NumberField.prompt.md +2 -2
  58. package/components/forms/SegmentedControl.jsx +1 -1
  59. package/components/forms/TagInput.d.ts +3 -0
  60. package/components/forms/TagInput.jsx +62 -20
  61. package/components/forms/TagInput.prompt.md +2 -2
  62. package/components/forms/forms-2.card.html +2 -2
  63. package/components/forms/forms.card.html +5 -4
  64. package/components/icon/Icon.prompt.md +1 -1
  65. package/components/icon/icon.card.html +2 -2
  66. package/components/logo/Logo.jsx +2 -1
  67. package/components/logo/logo.card.html +2 -2
  68. package/components/navigation/Menu.jsx +14 -1
  69. package/components/navigation/navigation.card.html +2 -2
  70. package/components/navigation/shell.card.html +2 -2
  71. package/components/overlays/AlertDialog.d.ts +29 -0
  72. package/components/overlays/AlertDialog.figma.tsx +12 -0
  73. package/components/overlays/AlertDialog.jsx +142 -0
  74. package/components/overlays/AlertDialog.prompt.md +12 -0
  75. package/components/overlays/Drawer.jsx +1 -1
  76. package/components/overlays/Popconfirm.jsx +14 -1
  77. package/components/overlays/Popover.jsx +14 -1
  78. package/components/overlays/alertdialog.card.html +42 -0
  79. package/components/overlays/overlays.card.html +2 -2
  80. package/components/textfield/textfield.card.html +2 -2
  81. package/docs/benchmark-rubric.md +46 -0
  82. package/docs/ci-cd.md +17 -11
  83. package/docs/consumer-grant.md +37 -0
  84. package/docs/consuming.md +45 -16
  85. package/docs/contrast-report.md +91 -103
  86. package/docs/conventions.md +12 -9
  87. package/docs/decisions.md +33 -10
  88. package/docs/deploy.md +1 -1
  89. package/docs/design-styles.md +26 -8
  90. package/docs/figma.md +3 -3
  91. package/docs/live-hub.md +5 -3
  92. package/docs/products.md +13 -11
  93. package/docs/quality-gates.md +35 -21
  94. package/docs/release-notes.md +13 -3
  95. package/docs/status/assets/favicon.svg +5 -0
  96. package/docs/status/assets/status-legacy.css +399 -0
  97. package/docs/status/assets/status-legacy.js +505 -0
  98. package/docs/status/assets/status.css +644 -0
  99. package/docs/status/assets/status.js +1308 -0
  100. package/docs/status/data/status-feed.json +1 -0
  101. package/docs/status/data/task/TASK-REL-001.js +1 -0
  102. package/docs/status/index.html +45 -0
  103. package/docs/status/roadmap.html +4 -0
  104. package/docs/status/status-legacy.html +121 -0
  105. package/docs/storybook.md +5 -4
  106. package/docs/sync.md +3 -2
  107. package/docs/tasks/BACKLOG.md +25 -0
  108. package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +55 -0
  109. package/docs/template-schema-v2.md +15 -3
  110. package/docs/vi/benchmark-rubric.md +46 -0
  111. package/docs/vi/ci-cd.md +17 -11
  112. package/docs/vi/consumer-grant.md +37 -0
  113. package/docs/vi/consuming.md +45 -16
  114. package/docs/vi/contrast-report.md +94 -106
  115. package/docs/vi/conventions.md +12 -9
  116. package/docs/vi/decisions.md +33 -10
  117. package/docs/vi/deploy.md +1 -1
  118. package/docs/vi/design-styles.md +26 -8
  119. package/docs/vi/figma.md +3 -3
  120. package/docs/vi/live-hub.md +5 -3
  121. package/docs/vi/products.md +13 -11
  122. package/docs/vi/quality-gates.md +35 -21
  123. package/docs/vi/release-notes.md +18 -8
  124. package/docs/vi/storybook.md +5 -4
  125. package/docs/vi/sync.md +3 -2
  126. package/docs/vi/template-schema-v2.md +15 -3
  127. package/docs/viewer.html +2 -2
  128. package/fonts/spacegrotesk-var-latin-ext.woff2 +0 -0
  129. package/fonts/spacegrotesk-var-latin.woff2 +0 -0
  130. package/fonts/spacegrotesk-var-vietnamese.woff2 +0 -0
  131. package/guidelines/atomic-view.html +40 -27
  132. package/guidelines/elements-geometry.html +69 -0
  133. package/guidelines/elements-variants.html +17 -17
  134. package/guidelines/type-families.html +16 -10
  135. package/llms.txt +17 -11
  136. package/package.json +38 -16
  137. package/styles.css +1 -0
  138. package/templates/ai-cluster-demo.html +29 -14
  139. package/templates/app-shell/support.js +4 -4
  140. package/templates/article/content-schema.json +6 -0
  141. package/templates/article/support.js +4 -4
  142. package/templates/auth/support.js +4 -4
  143. package/templates/bod-deck/support.js +4 -4
  144. package/templates/bod-investor-update/support.js +4 -4
  145. package/templates/bod-memo/support.js +4 -4
  146. package/templates/bod-minutes/content-schema.json +12 -0
  147. package/templates/bod-minutes/support.js +4 -4
  148. package/templates/bod-report/support.js +4 -4
  149. package/templates/bod-resolution/support.js +4 -4
  150. package/templates/culture-event-invite/support.js +4 -4
  151. package/templates/dashboard/support.js +4 -4
  152. package/templates/delivery-change-note/support.js +4 -4
  153. package/templates/delivery-kickoff/support.js +4 -4
  154. package/templates/delivery-qbr-deck/support.js +4 -4
  155. package/templates/delivery-runbook/content-schema.json +6 -0
  156. package/templates/delivery-runbook/support.js +4 -4
  157. package/templates/delivery-status-email/support.js +4 -4
  158. package/templates/doc-style-guide/DocStyleGuide.dc.html +2 -2
  159. package/templates/doc-style-guide/support.js +4 -4
  160. package/templates/doc-suite-index/support.js +4 -4
  161. package/templates/doc-templates/DocTemplates.dc.html +1 -1
  162. package/templates/doc-templates/support.js +4 -4
  163. package/templates/email/support.js +4 -4
  164. package/templates/email-safe/README.md +17 -4
  165. package/templates/email-safe/email-launch.html +3 -3
  166. package/templates/email-safe/email-newsletter.html +1 -1
  167. package/templates/finance-dunning-email/support.js +4 -4
  168. package/templates/finance-expense-report/support.js +4 -4
  169. package/templates/finance-invoice/support.js +4 -4
  170. package/templates/finance-quote/support.js +4 -4
  171. package/templates/hr-announcement/support.js +4 -4
  172. package/templates/hr-interview-kit/content-schema.json +12 -0
  173. package/templates/hr-interview-kit/support.js +4 -4
  174. package/templates/hr-offboarding/content-schema.json +12 -0
  175. package/templates/hr-offboarding/support.js +4 -4
  176. package/templates/hr-performance-review/content-schema.json +12 -0
  177. package/templates/hr-performance-review/support.js +4 -4
  178. package/templates/hr-pip/content-schema.json +12 -0
  179. package/templates/hr-pip/support.js +4 -4
  180. package/templates/legal-msa/content-schema.json +16 -0
  181. package/templates/legal-msa/support.js +4 -4
  182. package/templates/legal-sow/support.js +4 -4
  183. package/templates/marketing-campaign-brief/support.js +4 -4
  184. package/templates/marketing-case-study/support.js +4 -4
  185. package/templates/marketing-launch/support.js +4 -4
  186. package/templates/marketing-newsletter/support.js +4 -4
  187. package/templates/marketing-page/content-schema.json +0 -1
  188. package/templates/marketing-page/support.js +4 -4
  189. package/templates/marketing-press-release/support.js +4 -4
  190. package/templates/marketing-social-kit/support.js +4 -4
  191. package/templates/playground.html +8 -4
  192. package/templates/sales-one-pager/support.js +4 -4
  193. package/templates/sales-proposal-deck/support.js +4 -4
  194. package/templates/settings/Settings.dc.html +26 -14
  195. package/templates/settings/content-schema.json +36 -0
  196. package/templates/settings/support.js +4 -4
  197. package/templates/slide-deck/support.js +4 -4
  198. package/templates/team-meeting-agenda/content-schema.json +16 -0
  199. package/templates/team-meeting-agenda/support.js +4 -4
  200. package/templates/tech-incident-report/support.js +4 -4
  201. package/templates/tech-release-notes/support.js +4 -4
  202. package/templates/tech-retro/content-schema.json +12 -0
  203. package/templates/tech-retro/support.js +4 -4
  204. package/templates/tech-rfc/content-schema.json +6 -0
  205. package/templates/tech-rfc/support.js +4 -4
  206. package/templates/vn-appointment-transfer/support.js +4 -4
  207. package/templates/vn-certificate-of-employment/support.js +4 -4
  208. package/templates/vn-code-of-conduct/support.js +4 -4
  209. package/templates/vn-compensation-regulation/support.js +4 -4
  210. package/templates/vn-contract-amendment/support.js +4 -4
  211. package/templates/vn-contractor-agreement/support.js +4 -4
  212. package/templates/vn-data-protection-policy/support.js +4 -4
  213. package/templates/vn-disciplinary-case-file/support.js +4 -4
  214. package/templates/vn-disciplinary-schedule/content-schema.json +15 -0
  215. package/templates/vn-disciplinary-schedule/support.js +4 -4
  216. package/templates/vn-employee-request/support.js +4 -4
  217. package/templates/vn-exit-handover/support.js +4 -4
  218. package/templates/vn-foreign-employee-pack/support.js +4 -4
  219. package/templates/vn-grassroots-democracy/support.js +4 -4
  220. package/templates/vn-infosec-policy/support.js +4 -4
  221. package/templates/vn-internal-labor-regulations/support.js +4 -4
  222. package/templates/vn-internship-agreement/support.js +4 -4
  223. package/templates/vn-job-description/support.js +4 -4
  224. package/templates/vn-labor-contract/support.js +4 -4
  225. package/templates/vn-labour-management-book/content-schema.json +15 -0
  226. package/templates/vn-labour-management-book/support.js +4 -4
  227. package/templates/vn-mutual-nda/support.js +4 -4
  228. package/templates/vn-ndnca-ip/support.js +4 -4
  229. package/templates/vn-offer-letter/support.js +4 -4
  230. package/templates/vn-onboarding-checklist/support.js +4 -4
  231. package/templates/vn-pdpl-consent/support.js +4 -4
  232. package/templates/vn-performance-evaluation-regulation/support.js +4 -4
  233. package/templates/vn-performance-review-form/support.js +4 -4
  234. package/templates/vn-phantom-stock/support.js +4 -4
  235. package/templates/vn-probation-contract/support.js +4 -4
  236. package/templates/vn-receipt-acknowledgement/content-schema.json +15 -0
  237. package/templates/vn-receipt-acknowledgement/support.js +4 -4
  238. package/templates/vn-remote-work-policy/support.js +4 -4
  239. package/templates/vn-resignation-letter/support.js +4 -4
  240. package/templates/vn-salary-scale/content-schema.json +15 -0
  241. package/templates/vn-salary-scale/support.js +4 -4
  242. package/templates/vn-sow-appendix/support.js +4 -4
  243. package/templates/vn-termination-decision/support.js +4 -4
  244. package/templates/vn-total-rewards-appendix/support.js +4 -4
  245. package/templates/vn-training-commitment/support.js +4 -4
  246. package/templates/vn-travel-expense-policy/support.js +4 -4
  247. package/tokens/element-seeds.json +112 -0
  248. package/tokens/elements.css +274 -187
  249. package/tokens/fonts.css +12 -3
  250. package/tokens/native/CSTokens.kt +84 -68
  251. package/tokens/native/CSTokens.swift +84 -68
  252. package/tokens/native/cs_tokens.dart +84 -68
  253. package/tokens/provenance.json +9 -9
  254. package/tokens/styles.css +15 -0
  255. package/tokens/tokens.dtcg.json +258 -233
  256. package/tokens/tokens.js +168 -167
  257. package/tokens/tokens.json +167 -166
  258. package/tokens/typography.css +9 -1
  259. package/ui_kits/status-hub/README.md +1 -2
  260. package/ui_kits/status-hub/index.html +2 -2
  261. package/ui_kits/status-hub/settings.html +6 -3
  262. package/ui_kits/website/chat.html +2 -2
  263. package/ui_kits/website/index.html +2 -2
  264. package/ui_kits/status-hub/identity-lab.html +0 -134
package/DESIGN.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "CyberSkill Design System"
3
- version: "1.0.0"
3
+ version: "1.1.0"
4
4
  generated: "2026-07-23"
5
5
  generator: "scripts/generate-design-md.mjs (npm run build:design-md)"
6
6
  sources:
@@ -13,13 +13,13 @@ gate: "_audit/design-md-parity.html (window.__designmd)"
13
13
 
14
14
  > GENERATED FILE — do not edit by hand. Regenerate with `npm run build:design-md` after any token change; the `design-md-parity` gate fails on drift. This is the single-file open-spec surface for design tools and agents that read a root `DESIGN.md` (e.g. Google Stitch); the deep machine contract stays `tokens/tokens.dtcg.json`.
15
15
 
16
- > **Stitch / non-DC consumers:** do **not** treat `templates/**/*.dc.html` as source of truth — those files need the Design Components compiler (tweaks, `__dcSetProps`). Generate static UI from this file + DTCG + `styles.css` / `.cs-*` / `templates/kitchen-sink.html` / `examples/static-hello/`. Claude Code starts at `SKILL.md` and may use `_esm/cs.mjs` / `_ds_bundle.js` (prefix resolve). Dual path: `docs/consuming.md`.
16
+ > **Stitch / non-DC consumers:** do **not** treat `templates/**/*.dc.html` as source of truth — those files need the Design Components compiler (tweaks, `__dcSetProps`). Generate static UI from this file + DTCG + `styles.css` / `.cs-*` / `templates/kitchen-sink.html` / `examples/static-hello/`. Claude Code starts at `SKILL.md` and may use bundler `_esm/react.mjs` / legacy `_esm/cs.mjs` / `_ds_bundle.js` (prefix resolve). Dual path: `docs/consuming.md`.
17
17
 
18
18
  ## Brand & doctrine
19
19
 
20
20
  - **Slogan:** *Turn Your Will Into Real — Hiện Thực Hoá Ý Chí*.
21
21
  - **Immutable anchors:** Umber `#45210E` (primary brand) · Ochre `#F4BA17` (accent). Never remap; the 3px ochre focus ring is a studio-wide accessibility signature.
22
- - **Three axes:** Theme (light · dark) × Element (Ngũ Hành — Kim · Mộc · Thủy · Hỏa · Thổ, 15 element×variant packs) × Language (EN · VI). Surface treatment is liquid-glass (fixed).
22
+ - **Four axes:** Theme (light · dark · system) × Element (Ngũ Hành — Kim · Mộc · Thủy · Hỏa · Thổ, 15 element×variant packs) × Language (EN · VI) × Style (`data-cs-style` — sole pack **liquid-glass**; absent ≡ default).
23
23
  - **Bilingual EN·VN rule:** Vietnamese-first — every UI string ships an EN + VN pair, diacritics preserved.
24
24
  - **Text never sits on the mid-tone `-accent`:** text goes on `-bright` or `-tint` only; `-accent` is for bars, borders, progress fills, and large non-text fills.
25
25
  - **Accessibility floor:** APCA Lc ≥ 75 body text · ≥ 44px touch targets · focus rings never removed · honour `prefers-reduced-motion` / `prefers-contrast`.
@@ -56,22 +56,23 @@ Default accent pack = Thổ (the studio's own element). All 15 element×variant
56
56
  | Token | Value |
57
57
  |---|---|
58
58
  | `--cs-accent` | `#F4BA17` |
59
- | `--cs-accent-strong` | `#B98200` |
59
+ | `--cs-accent-strong` | `#A47D17` |
60
60
  | `--cs-accent-bright` | `#F4BA17` |
61
61
  | `--cs-accent-on` | `#45210E` |
62
62
  | `--cs-accent-tint` | `#FBF4E9` |
63
63
  | `--cs-accent-ink` | `#45210E` |
64
- | `--cs-accent-glow` | `rgba(244, 186, 23, 0.5)` |
64
+ | `--cs-accent-glow` | `rgba(244, 186, 23, 0.48)` |
65
65
  | `--cs-accent-grad-a` | `#F4BA17` |
66
- | `--cs-accent-grad-b` | `#C77B4A` |
66
+ | `--cs-accent-grad-b` | `#FCAF91` |
67
67
 
68
68
  ## Typography
69
69
 
70
- Families ship self-hosted (Be Vietnam Pro · JetBrains Mono, full Vietnamese unicode ranges).
70
+ Families ship self-hosted (Be Vietnam Pro · Space Grotesk · JetBrains Mono, full Vietnamese unicode ranges). `--cs-font-family-display` is the opt-in headline face; nothing points at it by default.
71
71
 
72
72
  | Token | Value |
73
73
  |---|---|
74
74
  | `--cs-font-family-ui` | `'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif` |
75
+ | `--cs-font-family-display` | `'Space Grotesk', 'Be Vietnam Pro', ui-sans-serif, system-ui, sans-serif` |
75
76
  | `--cs-font-family-mono` | `'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace` |
76
77
  | `--cs-font-weight-regular` | `400` |
77
78
  | `--cs-font-weight-medium` | `500` |
@@ -247,9 +248,9 @@ Component-level design decisions (button · textfield). Dark values are theme ov
247
248
 
248
249
  ## Components inventory
249
250
 
250
- 99 component files · 115 exports (from `_ds_manifest.json`). Every primary ships `.jsx` + `.d.ts` + `.prompt.md`.
251
+ 105 component files · 121 exports (from `_ds_manifest.json`). Every primary ships `.jsx` + `.d.ts` + `.prompt.md`.
251
252
 
252
- `AIDisclosureBadge` · `Accordion` · `Alert` · `Anchor` · `Avatar` · `AvatarGroup` · `BackTop` · `Badge` · `Breadcrumb` · `Button` · `ButtonGroup` · `CS_ICONS` · `CS_LOGO_MARK_INNER` · `CS_LOGO_VIEWBOX` · `Calendar` · `Card` · `CardBody` · `CardFooter` · `CardHeader` · `Carousel` · `Cascader` · `Chart` · `ChatMessage` · `Checkbox` · `CitationList` · `CodeBlock` · `ColorPicker` · `Combobox` · `CommandPalette` · `Comment` · `ConfidenceMeter` · `ContextMenu` · `DataGrid` · `DataTable` · `DatePicker` · `DescriptionList` · `Dialog` · `Divider` · `Dock` · `Drawer` · `Editor` · `EmptyState` · `FileUpload` · `FloatingActionButton` · `Form` · `FormField` · `FormFieldArray` · `FormWizard` · `HotKeys` · `HoverCard` · `HumanReviewGate` · `Icon` · `Image` · `InlineEdit` · `InputGroup` · `InputOTP` · `Kbd` · `Link` · `List` · `ListItem` · `Logo` · `LumiAvatar` · `Masonry` · `Mentions` · `Menu` · `MenuItem` · `Menubar` · `NavItem` · `NavigationMenu` · `NumberField` · `Pagination` · `Popconfirm` · `Popover` · `ProgressBar` · `PromptInput` · `PromptSuggestions` · `QRCode` · `Radio` · `RadioGroup` · `Rating` · `Result` · `SearchField` · `SegmentedControl` · `Select` · `Sidebar` · `Skeleton` · `Slider` · `Sortable` · `Spinner` · `Splitter` · `Stat` · `StatusIndicator` · `Steps` · `Switch` · `Tab` · `Tabs` · `Tag` · `TagInput` · `Terminal` · `TextField` · `Textarea` · `TimePicker` · `Timeline` · `Toast` · `ToastStack` · `Toggle` · `Toolbar` · `Tooltip` · `Tour` · `Transfer` · `Tree` · `TreeSelect` · `TreeTable` · `TypingIndicator` · `Watermark`
253
+ `AIDisclosureBadge` · `ChatMessage` · `CitationList` · `ConfidenceMeter` · `HumanReviewGate` · `PromptInput` · `PromptSuggestions` · `TypingIndicator` · `LumiAvatar` · `Button` · `ButtonGroup` · `FloatingActionButton` · `Accordion` · `AspectRatio` · `Avatar` · `AvatarGroup` · `Card` · `CardHeader` · `CardBody` · `CardFooter` · `Carousel` · `Chart` · `CodeBlock` · `Collapsible` · `Comment` · `DescriptionList` · `Divider` · `Image` · `Item` · `Kbd` · `List` · `ListItem` · `Masonry` · `QRCode` · `ScrollArea` · `Sortable` · `Splitter` · `Stat` · `Terminal` · `Timeline` · `Tooltip` · `Tree` · `Watermark` · `DataGrid` · `DataTable` · `TreeTable` · `Dialog` · `Alert` · `Badge` · `EmptyState` · `ProgressBar` · `Result` · `Skeleton` · `Spinner` · `StatusIndicator` · `Tag` · `ToastStack` · `Toast` · `Calendar` · `Cascader` · `Checkbox` · `ColorPicker` · `Combobox` · `DatePicker` · `Editor` · `FileUpload` · `Form` · `FormField` · `FormFieldArray` · `FormWizard` · `InlineEdit` · `InputGroup` · `InputOTP` · `Mentions` · `NativeSelect` · `NumberField` · `Radio` · `RadioGroup` · `Rating` · `SearchField` · `SegmentedControl` · `Select` · `Slider` · `Switch` · `TagInput` · `Textarea` · `TimePicker` · `Toggle` · `Transfer` · `TreeSelect` · `CS_ICONS` · `Icon` · `Logo` · `CS_LOGO_VIEWBOX` · `CS_LOGO_MARK_INNER` · `Anchor` · `BackTop` · `Breadcrumb` · `CommandPalette` · `Dock` · `HotKeys` · `Link` · `Menu` · `MenuItem` · `Menubar` · `NavigationMenu` · `Pagination` · `Sidebar` · `NavItem` · `Steps` · `Tabs` · `Tab` · `Toolbar` · `AlertDialog` · `ContextMenu` · `Drawer` · `HoverCard` · `Popconfirm` · `Popover` · `Tour` · `TextField`
253
254
 
254
255
  ## Templates
255
256
 
package/README.md CHANGED
@@ -6,16 +6,16 @@
6
6
 
7
7
  ## Start here
8
8
 
9
- This is the **entrance document** for the CyberSkill Design System — pinned **v1.0.0** (see `VERSION`). The **product site** is Storybook at **`/`** on `design.cyberskill.world` (host-only; local: `npm run storybook`). Legacy `/dashboard`, `/dashboard.html`, and `/playground/*` redirect to `/`. One sentence: a warm, Vietnamese-first, enterprise-grade system where every surface resolves three independent axes — **Theme** (light · dark) × **Element** (Ngũ Hành product identity: Kim · Mộc · Thủy · Hỏa · Thổ, 15 variants) × **Language** (EN · VI). Surface treatment is liquid-glass (fixed).
9
+ This is the **entrance document** for the CyberSkill Design System — LAUNCHED **v1.1.0** (see `VERSION`). The **product site** is Storybook at **`/`** on `design.cyberskill.world` (host-only; local: `npm run storybook`). Legacy `/dashboard`, `/dashboard.html`, and `/playground/*` redirect to `/`. One sentence: a warm, Vietnamese-first, enterprise-grade system where every surface resolves four independent axes — **Theme** (light · dark · system) × **Element** (Ngũ Hành product identity: Kim · Mộc · Thủy · Hỏa · Thổ, 15 variants) × **Language** (EN · VI) × **Style** (`data-cs-style` — sole pack **liquid-glass**; absent ≡ default).
10
10
 
11
11
  **Quick start by audience**
12
- - **Designers** — open the Design System tab and the Templates picker (84 starting points, including the 37-document lawyer-validated Employment Suite); the Identity Lab (`ui_kits/status-hub/identity-lab.html`) lets you flip axes live.
12
+ - **Designers** — open Storybook (Foundations / Components / Maintainer surfaces) and the Templates picker (84 starting points, including the 37-document lawyer-validated Employment Suite). Flip Theme × Element × Language × Style live via the Storybook toolbar, Atomic View, and the Elements Geometry specimen.
13
13
 
14
- - **Claude Code / Claude Design** — read `SKILL.md` (normative Hard rules + orientation), then the guide below; compose with `styles.css` + `_esm/cs.mjs` / `_ds_bundle.js` (prefix resolve). DC `*.dc.html` templates only when the session has the compiler. Component contracts live beside each component (`.d.ts` + `.prompt.md`).
14
+ - **Claude Code / Claude Design** — read `SKILL.md` (normative Hard rules + orientation), then the guide below; compose with `styles.css` + bundler `@cyberskill/design` (`_esm/react.mjs`) / legacy `_esm/cs.mjs` / `_ds_bundle.js` (prefix resolve). DC `*.dc.html` templates only when the session has the compiler. Component contracts live beside each component (`.d.ts` + `.prompt.md`).
15
15
 
16
16
  - **Google Stitch** — start at **`DESIGN.md`** (generated open-spec) → `llms.txt` → `tokens/tokens.dtcg.json`. Build **static** UI with `styles.css` + `.cs-*` / kitchen-sink / `examples/static-hello/`. **Do not** treat `templates/**/*.dc.html` as source of truth.
17
17
 
18
- - **Consuming projects** — npm package name is **`@cyberskill/design`** (see `docs/consuming.md`; grant + `NPM_TOKEN` required before registry install is an approved path). Or link **`styles.css`** from a clone/subtree (one file = everything), or copy a `templates/<slug>/` folder and edit one line in its `ds-base.js` (one-line rebind, validated end-to-end Jul 2026). Scope identity with `data-theme` · `data-cs-element` (+`data-cs-variant`) · `lang`. Release signal: tip SHA + `docs/release-notes.md` (VERSION stays **1.0.0**; no CHANGELOG).
18
+ - **Consuming projects** — npm package **`@cyberskill/design@1.1.0`** (see `docs/consuming.md`; grant in `docs/consumer-grant.md` — still UNLICENSED). **Next/SSR:** `import { Button } from "@cyberskill/design"` (peer React). **Browser demo:** **`examples/npm-hello/`** (Lumi · Hỏa · plasma, legacy `_esm/cs.mjs`). Or link **`styles.css`** from a clone/subtree (one file = everything), or copy a `templates/<slug>/` folder and edit one line in its `ds-base.js` (one-line rebind, validated end-to-end Jul 2026). Scope identity with `data-theme` · `data-cs-element` (+`data-cs-variant`) · `lang`. Release signal: tip SHA + `docs/release-notes.md` (VERSION is **1.1.0**; no CHANGELOG).
19
19
 
20
20
  **Document map — consumers**
21
21
 
@@ -25,9 +25,10 @@ This is the **entrance document** for the CyberSkill Design System — pinned **
25
25
  | `DESIGN.md` | **This repo's** generated open-spec surface (Stitch-style) — doctrine + every token value + inventory, from DTCG; regenerate via `npm run build:design-md`. Do not hand-edit. |
26
26
  | `SKILL.md` | Agent entry — hard rules + fast orientation |
27
27
  | `docs/consuming.md` | Adopting & upgrading — Claude Code vs Stitch dual path, npm package name, axes, upgrade + extend |
28
- | `docs/conventions.md` | How to extend the system (naming grammar, checklists, the three axes) |
28
+ | `docs/consumer-grant.md` | Written npm consumer grant (CyberSkill portfolio; UNLICENSED + named products) |
29
+ | `docs/conventions.md` | How to extend the system (naming grammar, checklists, the four axes) |
29
30
  | `docs/release-notes.md` | Curated product highlights (not a changelog) |
30
- | `docs/design-styles.md` | The live styling axes (Theme × Element × Language) and the fixed liquid-glass treatment |
31
+ | `docs/design-styles.md` | The live styling axes (Theme × Element × Language × Style) and the fixed liquid-glass treatment |
31
32
  | `docs/products.md` | Product → element registry (**locked** — do not invent assignments) |
32
33
  | `docs/contrast-report.md` | Generated APCA elemental sweep — 0 failures at its Lc ≥ 60 UI-label floor. Body text authors to the stricter Lc ≥ 75 floor (see Anchor immutables); the sweep's Lc ≥ 60 rows are accent/label pairings, not body text. |
33
34
  | `docs/template-schema-v2.md` | Typed content-slot spec for templates — opt-in, machine-checkable |
@@ -41,7 +42,7 @@ This is the **entrance document** for the CyberSkill Design System — pinned **
41
42
 
42
43
  | Doc | What it answers |
43
44
  |---|---|
44
- | `docs/decisions.md` | Recorded owner decisions + open maintainer tasks (Code Connect node IDs, npm grant/`NPM_TOKEN`, products registry) |
45
+ | `docs/decisions.md` | Recorded owner decisions + open maintainer tasks (Code Connect deferred) |
45
46
  | `docs/ci-cd.md` | CI/CD automation — GitHub Actions workflow, headless gate runner, token-provenance pre-check, badge |
46
47
  | `docs/quality-gates.md` | Benchmark reference — every quality gate, what it asserts, pass criterion, where it runs |
47
48
  | `docs/sync.md` | Repo ↔ authoring-environment round-trip fidelity & two-way sync |
@@ -100,7 +101,7 @@ Related CyberSkill repos (not in this tree — explore for product/marketing fid
100
101
 
101
102
  **Palette — warm earth, never cold.** Umber `#45210E` grounds everything (it *is* the primary text colour); Ochre `#F4BA17` is the single accent — CTAs on dark, focus rings, highlights, the genie. Surfaces are warm paper: page `#FFFDF8`, panel `#FFFFFF`, raised `#FBF4E9`. Every neutral is warmed toward umber — borders are `#E7D9C6`, muted text `#6E5A4C`. Semantic colours (success `#166534`, danger `#B42318`, warning `#92400E`, info `#1D4ED8`) are used sparingly and never as the only signal. **Max one accent per surface** — on core surfaces that accent is Ochre; a *product* may swap in its element accent (see Elemental identity below), never add a second hue beside it. No bluish-purple gradients.
102
103
 
103
- **Typography.** UI/display: **Be Vietnam Pro** (300–800; a Vietnamese-first Google family). Code/data: **JetBrains Mono**. Display headings are heavy (800), tight tracking (−0.02em); body is 400/500 at 1.5. Uppercase eyebrows at 0.08–0.12em tracking. The size ramp runs xs 12 → 5xl 60 on a 16px base.
104
+ **Typography.** UI: **Be Vietnam Pro** (300–800; a Vietnamese-first Google family) — the default for every surface, headings included. Display/headline: **Space Grotesk** (variable 300–700), the **opt-in** face behind `--cs-font-family-display`; nothing points at it until a scope opts in with `.cs-display-face`, which retargets `--cs-heading-family` and leaves body copy on the UI face. Code/data: **JetBrains Mono**. Display headings are heavy (800 on the UI face; under `.cs-display-face`, Space Grotesk tops out at 700 so 800 clamps within that family), tight tracking (−0.02em); body is 400/500 at 1.5. Uppercase eyebrows at 0.08–0.12em tracking. The size ramp runs xs 12 → 5xl 60 on a 16px base.
104
105
 
105
106
  **Spacing & layout.** 4px base grid (`--cs-space-*`); section padding lives between 64 and 96px; content max-width ~1200–1320px. Generous, calm whitespace.
106
107
 
@@ -116,7 +117,7 @@ Related CyberSkill repos (not in this tree — explore for product/marketing fid
116
117
 
117
118
  **Elemental product identity — Ngũ Hành.** The studio itself is **Thổ/Earth** (Umber + Ochre — the traditional earth-yellow); each CyberSkill *product* may take one element — **Kim** (metal) · **Mộc** (wood) · **Thủy** (water) · **Hỏa** (fire) · **Thổ** (earth) — via `data-cs-element` (+ `data-cs-variant`, e.g. Hỏa: ember · lava · plasma). Each pack sets the nine **`--cs-accent-*`** role tokens (accent / strong / bright / on / tint / ink / glow / grad-a / grad-b) defined in `tokens/elements.css`; inside the scope the element fully takes Ochre's accent roles. Never elemental: semantic statuses, and the **3px Ochre focus ring** — the studio's accessibility signature on every product. Mixing follows the cycles: a secondary element may appear only as a gradient endpoint along **Tương sinh** (Mộc→Hỏa→Thổ→Kim→Thủy→Mộc); **Tương khắc** pairs never mix. Product→element mapping lives in `docs/products.md`. **Every template carries the Element tweak** — anything that should follow the product's element must consume `--cs-accent-*`, never raw hex. **Lumi stays golden in every element** — the genie is the studio's constant; only the environment re-tints.
118
119
 
119
- **Surface treatment.** Liquid-glass is fixed. Surfaces resolve **Theme × Element × Language** independently.
120
+ **Surface treatment.** Liquid-glass is fixed. Surfaces resolve **Theme × Element × Language × Style** independently.
120
121
 
121
122
 
122
123
 
@@ -137,35 +138,35 @@ Copied assets live in `assets/`: `logo-mark.svg` / `logo-mark.png` (official mas
137
138
 
138
139
  ## Components
139
140
 
140
- **A comprehensive library — 115 exports across 8 groups.** 99 of these are primary component files, and every primary ships the full contract trio — a `.jsx`, a `.d.ts` props contract, a `.prompt.md` — plus a Design-System card. The other 16 are co-exports (sub-parts such as `CardHeader`, `Tab`, `MenuItem`, `Radio`, and data consts such as `CS_ICONS`) documented inside their parent's files rather than with files of their own. Mount from the compiled bundle. The bundle's global is `window.CyberSkillDesignSystem_<projectId>` — the 6-hex suffix is assigned by the compiler and **changes when this system is imported into another project**, so resolve it by prefix rather than hardcoding it: `const CS = window[Object.keys(window).find(k => /^CyberSkillDesignSystem_/.test(k))]; const { Button } = CS;`
141
+ **A comprehensive library — 121 exports across 8 groups.** 105 of these are primary component files, and every primary ships the full contract trio — a `.jsx`, a `.d.ts` props contract, a `.prompt.md` — plus a Design-System card. The other 16 are co-exports (sub-parts such as `CardHeader`, `Tab`, `MenuItem`, `Radio`, and data consts such as `CS_ICONS`) documented inside their parent's files rather than with files of their own. Mount from the compiled bundle. The bundle's global is `window.CyberSkillDesignSystem_<projectId>` — the 6-hex suffix is assigned by the compiler and **changes when this system is imported into another project**, so resolve it by prefix rather than hardcoding it: `const CS = window[Object.keys(window).find(k => /^CyberSkillDesignSystem_/.test(k))]; const { Button } = CS;`
141
142
 
142
143
  - **Core — actions & overlays** — `Button`, `ButtonGroup`, `FloatingActionButton`, `Dialog`
143
144
 
144
- - **Forms** — `TextField`, `Textarea`, `Select`, `Checkbox`, `RadioGroup` (+ `Radio`), `Switch`, `SearchField`, `NumberField`, `Slider`, `FileUpload`, `SegmentedControl`, `Toggle`, `Rating`, `InputOTP`, `InputGroup`, `TagInput`, `TimePicker`, `Combobox`, `Mentions`, `InlineEdit`, `ColorPicker`, `Calendar`, `DatePicker`, `Cascader`, `TreeSelect`, `Transfer`, `Editor`, `Form` (+ `FormField`, `FormFieldArray`, `FormWizard`)
145
+ - **Forms** — `TextField`, `Textarea`, `Select`, `NativeSelect`, `Checkbox`, `RadioGroup` (+ `Radio`), `Switch`, `SearchField`, `NumberField`, `Slider`, `FileUpload`, `SegmentedControl`, `Toggle`, `Rating`, `InputOTP`, `InputGroup`, `TagInput`, `TimePicker`, `Combobox`, `Mentions`, `InlineEdit`, `ColorPicker`, `Calendar`, `DatePicker`, `Cascader`, `TreeSelect`, `Transfer`, `Editor`, `Form` (+ `FormField`, `FormFieldArray`, `FormWizard`)
145
146
 
146
- - **Data & layout** — `DataTable`, `DataGrid`, `TreeTable`, `Card` (+ `CardHeader`, `CardBody`, `CardFooter`), `Stat`, `Avatar` (+ `AvatarGroup`), `Tooltip`, `Divider`, `List` (+ `ListItem`), `DescriptionList`, `Timeline`, `Accordion`, `Kbd`, `CodeBlock`, `Tree`, `Comment`, `Carousel`, `Image`, `Masonry`, `Splitter`, `Sortable`, `Chart`, `Terminal`, `QRCode`, `Watermark`
147
+ - **Data & layout** — `DataTable`, `DataGrid`, `TreeTable`, `Card` (+ `CardHeader`, `CardBody`, `CardFooter`), `Stat`, `Avatar` (+ `AvatarGroup`), `Tooltip`, `Divider`, `ScrollArea`, `AspectRatio`, `Item`, `List` (+ `ListItem`), `DescriptionList`, `Timeline`, `Accordion`, `Collapsible`, `Kbd`, `CodeBlock`, `Tree`, `Comment`, `Carousel`, `Image`, `Masonry`, `Splitter`, `Sortable`, `Chart`, `Terminal`, `QRCode`, `Watermark`
147
148
 
148
149
  - **Feedback & status** — `Badge`, `Tag`, `Alert`, `Toast` (+ `ToastStack`), `Spinner`, `ProgressBar`, `Skeleton`, `StatusIndicator`, `EmptyState`, `Result`
149
150
 
150
151
  - **Navigation** — `Tabs` (+ `Tab`), `Breadcrumb`, `Pagination`, `Menu` (+ `MenuItem`), `Sidebar` (+ `NavItem`), `Steps`, `CommandPalette`, `Menubar`, `NavigationMenu`, `Anchor`, `Toolbar`, `Dock`, `BackTop`, `Link`, `HotKeys`
151
152
 
152
- - **Overlays** — `Popover`, `Drawer`, `HoverCard`, `Popconfirm`, `ContextMenu`, `Tour`
153
+ - **Overlays** — `Popover`, `Drawer`, `HoverCard`, `Popconfirm`, `AlertDialog`, `ContextMenu`, `Tour`
153
154
 
154
155
  - **AI-native** — `AIDisclosureBadge`, `HumanReviewGate`, `PromptInput`, `ChatMessage`, `ConfidenceMeter`, `PromptSuggestions`, `TypingIndicator`, `CitationList`
155
156
 
156
157
  - **Brand** — `Logo` (+ the `CS_LOGO_MARK_INNER` / `CS_LOGO_VIEWBOX` data consts), `Icon` (+ the `CS_ICONS` data const), `LumiAvatar`
157
158
 
158
- **Atomic tiers** — the same 115 exports seen through the design-composition lens (browsable live in `guidelines/atomic-view.html`, where one toolbar reskins every tier across Theme × Element × Language). The eight groups above are the *functional/import* grouping (how the bundle is organized); these tiers are the *composition* grouping — same components, two lenses.
159
+ **Atomic tiers** — the same 121 exports seen through the design-composition lens (browsable live in `guidelines/atomic-view.html`, where one toolbar reskins every tier across Theme × Element × Language × Style). The eight groups above are the *functional/import* grouping (how the bundle is organized); these tiers are the *composition* grouping — same components, two lenses.
159
160
 
160
- - **Atoms** (indivisible primitives) — `Button`, `Icon`, `Badge`, `Tag`, `StatusIndicator`, `Spinner`, `ProgressBar`, `Skeleton`, `Avatar` (+ `AvatarGroup`), `Divider`, `Kbd`, `Logo`, `LumiAvatar`, `Toggle`, `Link`
161
+ - **Atoms** (indivisible primitives) — `Button`, `Icon`, `Badge`, `Tag`, `StatusIndicator`, `Spinner`, `ProgressBar`, `Skeleton`, `Avatar` (+ `AvatarGroup`), `Divider`, `AspectRatio`, `Item`, `Kbd`, `Logo`, `LumiAvatar`, `Toggle`, `Link`
161
162
 
162
- - **Molecules** (a few atoms bonded into one control) — `TextField`, `Textarea`, `Select`, `Checkbox`, `RadioGroup`, `Switch`, `SearchField`, `NumberField`, `Slider`, `FileUpload`, `SegmentedControl`, `Tabs`, `Breadcrumb`, `Pagination`, `Menu`, `Steps`, `Stat`, `Card`, `Tooltip`, `List`, `DescriptionList`, `CodeBlock`, `Alert`, `Toast`, `ConfidenceMeter`, `AIDisclosureBadge`, `PromptSuggestions`, `TypingIndicator`, `CitationList`, `Rating`, `InputOTP`, `ButtonGroup`, `Combobox`, `InputGroup`, `TagInput`, `TimePicker`, `HoverCard`, `Popconfirm`, `ContextMenu`, `FloatingActionButton`, `InlineEdit`, `Toolbar`, `Anchor`, `Image`, `Watermark`, `BackTop`, `Mentions`, `ColorPicker`, `QRCode`
163
+ - **Molecules** (a few atoms bonded into one control) — `TextField`, `Textarea`, `Select`, `NativeSelect`, `Checkbox`, `RadioGroup`, `Switch`, `SearchField`, `NumberField`, `Slider`, `FileUpload`, `SegmentedControl`, `Tabs`, `Breadcrumb`, `Pagination`, `Menu`, `Steps`, `Stat`, `Card`, `Tooltip`, `ScrollArea`, `Collapsible`, `List`, `DescriptionList`, `CodeBlock`, `Alert`, `Toast`, `ConfidenceMeter`, `AIDisclosureBadge`, `PromptSuggestions`, `TypingIndicator`, `CitationList`, `Rating`, `InputOTP`, `ButtonGroup`, `Combobox`, `InputGroup`, `TagInput`, `TimePicker`, `HoverCard`, `Popconfirm`, `ContextMenu`, `FloatingActionButton`, `InlineEdit`, `Toolbar`, `Anchor`, `Image`, `Watermark`, `BackTop`, `Mentions`, `ColorPicker`, `QRCode`
163
164
 
164
- - **Organisms** (composite, self-contained sections) — `Sidebar` (+ `NavItem`), `CommandPalette`, `DataTable`, `Accordion`, `Timeline`, `EmptyState`, `Dialog`, `Drawer`, `Popover`, the `PromptInput` + `ChatMessage` conversation, `HumanReviewGate`, `Calendar`, `DatePicker`, `Result`, `Menubar`, `NavigationMenu`, `Carousel`, `Comment`, `Form` (+ `FormField`), `Tree`, `TreeSelect`, `Cascader`, `Transfer`, `Tour`, `Masonry`, `Splitter`, `HotKeys`, `Dock`, `DataGrid`, `TreeTable`, `Sortable`, `Chart`, `Editor`, `Terminal`
165
+ - **Organisms** (composite, self-contained sections) — `Sidebar` (+ `NavItem`), `CommandPalette`, `DataTable`, `Accordion`, `Timeline`, `EmptyState`, `Dialog`, `AlertDialog`, `Drawer`, `Popover`, the `PromptInput` + `ChatMessage` conversation, `HumanReviewGate`, `Calendar`, `DatePicker`, `Result`, `Menubar`, `NavigationMenu`, `Carousel`, `Comment`, `Form` (+ `FormField`), `Tree`, `TreeSelect`, `Cascader`, `Transfer`, `Tour`, `Masonry`, `Splitter`, `HotKeys`, `Dock`, `DataGrid`, `TreeTable`, `Sortable`, `Chart`, `Editor`, `Terminal`
165
166
 
166
- Highlights: **Button** — Umber primary; variants primary/secondary/tertiary/ghost/danger/danger-ghost; sizes xs–lg; loading, icon, fullWidth. **TextField / Textarea / Select** share one `.cs-field` frame (label + description + inline error; diacritic/IME-safe). **DataTable** — caption, scoped headers, per-column render, empty state. **Card** — warm panel + header/body/footer. **Logo** renders the exact official mark; **Icon** drives the in-repo line-icon set. The **AI-native** family carries the brand's explainability doctrine — disclosure, human review, wish capture, and confidence, all stated in words (never colour alone).
167
+ Highlights: **Button** — Umber primary; variants primary/secondary/tertiary/ghost/danger/danger-ghost; sizes xs–lg; loading, icon, fullWidth. **TextField / Textarea / Select / NativeSelect** share one `.cs-field` frame (label + description/error; diacritic/IME-safe). **DataTable** — caption, scoped headers, per-column render, empty state. **Card** — warm panel + header/body/footer. **Logo** renders the exact official mark; **Icon** drives the in-repo line-icon set. The **AI-native** family carries the brand's explainability doctrine — disclosure, human review, wish capture, and confidence, all stated in words (never colour alone).
167
168
 
168
- **Install / package name.** This monolith publishes (when granted) as **`@cyberskill/design`**. Do **not** install `@cyberskill/react` for this tree — that name is historical marketing-site inventory, not this package.
169
+ **Install / package name.** This monolith publishes as **`@cyberskill/design`** (live at **1.1.0**; grant in `docs/consumer-grant.md` governs *use* — package remains UNLICENSED). Do **not** install `@cyberskill/react` for this tree — that name is historical marketing-site inventory, not this package.
169
170
 
170
171
  **Source inventory vs. extensions.** An earlier CyberSkill surface shipped six primitives — `Button`, `TextField`, `Dialog`, `DataTable`, `AIDisclosureBadge`, `HumanReviewGate` — plus a brand `Logo`. Everything else in **this** package is an **intentional extension** built in the brand's own token vocabulary so consumers have a complete working kit: `Icon` (the marketing site's real in-repo line-icon set), the standard Forms / Feedback / Data / Navigation / Overlays primitives (search, stepper, slider, file upload, list, description list, timeline, accordion, kbd, code block, sidebar, steps, command palette, popover, drawer, and more), added AI-native pieces (`PromptInput`, `ChatMessage`, `ConfidenceMeter`, `PromptSuggestions`, `TypingIndicator`, `CitationList`) that formalise the Lumi wish-flow, and the `LumiAvatar` mascot. None invent new visual language — they reuse the anchors, surfaces, type, and motion already defined.
171
172
 
@@ -215,7 +216,7 @@ Print-ready letter documents and client decks — the paperwork a studio actuall
215
216
 
216
217
  - **Sales** — `sales-one-pager` (leave-behind: umber hero, services, proof stats, the wish process, contact CTA), `sales-proposal-deck` (8-slide 16:9 client proposal — the wish, understanding, approach, scope, timeline, team, investment, next steps).
217
218
 
218
- **Bilingual — full coverage.** Every one of the 84 templates is bilingual. The 37 `vn-*` HR-suite instruments and the three `doc-*` references are Vietnamese-first with English stacked beneath (Ink/Slate). Every other template carries a **Language** tweak (*English · Tiếng Việt*) that swaps the entire body between the two; several emails (`email`, `marketing-launch`, `tech-release-notes`, `delivery-status-email`, `finance-dunning-email`) add a *Both* mode that stacks them. Legal and finance docs (MSA, SOW, invoice, quote) print their Vietnamese side as an **unreviewed draft** behind a warning banner stating the English governs — have counsel review before real use. As of v2.6.0 the last English-only holdouts — board & comms (`bod-report`, `bod-deck`, `bod-investor-update`, `bod-resolution`) and the client decks/docs (`sales-proposal-deck`, `tech-rfc`, `delivery-kickoff`, `delivery-qbr-deck`) — carry the tweak too.
219
+ **Bilingual — full coverage.** Every one of the 84 templates is bilingual. The 37 `vn-*` HR-suite instruments and the three `doc-*` references are Vietnamese-first with English stacked beneath (Ink/Slate). Every other template carries a **Language** tweak (*English · Tiếng Việt*) that swaps the entire body between the two; several emails (`email`, `marketing-launch`, `tech-release-notes`, `delivery-status-email`, `finance-dunning-email`) add a *Both* mode that stacks them. Where doctrine says **EN-first** (client/media collateral), that means English is the *default* Language value — still with a full bilingual Language tweak — not an English-only exemption. Legal and finance docs (MSA, SOW, invoice, quote) print their Vietnamese side as an **unreviewed draft** behind a warning banner stating the English governs — have counsel review before real use. As of Jul 2026 the last English-only holdouts — board & comms (`bod-report`, `bod-deck`, `bod-investor-update`, `bod-resolution`) and the client decks/docs (`sales-proposal-deck`, `tech-rfc`, `delivery-kickoff`, `delivery-qbr-deck`) — carry the tweak too.
219
220
 
220
221
  ### Reference documents (govern EVERY template)
221
222
 
@@ -267,7 +268,7 @@ Every template resolves to one of six archetypes, framed by `templates/doc-templ
267
268
  | **A4 bilingual instrument** | State-motto header · Articles · Party A/B tables · signing block; Style-Guide 1–10 in full | the 37 `vn-*` HR-suite instruments |
268
269
  | **Letter print doc** | Letter, 0.6in margins, desk + sheet, clean Print/PDF | `finance-invoice` · `finance-quote` · `finance-expense-report` · `legal-msa` · `legal-sow` · `sales-one-pager` · `bod-*` docs |
269
270
  | **Email (600px)** | Centred body, system header/CTA, no motto/signing; bilingual via Language tweak | `email` · `hr-announcement` · `marketing-newsletter` · `tech-release-notes` · `delivery-status-email` · `finance-dunning-email` |
270
- | **Product screen** | Components + tokens; Theme × Element × Language; no print geometry | `marketing-page` · `dashboard` · `app-shell` · `auth` · `settings` · `article` |
271
+ | **Product screen** | Components + tokens; Theme × Element × Language × Style; no print geometry | `marketing-page` · `dashboard` · `app-shell` · `auth` · `settings` · `article` |
271
272
  | **Deck (16:9)** | Stacked 16:9 slides, umber cover, element accent, bilingual via Language tweak, PDF/PPTX | `slide-deck` · `bod-deck` · `sales-proposal-deck` · `delivery-qbr-deck` |
272
273
  | **Social image** | Fixed per-channel size (1080² · 1200×630 · 1080×1920) | `marketing-social-kit` |
273
274
 
@@ -276,7 +277,7 @@ Every template resolves to one of six archetypes, framed by `templates/doc-templ
276
277
  ## Index / manifest
277
278
 
278
279
  ```
279
- styles.css ← single entry point (@import manifest only) · VERSION 1.0.0
280
+ styles.css ← single entry point (@import manifest only) · VERSION 1.1.0
280
281
  tokens/ fonts · colors · typography · spacing · elevation · motion · component-tokens · elements (Ngũ Hành packs)
281
282
  base/ reset · typography · components · forms · feedback · data · navigation · ai · controls · collections · shell · glass · interaction · a11y · responsive
282
283
  components/ button · textfield · dialog · datatable · forms · feedback · data · navigation · overlays · ai · logo · icon · brand
@@ -284,30 +285,32 @@ components/ button · textfield · dialog · datatable · forms
284
285
  guidelines/ specimen cards (Colors · Type · Spacing · Surfaces · Brand · Motion · Elements · Responsive & Bilingual) · atomic-view.html
285
286
  templates/ marketing-page · dashboard · slide-deck · auth · settings · app-shell · article · email (copyable .dc.html)
286
287
  + team artifacts — tech (release/incident/rfc) · team (meeting-agenda) · hr (announcement) · board (report/deck/memo) · marketing (brief/newsletter/launch/case-study/press-release)
287
- + business — legal (nda/msa/sow) · finance (invoice/quote) · sales (one-pager/proposal-deck) — letter print docs + client deck
288
+ + business — legal (vn-mutual-nda / msa / sow; fictional legal-nda retired) · finance (invoice/quote) · sales (one-pager/proposal-deck) — letter print docs + client deck
288
289
  + Documents (reference, govern all templates) — doc-style-guide · doc-suite-index (index & usage) · doc-templates (archetypes)
289
290
  + HR Suite — 37 lawyer-validated bilingual A4 instruments (vn-*); content verbatim, latest-DS skin
290
- ui_kits/status-hub/ Status Hub recreation (index · login · settings · project · identity-lab + status.css · data.js · StatusHub.jsx)
291
+ ui_kits/status-hub/ Status Hub recreation (index · login · settings · project + status.css · data.js · StatusHub.jsx)
291
292
  ui_kits/website/ cyberskill.world recreation (index · work · careers · chat + site.css · copy.js · Website.jsx)
292
293
  ui_kits/deck/ brand deck on deck-stage (index.html; deck-stage runtime lives in templates/_vendor/, outside the compiled bundle; export PPTX/PDF on demand)
293
294
  assets/ logo-mark.svg/png · favicon.svg · aurora-gold.jpg + aurora-{hoa,thuy,moc,kim}.png · lumi-poster.webp
294
295
  docs/ the full doc set (see Document map above) + viewer.html reader (EN|VI)
295
296
  docs/vi/ Vietnamese translations of every operator-facing docs/*.md
296
- fonts/ self-hosted Be Vietnam Pro + JetBrains Mono woff2 (latin · latin-ext · vietnamese)
297
+ fonts/ self-hosted Be Vietnam Pro + Space Grotesk + JetBrains Mono woff2 (latin · latin-ext · vietnamese)
297
298
  thumbnail.html project tile
298
299
  SKILL.md Agent-Skills-compatible entry
299
300
  ```
300
301
 
301
- **UI kits** (product recreations, composing the tokens + `.cs-*` classes): **Status Hub** (portfolio dashboard — KPIs, board/table/releases lenses, drawer — plus **sign-in**, **settings**, **project detail**, and the **Identity Lab** for live Theme × Element × Language switching), **cyberskill.world** (bilingual marketing home with Lumi chat — plus **Work**, **Careers**, and a full-page **Lumi assistant**), and a **Brand deck** (16:9, `deck-stage`, PDF/PPTX-ready). See each kit's `README.md`.
302
+ **UI kits** (product recreations, composing the tokens + `.cs-*` classes): **Status Hub** (portfolio dashboard — KPIs, board/table/releases lenses, drawer — plus **sign-in**, **settings**, **project detail**). Live axis demos: Storybook toolbar · Atomic View · Elements Geometry specimen, **cyberskill.world** (bilingual marketing home with Lumi chat — plus **Work**, **Careers**, and a full-page **Lumi assistant**), and a **Brand deck** (16:9, `deck-stage`, PDF/PPTX-ready). See each kit's `README.md`.
302
303
 
303
- **Design System tab** renders every card: Components (115 exports — Core, Forms, Data, Feedback, Navigation, Overlays, AI-native, Brand), Colors, Type, Spacing, Surfaces, Brand, Motion, Responsive & Bilingual, **Elements**, plus the Status Hub (incl. Identity Lab), Website, and Deck surfaces.
304
+ **Storybook** renders every card: Components (121 exports — Core, Forms, Data, Feedback, Navigation, Overlays, AI-native, Brand), Foundations (Colors, Type, Spacing, Surfaces, Brand, Motion, Responsive & Bilingual, **Elements**), plus Maintainer surfaces for Status Hub, Website, and Deck.
304
305
 
305
306
  ---
306
307
 
307
308
 
308
309
  ## Substitutions & caveats
309
310
 
310
- - **Fonts:** Be Vietnam Pro (300–800 + italics) and JetBrains Mono are **self-hosted** in `fonts/` as subset-split woff2 (latin · latin-ext · vietnamese) — no CDN dependency. Same families as the source (which ships them via `next/font`); no visual substitution.
311
+ - **Fonts:** Be Vietnam Pro (300–800 + italics), Space Grotesk (variable 300–700), and JetBrains Mono are **self-hosted** in `fonts/` as subset-split woff2 (latin · latin-ext · vietnamese) — no CDN dependency. Same families as the source (which ships them via `next/font`); no visual substitution. `_audit/font-face-integrity.html` is the gate: it proves every face is local, subset-split, Vietnamese-covered, and mirrored in the manifest.
312
+
313
+ - **Display face is opt-in, not a second default.** `--cs-font-family-display` (Space Grotesk) exists so a product with a headline face — cyberskill.world / Lumi — consumes a DS token instead of hand-rolling its own `@font-face`. Nothing in the DS points at it: opt a subtree in with `.cs-display-face`. Product → element mappings are unaffected (`docs/products.md` stays locked).
311
314
 
312
315
  - **Type size ramp & motion tokens** are a documented convention layered on the doctrine (the token source ships families + line-heights only); they mirror real in-product usage. The ramp also carries semantic role aliases (`--cs-text-h1`…) and `.cs-h1` / `.cs-body` / … utilities in `base/typography.css`.
313
316
 
package/SKILL.md CHANGED
@@ -8,23 +8,25 @@ If the user invokes this skill without any other guidance, ask them what they wa
8
8
 
9
9
  ## Fast orientation
10
10
 
11
- **Which front door?** **Claude Code / Claude Design** → this `SKILL.md` → `README.md` → portable runtime (`styles.css`, `_esm/cs.mjs`, `_ds_bundle.js` with prefix resolve) and optionally DC templates when the session has the compiler. **Google Stitch (and other DESIGN.md readers)** → root `DESIGN.md` → `llms.txt` → `tokens/tokens.dtcg.json` + static `.cs-*` HTML — **never** treat `templates/**/*.dc.html` as source of truth (no tweaks / `__dcSetProps` / DC runtime outside Claude Design). Dual-path detail: `docs/consuming.md`. Release signal: tip SHA + `docs/release-notes.md` (VERSION stays **1.0.0**; no CHANGELOG).
11
+ **Which front door?** **Claude Code / Claude Design** → this `SKILL.md` → `README.md` → portable runtime (`styles.css`, bundler `_esm/react.mjs` / legacy `_esm/cs.mjs`, `_ds_bundle.js` with prefix resolve) and optionally DC templates when the session has the compiler. **Google Stitch (and other DESIGN.md readers)** → root `DESIGN.md` → `llms.txt` → `tokens/tokens.dtcg.json` + static `.cs-*` HTML — **never** treat `templates/**/*.dc.html` as source of truth (no tweaks / `__dcSetProps` / DC runtime outside Claude Design). Dual-path detail: `docs/consuming.md`. Release signal: tip SHA + `docs/release-notes.md` (VERSION is **1.1.0**; no CHANGELOG).
12
12
 
13
13
  - **`README.md`** — the entrance + design guide + manifest: anchor immutables, CONTENT FUNDAMENTALS (voice = warm/direct/honest/respectful, Vietnamese-first, the "wish" metaphor), VISUAL FOUNDATIONS, ICONOGRAPHY, and the component/kit index. Read it first.
14
14
 
15
15
  - **`styles.css`** — the single stylesheet to link. It `@import`s all tokens (`tokens/`) and base styles (`base/`, incl. the `.cs-*` component classes and the Liquid Glass surfaces). Link this one file and you have the whole system.
16
16
 
17
- - **`_esm/cs.mjs`** — ESM entry for production React (re-exports every component; still link `styles.css`). Bundle path: `_ds_bundle.js` → resolve `window.CyberSkillDesignSystem_*` **by prefix**, never hardcode the compiler suffix.
17
+ - **`_esm/react.mjs`** — bundler-native React entry (default `exports["."]` / `@cyberskill/design/react`): re-exports every component from source JSX; React is a **peerDependency**. Use with Next/Vite (`transpilePackages`). Still link `styles.css`.
18
18
 
19
- - **`tokens/`** — every design decision as a CSS custom property (`--cs-*`): colors, type, spacing, elevation/glass, motion, component tokens, **`elements.css`** — the Ngũ Hành product-identity packs (`data-cs-element="kim|moc|thuy|hoa|tho"` + `data-cs-variant`; role tokens `--cs-accent-*`) — Grammar: **Theme × Element × Language** are independent; state them or accept defaults (`light · tho · en`). Surface treatment is liquid-glass (fixed). Generated machine-readable exports live at **`tokens/tokens.json`**, **`tokens/tokens.js`** (ESM), and **`tokens/tokens.dtcg.json`** (**W3C DTCG**) — root tokens grouped by category, plus theme/element override maps — for native/mobile/tooling consumers. The root **`DESIGN.md`** is the generated single-file open-spec view of the same source (doctrine + every token value + inventory; regenerate via `npm run build:design-md`, never hand-edit — the `design-md-parity` gate pins it).
19
+ - **`_esm/cs.mjs`** — browser / no-build legacy (`exports["./legacy"]`): self-ensures React, side-loads `_ds_bundle.js`, re-exports every component. Bundle path: `_ds_bundle.js` → resolve `window.CyberSkillDesignSystem_*` **by prefix**, never hardcode the compiler suffix. **Not for Next/SSR.**
20
20
 
21
- - **`docs/`** — `conventions.md` (authoring rules — the three axes: Theme × Element × Language — plus the decision log), `products.md` (element registry, **locked**), `contrast-report.md` (generated APCA sweep), `consuming.md` (Claude Code vs Stitch dual path).
21
+ - **`tokens/`** — every design decision as a CSS custom property (`--cs-*`): colors, type, spacing, elevation/glass, motion, component tokens, **`elements.css`** — the Ngũ Hành product-identity packs (`data-cs-element="kim|moc|thuy|hoa|tho"` + `data-cs-variant`; role tokens `--cs-accent-*`) — Grammar: **Theme × Element × Language × Style** are independent; state them or accept defaults (`light · tho · en · liquid-glass`; Theme may be `system` for OS `prefers-color-scheme`). Style pack is liquid-glass (sole pack; absent ≡ default). Generated machine-readable exports live at **`tokens/tokens.json`**, **`tokens/tokens.js`** (ESM), and **`tokens/tokens.dtcg.json`** (**W3C DTCG**) — root tokens grouped by category, plus theme/element override maps — for native/mobile/tooling consumers. The root **`DESIGN.md`** is the generated single-file open-spec view of the same source (doctrine + every token value + inventory; regenerate via `npm run build:design-md`, never hand-edit — the `design-md-parity` gate pins it).
22
22
 
23
- - **`components/`** — 115 exports across 8 groups — Core (Button, Dialog), Forms, Data/Layout, Feedback, Navigation, Overlays, AI-native, and Brand (Logo, Icon, LumiAvatar). Each has a `.d.ts` contract and a `.prompt.md`. In production compose these; in static HTML use the `.cs-*` classes from `styles.css`.
23
+ - **`docs/`** — `conventions.md` (authoring rules — the four axes: Theme × Element × Language × Style — plus the decision log), `products.md` (element registry, **locked**), `contrast-report.md` (generated APCA sweep), `consuming.md` (Claude Code vs Stitch dual path).
24
24
 
25
- - **`templates/`** — ~84 copyable starting points (**Design Components** — Claude Design / full-clone authoring only) spanning the full operations map: **product** — marketing-page, dashboard, slide-deck, auth, settings, app-shell, article, email; **teams** — Tech (release-notes, incident-report, rfc, retro), Team (meeting-agenda), HR (announcement, offboarding, interview-kit, performance-review, PIP⚠), Board (report, deck, memo, minutes, resolution⚠, investor-update), Marketing (brief, newsletter, launch, case-study, press-release, social-kit), Culture (event-invite), Delivery (status-email, kickoff, change-note, runbook, qbr-deck); **business** — Legal (msa, sow), Finance (invoice, quote, expense-report, dunning-email), Sales (one-pager, proposal-deck); **HR Suite** — 37 client-supplied, lawyer-validated bilingual A4 instruments (`templates/vn-*`), converted verbatim from `.docx` and re-skinned to the latest system; `vn-labor-contract` supersedes the former `legal-employment-contract`. Three suite-wide **reference documents** (`templates/doc-style-guide`, `doc-suite-index`, `doc-templates`) define, catalogue, and frame EVERY template — Style Guide (Articles 1–10 + archetype map), Suite Index & Usage Guide, and the blank archetype shells. ⚠ = counsel-gated, banner-marked drafts; the HR Suite is client-validated legal text — keep verbatim and have counsel review edits. Every template carries Element ×15 tweaks and is **bilingual**: the 37 `vn-*` HR-suite docs and 3 `doc-*` references stack Vietnamese-first (no tweak), and every other template carries an EN·VN Language tweak (several emails add *Both*) — as of v2.6.0 there are no English-only templates left. Each loads the system via a sibling `ds-base.js` (one `base` line to rebind — validated end-to-end Jul 2026). **Stitch / static consumers:** use `templates/kitchen-sink.html`, `examples/static-hello/`, and `.cs-*` classes — not `*.dc.html`.
25
+ - **`components/`** — 121 exports across 8 groups — Core (Button, Dialog), Forms, Data/Layout, Feedback, Navigation, Overlays, AI-native, and Brand (Logo, Icon, LumiAvatar). Each has a `.d.ts` contract and a `.prompt.md`. In production compose these; in static HTML use the `.cs-*` classes from `styles.css`.
26
26
 
27
- - **`guidelines/`** — foundation specimen cards (colors, type, spacing, surfaces, brand, motion, elements, and Responsive & Bilingual) — handy visual references. Plus **`atomic-view.html`** — a Storybook-style browser of every component grouped by Atomic tier (Atoms/Molecules/Organisms), reskinnable live across Theme × Element × Language.
27
+ - **`templates/`** — ~84 copyable starting points (**Design Components** — Claude Design / full-clone authoring only) spanning the full operations map: **product** — marketing-page, dashboard, slide-deck, auth, settings, app-shell, article, email; **teams** — Tech (release-notes, incident-report, rfc, retro), Team (meeting-agenda), HR (announcement, offboarding, interview-kit, performance-review, PIP⚠), Board (report, deck, memo, minutes, resolution⚠, investor-update), Marketing (brief, newsletter, launch, case-study, press-release, social-kit), Culture (event-invite), Delivery (status-email, kickoff, change-note, runbook, qbr-deck); **business** — Legal (msa, sow), Finance (invoice, quote, expense-report, dunning-email), Sales (one-pager, proposal-deck); **HR Suite** — 37 client-supplied, lawyer-validated bilingual A4 instruments (`templates/vn-*`), converted verbatim from `.docx` and re-skinned to the latest system; `vn-labor-contract` supersedes the former `legal-employment-contract`. Three suite-wide **reference documents** (`templates/doc-style-guide`, `doc-suite-index`, `doc-templates`) define, catalogue, and frame EVERY template — Style Guide (Articles 1–10 + archetype map), Suite Index & Usage Guide, and the blank archetype shells. ⚠ = counsel-gated, banner-marked drafts; the HR Suite is client-validated legal text — keep verbatim and have counsel review edits. Every template carries Element ×15 tweaks and is **bilingual**: the 37 `vn-*` HR-suite docs and 3 `doc-*` references stack Vietnamese-first (no tweak), and every other template carries an EN·VN Language tweak (several emails add *Both*) — as of Jul 2026 there are no English-only templates left. Each loads the system via a sibling `ds-base.js` (one `base` line to rebind — validated end-to-end Jul 2026). **Stitch / static consumers:** use `templates/kitchen-sink.html`, `examples/static-hello/`, and `.cs-*` classes — not `*.dc.html`.
28
+
29
+ - **`guidelines/`** — foundation specimen cards (colors, type, spacing, surfaces, brand, motion, elements, and Responsive & Bilingual) — handy visual references. Plus **`atomic-view.html`** — a Storybook-style browser of every component grouped by Atomic tier (Atoms/Molecules/Organisms), reskinnable live across Theme × Element × Language × Style.
28
30
 
29
31
  - **`ui_kits/`** — full product recreations to copy patterns from: **status-hub** (portfolio dashboard + sign-in + settings + project detail), **website** (bilingual marketing home + Work + Careers + full Lumi chat), and **deck** (16:9 brand deck on deck-stage, PDF/PPTX-ready).
30
32
 
@@ -40,17 +42,19 @@ Every artifact exports, all paths preserving Vietnamese Unicode (see `docs/conve
40
42
 
41
43
  - Elemental identity: one element per product; consume `--cs-accent-*` roles (never raw element hex); semantic statuses and the 3px Ochre focus ring are NEVER elemental; secondary elements only as gradient endpoints along Tương sinh (Mộc→Hỏa→Thổ→Kim→Thủy→Mộc); Lumi stays golden in every element.
42
44
 
43
- - Surface treatment is liquid-glass (fixed). Do not invent styles ad hoc (neon/cyberpunk, memphis, and full skeuomorphism are rejected by doctrine).
45
+ - Style pack is liquid-glass (sole pack; absent ≡ default). Do not invent styles ad hoc (neon/cyberpunk, memphis, and full skeuomorphism are rejected by doctrine).
44
46
 
45
47
  - Keep it warm — every neutral warmed toward umber; no cold grey, no bluish-purple gradients, no emoji in UI.
46
48
 
47
49
  - Vietnamese-first: ship EN + VN copy; preserve diacritics; use Vietnamese-safe line-heights.
48
50
 
51
+ - Type families come from tokens, never from a hand-rolled `@font-face`: `--cs-font-family-ui` (Be Vietnam Pro) for UI and headings, `--cs-font-family-mono` (JetBrains Mono) for code/data, and the **opt-in** `--cs-font-family-display` (Space Grotesk, variable 300–700, Vietnamese subset included) for a product headline face — opt a subtree in with `.cs-display-face` rather than overriding `font-family` by hand.
52
+
49
53
  - Never remove focus outlines (3px Ochre ring); keep touch targets ≥ 44px (enforced on coarse pointers via `base/a11y.css`); honour `prefers-reduced-motion` and `prefers-contrast`; body text APCA Lc ≥ 75. Dark theme has full semantic overrides (all pairings pass AA).
50
54
 
51
55
  - Voice stays warm/direct/honest/respectful — never fun/playful/edgy. Products are "wishes" that Lumi helps grant.
52
56
 
53
- - Expansion rule: when any set grows (element/variant, icon, component, language), update every deliverable in the same change — tokens, cards + related guidelines, contract trio, all template enums, Identity Lab, docs incl. every related document/README — and grep the old list to prove it. Version stays pinned at 1.0.0 until LAUNCH (no changelog).
57
+ - Expansion rule: when any set grows (element/variant, icon, component, language), update every deliverable in the same change — tokens, cards + related guidelines, contract trio, all template enums, Storybook toolbar / Atomic View, docs incl. every related document/README — and grep the old list to prove it. Version is LAUNCHED at **1.1.0**; further bumps need an owner instruction (no changelog).
54
58
 
55
59
  - **Stitch / non-DC tools must not consume `*.dc.html` as source of truth.** Those files need the Design Components compiler (tweaks, `x-import`, `__dcSetProps`). Generate static UI from `DESIGN.md` / DTCG / `styles.css` + `.cs-*` / kitchen-sink / `examples/static-hello/` instead. DC authoring stays Claude Design (or a full clone with the compiler).
56
60
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0