@teseor/css 1.14.3 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/package.json +1 -1
  2. package/src/base/docs.html +19 -0
  3. package/src/base/typography/docs.html +159 -0
  4. package/src/components/actions/button/docs.html +73 -0
  5. package/src/components/actions/button/{button.visual.spec.ts → visual.spec.ts} +4 -4
  6. package/src/components/actions/button-group/docs.html +44 -0
  7. package/src/components/actions/button-group/{button-group.visual.spec.ts → visual.spec.ts} +4 -4
  8. package/src/components/actions/close-button/docs.html +74 -0
  9. package/src/components/actions/close-button/{close-button.visual.spec.ts → visual.spec.ts} +4 -4
  10. package/src/components/content/divider/docs.html +25 -0
  11. package/src/components/content/divider/{divider.visual.spec.ts → visual.spec.ts} +4 -4
  12. package/src/components/content/scroll-area/docs.html +127 -0
  13. package/src/components/content/scroll-area/visual.png +0 -0
  14. package/src/components/content/scroll-area/{scroll-area.visual.spec.ts → visual.spec.ts} +4 -4
  15. package/src/components/content/spacer/docs.html +20 -0
  16. package/src/components/content/spacer/{spacer.visual.spec.ts → visual.spec.ts} +4 -4
  17. package/src/components/data-display/avatar/docs.html +64 -0
  18. package/src/components/data-display/avatar/{avatar.visual.spec.ts → visual.spec.ts} +4 -4
  19. package/src/components/data-display/badge/docs.html +37 -0
  20. package/src/components/data-display/badge/{badge.visual.spec.ts → visual.spec.ts} +4 -4
  21. package/src/components/data-display/card/docs.html +33 -0
  22. package/src/components/data-display/card/visual.png +0 -0
  23. package/src/components/data-display/card/{card.visual.spec.ts → visual.spec.ts} +4 -4
  24. package/src/components/data-display/data-list/docs.html +94 -0
  25. package/src/components/data-display/data-list/{data-list-visual.png → visual.png} +0 -0
  26. package/src/components/data-display/data-list/{data-list.visual.spec.ts → visual.spec.ts} +4 -4
  27. package/src/components/data-display/icon/docs.html +69 -0
  28. package/src/components/data-display/icon/{icon.visual.spec.ts → visual.spec.ts} +4 -4
  29. package/src/components/data-display/image/docs.html +64 -0
  30. package/src/components/data-display/image/visual.png +0 -0
  31. package/src/components/data-display/image/{image.visual.spec.ts → visual.spec.ts} +4 -4
  32. package/src/components/data-display/stat/docs.html +32 -0
  33. package/src/components/data-display/stat/{stat.visual.spec.ts → visual.spec.ts} +4 -4
  34. package/src/components/data-display/status/docs.html +64 -0
  35. package/src/components/data-display/status/{status.visual.spec.ts → visual.spec.ts} +4 -4
  36. package/src/components/data-display/table/docs.html +70 -0
  37. package/src/components/data-display/table/{table.visual.spec.ts → visual.spec.ts} +4 -4
  38. package/src/components/data-display/tag/docs.html +39 -0
  39. package/src/components/data-display/tag/{tag.visual.spec.ts → visual.spec.ts} +4 -4
  40. package/src/components/disclosure/accordion/docs.html +80 -0
  41. package/src/components/disclosure/accordion/{accordion.visual.spec.ts → visual.spec.ts} +4 -4
  42. package/src/components/disclosure/disclosure/docs.html +48 -0
  43. package/src/components/disclosure/disclosure/{disclosure.visual.spec.ts → visual.spec.ts} +4 -4
  44. package/src/components/feedback/alert/docs.html +87 -0
  45. package/src/components/feedback/alert/{alert.visual.spec.ts → visual.spec.ts} +4 -4
  46. package/src/components/feedback/progress/docs.html +62 -0
  47. package/src/components/feedback/progress/{progress.visual.spec.ts → visual.spec.ts} +4 -4
  48. package/src/components/feedback/progress-circle/docs.html +62 -0
  49. package/src/components/feedback/progress-circle/{progress-circle.visual.spec.ts → visual.spec.ts} +4 -4
  50. package/src/components/feedback/skeleton/docs.html +37 -0
  51. package/src/components/feedback/skeleton/{skeleton.visual.spec.ts → visual.spec.ts} +4 -4
  52. package/src/components/feedback/spinner/docs.html +26 -0
  53. package/src/components/feedback/spinner/{spinner.visual.spec.ts → visual.spec.ts} +4 -4
  54. package/src/components/feedback/toast/docs.html +106 -0
  55. package/src/components/feedback/toast/visual.png +0 -0
  56. package/src/components/feedback/toast/{toast.visual.spec.ts → visual.spec.ts} +4 -4
  57. package/src/components/forms/checkbox/docs.html +30 -0
  58. package/src/components/forms/checkbox/{checkbox.visual.spec.ts → visual.spec.ts} +4 -4
  59. package/src/components/forms/checkbox-group/docs.html +101 -0
  60. package/src/components/forms/checkbox-group/{checkbox-group.visual.spec.ts → visual.spec.ts} +4 -4
  61. package/src/components/forms/field/docs.html +60 -0
  62. package/src/components/forms/field/{field.visual.spec.ts → visual.spec.ts} +4 -4
  63. package/src/components/forms/fieldset/docs.html +119 -0
  64. package/src/components/forms/fieldset/{fieldset.visual.spec.ts → visual.spec.ts} +4 -4
  65. package/src/components/forms/form/docs.html +129 -0
  66. package/src/components/forms/form/{form.visual.spec.ts → visual.spec.ts} +4 -4
  67. package/src/components/forms/form-error/docs.html +15 -0
  68. package/src/components/forms/form-error/{form-error.visual.spec.ts → visual.spec.ts} +4 -4
  69. package/src/components/forms/form-helper/docs.html +39 -0
  70. package/src/components/forms/form-helper/{form-helper.visual.spec.ts → visual.spec.ts} +4 -4
  71. package/src/components/forms/input/docs.html +66 -0
  72. package/src/components/forms/input/visual.png +0 -0
  73. package/src/components/forms/input/{input.visual.spec.ts → visual.spec.ts} +4 -4
  74. package/src/components/forms/label/docs.html +26 -0
  75. package/src/components/forms/label/visual.png +0 -0
  76. package/src/components/forms/label/{label.visual.spec.ts → visual.spec.ts} +4 -4
  77. package/src/components/forms/number-input/docs.html +97 -0
  78. package/src/components/forms/number-input/visual.png +0 -0
  79. package/src/components/forms/number-input/{number-input.visual.spec.ts → visual.spec.ts} +4 -4
  80. package/src/components/forms/password-input/docs.html +85 -0
  81. package/src/components/forms/password-input/visual.png +0 -0
  82. package/src/components/forms/password-input/{password-input.visual.spec.ts → visual.spec.ts} +4 -4
  83. package/src/components/forms/radio/docs.html +49 -0
  84. package/src/components/forms/radio/{radio.visual.spec.ts → visual.spec.ts} +4 -4
  85. package/src/components/forms/radio-group/docs.html +97 -0
  86. package/src/components/forms/radio-group/{radio-group.visual.spec.ts → visual.spec.ts} +4 -4
  87. package/src/components/forms/search-input/docs.html +84 -0
  88. package/src/components/forms/search-input/visual.png +0 -0
  89. package/src/components/forms/search-input/{search-input.visual.spec.ts → visual.spec.ts} +4 -4
  90. package/src/components/forms/select/docs.html +67 -0
  91. package/src/components/forms/select/visual.png +0 -0
  92. package/src/components/forms/select/{select.visual.spec.ts → visual.spec.ts} +4 -4
  93. package/src/components/forms/slider/docs.html +22 -0
  94. package/src/components/forms/slider/visual.png +0 -0
  95. package/src/components/forms/slider/{slider.visual.spec.ts → visual.spec.ts} +4 -4
  96. package/src/components/forms/textarea/docs.html +36 -0
  97. package/src/components/forms/textarea/visual.png +0 -0
  98. package/src/components/forms/textarea/{textarea.visual.spec.ts → visual.spec.ts} +4 -4
  99. package/src/components/forms/toggle/docs.html +61 -0
  100. package/src/components/forms/toggle/{toggle.visual.spec.ts → visual.spec.ts} +4 -4
  101. package/src/components/navigation/breadcrumb/docs.html +57 -0
  102. package/src/components/navigation/breadcrumb/{breadcrumb.visual.spec.ts → visual.spec.ts} +4 -4
  103. package/src/components/navigation/dropdown-menu/docs.html +103 -0
  104. package/src/components/navigation/dropdown-menu/visual.png +0 -0
  105. package/src/components/navigation/dropdown-menu/{dropdown-menu.visual.spec.ts → visual.spec.ts} +4 -4
  106. package/src/components/navigation/menu/docs.html +119 -0
  107. package/src/components/navigation/menu/{menu.visual.spec.ts → visual.spec.ts} +4 -4
  108. package/src/components/navigation/nav/docs.html +71 -0
  109. package/src/components/navigation/nav/{nav.visual.spec.ts → visual.spec.ts} +4 -4
  110. package/src/components/navigation/pagination/docs.html +113 -0
  111. package/src/components/navigation/pagination/visual.png +0 -0
  112. package/src/components/navigation/pagination/{pagination.visual.spec.ts → visual.spec.ts} +4 -4
  113. package/src/components/navigation/tabs/docs.html +63 -0
  114. package/src/components/navigation/tabs/{tabs.visual.spec.ts → visual.spec.ts} +4 -4
  115. package/src/components/overlays/dialog/docs.html +58 -0
  116. package/src/components/overlays/dialog/{dialog.visual.spec.ts → visual.spec.ts} +4 -4
  117. package/src/components/overlays/drawer/docs.html +87 -0
  118. package/src/components/overlays/drawer/visual.png +0 -0
  119. package/src/components/overlays/drawer/{drawer.visual.spec.ts → visual.spec.ts} +4 -4
  120. package/src/components/overlays/modal/docs.html +66 -0
  121. package/src/components/overlays/modal/{modal.visual.spec.ts → visual.spec.ts} +4 -4
  122. package/src/components/overlays/overlay/docs.html +27 -0
  123. package/src/components/overlays/overlay/{overlay.visual.spec.ts → visual.spec.ts} +4 -4
  124. package/src/components/overlays/popover/docs.html +38 -0
  125. package/src/components/overlays/popover/{popover.visual.spec.ts → visual.spec.ts} +4 -4
  126. package/src/components/overlays/tooltip/docs.html +30 -0
  127. package/src/components/overlays/tooltip/{tooltip.visual.spec.ts → visual.spec.ts} +4 -4
  128. package/src/components/typography/blockquote/docs.html +21 -0
  129. package/src/components/typography/blockquote/{blockquote.visual.spec.ts → visual.spec.ts} +4 -4
  130. package/src/components/typography/code/docs.html +20 -0
  131. package/src/components/typography/code/visual.png +0 -0
  132. package/src/components/typography/code/{code.visual.spec.ts → visual.spec.ts} +4 -4
  133. package/src/components/typography/code-block/docs.html +84 -0
  134. package/src/components/typography/code-block/visual.png +0 -0
  135. package/src/components/typography/code-block/{code-block.visual.spec.ts → visual.spec.ts} +4 -4
  136. package/src/components/typography/heading/docs.html +23 -0
  137. package/src/components/typography/heading/visual.png +0 -0
  138. package/src/components/typography/heading/{heading.visual.spec.ts → visual.spec.ts} +4 -4
  139. package/src/components/typography/kbd/docs.html +14 -0
  140. package/src/components/typography/kbd/{kbd.visual.spec.ts → visual.spec.ts} +4 -4
  141. package/src/components/typography/link/docs.html +30 -0
  142. package/src/components/typography/link/{link.visual.spec.ts → visual.spec.ts} +4 -4
  143. package/src/components/typography/list/docs.html +76 -0
  144. package/src/components/typography/list/{list.visual.spec.ts → visual.spec.ts} +4 -4
  145. package/src/components/typography/mark/docs.html +10 -0
  146. package/src/components/typography/mark/{mark.visual.spec.ts → visual.spec.ts} +4 -4
  147. package/src/config/guides/accessibility.docs.html +106 -0
  148. package/src/config/guides/getting-started.docs.html +45 -0
  149. package/src/config/guides/theming.docs.html +69 -0
  150. package/src/config/tokens/colors/docs.html +73 -0
  151. package/src/config/tokens/docs.html +115 -0
  152. package/src/config/tokens/grid/docs.html +10 -0
  153. package/src/config/tokens/spacing/docs.html +31 -0
  154. package/src/debug/docs.html +27 -0
  155. package/src/layout/app-shell/docs.html +100 -0
  156. package/src/layout/app-shell/visual.png +0 -0
  157. package/src/layout/app-shell/visual.spec.ts +13 -0
  158. package/src/layout/aspect-ratio/docs.html +38 -0
  159. package/src/layout/aspect-ratio/{aspect-ratio.visual.spec.ts → visual.spec.ts} +4 -4
  160. package/src/layout/box/docs.html +24 -0
  161. package/src/layout/box/visual.png +0 -0
  162. package/src/layout/box/visual.spec.ts +13 -0
  163. package/src/layout/center/docs.html +23 -0
  164. package/src/layout/center/visual.spec.ts +13 -0
  165. package/src/layout/column/docs.html +29 -0
  166. package/src/layout/column/visual.spec.ts +13 -0
  167. package/src/layout/container/docs.html +34 -0
  168. package/src/layout/content/docs.html +35 -0
  169. package/src/layout/content/{content-visual.png → visual.png} +0 -0
  170. package/src/layout/content/visual.spec.ts +18 -0
  171. package/src/layout/footer/docs.html +70 -0
  172. package/src/layout/footer/visual.png +0 -0
  173. package/src/layout/footer/visual.spec.ts +18 -0
  174. package/src/layout/grid/docs.html +85 -0
  175. package/src/layout/grid/visual.spec.ts +13 -0
  176. package/src/layout/main/docs.html +28 -0
  177. package/src/layout/nav-rail/docs.html +39 -0
  178. package/src/layout/nav-rail/visual.png +0 -0
  179. package/src/layout/nav-rail/visual.spec.ts +18 -0
  180. package/src/layout/page-header/docs.html +49 -0
  181. package/src/layout/page-header/{page-header.visual.spec.ts → visual.spec.ts} +8 -4
  182. package/src/layout/row/docs.html +44 -0
  183. package/src/layout/row/{row.visual.spec.ts → visual.spec.ts} +4 -4
  184. package/src/layout/sidebar/docs.html +27 -0
  185. package/src/layout/sidebar/visual.png +0 -0
  186. package/src/layout/sidebar/visual.spec.ts +18 -0
  187. package/src/layout/sidebar-nav/docs.html +232 -0
  188. package/src/layout/sidebar-nav/{sidebar-nav.visual.spec.ts → visual.spec.ts} +7 -3
  189. package/src/layout/topbar/docs.html +61 -0
  190. package/src/layout/topbar/visual.png +0 -0
  191. package/src/layout/topbar/visual.spec.ts +18 -0
  192. package/src/utilities/container/docs.html +31 -0
  193. package/src/utilities/display/docs.html +27 -0
  194. package/src/utilities/scroll-animation/docs.html +29 -0
  195. package/src/utilities/scroll-snap/docs.html +77 -0
  196. package/src/utilities/spacing/docs.html +26 -0
  197. package/src/utilities/text/docs.html +63 -0
  198. package/src/utilities/view-transition/docs.html +49 -0
  199. package/src/utilities/visually-hidden/docs.html +16 -0
  200. package/src/base/root.docs.json +0 -35
  201. package/src/base/typography/typography.docs.json +0 -328
  202. package/src/components/actions/button/button.docs.json +0 -264
  203. package/src/components/actions/button-group/button-group.docs.json +0 -151
  204. package/src/components/actions/close-button/close-button.docs.json +0 -265
  205. package/src/components/content/divider/divider.docs.json +0 -113
  206. package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
  207. package/src/components/content/scroll-area/scroll-area.docs.json +0 -273
  208. package/src/components/content/spacer/spacer.docs.json +0 -102
  209. package/src/components/data-display/avatar/avatar.docs.json +0 -245
  210. package/src/components/data-display/badge/badge.docs.json +0 -114
  211. package/src/components/data-display/card/card-visual.png +0 -0
  212. package/src/components/data-display/card/card.docs.json +0 -229
  213. package/src/components/data-display/data-list/data-list.docs.json +0 -259
  214. package/src/components/data-display/icon/icon.docs.json +0 -307
  215. package/src/components/data-display/image/image-visual.png +0 -0
  216. package/src/components/data-display/image/image.docs.json +0 -337
  217. package/src/components/data-display/stat/stat.docs.json +0 -114
  218. package/src/components/data-display/status/status.docs.json +0 -147
  219. package/src/components/data-display/table/table.docs.json +0 -184
  220. package/src/components/data-display/tag/tag.docs.json +0 -146
  221. package/src/components/disclosure/accordion/accordion.docs.json +0 -206
  222. package/src/components/disclosure/disclosure/disclosure.docs.json +0 -154
  223. package/src/components/feedback/alert/alert.docs.json +0 -325
  224. package/src/components/feedback/progress/progress.docs.json +0 -315
  225. package/src/components/feedback/progress-circle/progress-circle.docs.json +0 -378
  226. package/src/components/feedback/skeleton/skeleton.docs.json +0 -142
  227. package/src/components/feedback/spinner/spinner.docs.json +0 -121
  228. package/src/components/feedback/toast/toast-visual.png +0 -0
  229. package/src/components/feedback/toast/toast.docs.json +0 -418
  230. package/src/components/forms/checkbox/checkbox.docs.json +0 -166
  231. package/src/components/forms/checkbox-group/checkbox-group.docs.json +0 -339
  232. package/src/components/forms/field/field.docs.json +0 -276
  233. package/src/components/forms/fieldset/fieldset.docs.json +0 -520
  234. package/src/components/forms/form/form.docs.json +0 -482
  235. package/src/components/forms/form-error/form-error.docs.json +0 -61
  236. package/src/components/forms/form-helper/form-helper.docs.json +0 -151
  237. package/src/components/forms/input/input-visual.png +0 -0
  238. package/src/components/forms/input/input.docs.json +0 -306
  239. package/src/components/forms/label/label-visual.png +0 -0
  240. package/src/components/forms/label/label.docs.json +0 -110
  241. package/src/components/forms/number-input/number-input-visual.png +0 -0
  242. package/src/components/forms/number-input/number-input.docs.json +0 -311
  243. package/src/components/forms/password-input/password-input-visual.png +0 -0
  244. package/src/components/forms/password-input/password-input.docs.json +0 -316
  245. package/src/components/forms/radio/radio.docs.json +0 -236
  246. package/src/components/forms/radio-group/radio-group.docs.json +0 -351
  247. package/src/components/forms/search-input/search-input-visual.png +0 -0
  248. package/src/components/forms/search-input/search-input.docs.json +0 -293
  249. package/src/components/forms/select/select-visual.png +0 -0
  250. package/src/components/forms/select/select.docs.json +0 -231
  251. package/src/components/forms/slider/slider-visual.png +0 -0
  252. package/src/components/forms/slider/slider.docs.json +0 -144
  253. package/src/components/forms/textarea/textarea-visual.png +0 -0
  254. package/src/components/forms/textarea/textarea.docs.json +0 -229
  255. package/src/components/forms/toggle/toggle.docs.json +0 -229
  256. package/src/components/navigation/breadcrumb/breadcrumb.docs.json +0 -240
  257. package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
  258. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +0 -290
  259. package/src/components/navigation/menu/menu.docs.json +0 -326
  260. package/src/components/navigation/nav/nav.docs.json +0 -304
  261. package/src/components/navigation/pagination/pagination-visual.png +0 -0
  262. package/src/components/navigation/pagination/pagination.docs.json +0 -483
  263. package/src/components/navigation/tabs/tabs.docs.json +0 -243
  264. package/src/components/overlays/dialog/dialog.docs.json +0 -200
  265. package/src/components/overlays/drawer/drawer-visual.png +0 -0
  266. package/src/components/overlays/drawer/drawer.docs.json +0 -307
  267. package/src/components/overlays/modal/modal.docs.json +0 -252
  268. package/src/components/overlays/overlay/overlay.docs.json +0 -138
  269. package/src/components/overlays/popover/popover.docs.json +0 -154
  270. package/src/components/overlays/tooltip/tooltip.docs.json +0 -133
  271. package/src/components/typography/blockquote/blockquote.docs.json +0 -89
  272. package/src/components/typography/code/code-visual.png +0 -0
  273. package/src/components/typography/code/code.docs.json +0 -104
  274. package/src/components/typography/code-block/code-block-visual.png +0 -0
  275. package/src/components/typography/code-block/code-block.docs.json +0 -308
  276. package/src/components/typography/heading/heading-visual.png +0 -0
  277. package/src/components/typography/heading/heading.docs.json +0 -120
  278. package/src/components/typography/kbd/kbd.docs.json +0 -61
  279. package/src/components/typography/link/link.docs.json +0 -149
  280. package/src/components/typography/list/list.docs.json +0 -296
  281. package/src/components/typography/mark/mark.docs.json +0 -60
  282. package/src/config/guides/accessibility.docs.json +0 -126
  283. package/src/config/guides/getting-started.docs.json +0 -106
  284. package/src/config/guides/theming.docs.json +0 -289
  285. package/src/config/tokens/colors/colors.docs.json +0 -316
  286. package/src/config/tokens/design-tokens.docs.json +0 -239
  287. package/src/config/tokens/grid/grid.docs.json +0 -54
  288. package/src/config/tokens/spacing/spacing.docs.json +0 -114
  289. package/src/debug/debug.docs.json +0 -96
  290. package/src/layout/app-shell/app-shell-visual.png +0 -0
  291. package/src/layout/app-shell/app-shell.docs.json +0 -155
  292. package/src/layout/app-shell/app-shell.visual.spec.ts +0 -13
  293. package/src/layout/aspect-ratio/aspect-ratio.docs.json +0 -193
  294. package/src/layout/box/box-visual.png +0 -0
  295. package/src/layout/box/box.docs.json +0 -93
  296. package/src/layout/box/box.visual.spec.ts +0 -13
  297. package/src/layout/center/center.docs.json +0 -63
  298. package/src/layout/center/center.visual.spec.ts +0 -13
  299. package/src/layout/column/column.docs.json +0 -157
  300. package/src/layout/column/column.visual.spec.ts +0 -13
  301. package/src/layout/container/container.docs.json +0 -85
  302. package/src/layout/content/content.docs.json +0 -82
  303. package/src/layout/content/content.visual.spec.ts +0 -14
  304. package/src/layout/footer/footer-visual.png +0 -0
  305. package/src/layout/footer/footer.docs.json +0 -119
  306. package/src/layout/footer/footer.visual.spec.ts +0 -14
  307. package/src/layout/grid/grid.docs.json +0 -493
  308. package/src/layout/grid/grid.visual.spec.ts +0 -13
  309. package/src/layout/main/main.docs.json +0 -87
  310. package/src/layout/nav-rail/nav-rail-visual.png +0 -0
  311. package/src/layout/nav-rail/nav-rail.docs.json +0 -76
  312. package/src/layout/nav-rail/nav-rail.visual.spec.ts +0 -14
  313. package/src/layout/page-header/page-header.docs.json +0 -124
  314. package/src/layout/row/row.docs.json +0 -237
  315. package/src/layout/sidebar/sidebar-visual.png +0 -0
  316. package/src/layout/sidebar/sidebar.docs.json +0 -63
  317. package/src/layout/sidebar/sidebar.visual.spec.ts +0 -14
  318. package/src/layout/sidebar-nav/sidebar-nav.docs.json +0 -833
  319. package/src/layout/topbar/topbar-visual.png +0 -0
  320. package/src/layout/topbar/topbar.docs.json +0 -110
  321. package/src/layout/topbar/topbar.visual.spec.ts +0 -14
  322. package/src/utilities/container/container.docs.json +0 -121
  323. package/src/utilities/display/display.docs.json +0 -83
  324. package/src/utilities/scroll-animation/scroll-animation.docs.json +0 -100
  325. package/src/utilities/scroll-snap/scroll-snap.docs.json +0 -333
  326. package/src/utilities/spacing/spacing.docs.json +0 -133
  327. package/src/utilities/text/text.docs.json +0 -191
  328. package/src/utilities/view-transition/view-transition.docs.json +0 -63
  329. package/src/utilities/visually-hidden/visually-hidden.docs.json +0 -44
  330. /package/src/components/actions/button/{button.api.json → api.json} +0 -0
  331. /package/src/components/actions/button/{button-visual.png → visual.png} +0 -0
  332. /package/src/components/actions/button-group/{button-group.api.json → api.json} +0 -0
  333. /package/src/components/actions/button-group/{button-group-visual.png → visual.png} +0 -0
  334. /package/src/components/actions/close-button/{close-button.api.json → api.json} +0 -0
  335. /package/src/components/actions/close-button/{close-button-visual.png → visual.png} +0 -0
  336. /package/src/components/content/divider/{divider.api.json → api.json} +0 -0
  337. /package/src/components/content/divider/{divider-visual.png → visual.png} +0 -0
  338. /package/src/components/content/scroll-area/{scroll-area.api.json → api.json} +0 -0
  339. /package/src/components/content/spacer/{spacer.api.json → api.json} +0 -0
  340. /package/src/components/content/spacer/{spacer-visual.png → visual.png} +0 -0
  341. /package/src/components/data-display/avatar/{avatar.api.json → api.json} +0 -0
  342. /package/src/components/data-display/avatar/{avatar-visual.png → visual.png} +0 -0
  343. /package/src/components/data-display/badge/{badge.api.json → api.json} +0 -0
  344. /package/src/components/data-display/badge/{badge-visual.png → visual.png} +0 -0
  345. /package/src/components/data-display/card/{card.api.json → api.json} +0 -0
  346. /package/src/components/data-display/data-list/{data-list.api.json → api.json} +0 -0
  347. /package/src/components/data-display/icon/{icon.api.json → api.json} +0 -0
  348. /package/src/components/data-display/icon/{icon-visual.png → visual.png} +0 -0
  349. /package/src/components/data-display/image/{image.api.json → api.json} +0 -0
  350. /package/src/components/data-display/stat/{stat.api.json → api.json} +0 -0
  351. /package/src/components/data-display/stat/{stat-visual.png → visual.png} +0 -0
  352. /package/src/components/data-display/status/{status.api.json → api.json} +0 -0
  353. /package/src/components/data-display/status/{status-visual.png → visual.png} +0 -0
  354. /package/src/components/data-display/table/{table.api.json → api.json} +0 -0
  355. /package/src/components/data-display/table/{table-visual.png → visual.png} +0 -0
  356. /package/src/components/data-display/tag/{tag.api.json → api.json} +0 -0
  357. /package/src/components/data-display/tag/{tag-visual.png → visual.png} +0 -0
  358. /package/src/components/disclosure/accordion/{accordion.api.json → api.json} +0 -0
  359. /package/src/components/disclosure/accordion/{accordion-visual.png → visual.png} +0 -0
  360. /package/src/components/disclosure/disclosure/{disclosure.api.json → api.json} +0 -0
  361. /package/src/components/disclosure/disclosure/{disclosure-visual.png → visual.png} +0 -0
  362. /package/src/components/feedback/alert/{alert.api.json → api.json} +0 -0
  363. /package/src/components/feedback/alert/{alert-visual.png → visual.png} +0 -0
  364. /package/src/components/feedback/progress/{progress.api.json → api.json} +0 -0
  365. /package/src/components/feedback/progress/{progress-visual.png → visual.png} +0 -0
  366. /package/src/components/feedback/progress-circle/{progress-circle.api.json → api.json} +0 -0
  367. /package/src/components/feedback/progress-circle/{progress-circle-visual.png → visual.png} +0 -0
  368. /package/src/components/feedback/skeleton/{skeleton.api.json → api.json} +0 -0
  369. /package/src/components/feedback/skeleton/{skeleton-visual.png → visual.png} +0 -0
  370. /package/src/components/feedback/spinner/{spinner.api.json → api.json} +0 -0
  371. /package/src/components/feedback/spinner/{spinner-visual.png → visual.png} +0 -0
  372. /package/src/components/feedback/toast/{toast.api.json → api.json} +0 -0
  373. /package/src/components/forms/checkbox/{checkbox.api.json → api.json} +0 -0
  374. /package/src/components/forms/checkbox/{checkbox-visual.png → visual.png} +0 -0
  375. /package/src/components/forms/checkbox-group/{checkbox-group.api.json → api.json} +0 -0
  376. /package/src/components/forms/checkbox-group/{checkbox-group-visual.png → visual.png} +0 -0
  377. /package/src/components/forms/field/{field.api.json → api.json} +0 -0
  378. /package/src/components/forms/field/{field-visual.png → visual.png} +0 -0
  379. /package/src/components/forms/fieldset/{fieldset.api.json → api.json} +0 -0
  380. /package/src/components/forms/fieldset/{fieldset-visual.png → visual.png} +0 -0
  381. /package/src/components/forms/form/{form.api.json → api.json} +0 -0
  382. /package/src/components/forms/form/{form-visual.png → visual.png} +0 -0
  383. /package/src/components/forms/form-error/{form-error.api.json → api.json} +0 -0
  384. /package/src/components/forms/form-error/{form-error-visual.png → visual.png} +0 -0
  385. /package/src/components/forms/form-helper/{form-helper.api.json → api.json} +0 -0
  386. /package/src/components/forms/form-helper/{form-helper-visual.png → visual.png} +0 -0
  387. /package/src/components/forms/input/{input.api.json → api.json} +0 -0
  388. /package/src/components/forms/label/{label.api.json → api.json} +0 -0
  389. /package/src/components/forms/number-input/{number-input.api.json → api.json} +0 -0
  390. /package/src/components/forms/password-input/{password-input.api.json → api.json} +0 -0
  391. /package/src/components/forms/radio/{radio.api.json → api.json} +0 -0
  392. /package/src/components/forms/radio/{radio-visual.png → visual.png} +0 -0
  393. /package/src/components/forms/radio-group/{radio-group.api.json → api.json} +0 -0
  394. /package/src/components/forms/radio-group/{radio-group-visual.png → visual.png} +0 -0
  395. /package/src/components/forms/search-input/{search-input.api.json → api.json} +0 -0
  396. /package/src/components/forms/select/{select.api.json → api.json} +0 -0
  397. /package/src/components/forms/slider/{slider.api.json → api.json} +0 -0
  398. /package/src/components/forms/textarea/{textarea.api.json → api.json} +0 -0
  399. /package/src/components/forms/toggle/{toggle.api.json → api.json} +0 -0
  400. /package/src/components/forms/toggle/{toggle-visual.png → visual.png} +0 -0
  401. /package/src/components/navigation/breadcrumb/{breadcrumb.api.json → api.json} +0 -0
  402. /package/src/components/navigation/breadcrumb/{breadcrumb-visual.png → visual.png} +0 -0
  403. /package/src/components/navigation/dropdown-menu/{dropdown-menu.api.json → api.json} +0 -0
  404. /package/src/components/navigation/menu/{menu.api.json → api.json} +0 -0
  405. /package/src/components/navigation/menu/{menu-visual.png → visual.png} +0 -0
  406. /package/src/components/navigation/nav/{nav.api.json → api.json} +0 -0
  407. /package/src/components/navigation/nav/{nav-visual.png → visual.png} +0 -0
  408. /package/src/components/navigation/pagination/{pagination.api.json → api.json} +0 -0
  409. /package/src/components/navigation/tabs/{tabs.api.json → api.json} +0 -0
  410. /package/src/components/navigation/tabs/{tabs-visual.png → visual.png} +0 -0
  411. /package/src/components/overlays/dialog/{dialog.api.json → api.json} +0 -0
  412. /package/src/components/overlays/dialog/{dialog-visual.png → visual.png} +0 -0
  413. /package/src/components/overlays/drawer/{drawer.api.json → api.json} +0 -0
  414. /package/src/components/overlays/modal/{modal.api.json → api.json} +0 -0
  415. /package/src/components/overlays/modal/{modal-visual.png → visual.png} +0 -0
  416. /package/src/components/overlays/overlay/{overlay.api.json → api.json} +0 -0
  417. /package/src/components/overlays/overlay/{overlay-visual.png → visual.png} +0 -0
  418. /package/src/components/overlays/popover/{popover.api.json → api.json} +0 -0
  419. /package/src/components/overlays/popover/{popover-visual.png → visual.png} +0 -0
  420. /package/src/components/overlays/tooltip/{tooltip.api.json → api.json} +0 -0
  421. /package/src/components/overlays/tooltip/{tooltip-visual.png → visual.png} +0 -0
  422. /package/src/components/typography/blockquote/{blockquote.api.json → api.json} +0 -0
  423. /package/src/components/typography/blockquote/{blockquote-visual.png → visual.png} +0 -0
  424. /package/src/components/typography/code/{code.api.json → api.json} +0 -0
  425. /package/src/components/typography/code-block/{code-block.api.json → api.json} +0 -0
  426. /package/src/components/typography/heading/{heading.api.json → api.json} +0 -0
  427. /package/src/components/typography/kbd/{kbd.api.json → api.json} +0 -0
  428. /package/src/components/typography/kbd/{kbd-visual.png → visual.png} +0 -0
  429. /package/src/components/typography/link/{link.api.json → api.json} +0 -0
  430. /package/src/components/typography/link/{link-visual.png → visual.png} +0 -0
  431. /package/src/components/typography/list/{list.api.json → api.json} +0 -0
  432. /package/src/components/typography/list/{list-visual.png → visual.png} +0 -0
  433. /package/src/components/typography/mark/{mark.api.json → api.json} +0 -0
  434. /package/src/components/typography/mark/{mark-visual.png → visual.png} +0 -0
  435. /package/src/layout/app-shell/{app-shell.api.json → api.json} +0 -0
  436. /package/src/layout/aspect-ratio/{aspect-ratio.api.json → api.json} +0 -0
  437. /package/src/layout/aspect-ratio/{aspect-ratio-visual.png → visual.png} +0 -0
  438. /package/src/layout/box/{box.api.json → api.json} +0 -0
  439. /package/src/layout/center/{center.api.json → api.json} +0 -0
  440. /package/src/layout/center/{center-visual.png → visual.png} +0 -0
  441. /package/src/layout/column/{column.api.json → api.json} +0 -0
  442. /package/src/layout/column/{column-visual.png → visual.png} +0 -0
  443. /package/src/layout/container/{container.api.json → api.json} +0 -0
  444. /package/src/layout/content/{content.api.json → api.json} +0 -0
  445. /package/src/layout/footer/{footer.api.json → api.json} +0 -0
  446. /package/src/layout/grid/{grid.api.json → api.json} +0 -0
  447. /package/src/layout/grid/{grid-visual.png → visual.png} +0 -0
  448. /package/src/layout/main/{main.api.json → api.json} +0 -0
  449. /package/src/layout/nav-rail/{nav-rail.api.json → api.json} +0 -0
  450. /package/src/layout/page-header/{page-header.api.json → api.json} +0 -0
  451. /package/src/layout/page-header/{page-header-visual.png → visual.png} +0 -0
  452. /package/src/layout/row/{row.api.json → api.json} +0 -0
  453. /package/src/layout/row/{row-visual.png → visual.png} +0 -0
  454. /package/src/layout/sidebar/{sidebar.api.json → api.json} +0 -0
  455. /package/src/layout/sidebar-nav/{sidebar-nav.api.json → api.json} +0 -0
  456. /package/src/layout/topbar/{topbar.api.json → api.json} +0 -0
  457. /package/src/utilities/container/{container.api.json → api.json} +0 -0
  458. /package/src/utilities/display/{display.api.json → api.json} +0 -0
  459. /package/src/utilities/scroll-animation/{scroll-animation.api.json → api.json} +0 -0
  460. /package/src/utilities/scroll-snap/{scroll-snap.api.json → api.json} +0 -0
  461. /package/src/utilities/spacing/{spacing.api.json → api.json} +0 -0
  462. /package/src/utilities/text/{text.api.json → api.json} +0 -0
  463. /package/src/utilities/view-transition/{view-transition.api.json → api.json} +0 -0
  464. /package/src/utilities/visually-hidden/{visually-hidden.api.json → api.json} +0 -0
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
8
+
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
+
11
+ test.describe('content visual regression', () => {
12
+ test('all variations', async ({ page }) => {
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
+ await validateGridRhythm(page, 'content');
15
+ await saveForLostPixel(page, 'content');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
+ });
18
+ });
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: Footer
3
+ description: Page footer with start, center, and end sections. Supports sticky/fixed positioning and border/shadow variants.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <!-- Basic footer with three sections. -->
8
+ <footer class="ui-footer ui-footer--bordered">
9
+ <div class="ui-footer__start">
10
+ <small>2026 Brand</small>
11
+ </div>
12
+ <div class="ui-footer__center">
13
+ <span>Footer links</span>
14
+ </div>
15
+ <div class="ui-footer__end">
16
+ <small>v1.0.0</small>
17
+ </div>
18
+ </footer>
19
+
20
+ <!-- @sticky -->
21
+ <!-- Stays at the bottom of the viewport on scroll. -->
22
+ <footer class="ui-footer ui-footer--sticky ui-footer--bordered">
23
+ <div class="ui-footer__start"><small>Brand</small></div>
24
+ <div class="ui-footer__center">Links</div>
25
+ <div class="ui-footer__end"><small>v1.0.0</small></div>
26
+ </footer>
27
+
28
+ <!-- @bordered -->
29
+ <!-- Top border via inset box-shadow to preserve grid rhythm. -->
30
+ <footer class="ui-footer ui-footer--bordered">
31
+ <div class="ui-footer__start">
32
+ <small>Bordered footer</small>
33
+ </div>
34
+ <div class="ui-footer__end">
35
+ <small>v1.0.0</small>
36
+ </div>
37
+ </footer>
38
+
39
+ <!-- @raised -->
40
+ <!-- Subtle drop shadow above the footer. -->
41
+ <footer class="ui-footer ui-footer--raised">
42
+ <div class="ui-footer__start">
43
+ <small>Raised footer</small>
44
+ </div>
45
+ <div class="ui-footer__end">
46
+ <small>v1.0.0</small>
47
+ </div>
48
+ </footer>
49
+
50
+ <!-- @fixed -->
51
+ <!-- Fixed to viewport bottom, always visible. -->
52
+ <footer class="ui-footer ui-footer--fixed ui-footer--bordered">
53
+ <div class="ui-footer__start"><small>Brand</small></div>
54
+ <div class="ui-footer__end"><small>v1.0.0</small></div>
55
+ </footer>
56
+
57
+ <!-- @full_layout -->
58
+ <!-- Footer inside an app-shell with topbar and sidebar. -->
59
+ <body class="ui-app-shell">
60
+ <header class="ui-topbar ui-topbar--bordered">
61
+ <div class="ui-topbar__start"><strong>App</strong></div>
62
+ </header>
63
+ <main class="ui-main ui-main--full">
64
+ <div class="ui-container">Content</div>
65
+ <footer class="ui-footer ui-footer--bordered">
66
+ <div class="ui-footer__start"><small>Brand</small></div>
67
+ <div class="ui-footer__end"><small>v1.0.0</small></div>
68
+ </footer>
69
+ </main>
70
+ </body>
Binary file
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
8
+
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
+
11
+ test.describe('footer visual regression', () => {
12
+ test('all variations', async ({ page }) => {
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
+ await validateGridRhythm(page, 'footer');
15
+ await saveForLostPixel(page, 'footer');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
+ });
18
+ });
@@ -0,0 +1,85 @@
1
+ ---
2
+ title: Grid
3
+ id: grid-primitive
4
+ description: CSS Grid with column variants, subgrid support, and span utilities.
5
+ ---
6
+
7
+ <!-- @columns -->
8
+ <div class="ui-grid ui-grid--2">
9
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">1</div>
10
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">2</div>
11
+ </div>
12
+ <div class="ui-grid ui-grid--3">
13
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">1</div>
14
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">2</div>
15
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">3</div>
16
+ </div>
17
+ <div class="ui-grid ui-grid--4">
18
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">1</div>
19
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">2</div>
20
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">3</div>
21
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">4</div>
22
+ </div>
23
+ <div class="ui-grid ui-grid--auto">
24
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Auto</div>
25
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Auto</div>
26
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Auto</div>
27
+ </div>
28
+
29
+ <!-- @subgrid -->
30
+ <!-- Children inherit parent grid tracks for cross-item alignment. -->
31
+ <div class="ui-grid ui-grid--3">
32
+ <div class="ui-grid--subgrid" style="grid-column: span 3">
33
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Subgrid child 1</div>
34
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Subgrid child 2</div>
35
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Subgrid child 3</div>
36
+ </div>
37
+ </div>
38
+ <div class="ui-grid ui-grid--3" style="grid-template-rows: auto 1fr auto">
39
+ <div class="ui-grid--subgrid-rows" style="grid-row: span 3; border: 1px solid var(--ui-color-border); padding: var(--ui-space-2)">
40
+ <strong>Card A</strong>
41
+ <p>Short content.</p>
42
+ <span style="color: var(--ui-color-text-muted)">Footer</span>
43
+ </div>
44
+ <div class="ui-grid--subgrid-rows" style="grid-row: span 3; border: 1px solid var(--ui-color-border); padding: var(--ui-space-2)">
45
+ <strong>Card B</strong>
46
+ <p>Longer content that wraps to multiple lines to demonstrate row alignment.</p>
47
+ <span style="color: var(--ui-color-text-muted)">Footer</span>
48
+ </div>
49
+ <div class="ui-grid--subgrid-rows" style="grid-row: span 3; border: 1px solid var(--ui-color-border); padding: var(--ui-space-2)">
50
+ <strong>Card C</strong>
51
+ <p>Medium text.</p>
52
+ <span style="color: var(--ui-color-text-muted)">Footer</span>
53
+ </div>
54
+ </div>
55
+ <div class="ui-grid ui-grid--3" style="grid-template-rows: auto auto">
56
+ <div class="ui-grid--subgrid-both" style="grid-column: span 3; grid-row: span 2">
57
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">A1</div>
58
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">A2</div>
59
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">A3</div>
60
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">B1</div>
61
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">B2</div>
62
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">B3</div>
63
+ </div>
64
+ </div>
65
+
66
+ <!-- @column_span -->
67
+ <!-- Span multiple columns with .ui-grid-col-span-{2,3,4,full} utilities. -->
68
+ <div class="ui-grid ui-grid--4">
69
+ <div style="grid-column: span 2; background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Span 2</div>
70
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">1</div>
71
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">1</div>
72
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">1</div>
73
+ <div style="grid-column: span 3; background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Span 3</div>
74
+ <div style="grid-column: 1 / -1; background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Span full</div>
75
+ </div>
76
+
77
+ <!-- @row_span -->
78
+ <!-- Span multiple rows with .ui-grid-row-span-{2,3,full} utilities. -->
79
+ <div class="ui-grid ui-grid--3">
80
+ <div style="grid-row: span 2; background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Row span 2</div>
81
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">1</div>
82
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">2</div>
83
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">3</div>
84
+ <div style="background: var(--ui-color-bg-subtle); padding: var(--ui-space-2)">4</div>
85
+ </div>
@@ -0,0 +1,13 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import { saveForLostPixel, setupVisualTestFromHtmlDocs } from '../../../test-utils';
4
+
5
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
6
+
7
+ test.describe('grid visual regression', () => {
8
+ test('all variations', async ({ page }) => {
9
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
10
+ await saveForLostPixel(page, 'grid');
11
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
12
+ });
13
+ });
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Main
3
+ description: Main content area that accounts for sidebar and topbar offsets in app layouts.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <!-- Offsets content for a start-side sidebar and optional topbar. -->
8
+ <div style="position: relative; height: var(--ui-row-4)">
9
+ <main class="ui-main" style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">
10
+ <p>Main content area</p>
11
+ </main>
12
+ </div>
13
+
14
+ <!-- @sidebar_end -->
15
+ <!-- Offsets content for an end-side sidebar instead of start. -->
16
+ <div style="position: relative; height: var(--ui-row-4)">
17
+ <main class="ui-main ui-main--sidebar-end" style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">
18
+ <p>Content with end sidebar</p>
19
+ </main>
20
+ </div>
21
+
22
+ <!-- @full_width -->
23
+ <!-- No sidebar offset. Use when there is no sidebar. -->
24
+ <div style="position: relative; height: var(--ui-row-4)">
25
+ <main class="ui-main ui-main--full" style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">
26
+ <p>Full width content</p>
27
+ </main>
28
+ </div>
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: Nav Rail
3
+ description: Narrow fixed vertical navigation rail for icon-based navigation with bottom actions.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <!-- Fixed narrow rail with icon items and bottom actions. -->
8
+ <nav class="ui-nav-rail" style="0: p; 1: o; 2: s; 3: i; 4: t; 5: i; 6: o; 7: n; 8: :; 9: ; 10: r; 11: e; 12: l; 13: a; 14: t; 15: i; 16: v; 17: e; 18: ;; 19: ; 20: b; 21: l; 22: o; 23: c; 24: k; 25: -; 26: s; 27: i; 28: z; 29: e; 30: :; 31: ; 32: 3; 33: 2; 34: 0; 35: p; 36: x">
9
+ <div class="ui-nav-rail__items">
10
+ <button class="ui-button ui-button--ghost ui-button--icon">H</button>
11
+ <button class="ui-button ui-button--ghost ui-button--icon">S</button>
12
+ <button class="ui-button ui-button--ghost ui-button--icon">M</button>
13
+ </div>
14
+ <div class="ui-nav-rail__actions">
15
+ <button class="ui-button ui-button--ghost ui-button--icon">G</button>
16
+ </div>
17
+ </nav>
18
+
19
+ <!-- @end_position -->
20
+ <!-- Rail on the end (right in LTR) side. -->
21
+ <nav class="ui-nav-rail ui-nav-rail--end">
22
+ <div class="ui-nav-rail__items">
23
+ <!-- icon buttons -->
24
+ </div>
25
+ <div class="ui-nav-rail__actions">
26
+ <!-- settings, profile -->
27
+ </div>
28
+ </nav>
29
+
30
+ <!-- @with_topbar -->
31
+ <!-- Nav rail respects --topbar-height, offsetting below the topbar. -->
32
+ <body class="ui-app-shell" style="--topbar-height: var(--ui-row-3)">
33
+ <header class="ui-topbar ui-topbar--fixed ui-topbar--bordered">
34
+ <div class="ui-topbar__start"><strong>App</strong></div>
35
+ </header>
36
+ <nav class="ui-nav-rail">
37
+ <div class="ui-nav-rail__items"><!-- icons --></div>
38
+ </nav>
39
+ </body>
Binary file
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
8
+
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
+
11
+ test.describe('nav-rail visual regression', () => {
12
+ test('all variations', async ({ page }) => {
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
+ await validateGridRhythm(page, 'nav-rail');
15
+ await saveForLostPixel(page, 'nav-rail');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
+ });
18
+ });
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Page Header
3
+ description: Content area header with title, description, actions, and optional breadcrumb.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <!-- Title with actions on the end side. -->
8
+ <header class="ui-page-header ui-page-header--bordered">
9
+ <div class="ui-page-header__title">
10
+ <h1 class="ui-heading ui-heading--xl">Users</h1>
11
+ <p>Manage user accounts and permissions.</p>
12
+ </div>
13
+ <div class="ui-page-header__actions">
14
+ <button class="ui-button ui-button--primary">Add user</button>
15
+ </div>
16
+ </header>
17
+
18
+ <!-- @with_breadcrumb -->
19
+ <!-- Breadcrumb spans the full width above the title row. -->
20
+ <header class="ui-page-header ui-page-header--bordered">
21
+ <nav class="ui-page-header__breadcrumb">
22
+ <span>Home / Settings / Users</span>
23
+ </nav>
24
+ <div class="ui-page-header__title">
25
+ <h1 class="ui-heading ui-heading--xl">Users</h1>
26
+ </div>
27
+ <div class="ui-page-header__actions">
28
+ <button class="ui-button">Export</button>
29
+ </div>
30
+ </header>
31
+
32
+ <!-- @bordered -->
33
+ <!-- Bottom border via inset box-shadow. -->
34
+ <header class="ui-page-header ui-page-header--bordered">
35
+ <div class="ui-page-header__title">
36
+ <h1 class="ui-heading ui-heading--xl">Dashboard</h1>
37
+ </div>
38
+ </header>
39
+
40
+ <!-- @sticky -->
41
+ <!-- Sticks to the top of the scroll container. -->
42
+ <header class="ui-page-header ui-page-header--sticky ui-page-header--bordered">
43
+ <div class="ui-page-header__title">
44
+ <h1 class="ui-heading ui-heading--xl">Sticky Header</h1>
45
+ </div>
46
+ <div class="ui-page-header__actions">
47
+ <button class="ui-button">Save</button>
48
+ </div>
49
+ </header>
@@ -1,14 +1,18 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../test-utils';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'page-header.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
6
10
 
