@usefragments/ui 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/README.md +54 -66
  2. package/dist/assets/fragments-wordmark.cjs +2 -2
  3. package/dist/assets/fragments-wordmark.d.ts.map +1 -1
  4. package/dist/assets/fragments-wordmark.js +2 -2
  5. package/dist/assets/nav-glyph.cjs +139 -0
  6. package/dist/assets/nav-glyph.d.ts +28 -0
  7. package/dist/assets/nav-glyph.d.ts.map +1 -0
  8. package/dist/assets/nav-glyph.js +139 -0
  9. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  10. package/dist/assets/nav-glyph.module.scss.js +71 -0
  11. package/dist/assets/ui.css +6885 -6308
  12. package/dist/blocks/components/StatsCard.d.ts +1 -1
  13. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  14. package/dist/chart.cjs +24 -6
  15. package/dist/chart.js +24 -6
  16. package/dist/codeblock.cjs +76 -43
  17. package/dist/codeblock.js +71 -38
  18. package/dist/colorpicker.cjs +4 -1
  19. package/dist/colorpicker.js +4 -1
  20. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  21. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  22. package/dist/components/Alert/Alert.module.scss.cjs +23 -20
  23. package/dist/components/Alert/Alert.module.scss.js +23 -20
  24. package/dist/components/Alert/index.cjs +20 -8
  25. package/dist/components/Alert/index.d.ts +17 -11
  26. package/dist/components/Alert/index.d.ts.map +1 -1
  27. package/dist/components/Alert/index.js +20 -8
  28. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  29. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  30. package/dist/components/AppShell/index.cjs +2 -2
  31. package/dist/components/AppShell/index.js +2 -2
  32. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  33. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  34. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  35. package/dist/components/Badge/Badge.module.scss.js +33 -31
  36. package/dist/components/Badge/index.cjs +13 -3
  37. package/dist/components/Badge/index.d.ts +18 -13
  38. package/dist/components/Badge/index.d.ts.map +1 -1
  39. package/dist/components/Badge/index.js +13 -3
  40. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  41. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  42. package/dist/components/Box/Box.module.scss.cjs +152 -152
  43. package/dist/components/Box/Box.module.scss.js +152 -152
  44. package/dist/components/Box/index.cjs +64 -75
  45. package/dist/components/Box/index.d.ts +16 -16
  46. package/dist/components/Box/index.d.ts.map +1 -1
  47. package/dist/components/Box/index.js +64 -75
  48. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  49. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  50. package/dist/components/Breadcrumbs/index.cjs +1 -1
  51. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  52. package/dist/components/Breadcrumbs/index.js +1 -1
  53. package/dist/components/Button/Button.module.scss.cjs +36 -27
  54. package/dist/components/Button/Button.module.scss.js +36 -27
  55. package/dist/components/Button/index.cjs +20 -4
  56. package/dist/components/Button/index.d.ts +18 -10
  57. package/dist/components/Button/index.d.ts.map +1 -1
  58. package/dist/components/Button/index.js +20 -4
  59. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  60. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  61. package/dist/components/Card/Card.module.scss.cjs +31 -26
  62. package/dist/components/Card/Card.module.scss.js +32 -27
  63. package/dist/components/Card/index.cjs +16 -3
  64. package/dist/components/Card/index.d.ts +23 -15
  65. package/dist/components/Card/index.d.ts.map +1 -1
  66. package/dist/components/Card/index.js +16 -3
  67. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  68. package/dist/components/Chart/Chart.module.scss.js +15 -15
  69. package/dist/components/Chart/index.d.ts.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  71. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  72. package/dist/components/Checkbox/index.cjs +4 -4
  73. package/dist/components/Checkbox/index.d.ts +4 -6
  74. package/dist/components/Checkbox/index.d.ts.map +1 -1
  75. package/dist/components/Checkbox/index.js +4 -4
  76. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  77. package/dist/components/Chip/Chip.module.scss.js +19 -19
  78. package/dist/components/Chip/index.cjs +3 -3
  79. package/dist/components/Chip/index.d.ts +8 -3
  80. package/dist/components/Chip/index.d.ts.map +1 -1
  81. package/dist/components/Chip/index.js +3 -3
  82. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
  83. package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
  84. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  85. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  86. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  87. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  88. package/dist/components/CodeBlock/index.d.ts +20 -5
  89. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  90. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  91. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  92. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  93. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  94. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  95. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  96. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  97. package/dist/components/Combobox/index.cjs +26 -6
  98. package/dist/components/Combobox/index.d.ts.map +1 -1
  99. package/dist/components/Combobox/index.js +26 -6
  100. package/dist/components/Command/Command.module.scss.cjs +14 -11
  101. package/dist/components/Command/Command.module.scss.js +14 -11
  102. package/dist/components/Command/index.cjs +28 -16
  103. package/dist/components/Command/index.d.ts +8 -3
  104. package/dist/components/Command/index.d.ts.map +1 -1
  105. package/dist/components/Command/index.js +28 -16
  106. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  107. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  108. package/dist/components/ConversationList/index.cjs +2 -2
  109. package/dist/components/ConversationList/index.js +2 -2
  110. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  111. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  112. package/dist/components/DataTable/DataTable.icons.js +6 -33
  113. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  114. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  115. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  116. package/dist/components/DataTable/index.d.ts.map +1 -1
  117. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  118. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  119. package/dist/components/DatePicker/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  121. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  122. package/dist/components/Dialog/index.cjs +13 -16
  123. package/dist/components/Dialog/index.d.ts +11 -10
  124. package/dist/components/Dialog/index.d.ts.map +1 -1
  125. package/dist/components/Dialog/index.js +13 -16
  126. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  127. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  128. package/dist/components/Drawer/index.cjs +2 -2
  129. package/dist/components/Drawer/index.d.ts +5 -4
  130. package/dist/components/Drawer/index.d.ts.map +1 -1
  131. package/dist/components/Drawer/index.js +2 -2
  132. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  133. package/dist/components/Editor/Editor.module.scss.js +17 -17
  134. package/dist/components/Editor/index.d.ts +10 -10
  135. package/dist/components/Editor/index.d.ts.map +1 -1
  136. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
  137. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
  138. package/dist/components/EmptyState/index.cjs +13 -6
  139. package/dist/components/EmptyState/index.d.ts +13 -5
  140. package/dist/components/EmptyState/index.d.ts.map +1 -1
  141. package/dist/components/EmptyState/index.js +13 -6
  142. package/dist/components/Field/Field.module.scss.cjs +5 -5
  143. package/dist/components/Field/Field.module.scss.js +5 -5
  144. package/dist/components/Field/index.cjs +9 -1
  145. package/dist/components/Field/index.d.ts.map +1 -1
  146. package/dist/components/Field/index.js +9 -1
  147. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  148. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  149. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  150. package/dist/components/Grid/Grid.module.scss.js +54 -54
  151. package/dist/components/Grid/index.cjs +1 -1
  152. package/dist/components/Grid/index.js +1 -1
  153. package/dist/components/Header/Header.module.scss.cjs +33 -33
  154. package/dist/components/Header/Header.module.scss.js +33 -33
  155. package/dist/components/Header/index.cjs +17 -38
  156. package/dist/components/Header/index.d.ts +15 -11
  157. package/dist/components/Header/index.d.ts.map +1 -1
  158. package/dist/components/Header/index.js +17 -38
  159. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  160. package/dist/components/Icon/Icon.module.scss.js +30 -33
  161. package/dist/components/Icon/index.cjs +15 -14
  162. package/dist/components/Icon/index.d.ts +23 -12
  163. package/dist/components/Icon/index.d.ts.map +1 -1
  164. package/dist/components/Icon/index.js +15 -14
  165. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  166. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  167. package/dist/components/IconButton/index.cjs +2 -1
  168. package/dist/components/IconButton/index.d.ts +4 -4
  169. package/dist/components/IconButton/index.d.ts.map +1 -1
  170. package/dist/components/IconButton/index.js +2 -1
  171. package/dist/components/Image/Image.module.scss.cjs +27 -27
  172. package/dist/components/Image/Image.module.scss.js +27 -27
  173. package/dist/components/Input/Input.module.scss.cjs +15 -21
  174. package/dist/components/Input/Input.module.scss.js +15 -21
  175. package/dist/components/Input/index.cjs +2 -14
  176. package/dist/components/Input/index.d.ts +0 -2
  177. package/dist/components/Input/index.d.ts.map +1 -1
  178. package/dist/components/Input/index.js +2 -14
  179. package/dist/components/Link/Link.module.scss.cjs +26 -14
  180. package/dist/components/Link/Link.module.scss.js +26 -14
  181. package/dist/components/Link/index.cjs +13 -2
  182. package/dist/components/Link/index.d.ts +11 -4
  183. package/dist/components/Link/index.d.ts.map +1 -1
  184. package/dist/components/Link/index.js +13 -2
  185. package/dist/components/List/List.module.scss.cjs +23 -19
  186. package/dist/components/List/List.module.scss.js +23 -19
  187. package/dist/components/List/index.cjs +7 -7
  188. package/dist/components/List/index.d.ts +10 -7
  189. package/dist/components/List/index.d.ts.map +1 -1
  190. package/dist/components/List/index.js +7 -7
  191. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  192. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  193. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  194. package/dist/components/Loading/Loading.module.scss.js +34 -34
  195. package/dist/components/Loading/index.cjs +5 -5
  196. package/dist/components/Loading/index.d.ts +8 -7
  197. package/dist/components/Loading/index.d.ts.map +1 -1
  198. package/dist/components/Loading/index.js +5 -5
  199. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  200. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  201. package/dist/components/Markdown/index.d.ts +2 -2
  202. package/dist/components/Markdown/index.d.ts.map +1 -1
  203. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  204. package/dist/components/Menu/Menu.module.scss.js +14 -14
  205. package/dist/components/Message/Message.module.scss.cjs +20 -20
  206. package/dist/components/Message/Message.module.scss.js +20 -20
  207. package/dist/components/Message/index.cjs +1 -1
  208. package/dist/components/Message/index.d.ts +1 -1
  209. package/dist/components/Message/index.js +1 -1
  210. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
  211. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
  212. package/dist/components/NavigationMenu/index.cjs +32 -15
  213. package/dist/components/NavigationMenu/index.d.ts +12 -6
  214. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  215. package/dist/components/NavigationMenu/index.js +32 -15
  216. package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
  217. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  218. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  219. package/dist/components/Popover/Popover.module.scss.js +10 -10
  220. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  221. package/dist/components/Progress/Progress.module.scss.js +28 -25
  222. package/dist/components/Progress/index.cjs +21 -12
  223. package/dist/components/Progress/index.d.ts +10 -6
  224. package/dist/components/Progress/index.d.ts.map +1 -1
  225. package/dist/components/Progress/index.js +21 -12
  226. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  227. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  228. package/dist/components/Prompt/index.cjs +7 -7
  229. package/dist/components/Prompt/index.d.ts +11 -9
  230. package/dist/components/Prompt/index.d.ts.map +1 -1
  231. package/dist/components/Prompt/index.js +7 -7
  232. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  233. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  234. package/dist/components/RadioGroup/index.cjs +10 -5
  235. package/dist/components/RadioGroup/index.d.ts +11 -7
  236. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  237. package/dist/components/RadioGroup/index.js +10 -5
  238. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  239. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  240. package/dist/components/ScrollArea/index.d.ts +4 -4
  241. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
  243. package/dist/components/Select/Select.module.scss.cjs +21 -21
  244. package/dist/components/Select/Select.module.scss.js +21 -21
  245. package/dist/components/Select/index.cjs +26 -20
  246. package/dist/components/Select/index.d.ts +5 -5
  247. package/dist/components/Select/index.d.ts.map +1 -1
  248. package/dist/components/Select/index.js +26 -20
  249. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  250. package/dist/components/Separator/Separator.module.scss.js +25 -19
  251. package/dist/components/Separator/index.cjs +10 -8
  252. package/dist/components/Separator/index.d.ts +4 -2
  253. package/dist/components/Separator/index.d.ts.map +1 -1
  254. package/dist/components/Separator/index.js +10 -8
  255. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  256. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  257. package/dist/components/Sidebar/index.cjs +15 -38
  258. package/dist/components/Sidebar/index.d.ts +19 -19
  259. package/dist/components/Sidebar/index.d.ts.map +1 -1
  260. package/dist/components/Sidebar/index.js +15 -38
  261. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
  262. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
  263. package/dist/components/Skeleton/index.cjs +7 -7
  264. package/dist/components/Skeleton/index.d.ts +8 -7
  265. package/dist/components/Skeleton/index.d.ts.map +1 -1
  266. package/dist/components/Skeleton/index.js +7 -7
  267. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  268. package/dist/components/Slider/Slider.module.scss.js +12 -12
  269. package/dist/components/Stack/Stack.module.scss.cjs +25 -25
  270. package/dist/components/Stack/Stack.module.scss.js +25 -25
  271. package/dist/components/Stack/index.cjs +1 -1
  272. package/dist/components/Stack/index.js +1 -1
  273. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  274. package/dist/components/Switch/Switch.module.scss.js +9 -9
  275. package/dist/components/Table/Table.module.scss.cjs +19 -19
  276. package/dist/components/Table/Table.module.scss.js +19 -19
  277. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  278. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  279. package/dist/components/TableOfContents/index.cjs +14 -10
  280. package/dist/components/TableOfContents/index.d.ts +5 -3
  281. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  282. package/dist/components/TableOfContents/index.js +14 -10
  283. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  284. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  285. package/dist/components/Tabs/index.cjs +30 -11
  286. package/dist/components/Tabs/index.d.ts +8 -6
  287. package/dist/components/Tabs/index.d.ts.map +1 -1
  288. package/dist/components/Tabs/index.js +30 -11
  289. package/dist/components/Text/Text.module.scss.cjs +109 -97
  290. package/dist/components/Text/Text.module.scss.js +109 -97
  291. package/dist/components/Text/index.cjs +45 -41
  292. package/dist/components/Text/index.d.ts +24 -19
  293. package/dist/components/Text/index.d.ts.map +1 -1
  294. package/dist/components/Text/index.js +45 -41
  295. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  296. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  297. package/dist/components/Textarea/index.cjs +3 -10
  298. package/dist/components/Textarea/index.d.ts +0 -2
  299. package/dist/components/Textarea/index.d.ts.map +1 -1
  300. package/dist/components/Textarea/index.js +3 -10
  301. package/dist/components/Theme/index.cjs +22 -5
  302. package/dist/components/Theme/index.d.ts +6 -12
  303. package/dist/components/Theme/index.d.ts.map +1 -1
  304. package/dist/components/Theme/index.js +22 -5
  305. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  306. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  307. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  308. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  309. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
  310. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
  311. package/dist/components/ThemeToggle/icons.cjs +48 -0
  312. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  313. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  314. package/dist/components/ThemeToggle/icons.js +48 -0
  315. package/dist/components/ThemeToggle/index.cjs +6 -50
  316. package/dist/components/ThemeToggle/index.d.ts +5 -3
  317. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  318. package/dist/components/ThemeToggle/index.js +3 -47
  319. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  320. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  321. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  322. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  323. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  324. package/dist/components/ThinkingIndicator/index.js +7 -8
  325. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  326. package/dist/components/Toast/Toast.module.scss.js +29 -30
  327. package/dist/components/Toast/index.cjs +28 -30
  328. package/dist/components/Toast/index.d.ts +9 -8
  329. package/dist/components/Toast/index.d.ts.map +1 -1
  330. package/dist/components/Toast/index.js +28 -30
  331. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  332. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  333. package/dist/components/ToggleGroup/index.cjs +4 -5
  334. package/dist/components/ToggleGroup/index.d.ts +7 -6
  335. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  336. package/dist/components/ToggleGroup/index.js +4 -5
  337. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  338. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  339. package/dist/components/Tooltip/index.cjs +24 -40
  340. package/dist/components/Tooltip/index.d.ts +4 -4
  341. package/dist/components/Tooltip/index.d.ts.map +1 -1
  342. package/dist/components/Tooltip/index.js +24 -40
  343. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  344. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  346. package/dist/data-table-virtual.cjs +3 -2
  347. package/dist/data-table-virtual.js +3 -2
  348. package/dist/data-table.cjs +3 -2
  349. package/dist/data-table.js +3 -2
  350. package/dist/datepicker.cjs +26 -13
  351. package/dist/datepicker.js +26 -13
  352. package/dist/editor.cjs +68 -28
  353. package/dist/editor.js +68 -28
  354. package/dist/index.cjs +6 -2
  355. package/dist/index.d.ts +9 -9
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +8 -4
  358. package/dist/markdown.cjs +21 -29
  359. package/dist/markdown.js +21 -29
  360. package/dist/measurements/generated.cjs +46 -94
  361. package/dist/measurements/generated.d.ts +44 -92
  362. package/dist/measurements/generated.d.ts.map +1 -1
  363. package/dist/measurements/generated.js +46 -94
  364. package/dist/measurements/index.d.ts +1 -1
  365. package/dist/measurements/index.d.ts.map +1 -1
  366. package/dist/utils/a11y.cjs +5 -2
  367. package/dist/utils/a11y.d.ts +5 -5
  368. package/dist/utils/a11y.d.ts.map +1 -1
  369. package/dist/utils/a11y.js +5 -2
  370. package/dist/utils/canonical-stamp.cjs +2 -8
  371. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  372. package/dist/utils/canonical-stamp.js +1 -7
  373. package/dist/utils/css-warning.cjs +1 -1
  374. package/dist/utils/css-warning.js +1 -1
  375. package/dist/utils/env.cjs +17 -0
  376. package/dist/utils/env.d.ts +3 -0
  377. package/dist/utils/env.d.ts.map +1 -0
  378. package/dist/utils/env.js +17 -0
  379. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  380. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  381. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  382. package/dist/utils/keyboard-shortcuts.js +3 -10
  383. package/dist/utils/seed-derivation.cjs +10 -7
  384. package/dist/utils/seed-derivation.d.ts +1 -3
  385. package/dist/utils/seed-derivation.d.ts.map +1 -1
  386. package/dist/utils/seed-derivation.js +10 -7
  387. package/dist/utils/theme-presets.cjs +5 -10
  388. package/dist/utils/theme-presets.d.ts +1 -2
  389. package/dist/utils/theme-presets.d.ts.map +1 -1
  390. package/dist/utils/theme-presets.js +5 -10
  391. package/fragments.json +1 -1
  392. package/package.json +9 -10
  393. package/src/assets/fragments-logo.tsx +2 -2
  394. package/src/assets/fragments-wordmark.tsx +4 -2
  395. package/src/assets/nav-glyph.module.scss +166 -0
  396. package/src/assets/nav-glyph.tsx +188 -0
  397. package/src/components/Accordion/Accordion.contract.json +24 -48
  398. package/src/components/Accordion/Accordion.module.scss +5 -3
  399. package/src/components/Alert/Alert.contract.json +49 -65
  400. package/src/components/Alert/Alert.module.scss +57 -47
  401. package/src/components/Alert/index.tsx +72 -39
  402. package/src/components/AppShell/AppShell.contract.json +34 -51
  403. package/src/components/AppShell/AppShell.module.scss +99 -54
  404. package/src/components/AppShell/index.tsx +2 -2
  405. package/src/components/Avatar/Avatar.contract.json +31 -48
  406. package/src/components/Avatar/Avatar.module.scss +4 -2
  407. package/src/components/Badge/Badge.contract.json +86 -55
  408. package/src/components/Badge/Badge.module.scss +80 -48
  409. package/src/components/Badge/index.tsx +34 -17
  410. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  411. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  412. package/src/components/Box/Box.contract.json +40 -148
  413. package/src/components/Box/Box.module.scss +7 -6
  414. package/src/components/Box/index.tsx +92 -99
  415. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  416. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
  417. package/src/components/Breadcrumbs/index.tsx +5 -1
  418. package/src/components/Button/Button.module.scss +261 -185
  419. package/src/components/Button/index.tsx +41 -28
  420. package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
  421. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  422. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  423. package/src/components/Card/Card.module.scss +97 -76
  424. package/src/components/Card/index.tsx +44 -20
  425. package/src/components/Chart/Chart.contract.json +21 -29
  426. package/src/components/Chart/Chart.module.scss +6 -5
  427. package/src/components/Chart/index.tsx +36 -6
  428. package/src/components/Checkbox/Checkbox.contract.json +28 -27
  429. package/src/components/Checkbox/Checkbox.module.scss +47 -54
  430. package/src/components/Checkbox/index.tsx +10 -10
  431. package/src/components/Chip/Chip.contract.json +38 -45
  432. package/src/components/Chip/Chip.module.scss +24 -23
  433. package/src/components/Chip/index.tsx +12 -7
  434. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  435. package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
  436. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  437. package/src/components/CodeBlock/index.tsx +114 -51
  438. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  439. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  440. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  441. package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
  442. package/src/components/ColorPicker/index.tsx +6 -1
  443. package/src/components/Combobox/Combobox.contract.json +36 -37
  444. package/src/components/Combobox/Combobox.module.scss +16 -19
  445. package/src/components/Combobox/index.tsx +41 -6
  446. package/src/components/Command/Command.contract.json +28 -44
  447. package/src/components/Command/Command.module.scss +19 -21
  448. package/src/components/Command/index.tsx +64 -47
  449. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  450. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  451. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  452. package/src/components/ConversationList/index.tsx +2 -2
  453. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  454. package/src/components/DataTable/DataTable.module.scss +24 -17
  455. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  456. package/src/components/DataTable/index.tsx +9 -8
  457. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  458. package/src/components/DatePicker/DatePicker.module.scss +41 -44
  459. package/src/components/DatePicker/index.tsx +23 -9
  460. package/src/components/Dialog/Dialog.module.scss +26 -32
  461. package/src/components/Dialog/index.tsx +51 -39
  462. package/src/components/Drawer/Drawer.contract.json +28 -42
  463. package/src/components/Drawer/Drawer.module.scss +123 -64
  464. package/src/components/Drawer/index.tsx +7 -5
  465. package/src/components/Editor/Editor.contract.json +32 -49
  466. package/src/components/Editor/Editor.module.scss +60 -25
  467. package/src/components/Editor/index.tsx +240 -179
  468. package/src/components/EmptyState/EmptyState.contract.json +33 -45
  469. package/src/components/EmptyState/EmptyState.module.scss +37 -21
  470. package/src/components/EmptyState/index.tsx +56 -23
  471. package/src/components/Field/Field.contract.json +28 -46
  472. package/src/components/Field/Field.module.scss +2 -1
  473. package/src/components/Field/index.tsx +5 -1
  474. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  475. package/src/components/Fieldset/Fieldset.module.scss +15 -7
  476. package/src/components/Form/Form.contract.json +23 -23
  477. package/src/components/Grid/Grid.contract.json +28 -64
  478. package/src/components/Grid/Grid.module.scss +2 -2
  479. package/src/components/Grid/index.tsx +10 -10
  480. package/src/components/Header/Header.contract.json +31 -67
  481. package/src/components/Header/Header.module.scss +57 -54
  482. package/src/components/Header/index.tsx +134 -122
  483. package/src/components/Icon/Icon.contract.json +37 -81
  484. package/src/components/Icon/Icon.module.scss +13 -12
  485. package/src/components/Icon/index.tsx +31 -31
  486. package/src/components/IconButton/IconButton.contract.json +37 -21
  487. package/src/components/IconButton/IconButton.module.scss +19 -11
  488. package/src/components/IconButton/index.tsx +6 -5
  489. package/src/components/Image/Image.contract.json +23 -56
  490. package/src/components/Input/Input.contract.json +25 -44
  491. package/src/components/Input/Input.module.scss +6 -55
  492. package/src/components/Input/index.tsx +2 -18
  493. package/src/components/Link/Link.contract.json +46 -58
  494. package/src/components/Link/Link.module.scss +41 -10
  495. package/src/components/Link/index.tsx +27 -6
  496. package/src/components/List/List.contract.json +33 -62
  497. package/src/components/List/List.module.scss +10 -5
  498. package/src/components/List/index.tsx +17 -13
  499. package/src/components/Listbox/Listbox.contract.json +21 -37
  500. package/src/components/Listbox/Listbox.module.scss +14 -20
  501. package/src/components/Loading/Loading.contract.json +41 -65
  502. package/src/components/Loading/Loading.module.scss +37 -31
  503. package/src/components/Loading/index.tsx +15 -14
  504. package/src/components/Main/Main.contract.json +17 -9
  505. package/src/components/Markdown/Markdown.contract.json +22 -43
  506. package/src/components/Markdown/Markdown.module.scss +45 -6
  507. package/src/components/Markdown/index.tsx +48 -49
  508. package/src/components/Menu/Menu.contract.json +30 -46
  509. package/src/components/Menu/Menu.module.scss +32 -16
  510. package/src/components/Message/Message.contract.json +31 -54
  511. package/src/components/Message/Message.module.scss +18 -9
  512. package/src/components/Message/index.tsx +2 -2
  513. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  514. package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
  515. package/src/components/NavigationMenu/index.tsx +105 -81
  516. package/src/components/Pagination/Pagination.contract.json +22 -40
  517. package/src/components/Pagination/Pagination.module.scss +9 -16
  518. package/src/components/Popover/Popover.contract.json +28 -50
  519. package/src/components/Popover/Popover.module.scss +30 -28
  520. package/src/components/Progress/Progress.contract.json +39 -35
  521. package/src/components/Progress/Progress.module.scss +16 -10
  522. package/src/components/Progress/index.tsx +34 -16
  523. package/src/components/Prompt/Prompt.contract.json +40 -56
  524. package/src/components/Prompt/Prompt.module.scss +49 -48
  525. package/src/components/Prompt/index.tsx +17 -15
  526. package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
  527. package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
  528. package/src/components/RadioGroup/index.tsx +23 -10
  529. package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
  530. package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
  531. package/src/components/ScrollArea/index.tsx +16 -16
  532. package/src/components/ScrollArea/scroll-state.ts +24 -24
  533. package/src/components/Select/Select.module.scss +20 -19
  534. package/src/components/Select/index.tsx +26 -24
  535. package/src/components/Separator/Separator.contract.json +29 -53
  536. package/src/components/Separator/Separator.module.scss +24 -40
  537. package/src/components/Separator/index.tsx +16 -11
  538. package/src/components/Sidebar/Sidebar.contract.json +35 -67
  539. package/src/components/Sidebar/Sidebar.module.scss +94 -88
  540. package/src/components/Sidebar/index.tsx +167 -167
  541. package/src/components/Skeleton/Skeleton.contract.json +34 -60
  542. package/src/components/Skeleton/Skeleton.module.scss +50 -26
  543. package/src/components/Skeleton/index.tsx +16 -15
  544. package/src/components/Slider/Slider.contract.json +27 -39
  545. package/src/components/Slider/Slider.module.scss +9 -22
  546. package/src/components/Stack/Stack.contract.json +30 -57
  547. package/src/components/Stack/Stack.module.scss +26 -24
  548. package/src/components/Stack/index.tsx +3 -3
  549. package/src/components/Switch/Switch.contract.json +33 -46
  550. package/src/components/Switch/Switch.module.scss +106 -59
  551. package/src/components/Table/Table.contract.json +28 -46
  552. package/src/components/Table/Table.module.scss +24 -16
  553. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  554. package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
  555. package/src/components/TableOfContents/index.tsx +27 -10
  556. package/src/components/Tabs/Tabs.contract.json +35 -56
  557. package/src/components/Tabs/Tabs.module.scss +27 -31
  558. package/src/components/Tabs/index.tsx +30 -15
  559. package/src/components/Text/Text.contract.json +52 -72
  560. package/src/components/Text/Text.module.scss +34 -18
  561. package/src/components/Text/index.tsx +123 -83
  562. package/src/components/Textarea/Textarea.contract.json +24 -55
  563. package/src/components/Textarea/Textarea.module.scss +22 -52
  564. package/src/components/Textarea/index.tsx +3 -14
  565. package/src/components/Theme/Theme.contract.json +35 -53
  566. package/src/components/Theme/index.tsx +41 -13
  567. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  568. package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
  569. package/src/components/ThemeToggle/icons.tsx +46 -0
  570. package/src/components/ThemeToggle/index.tsx +9 -55
  571. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
  572. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  573. package/src/components/ThinkingIndicator/index.tsx +12 -14
  574. package/src/components/Toast/Toast.contract.json +55 -49
  575. package/src/components/Toast/Toast.module.scss +50 -105
  576. package/src/components/Toast/index.tsx +39 -34
  577. package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
  578. package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
  579. package/src/components/ToggleGroup/index.tsx +11 -11
  580. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  581. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  582. package/src/components/Tooltip/index.tsx +19 -24
  583. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  584. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  585. package/src/components/VisuallyHidden/index.tsx +5 -5
  586. package/src/index.ts +16 -12
  587. package/src/measurements/MeasurementTargets.module.scss +6 -7
  588. package/src/measurements/generated.ts +46 -97
  589. package/src/measurements/index.ts +0 -1
  590. package/src/measurements/measurements.json +44 -116
  591. package/src/recipes/_action.scss +4 -4
  592. package/src/recipes/_boolean-range.scss +12 -16
  593. package/src/recipes/_feedback.scss +17 -16
  594. package/src/recipes/_field.scss +28 -16
  595. package/src/recipes/_layout.scss +14 -7
  596. package/src/recipes/_navigation.scss +84 -29
  597. package/src/recipes/_overlay.scss +143 -43
  598. package/src/recipes/_popup.scss +54 -34
  599. package/src/recipes/_prose.scss +48 -28
  600. package/src/recipes/_representation.scss +10 -9
  601. package/src/recipes/_segmented.scss +1 -1
  602. package/src/recipes/_table-chrome.scss +42 -17
  603. package/src/recipes/_target.scss +2 -4
  604. package/src/recipes/_typography.scss +10 -0
  605. package/src/scss.d.ts +1 -1
  606. package/src/styles/globals.scss +31 -25
  607. package/src/tokens/_component-properties.scss +19 -1
  608. package/src/tokens/_computed.scss +32 -49
  609. package/src/tokens/_derive.scss +112 -210
  610. package/src/tokens/_measurements.catalog.generated.css +62 -44
  611. package/src/tokens/_measurements.generated.scss +119 -249
  612. package/src/tokens/_mixins.scss +49 -48
  613. package/src/tokens/_palettes.scss +39 -167
  614. package/src/tokens/_property-registrations.scss +9 -0
  615. package/src/tokens/_seeds.scss +20 -31
  616. package/src/tokens/_variables.scss +251 -94
  617. package/src/utils/a11y.tsx +69 -69
  618. package/src/utils/aria.ts +3 -3
  619. package/src/utils/canonical-stamp.ts +2 -12
  620. package/src/utils/css-warning.ts +7 -7
  621. package/src/utils/env.ts +25 -0
  622. package/src/utils/keyboard-shortcuts.ts +131 -126
  623. package/src/utils/seed-derivation.ts +11 -14
  624. package/src/utils/theme-presets.ts +5 -12
  625. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  626. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  627. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  628. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  629. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  630. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  631. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  632. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  633. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  634. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  635. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  636. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  637. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  638. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  639. package/dist/blocks/ContactForm.block.d.ts +0 -3
  640. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  641. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  642. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  643. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  644. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  645. package/dist/blocks/DataTable.block.d.ts +0 -3
  646. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  647. package/dist/blocks/EmptyState.block.d.ts +0 -3
  648. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  649. package/dist/blocks/FAQSection.block.d.ts +0 -3
  650. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  651. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  652. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  653. package/dist/blocks/HeroSection.block.d.ts +0 -3
  654. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  655. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  656. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  657. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  658. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  659. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  660. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  661. package/dist/blocks/ProductCard.block.d.ts +0 -3
  662. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  663. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  664. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  665. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  666. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  667. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  668. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  669. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  670. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  671. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  672. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  673. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  674. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  675. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  676. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  677. package/dist/components/Toggle/index.d.ts +0 -3
  678. package/dist/components/Toggle/index.d.ts.map +0 -1
  679. package/src/components/Button/Button.contract.json +0 -218
  680. package/src/components/Card/Card.contract.json +0 -175
  681. package/src/components/DataTable/DataTable.contract.json +0 -302
  682. package/src/components/Dialog/Dialog.contract.json +0 -159
  683. package/src/components/Select/Select.contract.json +0 -259
  684. package/src/components/Toggle/index.ts +0 -7
  685. package/src/tokens/_density.scss +0 -85
