@beehexa/design-rules 0.0.0-stage → 2611.3.2

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 (290) hide show
  1. package/README.md +56 -2
  2. package/dist/AGENTS.md +24 -0
  3. package/dist/catalog.json +1814 -0
  4. package/dist/docs/public/_redirects +7 -0
  5. package/dist/docs/public/apple-touch-icon.png +0 -0
  6. package/dist/docs/public/brand/logos/app/apple-touch-icon.png +0 -0
  7. package/dist/docs/public/brand/logos/app/avatar-800.png +0 -0
  8. package/dist/docs/public/brand/logos/app/icon-192.png +0 -0
  9. package/dist/docs/public/brand/logos/app/icon-512.png +0 -0
  10. package/dist/docs/public/brand/logos/app/icon-maskable-512.png +0 -0
  11. package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-1-light.svg +1 -0
  12. package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-2-dark.svg +1 -0
  13. package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-3-white.svg +1 -0
  14. package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-4-graphite.svg +1 -0
  15. package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-1-light.svg +1 -0
  16. package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-2-dark.svg +1 -0
  17. package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-3-white.svg +1 -0
  18. package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-4-graphite.svg +1 -0
  19. package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-d-550-dark.svg +1 -0
  20. package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-d-550-light.svg +1 -0
  21. package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-design-d-550-dark.svg +1 -0
  22. package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-design-d-550-light.svg +1 -0
  23. package/dist/docs/public/brand/logos/archive/d-550/ui/hexasync-d-550-dark.svg +1 -0
  24. package/dist/docs/public/brand/logos/archive/d-550/ui/hexasync-d-550-light.svg +1 -0
  25. package/dist/docs/public/brand/logos/archive/d-550/ui/png/beehexa-design-d-550-dark@3x.png +0 -0
  26. package/dist/docs/public/brand/logos/archive/d-550/ui/png/beehexa-design-d-550-light@3x.png +0 -0
  27. package/dist/docs/public/brand/logos/beehexa-logo.zip +0 -0
  28. package/dist/docs/public/brand/logos/fig/anatomy-en.png +0 -0
  29. package/dist/docs/public/brand/logos/fig/anatomy-vi.png +0 -0
  30. package/dist/docs/public/brand/logos/fig/beehexa-dark-12.png +0 -0
  31. package/dist/docs/public/brand/logos/fig/beehexa-dark-14.png +0 -0
  32. package/dist/docs/public/brand/logos/fig/beehexa-dark-28.png +0 -0
  33. package/dist/docs/public/brand/logos/fig/beehexa-dark-32.png +0 -0
  34. package/dist/docs/public/brand/logos/fig/beehexa-dark-56.png +0 -0
  35. package/dist/docs/public/brand/logos/fig/beehexa-graphite-28.png +0 -0
  36. package/dist/docs/public/brand/logos/fig/beehexa-graphite-32.png +0 -0
  37. package/dist/docs/public/brand/logos/fig/beehexa-light-14.png +0 -0
  38. package/dist/docs/public/brand/logos/fig/beehexa-light-21.png +0 -0
  39. package/dist/docs/public/brand/logos/fig/beehexa-light-22.png +0 -0
  40. package/dist/docs/public/brand/logos/fig/beehexa-light-24.png +0 -0
  41. package/dist/docs/public/brand/logos/fig/beehexa-light-28.png +0 -0
  42. package/dist/docs/public/brand/logos/fig/beehexa-light-32.png +0 -0
  43. package/dist/docs/public/brand/logos/fig/beehexa-light-36-7c3aed7c3aed.png +0 -0
  44. package/dist/docs/public/brand/logos/fig/beehexa-light-36-swap.png +0 -0
  45. package/dist/docs/public/brand/logos/fig/beehexa-light-36.png +0 -0
  46. package/dist/docs/public/brand/logos/fig/beehexa-light-56.png +0 -0
  47. package/dist/docs/public/brand/logos/fig/beehexa-white-20.png +0 -0
  48. package/dist/docs/public/brand/logos/fig/beehexa-white-32.png +0 -0
  49. package/dist/docs/public/brand/logos/fig/clearspace.png +0 -0
  50. package/dist/docs/public/brand/logos/fig/construction-en.png +0 -0
  51. package/dist/docs/public/brand/logos/fig/construction-vi.png +0 -0
  52. package/dist/docs/public/brand/logos/fig/container-en.png +0 -0
  53. package/dist/docs/public/brand/logos/fig/container-vi.png +0 -0
  54. package/dist/docs/public/brand/logos/fig/hexasync-dark-20.png +0 -0
  55. package/dist/docs/public/brand/logos/fig/hexasync-dark-28.png +0 -0
  56. package/dist/docs/public/brand/logos/fig/hexasync-dark-48.png +0 -0
  57. package/dist/docs/public/brand/logos/fig/hexasync-light-19.png +0 -0
  58. package/dist/docs/public/brand/logos/fig/hexasync-light-28.png +0 -0
  59. package/dist/docs/public/brand/logos/fig/hexasync-light-48.png +0 -0
  60. package/dist/docs/public/brand/logos/fig/icon-graphite-14.png +0 -0
  61. package/dist/docs/public/brand/logos/fig/icon-graphite-16.png +0 -0
  62. package/dist/docs/public/brand/logos/fig/icon-light-16.png +0 -0
  63. package/dist/docs/public/brand/logos/fig/icon-light-24.png +0 -0
  64. package/dist/docs/public/brand/logos/fig/icon-light-48.png +0 -0
  65. package/dist/docs/public/brand/logos/fig/icon-light-92.png +0 -0
  66. package/dist/docs/public/brand/logos/fig/meaning-bee-en.png +0 -0
  67. package/dist/docs/public/brand/logos/fig/meaning-bee-vi.png +0 -0
  68. package/dist/docs/public/brand/logos/fig/meaning-outline-en.png +0 -0
  69. package/dist/docs/public/brand/logos/fig/meaning-outline-vi.png +0 -0
  70. package/dist/docs/public/brand/logos/fig/meaning-stack-en.png +0 -0
  71. package/dist/docs/public/brand/logos/fig/meaning-stack-vi.png +0 -0
  72. package/dist/docs/public/brand/logos/fig/misuse-serif.png +0 -0
  73. package/dist/docs/public/brand/logos/icon/beehexa-icon-graphite.svg +1 -0
  74. package/dist/docs/public/brand/logos/icon/beehexa-icon-white.svg +1 -0
  75. package/dist/docs/public/brand/logos/icon/beehexa-icon-yellow.svg +1 -0
  76. package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-1-light.svg +1 -0
  77. package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-2-dark.svg +1 -0
  78. package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-3-white.svg +1 -0
  79. package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-4-graphite.svg +1 -0
  80. package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-1-light.svg +1 -0
  81. package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-2-dark.svg +1 -0
  82. package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-3-white.svg +1 -0
  83. package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-4-graphite.svg +1 -0
  84. package/dist/docs/public/brand/logos/ui/beehexa-dark.svg +1 -0
  85. package/dist/docs/public/brand/logos/ui/beehexa-design-dark.svg +1 -0
  86. package/dist/docs/public/brand/logos/ui/beehexa-design-light.svg +1 -0
  87. package/dist/docs/public/brand/logos/ui/beehexa-icon-yellow.svg +1 -0
  88. package/dist/docs/public/brand/logos/ui/beehexa-light.svg +1 -0
  89. package/dist/docs/public/brand/logos/ui/hexasync-dark.svg +1 -0
  90. package/dist/docs/public/brand/logos/ui/hexasync-light.svg +1 -0
  91. package/dist/docs/public/brand/logos/ui/png/beehexa-design-dark@3x.png +0 -0
  92. package/dist/docs/public/brand/logos/ui/png/beehexa-design-light@3x.png +0 -0
  93. package/dist/docs/public/favicon.ico +0 -0
  94. package/dist/docs/public/favicon.svg +1 -0
  95. package/dist/docs/public/fonts/LICENSE-Inter.txt +93 -0
  96. package/dist/docs/public/fonts/LICENSE-JetBrainsMono.txt +93 -0
  97. package/dist/docs/public/fonts/inter-latin-ext-opsz-wght-italic.woff2 +0 -0
  98. package/dist/docs/public/fonts/inter-latin-ext-opsz-wght-normal.woff2 +0 -0
  99. package/dist/docs/public/fonts/inter-latin-opsz-wght-italic.woff2 +0 -0
  100. package/dist/docs/public/fonts/inter-latin-opsz-wght-normal.woff2 +0 -0
  101. package/dist/docs/public/fonts/inter-vietnamese-opsz-wght-italic.woff2 +0 -0
  102. package/dist/docs/public/fonts/inter-vietnamese-opsz-wght-normal.woff2 +0 -0
  103. package/dist/docs/public/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  104. package/dist/docs/public/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  105. package/dist/docs/public/fonts/jetbrains-mono-vietnamese-wght-normal.woff2 +0 -0
  106. package/dist/docs/public/icon-192.png +0 -0
  107. package/dist/docs/public/icon-512.png +0 -0
  108. package/dist/docs/public/icon-maskable-512.png +0 -0
  109. package/dist/docs/public/robots.txt +4 -0
  110. package/dist/docs/public/site.webmanifest +21 -0
  111. package/dist/docs/scripts/color-pairs.mjs +46 -0
  112. package/dist/docs/scripts/contrast-exceptions.mjs +6 -0
  113. package/dist/docs/scripts/token-utils.d.mts +26 -0
  114. package/dist/docs/scripts/token-utils.mjs +114 -0
  115. package/dist/docs/src/brand/Beehexa-brandguide-full-mar12.pdf +0 -0
  116. package/dist/docs/src/brand/color+typoDirections.pdf +0 -0
  117. package/dist/docs/src/brand/structure-proposal.md +227 -0
  118. package/dist/docs/src/components/ChildPages.astro +25 -0
  119. package/dist/docs/src/components/CodeExample.astro +18 -0
  120. package/dist/docs/src/components/ColorDemo.astro +794 -0
  121. package/dist/docs/src/components/ColorExample.astro +32 -0
  122. package/dist/docs/src/components/ColorSwatch.astro +20 -0
  123. package/dist/docs/src/components/ComponentTabs.astro +21 -0
  124. package/dist/docs/src/components/DocsFooter.astro +25 -0
  125. package/dist/docs/src/components/HelpOptions.astro +20 -0
  126. package/dist/docs/src/components/IconBrowser.astro +257 -0
  127. package/dist/docs/src/components/IconDemo.astro +185 -0
  128. package/dist/docs/src/components/InDevelopment.astro +29 -0
  129. package/dist/docs/src/components/LayoutDemo.astro +384 -0
  130. package/dist/docs/src/components/Logo.astro +25 -0
  131. package/dist/docs/src/components/PhaseTable.astro +22 -0
  132. package/dist/docs/src/components/RoleGuides.astro +48 -0
  133. package/dist/docs/src/components/ShapeDemo.astro +239 -0
  134. package/dist/docs/src/components/ShapePin.astro +22 -0
  135. package/dist/docs/src/components/Sidebar.astro +206 -0
  136. package/dist/docs/src/components/SiteHeader.astro +211 -0
  137. package/dist/docs/src/components/SpacingDemo.astro +172 -0
  138. package/dist/docs/src/components/StatusBadge.astro +22 -0
  139. package/dist/docs/src/components/SystemAreas.astro +29 -0
  140. package/dist/docs/src/components/TableOfContents.astro +47 -0
  141. package/dist/docs/src/components/TokenTable.astro +40 -0
  142. package/dist/docs/src/components/TypeDemo.astro +249 -0
  143. package/dist/docs/src/components/logos/Fig.astro +28 -0
  144. package/dist/docs/src/components/logos/LogoAnatomy.astro +101 -0
  145. package/dist/docs/src/components/logos/LogoClearSpace.astro +81 -0
  146. package/dist/docs/src/components/logos/LogoColourVersions.astro +45 -0
  147. package/dist/docs/src/components/logos/LogoConstruction.astro +84 -0
  148. package/dist/docs/src/components/logos/LogoContainer.astro +84 -0
  149. package/dist/docs/src/components/logos/LogoHero.astro +42 -0
  150. package/dist/docs/src/components/logos/LogoInUse.astro +197 -0
  151. package/dist/docs/src/components/logos/LogoMeanings.astro +75 -0
  152. package/dist/docs/src/components/logos/LogoMinSize.astro +55 -0
  153. package/dist/docs/src/components/logos/LogoMistakes.astro +109 -0
  154. package/dist/docs/src/components/logos/LogoMisuse.astro +96 -0
  155. package/dist/docs/src/components/logos/LogoPair.astro +26 -0
  156. package/dist/docs/src/components/logos/LogoSvg.astro +68 -0
  157. package/dist/docs/src/content/components/button/accessibility.mdx +18 -0
  158. package/dist/docs/src/content/components/button/changelog.mdx +6 -0
  159. package/dist/docs/src/content/components/button/code.mdx +27 -0
  160. package/dist/docs/src/content/components/button/examples.mdx +21 -0
  161. package/dist/docs/src/content/components/button/meta.json +5 -0
  162. package/dist/docs/src/content/components/button/usage.mdx +18 -0
  163. package/dist/docs/src/content/foundations/guidelines/accessibility.mdx +19 -0
  164. package/dist/docs/src/content/foundations/guidelines/content.mdx +25 -0
  165. package/dist/docs/src/content/foundations/index.mdx +9 -0
  166. package/dist/docs/src/content/foundations/styles/border.mdx +89 -0
  167. package/dist/docs/src/content/foundations/styles/color/accessibility.mdx +32 -0
  168. package/dist/docs/src/content/foundations/styles/color/dark-mode.mdx +22 -0
  169. package/dist/docs/src/content/foundations/styles/color/index.mdx +65 -0
  170. package/dist/docs/src/content/foundations/styles/color/palette.mdx +57 -0
  171. package/dist/docs/src/content/foundations/styles/color/tokens.mdx +55 -0
  172. package/dist/docs/src/content/foundations/styles/color/usage.mdx +111 -0
  173. package/dist/docs/src/content/foundations/styles/data-visualization.mdx +11 -0
  174. package/dist/docs/src/content/foundations/styles/elevation.mdx +12 -0
  175. package/dist/docs/src/content/foundations/styles/icons/accessibility.mdx +72 -0
  176. package/dist/docs/src/content/foundations/styles/icons/code.mdx +171 -0
  177. package/dist/docs/src/content/foundations/styles/icons/index.mdx +62 -0
  178. package/dist/docs/src/content/foundations/styles/icons/library.mdx +19 -0
  179. package/dist/docs/src/content/foundations/styles/icons/usage.mdx +100 -0
  180. package/dist/docs/src/content/foundations/styles/illustration.mdx +9 -0
  181. package/dist/docs/src/content/foundations/styles/interaction-states.mdx +49 -0
  182. package/dist/docs/src/content/foundations/styles/layout/app-frame.mdx +81 -0
  183. package/dist/docs/src/content/foundations/styles/layout/breakpoints.mdx +56 -0
  184. package/dist/docs/src/content/foundations/styles/layout/grid.mdx +87 -0
  185. package/dist/docs/src/content/foundations/styles/layout/index.mdx +24 -0
  186. package/dist/docs/src/content/foundations/styles/layout/overlays.mdx +45 -0
  187. package/dist/docs/src/content/foundations/styles/layout/page-widths.mdx +38 -0
  188. package/dist/docs/src/content/foundations/styles/logos/downloads-and-terms.mdx +65 -0
  189. package/dist/docs/src/content/foundations/styles/logos/index.mdx +64 -0
  190. package/dist/docs/src/content/foundations/styles/logos/placement-and-containers.mdx +96 -0
  191. package/dist/docs/src/content/foundations/styles/logos/product-logos.mdx +56 -0
  192. package/dist/docs/src/content/foundations/styles/logos/using-the-logo.mdx +70 -0
  193. package/dist/docs/src/content/foundations/styles/motion.mdx +11 -0
  194. package/dist/docs/src/content/foundations/styles/opacity.mdx +9 -0
  195. package/dist/docs/src/content/foundations/styles/radius.mdx +98 -0
  196. package/dist/docs/src/content/foundations/styles/size-and-density.mdx +41 -0
  197. package/dist/docs/src/content/foundations/styles/spacing.mdx +70 -0
  198. package/dist/docs/src/content/foundations/styles/typography/code.mdx +53 -0
  199. package/dist/docs/src/content/foundations/styles/typography/index.mdx +58 -0
  200. package/dist/docs/src/content/foundations/styles/typography/usage.mdx +144 -0
  201. package/dist/docs/src/content/foundations/styles/typography/vietnamese.mdx +46 -0
  202. package/dist/docs/src/content/foundations/styles/z-index.mdx +9 -0
  203. package/dist/docs/src/content/foundations/tokens/all-tokens.mdx +36 -0
  204. package/dist/docs/src/content/foundations/tokens/index.mdx +27 -0
  205. package/dist/docs/src/content/get-started/content.mdx +14 -0
  206. package/dist/docs/src/content/get-started/design.mdx +30 -0
  207. package/dist/docs/src/content/get-started/develop.mdx +59 -0
  208. package/dist/docs/src/content/get-started/get-help.mdx +19 -0
  209. package/dist/docs/src/content/get-started/index.mdx +50 -0
  210. package/dist/docs/src/content/news/2026-10-16-site-structure.md +15 -0
  211. package/dist/docs/src/content/news/2026-10-20-docs-site.md +13 -0
  212. package/dist/docs/src/content/release-phases/index.mdx +12 -0
  213. package/dist/docs/src/content/tools/ai-agents.mdx +49 -0
  214. package/dist/docs/src/content/tools/ant-design-vue-theme.mdx +138 -0
  215. package/dist/docs/src/content/tools/eslint.mdx +15 -0
  216. package/dist/docs/src/content/tools/index.mdx +7 -0
  217. package/dist/docs/src/content/tools/stylelint.mdx +19 -0
  218. package/dist/docs/src/content-vi/foundations/styles/border.mdx +89 -0
  219. package/dist/docs/src/content-vi/foundations/styles/color/accessibility.mdx +32 -0
  220. package/dist/docs/src/content-vi/foundations/styles/color/dark-mode.mdx +22 -0
  221. package/dist/docs/src/content-vi/foundations/styles/color/index.mdx +65 -0
  222. package/dist/docs/src/content-vi/foundations/styles/color/palette.mdx +57 -0
  223. package/dist/docs/src/content-vi/foundations/styles/color/tokens.mdx +55 -0
  224. package/dist/docs/src/content-vi/foundations/styles/color/usage.mdx +111 -0
  225. package/dist/docs/src/content-vi/foundations/styles/data-visualization.mdx +11 -0
  226. package/dist/docs/src/content-vi/foundations/styles/icons/accessibility.mdx +72 -0
  227. package/dist/docs/src/content-vi/foundations/styles/icons/code.mdx +170 -0
  228. package/dist/docs/src/content-vi/foundations/styles/icons/index.mdx +62 -0
  229. package/dist/docs/src/content-vi/foundations/styles/icons/library.mdx +19 -0
  230. package/dist/docs/src/content-vi/foundations/styles/icons/usage.mdx +100 -0
  231. package/dist/docs/src/content-vi/foundations/styles/illustration.mdx +9 -0
  232. package/dist/docs/src/content-vi/foundations/styles/interaction-states.mdx +49 -0
  233. package/dist/docs/src/content-vi/foundations/styles/layout/app-frame.mdx +77 -0
  234. package/dist/docs/src/content-vi/foundations/styles/layout/breakpoints.mdx +56 -0
  235. package/dist/docs/src/content-vi/foundations/styles/layout/grid.mdx +87 -0
  236. package/dist/docs/src/content-vi/foundations/styles/layout/index.mdx +24 -0
  237. package/dist/docs/src/content-vi/foundations/styles/layout/page-widths.mdx +34 -0
  238. package/dist/docs/src/content-vi/foundations/styles/logos/downloads-and-terms.mdx +65 -0
  239. package/dist/docs/src/content-vi/foundations/styles/logos/index.mdx +64 -0
  240. package/dist/docs/src/content-vi/foundations/styles/logos/placement-and-containers.mdx +96 -0
  241. package/dist/docs/src/content-vi/foundations/styles/logos/product-logos.mdx +56 -0
  242. package/dist/docs/src/content-vi/foundations/styles/logos/using-the-logo.mdx +70 -0
  243. package/dist/docs/src/content-vi/foundations/styles/opacity.mdx +9 -0
  244. package/dist/docs/src/content-vi/foundations/styles/radius.mdx +98 -0
  245. package/dist/docs/src/content-vi/foundations/styles/size-and-density.mdx +41 -0
  246. package/dist/docs/src/content-vi/foundations/styles/spacing.mdx +70 -0
  247. package/dist/docs/src/content-vi/foundations/styles/typography/code.mdx +53 -0
  248. package/dist/docs/src/content-vi/foundations/styles/typography/index.mdx +58 -0
  249. package/dist/docs/src/content-vi/foundations/styles/typography/usage.mdx +144 -0
  250. package/dist/docs/src/content-vi/foundations/styles/typography/vietnamese.mdx +46 -0
  251. package/dist/docs/src/content-vi/foundations/styles/z-index.mdx +9 -0
  252. package/dist/docs/src/content.config.ts +68 -0
  253. package/dist/docs/src/lib/brand.ts +57 -0
  254. package/dist/docs/src/lib/contrast.ts +34 -0
  255. package/dist/docs/src/lib/i18n.ts +152 -0
  256. package/dist/docs/src/lib/icons.ts +46 -0
  257. package/dist/docs/src/lib/logo-geometry.ts +30 -0
  258. package/dist/docs/src/lib/lucide-categories.json +1 -0
  259. package/dist/docs/src/lib/lucide-data.ts +40 -0
  260. package/dist/docs/src/lib/navigation.ts +222 -0
  261. package/dist/docs/src/lib/release-phases.ts +10 -0
  262. package/dist/docs/src/lib/routes.ts +40 -0
  263. package/dist/docs/src/lib/token-descriptions-vi.ts +40 -0
  264. package/dist/docs/src/lib/tokens.ts +67 -0
  265. package/dist/docs/src/lib/tri-grid.ts +28 -0
  266. package/dist/docs/src/styles/chrome.css +122 -0
  267. package/dist/docs/src/styles/color.css +270 -0
  268. package/dist/docs/src/styles/docs.css +323 -0
  269. package/dist/docs/src/styles/global.css +66 -0
  270. package/dist/docs/src/styles/icons.css +135 -0
  271. package/dist/docs/src/styles/layout.css +165 -0
  272. package/dist/docs/src/styles/logos.css +236 -0
  273. package/dist/docs/src/styles/shapes.css +139 -0
  274. package/dist/docs/src/styles/tokens.css +461 -0
  275. package/dist/docs/src/styles/tokens.js +425 -0
  276. package/dist/docs/src/styles/typography.css +91 -0
  277. package/dist/docs/tokens/border.json +26 -0
  278. package/dist/docs/tokens/breakpoints.json +8 -0
  279. package/dist/docs/tokens/color.json +1350 -0
  280. package/dist/docs/tokens/elevation.json +26 -0
  281. package/dist/docs/tokens/layout.json +29 -0
  282. package/dist/docs/tokens/motion.json +12 -0
  283. package/dist/docs/tokens/radius.json +44 -0
  284. package/dist/docs/tokens/size.json +13 -0
  285. package/dist/docs/tokens/spacing.json +18 -0
  286. package/dist/docs/tokens/states.json +12 -0
  287. package/dist/docs/tokens/typography.json +220 -0
  288. package/dist/index.d.ts +19 -0
  289. package/dist/index.js +1823 -0
  290. package/package.json +31 -4
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Z-index"
3
+ description: "The stacking order of layers: what sits above what, from sticky headers to dialogs and toasts."
4
+ order: 8.5
5
+ planned:
6
+ - "Layer names and their order"
7
+ - "Which layer each overlay uses: dropdown, popover, tooltip, dialog, drawer, toast"
8
+ - "How layering pairs with elevation"
9
+ ---
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: All design tokens
3
+ description: Every Beehexa design token, its value and when to use it.
4
+ order: 2
5
+ ---
6
+ import TokenTable from '../../../components/TokenTable.astro';
7
+
8
+ ## Color
9
+ <TokenTable prefix="color" />
10
+
11
+ ## Typography
12
+ <TokenTable prefix="font" />
13
+
14
+ ## Spacing
15
+ <TokenTable prefix="space" />
16
+
17
+ ## Size
18
+ <TokenTable prefix="size" />
19
+
20
+ ## Radius
21
+ <TokenTable prefix="radius" />
22
+
23
+ ## Border
24
+ <TokenTable prefix="border" />
25
+
26
+ ## Elevation
27
+ <TokenTable prefix="elevation" />
28
+
29
+ ## Motion
30
+ <TokenTable prefix="motion" />
31
+
32
+ ## Breakpoints
33
+ <TokenTable prefix="breakpoint" />
34
+
35
+ ## Interaction states
36
+ <TokenTable prefix="state" />
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Tokens overview
3
+ description: Design tokens are named design decisions, such as a color or a spacing step, shared by design and code.
4
+ order: 1
5
+ ---
6
+
7
+ ## Why tokens
8
+
9
+ A token gives a design decision a name. Design files and code both use the name, so a change to the value reaches every product at once and nothing drifts.
10
+
11
+ ## Naming
12
+
13
+ Tokens are named from general to specific, separated by dots in the source and by dashes in CSS:
14
+
15
+ | Source name | CSS custom property |
16
+ | --- | --- |
17
+ | `color.text` | `--bh-color-text` |
18
+ | `space.200` | `--bh-space-200` |
19
+ | `color.border.focus` | `--bh-color-border-focus` |
20
+
21
+ ## Where tokens live
22
+
23
+ Every token has one value, kept in one place. The token tables on this site and the CSS variables in products come from that same source, so they never drift apart.
24
+
25
+ A token can point at another token, for example `{color.graphite.12}`. Use the role token (`color.text`) in products rather than the raw palette token (`color.graphite.12`) when one exists.
26
+
27
+ See [All design tokens](/foundations/tokens/all-tokens/) for the full list.
@@ -0,0 +1,14 @@
1
+ ---
2
+ title: Content
3
+ description: How writers keep product copy clear, concise and consistent.
4
+ order: 3
5
+ ---
6
+
7
+ Product copy is part of the interface. Read the [content guidelines](/foundations/guidelines/content/) before writing labels, messages or empty states.
8
+
9
+ ## Quick rules
10
+
11
+ - Write in sentence case: "Create order", not "Create Order".
12
+ - Lead with the action or the outcome.
13
+ - Name things the same way everywhere.
14
+ - Say what went wrong and how to fix it in error messages.
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: Design
3
+ description: How designers use tokens, styles and components to build Beehexa interfaces.
4
+ order: 1
5
+ ---
6
+
7
+ ## Start from tokens
8
+
9
+ Every color, size, radius and duration in a design should be a [design token](/foundations/tokens/). If a value you need is missing, ask for a new token rather than adding a one-off value.
10
+
11
+ ## Use existing components
12
+
13
+ Check [Components](/components/) before drawing a new control. Each component page has Usage guidance on when to use it and when to pick something else.
14
+
15
+ ## Design for every state
16
+
17
+ Specify hover, focus, pressed, selected and disabled for every interactive element. See [Interaction states](/foundations/styles/interaction-states/).
18
+
19
+ ## Check accessibility early
20
+
21
+ Beehexa products meet WCAG 2.2 AA. Read the [accessibility guidelines](/foundations/guidelines/accessibility/) and the Accessibility tab of every component you use.
22
+
23
+ ## Check colour before handoff
24
+
25
+ - Every colour is a role token; no hex values or scale steps.
26
+ - Text and icons sit only on backgrounds they are [paired](/foundations/styles/color/accessibility/#pairing) with.
27
+ - Yellow only for the logo, the current-page bar, highlights and brand notes.
28
+ - One primary button per view.
29
+ - Every status is written in words; every selected item has a second cue.
30
+ - Checked in light and in dark.
@@ -0,0 +1,59 @@
1
+ ---
2
+ title: Develop
3
+ description: How developers use the token CSS, the Ant Design Vue theme and the lint rules.
4
+ order: 2
5
+ ---
6
+
7
+ ## Install local design packages
8
+
9
+ `beehexa.design` owns `@beehexa/design-tokens` and `@beehexa/design-rules`.
10
+ Build them locally with `npm ci && npm run build:packages` in this repository.
11
+ Until managers authorize a real release, consumers use local package references, not guessed
12
+ registry versions. For a sibling Yarn consumer such as dashboard-v2:
13
+
14
+ ```json
15
+ {
16
+ "dependencies": {
17
+ "@beehexa/design-tokens": "portal:../beehexa.design/packages/design-tokens",
18
+ "@beehexa/design-rules": "portal:../beehexa.design/packages/design-rules"
19
+ }
20
+ }
21
+ ```
22
+
23
+ Install the consumer dependencies, then import `@beehexa/design-tokens/css` once in its entrypoint.
24
+ Use the typed `tokens` and `tokenInfo` exports when an API needs resolved values instead of CSS.
25
+ The explicit `/css/pixels` variant supports nominal-size migration in apps with a nonstandard root;
26
+ it does not satisfy user-default-font scaling. Do not copy generated files into consumers.
27
+
28
+ No release, deploy or CI execution is a prerequisite for local development. Publishing, release
29
+ tags, deployment, release-CI dispatch and consumer version bumps require explicit manager approval.
30
+ Only an actual authorized published version may replace local references.
31
+ CI is single-repository and uses real published dependency versions. Do not checkout/build sibling
32
+ repos or pass local references into CI. Until an authorized release exists, continue local work
33
+ without running consumer CI or asking for a release to unblock local implementation.
34
+
35
+ ## Use the tokens
36
+
37
+ Tokens ship as CSS custom properties with the `--bh-` prefix:
38
+
39
+ ```css
40
+ .panel {
41
+ padding: var(--bh-space-300);
42
+ border: var(--bh-border-width-default) solid var(--bh-color-border);
43
+ border-radius: var(--bh-radius-150);
44
+ }
45
+ ```
46
+
47
+ Do not write raw hex colors, arbitrary sizes or durations. Choose installed tokens by semantic role and read their usage rules. The [Stylelint](/tools/stylelint/) and [ESLint](/tools/eslint/) integrations are planned; their documentation is not proof that enforcement is installed.
48
+
49
+ ## Theme Ant Design Vue
50
+
51
+ Beehexa apps are built on Ant Design Vue. Apply the [Beehexa theme](/tools/ant-design-vue-theme/) so its components use the same tokens.
52
+
53
+ ## Working with AI agents
54
+
55
+ Start with `@beehexa/design-rules/agent` (installed `dist/AGENTS.md`), then use the package's
56
+ `listRules`, `readRule` and `searchRules` APIs to read the complete matching documents offline.
57
+ Planned stubs stay explicitly planned; they are not permission to invent component values.
58
+ Website [`/llms.txt`](/llms.txt) is a supplementary browsing index, not a replacement for the
59
+ installed rules. See [Docs for AI agents](/tools/ai-agents/).
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: Get help
3
+ description: Ask a question, report a problem or propose a change to the design system.
4
+ order: 3
5
+ sidebarGroup: Reference
6
+ ---
7
+ import HelpOptions from '../../components/HelpOptions.astro';
8
+
9
+ The design system team looks after this site, the tokens and the component guidance.
10
+
11
+ ## Ways to reach us
12
+
13
+ <HelpOptions />
14
+
15
+ ## What to include
16
+
17
+ - The page or component, with a link.
18
+ - What you were trying to do.
19
+ - A screenshot if something looks wrong.
@@ -0,0 +1,50 @@
1
+ ---
2
+ title: Get started
3
+ description: Start designing, building and writing Beehexa products with shared foundations, components and standards.
4
+ order: 0
5
+ sidebarLabel: Overview
6
+ audience: Designers, developers, writers
7
+ ---
8
+ import RoleGuides from '../../components/RoleGuides.astro';
9
+ import SystemAreas from '../../components/SystemAreas.astro';
10
+ import PhaseTable from '../../components/PhaseTable.astro';
11
+ import HelpOptions from '../../components/HelpOptions.astro';
12
+
13
+ <div class="callout">
14
+ <p class="callout-title">Working proposal</p>
15
+ <p>Token values and the component catalog are not final. Check the [release phase](/release-phases/) of anything before you rely on it.</p>
16
+ </div>
17
+
18
+ The Beehexa Design System is the shared language for every Beehexa web product. It holds the design tokens, guidelines and components that keep interfaces consistent as the team ships about twice a week.
19
+
20
+ ## Pick your guide
21
+
22
+ <RoleGuides />
23
+
24
+ ## What is in the system
25
+
26
+ <SystemAreas />
27
+
28
+ ## Your first change
29
+
30
+ Use tokens instead of raw values. Tokens ship as CSS custom properties with the `--bh-` prefix:
31
+
32
+ ```css
33
+ .panel {
34
+ padding: var(--bh-space-300);
35
+ border: var(--bh-border-width-default) solid var(--bh-color-border);
36
+ border-radius: var(--bh-radius-150);
37
+ }
38
+ ```
39
+
40
+ The [Stylelint](/tools/stylelint/) and [ESLint](/tools/eslint/) rules flag raw hex colors, pixel sizes and durations.
41
+
42
+ ## Release phases
43
+
44
+ Every page and component shows how stable it is.
45
+
46
+ <PhaseTable />
47
+
48
+ ## Get help
49
+
50
+ <HelpOptions />
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: Site structure proposal published
3
+ description: The design system site is organised as Get started, Foundations, Components, Tools, Release phases and News.
4
+ date: 2026-10-16
5
+ ---
6
+
7
+ The site is organised as Get started, Foundations, Components, Tools, Release phases and News.
8
+
9
+ Three parts get their own place:
10
+
11
+ - an Accessibility tab on every component page,
12
+ - a dedicated [Interaction states](/foundations/styles/interaction-states/) page,
13
+ - a dedicated [Breakpoints](/foundations/styles/layout/breakpoints/) page.
14
+
15
+ Token values are a separate decision and are still open.
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Docs site structure is live
3
+ description: Foundations, Button and Tools pages are published as Early Access.
4
+ date: 2026-10-20
5
+ ---
6
+
7
+ The documentation site now follows the proposed structure. Design tokens live in one place, `tokens/`, and feed both the CSS and the token tables on this site.
8
+
9
+ What is new:
10
+
11
+ - [Foundations](/foundations/) with provisional tokens.
12
+ - [Button](/components/button/), the first component page, with all five tabs.
13
+ - [`/llms.txt`](/llms.txt) for AI coding agents.
@@ -0,0 +1,12 @@
1
+ ---
2
+ title: Release phases
3
+ description: Components and foundations go through release phases that tell you how stable they are.
4
+ order: 1
5
+ sidebarGroup: Reference
6
+ ---
7
+ import PhaseTable from '../../components/PhaseTable.astro';
8
+
9
+
10
+ <PhaseTable />
11
+
12
+ Every page and component shows its phase in a chip. When every page in a section shares one phase, the sidebar says so once instead. Changes are recorded in each component's Changelog tab and in [News](/news/).
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Docs for AI agents
3
+ description: How AI coding agents read the Beehexa Design System.
4
+ order: 4
5
+ ---
6
+
7
+ Coding agents must read the same installed tokens and complete usage rules as people.
8
+
9
+ ## Package entrypoint and rule discovery
10
+
11
+ `@beehexa/design-rules/agent` resolves to the installed package's `dist/AGENTS.md`.
12
+ The package includes complete source documents plus a typed catalog with stable IDs, source paths,
13
+ locale, titles, raw/body content and explicit active/planned status.
14
+
15
+ ```js
16
+ import { listRules, readRule, searchRules } from '@beehexa/design-rules';
17
+
18
+ const matching = searchRules('typography');
19
+ for (const rule of matching) console.log(rule.id, rule.status, rule.title);
20
+ // Read a complete document selected by its stable catalog ID.
21
+ const document = matching[0] && readRule(matching[0].id);
22
+ ```
23
+
24
+ Active means authored guidance is present, not a final release or compliance certification.
25
+ A planned stub is not a defined rule. Read full usage/accessibility/state/layout documents for the
26
+ actual task; a matching token value or a short search result is not sufficient.
27
+
28
+ ## Consumer hard rules
29
+
30
+ Keep these requirements in the consumer's canonical `AGENTS.md`; `CODEX.md` and `CLAUDE.md`
31
+ reference that entrypoint rather than creating competing policies:
32
+
33
+ - Install local references to `@beehexa/design-tokens` and `@beehexa/design-rules` until
34
+ managers explicitly authorize a release. Do not copy JSON/CSS/TS/rule bodies or generators.
35
+ - No release, deployment or CI execution is required for local development. Publishing,
36
+ release tags, deployment, release-CI dispatch and consumer version bumps require manager approval.
37
+ Replace local references only with a real authorized published version.
38
+ - CI is single-repository and consumer dependencies must be actual published versions.
39
+ Never add sibling checkouts/builds or local references to CI. Unreleased local work stays local.
40
+ - Before every UI change, read the installed agent entrypoint and complete matching package rules.
41
+ Use semantic tokens, not nearest values. Missing reusable roles/rules must be authored in the
42
+ producer package first.
43
+ - There are no exceptions for business colours, canvas geometry, charts, editors, SVG/Mermaid
44
+ or exports. Package availability does not prove actual consumer adoption or accessibility.
45
+
46
+ ## Website browsing index
47
+
48
+ [`/llms.txt`](/llms.txt) lists website pages for browsing. The installed package is the offline
49
+ rules contract; do not require website availability or another source checkout to read it.
@@ -0,0 +1,138 @@
1
+ ---
2
+ title: Ant Design Vue theme
3
+ description: Make Ant Design Vue components use Beehexa design tokens, breakpoints, grid, control heights and app frame.
4
+ order: 3
5
+ ---
6
+
7
+ Tokens and full rules are available as local `@beehexa/design-tokens` and `@beehexa/design-rules` packages. They are not released to npm yet. There is no exported `/antdv` theme subpath: keep a framework adapter in your application and derive its values from the installed token package.
8
+
9
+ **Beehexa tokens are the source of truth. Ant Design Vue only reads them.**
10
+
11
+ This page is the only place where the Beehexa foundations meet Ant Design Vue. The foundation pages stay the same whatever the product is built with.
12
+
13
+ ## Usage
14
+
15
+ ```vue
16
+ <script setup>
17
+ import { tokens } from '@beehexa/design-tokens';
18
+ import '@beehexa/design-tokens/css';
19
+
20
+ // The framework adapter selects semantic roles, not a new application palette.
21
+ const theme = {
22
+ token: {
23
+ colorPrimary: tokens.light['color.background.neutral.bold'],
24
+ colorText: tokens.light['color.text'],
25
+ colorBorder: tokens.light['color.border'],
26
+ fontFamily: tokens.light['font.family.sans'],
27
+ },
28
+ };
29
+ </script>
30
+
31
+ <template>
32
+ <a-config-provider :theme="theme">
33
+ <App />
34
+ </a-config-provider>
35
+ </template>
36
+ ```
37
+
38
+ This light-mode colour/font example is not the complete theme recipe. Apply the mappings below
39
+ in your adapter, resolve `rem` to pixels at numeric API boundaries, and recompute from
40
+ `{ ...tokens.light, ...tokens.dark }` for dark mode and the `tokens.vi` typography alternatives
41
+ for Vietnamese. Read the installed rule documents before implementing states or components.
42
+
43
+ ## Token mapping
44
+
45
+ | Ant Design token | Beehexa token |
46
+ | --- | --- |
47
+ | `colorPrimary` | `color.background.neutral.bold` |
48
+ | `colorText` | `color.text` |
49
+ | `colorBorder` | `color.border` |
50
+ | `borderRadius` | `radius.100` |
51
+ | `fontFamily` | `font.family.sans` |
52
+
53
+ ## Spacing
54
+
55
+ Ant Design Vue sizes come from `sizeUnit` and `sizeStep`. Keep both at 4, so `size` is 16 px. The theme then sets each size from a [spacing](/foundations/styles/spacing/) token.
56
+
57
+ | Beehexa token | Value | Ant Design Vue tokens |
58
+ |---|---|---|
59
+ | `space.050` | 4 px | `sizeXXS, paddingXXS, marginXXS` |
60
+ | `space.100` | 8 px | `sizeXS, paddingXS, marginXS` |
61
+ | `space.150` | 12 px | `sizeSM, paddingSM, marginSM` |
62
+ | `space.200` | 16 px | `size, sizeMS, padding, margin` |
63
+ | `space.250` | 20 px | `sizeMD, paddingMD, marginMD` |
64
+ | `space.300` | 24 px | `sizeLG, paddingLG, marginLG` |
65
+ | `space.400` | 32 px | `sizeXL, paddingXL, marginXL` |
66
+ | `space.600` | 48 px | `sizeXXL, marginXXL` |
67
+
68
+ `space.0`, `space.025`, `space.075`, `space.500`, `space.800` and `space.1000` have no Ant Design Vue token. Use their CSS variables in your own styles.
69
+
70
+ Props that take a number, such as `size` on `a-space` and `gutter` on `a-row`, take pixels. Use a value from the scale: `<a-space :size="8">`.
71
+
72
+ ## Control height
73
+
74
+ | Beehexa token | Height | Ant Design Vue token | Component prop |
75
+ |---|---|---|---|
76
+ | `size.control.small` | 24 px | `controlHeightSM` | `size="small"` |
77
+ | `size.control.default` | 32 px | `controlHeight` | None |
78
+ | `size.control.large` | 40 px | `controlHeightLG` | `size="large"` |
79
+
80
+ These are Ant Design Vue’s own heights. The theme still sets each one from its size token, so a change to the token reaches the components. See [Size and density](/foundations/styles/size-and-density/).
81
+
82
+ ## Breakpoints
83
+
84
+ **Override the `screen*` tokens with the Beehexa [breakpoints](/foundations/styles/layout/breakpoints/).** The default Ant Design Vue values are different (576, 992, 1200 and 1600 px).
85
+
86
+ The `Min` and `Max` tokens are computed from the defaults, not from your overrides. Set them too: each `Max` is the next breakpoint minus 1.
87
+
88
+ | Beehexa | Value | Ant Design Vue tokens |
89
+ |---|---|---|
90
+ | `breakpoint.xs` | 0 | `screenXSMax: 767` |
91
+ | `breakpoint.md` | 768 px | `screenSM`, `screenSMMin`, `screenMD`, `screenMDMin`: 768; `screenSMMax`, `screenMDMax`: 1023 |
92
+ | `breakpoint.lg` | 1024 px | `screenLG`, `screenLGMin`: 1024; `screenLGMax`: 1439 |
93
+ | `breakpoint.xl` | 1440 px | `screenXL`, `screenXLMin`, `screenXXL`, `screenXXLMin`: 1440 |
94
+
95
+ Ant Design Vue has six breakpoints and Beehexa has four, so `sm` switches with `md`, and `xxl` with `xl`. Use the `xs`, `md`, `lg` and `xl` props of `a-col`.
96
+
97
+ The props of `a-col` and the responsive `gutter` of `a-row` then switch at the Beehexa widths. Do not use `xxxl`: its media query is malformed in Ant Design Vue 4.2.6 and never matches.
98
+
99
+ ## Grid
100
+
101
+ Ant Design Vue divides a row into 24 parts. The Beehexa [grid](/foundations/styles/layout/grid/) has 4, 8 or 12 columns, and each one fits 24 exactly.
102
+
103
+ | Beehexa grid | Window | `a-col` span |
104
+ |---|---|---|
105
+ | 4 columns | Below 768 px | Beehexa span × 6 |
106
+ | 8 columns | 768 to 1023 px | Beehexa span × 3 |
107
+ | 12 columns | 1024 px and up | Beehexa span × 2 |
108
+
109
+ | Layout | Beehexa spans (4 / 8 / 12 / 12) | Props of each `a-col` |
110
+ |---|---|---|
111
+ | Cards, 1 to 4 a row | 4 / 4 / 4 / 3 | `:xs="24" :md="12" :lg="8" :xl="6"` |
112
+ | Main panel | 4 / 8 / 8 / 9 | `:xs="24" :lg="16" :xl="18"` |
113
+ | Side panel | 4 / 8 / 4 / 3 | `:xs="24" :lg="8" :xl="6"` |
114
+ | Summary tile | 2 / 2 / 3 / 2 | `:xs="12" :md="6" :xl="4"` |
115
+
116
+ Ant Design Vue rows have no gutter by default. Set it from the spacing tokens, and set the page margin on the content area.
117
+
118
+ ```vue
119
+ <a-row :gutter="[{ xs: 16, md: 24 }, { xs: 16, md: 24 }]">
120
+ <a-col :xs="24" :md="12" :lg="8" :xl="6">
121
+ <OrderSummary />
122
+ </a-col>
123
+ </a-row>
124
+ ```
125
+
126
+ ## App frame
127
+
128
+ | Region | Beehexa | Ant Design Vue |
129
+ |---|---|---|
130
+ | Header | 48 px | `<a-layout-header style="height: 48px; line-height: 48px">` |
131
+ | Side navigation, open | 280 px | `<a-layout-sider :width="280">` |
132
+ | Side navigation, collapsed | 64 px | `<a-layout-sider :collapsed-width="64">` |
133
+
134
+ The header is 64 px by default and has no token for its height, so set it in the header’s style.
135
+
136
+ The `breakpoint` prop of `a-layout-sider` uses fixed widths that ignore the `screen*` tokens. Do not use it. Set `collapsed` from your own media query and the user’s choice: open from 1024 px, collapsed to the rail when the user asks, and the choice remembered. Below 1024 px, hide the sider and show the menu in `a-drawer`.
137
+
138
+ See [Layout](/foundations/styles/layout/) for the frame.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: ESLint rules
3
+ description: ESLint rules for Vue templates and scripts that use the design system.
4
+ order: 2
5
+ ---
6
+
7
+ > Planned. The plugin is not published yet; this page describes the rules it will ship.
8
+
9
+ ## Rules
10
+
11
+ | Rule | Flags |
12
+ | --- | --- |
13
+ | `beehexa/no-inline-style-values` | Raw colors and sizes in `style` bindings. |
14
+ | `beehexa/no-deprecated-components` | Components in the Deprecated release phase. |
15
+ | `beehexa/icon-button-label` | Icon-only `a-button` without `aria-label`. |
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: Tools
3
+ description: Lint rules, the Ant Design Vue theme and docs for AI agents that keep products on the system.
4
+ order: 0
5
+ ---
6
+
7
+ These tools stop products drifting away from the design system: lint rules catch raw values, the theme makes Ant Design Vue use our tokens, and AI agents get docs they can read.
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: Stylelint rules
3
+ description: Stylelint rules that flag raw values where a design token exists.
4
+ order: 1
5
+ ---
6
+
7
+ > Planned. The plugin is not published yet; this page describes the rules it will ship.
8
+
9
+ ## Rules
10
+
11
+ | Rule | Flags |
12
+ | --- | --- |
13
+ | `beehexa/no-raw-color` | Hex, `rgb()` and named colors. Use a `--bh-color-*` token. |
14
+ | `beehexa/no-color-scale` | Scale, brand and static colour tokens (`--bh-color-graphite-9`, `--bh-color-brand-yellow`). Use a role token. |
15
+ | `beehexa/no-state-opacity` | `opacity`, `filter` or a transparent overlay on `:hover`, `:active` or `:disabled`. Use the state's colour token. |
16
+ | `beehexa/no-raw-spacing` | Pixel and rem values in `margin`, `padding` and `gap`. Use `--bh-space-*`. |
17
+ | `beehexa/no-raw-radius` | Raw values in `border-radius`. Use `--bh-radius-*`. |
18
+ | `beehexa/known-tokens` | `--bh-*` properties that do not exist. |
19
+
@@ -0,0 +1,89 @@
1
+ ---
2
+ title: Viền
3
+ description: Bốn độ dày viền, màu đi cùng mỗi độ dày, và cách vẽ focus ring.
4
+ order: 7
5
+ ---
6
+ import ShapeDemo from '../../../components/ShapeDemo.astro';
7
+ import TokenTable from '../../../components/TokenTable.astro';
8
+
9
+ **Phần lớn viền là 1 px. Viền dày hơn mang ý nghĩa: đang chọn, đang focus, hoặc một trạng thái cần chú ý.**
10
+
11
+ Màu viền là token màu: `color.border` cho đường phân cách và card, `color.border.bold` cho mép ô nhập, checkbox và select. Xem [Token](/vi/foundations/styles/color/tokens/#borders).
12
+
13
+ ## Các độ dày
14
+
15
+ <ShapeDemo kind="border-scale" />
16
+
17
+ ## Ví dụ
18
+
19
+ ### `border.width.default` · 1 px
20
+
21
+ Ô nhập, button phụ, card, bảng và đường phân cách.
22
+
23
+ <ShapeDemo kind="border-use" item="default" />
24
+
25
+ ### `border.width.selected` · 2 px
26
+
27
+ Thanh dưới tab đang chọn, thanh cạnh mục side nav đang chọn, và viền card đang chọn. Luôn đi cùng `color.border.selected`.
28
+
29
+ <ShapeDemo kind="border-use" item="selected" />
30
+
31
+ ### `border.width.focused` · 2 px
32
+
33
+ Focus ring, màu `color.border.focus`, vẽ cách phần tử 2 px về phía ngoài (`state.focus.offset`). Vẽ vào trong, ở −2 px, khi khung bao quanh sẽ cắt mất ring: mục menu, ô bảng và tab trong vùng cuộn.
34
+
35
+ <ShapeDemo kind="border-use" item="focused" />
36
+
37
+ ### `border.width.accent` · 4 px
38
+
39
+ Thanh trạng thái hoặc nhấn mạnh ở một cạnh: alert và banner, dòng bảng bị lỗi, callout và trích dẫn. Hộp vẫn bo đủ bốn góc và thanh chạy theo đường cong.
40
+
41
+ <ShapeDemo kind="border-use" item="accent" />
42
+
43
+ ## Độ dày đi cùng màu
44
+
45
+ | Độ dày | Màu | Dùng cho |
46
+ |---|---|---|
47
+ | `border.width.default` | `color.border` hoặc `color.border.bold` | Mép và đường phân cách |
48
+ | `border.width.selected` | `color.border.selected` | Tab, mục side nav hoặc card đang chọn |
49
+ | `border.width.focused` | `color.border.focus` | Focus bằng bàn phím |
50
+ | `border.width.accent` | `color.border.danger`, `.warning`, `.success`, `.info` hoặc `.brand` | Thanh trạng thái và nhấn mạnh |
51
+
52
+ Không báo trạng thái chỉ bằng màu. Đang chọn và đang focus còn đổi cả độ dày.
53
+
54
+ ## Nên và không nên
55
+
56
+ <ShapeDemo kind="dodont" item="selected" />
57
+ <ShapeDemo kind="dodont" item="accent" />
58
+ <ShapeDemo kind="dodont" item="cards" />
59
+
60
+ ## Code
61
+
62
+ ```css
63
+ .alert {
64
+ position: relative;
65
+ overflow: hidden;
66
+ border: var(--bh-border-width-default) solid var(--bh-color-border);
67
+ border-radius: var(--bh-radius-100);
68
+ }
69
+ .alert::before {
70
+ content: "";
71
+ position: absolute;
72
+ inset: 0 auto 0 0;
73
+ width: var(--bh-border-width-accent);
74
+ background: var(--bh-color-border-danger);
75
+ }
76
+ :focus-visible {
77
+ outline: var(--bh-border-width-focused) solid var(--bh-color-border-focus);
78
+ outline-offset: var(--bh-state-focus-offset);
79
+ }
80
+ ```
81
+
82
+ ## Token
83
+
84
+ <TokenTable prefix="border" />
85
+
86
+ ## Liên quan
87
+
88
+ - [Bo góc](/vi/foundations/styles/radius/): các bậc bo góc và quy tắc lồng nhau.
89
+ - [Trạng thái tương tác](/vi/foundations/styles/interaction-states/): hover, nhấn, đang chọn và vô hiệu.
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Khả năng tiếp cận
3
+ description: Độ tương phản mà mọi cặp màu đạt được, chữ nào được đặt trên nền nào, và cách kiểm tra.
4
+ order: 6
5
+ ---
6
+ import ColorDemo from '../../../../components/ColorDemo.astro';
7
+
8
+ **Mọi token chữ và icon đều đạt WCAG 2.2 AA trên mọi nền đi cùng nó, ở cả giao diện sáng và tối: đủ cả 386 cặp.**
9
+
10
+ ## Độ tương phản
11
+
12
+ | Thành phần | Tối thiểu | WCAG 2.2 |
13
+ |---|---|---|
14
+ | Chữ | 4.5:1 | 1.4.3 |
15
+ | Icon, viền control, viền focus | 3:1 | 1.4.11 |
16
+ | Control bị vô hiệu, vạch chỉ báo màu vàng, logo | Không có mức tối thiểu | Ngoại lệ của 1.4.3 |
17
+
18
+ <ColorDemo kind="contrast" />
19
+
20
+ Màu không bao giờ là tín hiệu duy nhất (WCAG 1.4.1): trạng thái được ghi bằng chữ, mục được chọn có thêm dấu hiệu thứ hai.
21
+
22
+ ## Ghép cặp
23
+
24
+ **Chữ, icon và viền chỉ được đặt trên các nền ghi cùng với chúng.** Mọi cặp ở đây đều đạt độ tương phản ở giao diện sáng và tối, và được kiểm tra ở mỗi lần build.
25
+
26
+ <ColorDemo kind="pairing" />
27
+
28
+ <ColorDemo kind="dodont" item="pairing" />
29
+
30
+ ## Được kiểm tra tự động
31
+
32
+ Mọi cặp trong phần [Ghép cặp](#ghép-cặp) được kiểm tra tự động, ở giao diện sáng và tối. Token chữ, icon hoặc viền nào thấp hơn mức tối thiểu trên bất kỳ nền nào của nó sẽ không được phát hành.