7
11
  test.describe('page-header visual regression', () => {
8
12
  test('all variations', async ({ page }) => {
9
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
10
14
  await validateGridRhythm(page, 'page-header');
11
15
  await saveForLostPixel(page, 'page-header');
12
- await expect(page.locator('body')).toHaveScreenshot('page-header.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
13
17
  });
14
18
  });
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: Row
3
+ description: Horizontal layout with wrapping.
4
+ ---
5
+
6
+ <!-- @basic -->
7
+ <div class="ui-row ui-row--md">
8
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Tag 1</div>
9
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Tag 2</div>
10
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Tag 3</div>
11
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-2)">Tag 4</div>
12
+ </div>
13
+
14
+ <!-- @sizes -->
15
+ <div class="ui-row ui-row--xs">
16
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">xs</div>
17
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">xs</div>
18
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">xs</div>
19
+ </div>
20
+ <div class="ui-row ui-row--lg">
21
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">lg</div>
22
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">lg</div>
23
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">lg</div>
24
+ </div>
25
+ <div class="ui-row ui-row--sm">
26
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">sm</div>
27
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">sm</div>
28
+ <div style="background: var(--ui-color-bg-muted); padding: var(--ui-space-1)">sm</div>
29
+ </div>
30
+
31
+ <!-- @alignment -->
32
+ <div class="ui-row ui-row--start" style="background: var(--ui-color-bg-muted)">
33
+ <div style="background: var(--ui-color-bg); padding: var(--ui-space-2)">Start</div>
34
+ </div>
35
+ <div class="ui-row ui-row--center" style="background: var(--ui-color-bg-muted)">
36
+ <div style="background: var(--ui-color-bg); padding: var(--ui-space-2)">Center</div>
37
+ </div>
38
+ <div class="ui-row ui-row--end" style="background: var(--ui-color-bg-muted)">
39
+ <div style="background: var(--ui-color-bg); padding: var(--ui-space-2)">End</div>
40
+ </div>
41
+ <div class="ui-row ui-row--between" style="background: var(--ui-color-bg-muted)">
42
+ <div style="background: var(--ui-color-bg); padding: var(--ui-space-2)">Between A</div>
43
+ <div style="background: var(--ui-color-bg); padding: var(--ui-space-2)">Between B</div>
44
+ </div>
@@ -1,15 +1,15 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs } from '../../../test-utils';
3
+ import { saveForLostPixel, setupVisualTestFromHtmlDocs } from '../../../test-utils';
4
4
 