@@ -8,19 +8,25 @@ import styles from "./Badge.module.scss";
8
8
  * Badge for status indicators, labels, and counts.
9
9
  * @see https://usefragments.com/components/badge
10
10
  */
11
+ export type BadgeVariant = "soft" | "outline" | "ghost";
12
+ export type BadgeTone = "neutral" | "accent" | "info" | "success" | "warning" | "danger";
13
+
11
14
  export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
12
15
  children: React.ReactNode;
13
- /** Visual style variant.
16
+ /** Chrome family.
14
17
  *
15
- * - `default` / semantic / `outline`: pill-shaped status badges for
16
- * tags, counts, or state.
17
- * - `label`: hairline-bordered label on the shared control floor for
18
- * metadata pills inside dense dashboard rows. Pair with `dotColor`.
19
- * - `dim`: transparent 32px filter-pill chrome used
20
- * for toolbar filter chips. Pair with `active` to mark the selected one.
21
- * @default "default"
18
+ * - `soft` (default): tinted pill for tags, counts, or state.
19
+ * - `outline`: hairline-bordered, transparent — metadata pills inside
20
+ * dense rows. Pair with `dotColor`.
21
+ * - `ghost`: transparent filter-pill chrome for toolbar filters. Pair with
22
+ * `active` to mark the selected one.
23
+ * @default "soft"
22
24
  * @see https://usefragments.com/components/badge#variants */