5
- const DOCS_PATH = resolve(__dirname, 'row.docs.json');
5
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
6
6
 
7
7
  test.describe('row visual regression', () => {
8
8
  test('all variations', async ({ page }) => {
9
- await setupVisualTestFromDocs(page, DOCS_PATH);
9
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
10
10
  // skip validateGridRhythm: row is a layout primitive that
11
11
  // controls gap/alignment, not child height
12
12
  await saveForLostPixel(page, 'row');
13
- await expect(page.locator('body')).toHaveScreenshot('row.visual.png');
13
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
14
14
  });
15
15
  });
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Sidebar
3
+ description: Fixed-position sidebar for app layouts with adjustable widths and positioning.
4
+ ---
5
+
6
+ <!-- @basic -->
7
+ <!-- Default sidebar positioned on the start side. Use inside an app-shell layout. -->
8
+ <aside class="ui-sidebar">
9
+ <p>Sidebar content</p>
10
+ </aside>
11
+
12
+ <!-- @widths | column -->
13
+ <aside class="ui-sidebar ui-sidebar--sm" style="position: relative; height: auto;">
14
+ <p>Small (192px)</p>
15
+ </aside>
16
+ <aside class="ui-sidebar ui-sidebar--md" style="position: relative; height: auto;">
17
+ <p>Medium (240px, default)</p>
18
+ </aside>
19
+ <aside class="ui-sidebar ui-sidebar--lg" style="position: relative; height: auto;">
20
+ <p>Large (320px)</p>
21
+ </aside>
22
+
23
+ <!-- @end_position -->
24
+ <!-- Position sidebar on the end side with --end modifier. -->
25
+ <aside class="ui-sidebar ui-sidebar--end">
26
+ <p>End sidebar</p>
27
+ </aside>
Binary file
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
8
+
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
+
11
+ test.describe('sidebar visual regression', () => {
12
+ test('all variations', async ({ page }) => {
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
+ await validateGridRhythm(page, 'sidebar');
15
+ await saveForLostPixel(page, 'sidebar');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
+ });
18
+ });