23
- variant?: "default" | "success" | "warning" | "error" | "info" | "outline" | "label" | "dim";
25
+ variant?: BadgeVariant;
26
+ /** Colour. `neutral` is the plain badge; the semantic tones paint the
27
+ * shared status ramp.
28
+ * @default "neutral" */
29
+ tone?: BadgeTone;
24
30
  /** Badge size.
25
31
  * @default "md" */
26
32
  size?: "sm" | "md" | "lg";
@@ -29,13 +35,13 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
29
35
  /** Breathe the status dot, for a state that is still happening rather than
30
36
  * one that has settled. Respects `prefers-reduced-motion`. */
31
37
  dotPulse?: boolean;
32
- /** Color for the leading status dot. Applies to `variant="label"` (and the
33
- * generic `dot` prop). Accepts any CSS color including CSS custom properties. */
38
+ /** Color for the leading status dot. Accepts any CSS color including CSS
39
+ * custom properties. */
34
40
  dotColor?: string;
35
41
  /** Icon element rendered before the label */
36
42
  icon?: React.ReactNode;
37
- /** Marks `variant="dim"` as the currently selected filter. Has no effect on
38
- * other variants. */
43
+ /** Marks `variant="ghost"` as the currently selected filter. Has no effect
44
+ * on other variants. */
39
45
  active?: boolean;
40
46
  /** Makes the badge removable. Called when dismiss button is clicked. */
41
47
  onRemove?: () => void;
@@ -44,10 +50,20 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
44
50
  announce?: boolean;
45
51
  }
46
52
 
53
+ const TONE_CLASS: Record<BadgeTone, string | undefined> = {
54
+ neutral: undefined,
55
+ accent: styles.toneAccent,
56
+ info: styles.toneInfo,
57
+ success: styles.toneSuccess,
58
+ warning: styles.toneWarning,
59
+ danger: styles.toneDanger,
60
+ };
61
+
47
62
  const BadgeRoot = React.forwardRef<HTMLSpanElement, BadgeProps>(function Badge(
48
63
  {
49
64
  children,
50
- variant = "default",
65
+ variant = "soft",
66
+ tone = "neutral",
51
67
  size = "md",
52
68
  dot = false,
53
69
  dotPulse = false,
@@ -68,7 +84,8 @@ const BadgeRoot = React.forwardRef<HTMLSpanElement, BadgeProps>(function Badge(
68
84
  styles.badge,
69
85
  styles[size],
70
86
  styles[variant],
71
- active && variant === "dim" && styles.active,
87
+ TONE_CLASS[tone],
88
+ active && variant === "ghost" && styles.active,
72
89
  className,
73
90
  ]
74
91
  .filter(Boolean)
@@ -81,8 +98,8 @@ const BadgeRoot = React.forwardRef<HTMLSpanElement, BadgeProps>(function Badge(
81
98
  // For status badges, include the status in the aria-label if not provided
82
99
  const effectiveAriaLabel =
83
100
  ariaLabel ||
84
- (announce && variant !== "default" && variant !== "outline"
85
- ? `${variant}: ${typeof children === "string" ? children : ""}`
101
+ (announce && tone !== "neutral"
102
+ ? `${tone}: ${typeof children === "string" ? children : ""}`
86
103
  : undefined);
87
104
 
88
105
  return (
@@ -1,16 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "BentoGrid",
4
- "description": "Asymmetric grid layout with responsive spans and built-in surface styling for bento-style feature sections",
4
+ "description": "Asymmetric feature grid where tiles span different widths and heights.",
5
5
  "category": "layout",
6
- "tags": [
7
- "bento",
8
- "grid",
9
- "layout",
10
- "responsive",
11
- "feature-grid",
12
- "asymmetric"
13
- ],
6
+ "tags": ["bento", "grid", "layout", "responsive", "feature-grid", "asymmetric"],
14
7
  "status": "stable",
15
8
  "sourcePath": "src/components/BentoGrid/index.tsx",
16
9
  "exportName": "BentoGrid",
@@ -31,25 +24,14 @@
31
24
  "description": "Number of columns — auto-collapses responsively (3→2→1)",
32
25
  "default": "3",
33
26
  "required": false,
34
- "values": [
35
- "2",
36
- "3",
37
- "4"
38
- ]
27
+ "values": ["2", "3", "4"]
39
28
  },
40
29
  "gap": {
41
30
  "type": "enum",
42
31
  "description": "Gap between grid items, mapped to spacing tokens",
43
32
  "default": "md",
44
33
  "required": false,
45
- "values": [
46
- "none",
47
- "xs",
48
- "sm",
49
- "md",
50
- "lg",
51
- "xl"
52
- ]
34
+ "values": ["none", "xs", "sm", "md", "lg", "xl"]
53
35
  },
54
36
  "style": {
55
37
  "type": "object",
@@ -59,22 +41,21 @@
59
41
  },
60
42
  "usage": {
61
43
  "when": [
62
- "Asymmetric feature grids with hero + supporting items",
63
- "Dashboard overviews where cards have different visual weight",
64
- "Marketing pages with mixed-size content blocks",
65
- "Any layout where items need per-breakpoint column/row spans"
44
+ "Feature grids with one hero tile and supporting tiles",
45
+ "Dashboards where cards carry different weight",
46
+ "Marketing sections with mixed-size blocks"
66
47
  ],
67
48
  "whenNot": [
68
- "Uniform grids where all items are the same size (use Grid)",
69
- "Form layouts with labeled fields (use Grid)",
70
- "Simple stacked content (use Stack)"
49
+ "Uniform tiles of one size (use Grid)",
50
+ "Labelled form fields (use Grid)",
51
+ "A single column of content (use Stack)"
71
52
  ],
72
53
  "guidelines": [
73
- "Use colSpan/rowSpan with responsive objects for layouts that adapt across breakpoints",
74
- "The hero item typically uses colSpan={2} rowSpan={2} at lg and above",
75
- "Items include built-in surface styling no need to wrap children in Card",
76
- "Grid auto-collapses: 32 columns below lg, all→1 column below sm",
77
- "Root and Item forward DOM props (aria-*, data-*, handlers), and Item style merges with span CSS vars"
54
+ "colSpan and rowSpan take per-breakpoint objects",
55
+ "A hero tile is usually colSpan 2 and rowSpan 2 from lg up",
56
+ "Tiles carry their own surface — do not wrap them in Card",
57
+ "Columns collapse 3 to 2 below lg, and to 1 below sm",
58
+ "Keep source order equal to visual order for screen readers"
78
59
  ],
79
60
  "accessibility": [
80
61
  "Grid is purely visual — it does not affect reading order or semantics",
@@ -86,23 +67,18 @@
86
67
  "examples": [
87
68
  {
88
69
  "name": "Default",
89
- "description": "Basic 3-column uniform bento grid",
90
- "code": "<BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n <BentoGrid.Item>Item 6</BentoGrid.Item>\n</BentoGrid>"
70
+ "description": "Equal tiles, each on its own surface.",
71
+ "code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n <BentoGrid.Item>Item 6</BentoGrid.Item>\n </BentoGrid>\n</Box>"
91
72
  },
92
73
  {
93
74
  "name": "Hero Layout",
94
- "description": "2×2 hero item with 4 supporting items in a 3-column grid",
95
- "code": "<BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item colSpan={{ base: 1, lg: 2 }} rowSpan={{ base: 1, lg: 2 }}>\n Hero content\n </BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n</BentoGrid>"
75
+ "description": "One tile takes two columns and two rows; the rest fill around it.",
76
+ "code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item colSpan={{ base: 1, lg: 2 }} rowSpan={{ base: 1, lg: 2 }}>\n Hero content\n </BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n </BentoGrid>\n</Box>"
96
77
  },
97
78
  {
98
79
  "name": "Two Column",
99
- "description": "2-column bento with a wide item",
100
- "code": "<BentoGrid columns={2} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item colSpan={2}>Wide item</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n</BentoGrid>"
101
- },
102
- {
103
- "name": "Full-Width Banner",
104
- "description": "3-column grid with a full-width item spanning all columns",
105
- "code": "<BentoGrid columns={3} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item>Item 3</BentoGrid.Item>\n <BentoGrid.Item colSpan={3}>Full-width banner</BentoGrid.Item>\n</BentoGrid>"
80
+ "description": "colSpan stretches a tile across the whole row.",
81
+ "code": "import { BentoGrid } from '@/components/BentoGrid';\nimport { Box } from '@/components/Box';\n\n<Box width=\"100%\">\n <BentoGrid columns={2} gap=\"md\">\n <BentoGrid.Item>Item 1</BentoGrid.Item>\n <BentoGrid.Item>Item 2</BentoGrid.Item>\n <BentoGrid.Item colSpan={2}>Wide item</BentoGrid.Item>\n <BentoGrid.Item>Item 4</BentoGrid.Item>\n <BentoGrid.Item>Item 5</BentoGrid.Item>\n </BentoGrid>\n</Box>"
106
82
  }
107
83
  ],
108
84
  "relations": [
@@ -83,8 +83,8 @@
83
83
  --_col-span: var(--bento-col-span, 1);
84
84
  --_row-span: var(--bento-row-span, 1);
85
85
 
86
- grid-column: span var(--_col-span);
87
- grid-row: span var(--_row-span);
86
+ grid-column: span var(--_col-span, var(--bento-col-span, 1));
87
+ grid-row: span var(--_row-span, var(--bento-row-span, 1));
88
88
 
89
89
  @include breakpoint-sm {
90
90
  --_col-span: var(--bento-col-span-sm, var(--bento-col-span, 1));
@@ -129,12 +129,8 @@
129
129
  // Accessibility: High Contrast Mode
130
130
  // ============================================
131
131
 
132
- @media (prefers-contrast: more) {
133
- .item {
134
- border-color: var(--fui-text-primary, $fui-text-primary);
135
- outline: var(--fui-stroke-hairline, 1px) solid var(--fui-text-primary, $fui-text-primary);
136
- outline-offset: calc(-1 * var(--fui-stroke-default, 2px));
137
- }
132
+ .item {
133
+ @include high-contrast-outline;
138
134
  }
139
135
 
140
136
  // ============================================
@@ -1,15 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Box",
4
- "description": "Primitive layout component for applying spacing, backgrounds, and borders. A flexible container for building custom layouts.",
4
+ "description": "Applies spacing, background, border, and radius to any element.",
5
5
  "category": "layout",
6
- "tags": [
7
- "layout",
8
- "container",
9
- "spacing",
10
- "primitive",
11
- "box"
12
- ],
6
+ "tags": ["layout", "container", "spacing", "primitive", "box"],
13
7
  "status": "stable",
14
8
  "sourcePath": "src/components/Box/index.tsx",
15
9
  "exportName": "Box",
@@ -54,122 +48,55 @@
54
48
  "description": "HTML element to render",
55
49
  "default": "div",
56
50
  "required": false,
57
- "values": [
58
- "div",
59
- "section",
60
- "article",
61
- "aside",
62
- "main",
63
- "header",
64
- "footer",
65
- "nav",
66
- "span"
67
- ]
51
+ "values": ["div", "section", "article", "aside", "main", "header", "footer", "nav", "span"]
68
52
  },
69
53
  "padding": {
70
54
  "type": "enum",
71
55
  "description": "Padding on all sides",
72
56
  "required": false,
73
- "values": [
74
- "none",
75
- "xs",
76
- "sm",
77
- "md",
78
- "lg",
79
- "xl"
80
- ]
57
+ "values": ["none", "xs", "sm", "md", "lg", "xl"]
81
58
  },
82
59
  "paddingX": {
83
60
  "type": "enum",
84
61
  "description": "Horizontal padding",
85
62
  "required": false,
86
- "values": [
87
- "none",
88
- "xs",
89
- "sm",
90
- "md",
91
- "lg",
92
- "xl"
93
- ]
63
+ "values": ["none", "xs", "sm", "md", "lg", "xl"]
94
64
  },
95
65
  "paddingY": {
96
66
  "type": "enum",
97
67
  "description": "Vertical padding",
98
68
  "required": false,
99
- "values": [
100
- "none",
101
- "xs",
102
- "sm",
103
- "md",
104
- "lg",
105
- "xl"
106
- ]
69
+ "values": ["none", "xs", "sm", "md", "lg", "xl"]
107
70
  },
108
71
  "margin": {
109
72
  "type": "enum",
110
73
  "description": "Margin on all sides",
111
74
  "required": false,
112
- "values": [
113
- "none",
114
- "xs",
115
- "sm",
116
- "md",
117
- "lg",
118
- "xl",
119
- "auto"
120
- ]
75
+ "values": ["none", "xs", "sm", "md", "lg", "xl", "auto"]
121
76
  },
122
77
  "marginX": {
123
78
  "type": "enum",
124
79
  "description": "Horizontal margin",
125
80
  "required": false,
126
- "values": [
127
- "none",
128
- "xs",
129
- "sm",
130
- "md",
131
- "lg",
132
- "xl",
133
- "auto"
134
- ]
81
+ "values": ["none", "xs", "sm", "md", "lg", "xl", "auto"]
135
82
  },
136
83
  "marginY": {
137
84
  "type": "enum",
138
85
  "description": "Vertical margin",
139
86
  "required": false,
140
- "values": [
141
- "none",
142
- "xs",
143
- "sm",
144
- "md",
145
- "lg",
146
- "xl",
147
- "auto"
148
- ]
87
+ "values": ["none", "xs", "sm", "md", "lg", "xl", "auto"]
149
88
  },
150
89
  "background": {
151
90
  "type": "enum",
152
91
  "description": "Background color",
153
92
  "required": false,
154
- "values": [
155
- "none",
156
- "primary",
157
- "secondary",
158
- "tertiary",
159
- "elevated"
160
- ]
93
+ "values": ["none", "primary", "secondary", "tertiary", "elevated"]
161
94
  },
162
95
  "rounded": {
163
96
  "type": "enum",
164
97
  "description": "Border radius",
165
98
  "required": false,
166
- "values": [
167
- "none",
168
- "sm",
169
- "md",
170
- "lg",
171
- "full"
172
- ]
99
+ "values": ["none", "sm", "md", "lg", "full"]
173
100
  },
174
101
  "border": {
175
102
  "type": "boolean",
@@ -205,60 +132,31 @@
205
132
  "type": "enum",
206
133
  "description": "Border color variant (requires border or directional border)",
207
134
  "required": false,
208
- "values": [
209
- "default",
210
- "strong",
211
- "accent",
212
- "danger"
213
- ]
135
+ "values": ["default", "strong", "accent", "danger"]
214
136
  },
215
137
  "shadow": {
216
138
  "type": "enum",
217
139
  "description": "Box shadow",
218
140
  "required": false,
219
- "values": [
220
- "none",
221
- "sm",
222
- "md",
223
- "lg"
224
- ]
141
+ "values": ["none", "sm", "md", "lg"]
225
142
  },
226
143
  "overflow": {
227
144
  "type": "enum",
228
145
  "description": "Overflow behavior",
229
146
  "required": false,
230
- "values": [
231
- "hidden",
232
- "auto",
233
- "scroll",
234
- "visible"
235
- ]
147
+ "values": ["hidden", "auto", "scroll", "visible"]
236
148
  },
237
149
  "color": {
238
150
  "type": "enum",
239
151
  "description": "Text color",
240
152
  "required": false,
241
- "values": [
242
- "primary",
243
- "secondary",
244
- "tertiary",
245
- "accent",
246
- "inverse"
247
- ]
153
+ "values": ["primary", "secondary", "tertiary", "accent", "inverse"]
248
154
  },
249
155
  "display": {
250
156
  "type": "enum",
251
157
  "description": "Display type",
252
158
  "required": false,
253
- "values": [
254
- "none",
255
- "block",
256
- "inline",
257
- "inline-block",
258
- "flex",
259
- "inline-flex",
260
- "grid"
261
- ]
159
+ "values": ["none", "block", "inline", "inline-block", "flex", "inline-flex", "grid"]
262
160
  },
263
161
  "width": {
264
162
  "type": "union",
@@ -303,23 +201,21 @@
303
201
  },
304
202
  "usage": {
305
203
  "when": [
306
- "Applying consistent padding or margin to content sections",
307
- "Creating bordered or elevated containers",
308
- "Wrapping content with semantic HTML elements",
309
- "Building custom layouts not covered by Stack or Grid"
204
+ "Padding or insetting a section of content",
205
+ "Bordered or elevated containers",
206
+ "Rendering a semantic element with design-system spacing"
310
207
  ],
311
208
  "whenNot": [
312
- "Horizontal or vertical stacking (use Stack)",
313
- "Grid-based layouts (use Grid)",
314
- "Card-like containers with header/body/footer (use Card)",
315
- "Simple text styling (use Text)"
209
+ "Spacing a row or column of siblings (use Stack)",
210
+ "Two-dimensional layouts (use Grid)",
211
+ "Header/body/footer surfaces (use Card)",
212
+ "Styling text alone (use Text)"
316
213
  ],
317
214
  "guidelines": [
318
- "Use padding props instead of inline styles for consistency",
319
- "Choose semantic HTML elements (section, article) where appropriate",
320
- "Combine with Stack or Grid for complex layouts",
321
- "Use background variants from the design system, not custom colors",
322
- "Box forwards DOM props (id, role, aria-*, data-*, event handlers) to the rendered element"
215
+ "Use the padding and margin props, never inline styles",
216
+ "Set as=\"section\" or as=\"article\" so the markup stays semantic",
217
+ "Backgrounds come from the token scale no custom colours",
218
+ "Reach for Stack or Grid before nesting Boxes for layout"
323
219
  ],
324
220
  "accessibility": [
325
221
  "Choose semantic as prop values for proper document structure",
@@ -330,43 +226,43 @@
330
226
  "examples": [
331
227
  {
332
228
  "name": "Default",
333
- "description": "Basic box with padding",
229
+ "description": "Padding, background, and radius in one element.",
334
230
  "code": "<Box padding=\"md\" background=\"secondary\" rounded=\"md\">\n Content with padding and background\n</Box>"
335
231
  },
336
232
  {
337
233
  "name": "With Border",
338
- "description": "Bordered container",
234
+ "description": "A hairline border instead of a filled background.",
339
235
  "code": "<Box padding=\"lg\" border rounded=\"md\">\n Bordered content area\n</Box>"
340
236
  },
341
237
  {
342
238
  "name": "Directional Padding",
343
- "description": "Different horizontal and vertical padding",
239
+ "description": "Horizontal and vertical padding set separately.",
344
240
  "code": "<Box paddingX=\"xl\" paddingY=\"sm\" background=\"tertiary\" rounded=\"sm\">\n Wide horizontal padding, short vertical\n</Box>"
345
241
  },
346
242
  {
347
243
  "name": "Centered with Auto Margin",
348
- "description": "Centered content using margin auto",
349
- "code": "<Box padding=\"md\" marginX=\"auto\" background=\"elevated\" rounded=\"lg\" style={{ maxWidth: '300px' }}>\n Centered content\n</Box>"
244
+ "description": "marginX=\"auto\" centres a fixed-width box in a wider parent.",
245
+ "code": "import { Box } from '@/components/Box';\n\n<Box width=\"100%\" border rounded=\"md\" padding=\"md\">\n <Box padding=\"md\" marginX=\"auto\" width=\"240px\" background=\"elevated\" rounded=\"lg\">\n Centred by auto margin\n </Box>\n</Box>"
350
246
  },
351
247
  {
352
248
  "name": "Directional Borders",
353
- "description": "Individual border sides",
249
+ "description": "Border on chosen sides only.",
354
250
  "code": "<Box padding=\"md\" borderTop borderBottom>\n Top and bottom borders only\n</Box>"
355
251
  },
356
252
  {
357
253
  "name": "With Shadow",
358
- "description": "Box with shadow elevation",
254
+ "description": "Shadow lifts the surface off the page.",
359
255
  "code": "<Box padding=\"lg\" rounded=\"md\" shadow=\"md\" background=\"primary\">\n Elevated content with shadow\n</Box>"
360
256
  },
361
257
  {
362
258
  "name": "Overflow Hidden",
363
- "description": "Content overflow clipped",
364
- "code": "<Box padding=\"md\" overflow=\"hidden\" border rounded=\"md\" style={{ maxHeight: '60px' }}>\n This box clips overflowing content. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n</Box>"
259
+ "description": "Content past the box's height is clipped, not scrolled.",
260
+ "code": "import { Box } from '@/components/Box';\n\n<Box padding=\"md\" overflow=\"hidden\" border rounded=\"md\" width=\"320px\" height=\"72px\">\n This box clips its overflowing content. Lorem ipsum dolor sit amet, consectetur\n adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna\n aliqua, and this final sentence never becomes visible.\n</Box>"
365
261
  },
366
262
  {
367
263
  "name": "Text Colors",
368
- "description": "Text color variants",
369
- "code": "<Box padding=\"md\" display=\"flex\" style={{ gap: '16px' }}>\n <Box color=\"primary\">Primary</Box>\n <Box color=\"secondary\">Secondary</Box>\n <Box color=\"tertiary\">Tertiary</Box>\n <Box color=\"accent\">Accent</Box>\n</Box>"
264
+ "description": "Text colour tokens, from strongest to accent.",
265
+ "code": "import { Box } from '@/components/Box';\nimport { Stack } from '@/components/Stack';\n\n<Stack direction=\"row\" gap=\"md\">\n <Box color=\"primary\">Primary</Box>\n <Box color=\"secondary\">Secondary</Box>\n <Box color=\"tertiary\">Tertiary</Box>\n <Box color=\"accent\">Accent</Box>\n</Stack>"
370
266
  }
371
267
  ],
372
268
  "relations": [
@@ -404,15 +300,11 @@
404
300
  "height/minHeight/maxHeight: string|number - sizing",
405
301
  "All standard HTMLElement props are forwarded to the rendered element"
406
302
  ],
407
- "a11yRules": [
408
- "A11Y_SEMANTIC_HTML"
409
- ]
303
+ "a11yRules": ["A11Y_SEMANTIC_HTML"]
410
304
  },
411
305
  "ai": {
412
306
  "compositionPattern": "compound",
413
- "subComponents": [
414
- "Root"
415
- ]
307
+ "subComponents": ["Root"]
416
308
  },
417
309
  "provenance": {
418
310
  "source": "migrated",
@@ -1,5 +1,6 @@
1
1
  @use "../../recipes/layout";
2
2
  @use "../../tokens/variables" as *;
3
+ @use "../../tokens/measurements.generated" as measurements;
3
4
 
4
5
  .box {
5
6
  box-sizing: border-box;
@@ -181,7 +182,7 @@
181
182
 
182
183
  // Border radius
183
184
  .rounded-none {
184
- border-radius: 0;
185
+ border-radius: var(--fui-radius-none, #{$fui-radius-none});
185
186
  }
186
187
  .rounded-sm {
187
188
  border-radius: var(--fui-radius-sm, $fui-radius-sm);
@@ -198,21 +199,21 @@
198
199
 
199
200
  // Border
200
201
  .border {
201
- border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
202
+ border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
202
203
  }
203
204
 
204
205
  // Directional borders
205
206
  .borderTop {
206
- border-top: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
207
+ border-top: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
207
208
  }
208
209
  .borderBottom {
209
- border-bottom: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
210
+ border-bottom: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
210
211
  }
211
212
  .borderLeft {
212
- border-left: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
213
+ border-left: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
213
214
  }
214
215
  .borderRight {
215
- border-right: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
216
+ border-right: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
216
217
  }
217
218
 
218
219
  // Border color