@usefragments/ui 1.5.4 → 1.7.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 (667) hide show
  1. package/README.md +4 -4
  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/ui.css +10468 -6909
  6. package/dist/chart.cjs +31 -26
  7. package/dist/chart.js +31 -26
  8. package/dist/codeblock.cjs +55 -29
  9. package/dist/codeblock.js +55 -29
  10. package/dist/colorpicker.cjs +5 -2
  11. package/dist/colorpicker.js +5 -2
  12. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  13. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  14. package/dist/components/Alert/Alert.module.scss.cjs +15 -12
  15. package/dist/components/Alert/Alert.module.scss.js +15 -12
  16. package/dist/components/Alert/index.cjs +7 -1
  17. package/dist/components/Alert/index.d.ts +12 -6
  18. package/dist/components/Alert/index.d.ts.map +1 -1
  19. package/dist/components/Alert/index.js +7 -1
  20. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  21. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  22. package/dist/components/AppShell/index.cjs +5 -3
  23. package/dist/components/AppShell/index.d.ts +4 -2
  24. package/dist/components/AppShell/index.d.ts.map +1 -1
  25. package/dist/components/AppShell/index.js +5 -3
  26. package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
  27. package/dist/components/Avatar/Avatar.module.scss.js +17 -14
  28. package/dist/components/Avatar/index.cjs +100 -118
  29. package/dist/components/Avatar/index.d.ts +7 -5
  30. package/dist/components/Avatar/index.d.ts.map +1 -1
  31. package/dist/components/Avatar/index.js +100 -118
  32. package/dist/components/Badge/Badge.module.scss.cjs +19 -19
  33. package/dist/components/Badge/Badge.module.scss.js +19 -19
  34. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  35. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  36. package/dist/components/Box/Box.module.scss.cjs +152 -152
  37. package/dist/components/Box/Box.module.scss.js +152 -152
  38. package/dist/components/Box/index.cjs +64 -75
  39. package/dist/components/Box/index.d.ts +16 -16
  40. package/dist/components/Box/index.d.ts.map +1 -1
  41. package/dist/components/Box/index.js +64 -75
  42. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  43. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  44. package/dist/components/Button/Button.module.scss.cjs +14 -14
  45. package/dist/components/Button/Button.module.scss.js +14 -14
  46. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  47. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  48. package/dist/components/Card/Card.module.scss.cjs +30 -18
  49. package/dist/components/Card/Card.module.scss.js +31 -19
  50. package/dist/components/Card/index.cjs +8 -0
  51. package/dist/components/Card/index.d.ts +12 -2
  52. package/dist/components/Card/index.d.ts.map +1 -1
  53. package/dist/components/Card/index.js +8 -0
  54. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  55. package/dist/components/Chart/Chart.module.scss.js +15 -15
  56. package/dist/components/Chart/index.d.ts +7 -7
  57. package/dist/components/Chart/index.d.ts.map +1 -1
  58. package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
  59. package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
  60. package/dist/components/Checkbox/index.cjs +6 -8
  61. package/dist/components/Checkbox/index.d.ts.map +1 -1
  62. package/dist/components/Checkbox/index.js +6 -8
  63. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  64. package/dist/components/Chip/Chip.module.scss.js +15 -15
  65. package/dist/components/Chip/index.cjs +6 -6
  66. package/dist/components/Chip/index.d.ts +1 -1
  67. package/dist/components/Chip/index.js +4 -4
  68. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
  69. package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
  70. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  71. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  72. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  73. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  74. package/dist/components/CodeBlock/index.d.ts +17 -3
  75. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  76. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
  77. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
  78. package/dist/components/Collapsible/index.cjs +3 -2
  79. package/dist/components/Collapsible/index.d.ts +3 -3
  80. package/dist/components/Collapsible/index.d.ts.map +1 -1
  81. package/dist/components/Collapsible/index.js +3 -2
  82. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
  83. package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
  84. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  85. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
  86. package/dist/components/Combobox/Combobox.module.scss.js +21 -27
  87. package/dist/components/Combobox/index.cjs +21 -5
  88. package/dist/components/Combobox/index.d.ts.map +1 -1
  89. package/dist/components/Combobox/index.js +21 -5
  90. package/dist/components/Command/Command.module.scss.cjs +11 -11
  91. package/dist/components/Command/Command.module.scss.js +11 -11
  92. package/dist/components/Command/index.cjs +26 -15
  93. package/dist/components/Command/index.d.ts +2 -2
  94. package/dist/components/Command/index.d.ts.map +1 -1
  95. package/dist/components/Command/index.js +26 -15
  96. package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
  97. package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
  98. package/dist/components/ConversationList/index.cjs +40 -44
  99. package/dist/components/ConversationList/index.d.ts +3 -3
  100. package/dist/components/ConversationList/index.d.ts.map +1 -1
  101. package/dist/components/ConversationList/index.js +40 -44
  102. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  103. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  104. package/dist/components/DataTable/DataTable.icons.js +6 -33
  105. package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
  106. package/dist/components/DataTable/DataTable.module.scss.js +32 -56
  107. package/dist/components/DataTable/index.d.ts +5 -4
  108. package/dist/components/DataTable/index.d.ts.map +1 -1
  109. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  110. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  111. package/dist/components/DatePicker/index.d.ts.map +1 -1
  112. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  113. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  114. package/dist/components/Dialog/index.cjs +11 -14
  115. package/dist/components/Dialog/index.d.ts +7 -7
  116. package/dist/components/Dialog/index.d.ts.map +1 -1
  117. package/dist/components/Dialog/index.js +11 -14
  118. package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
  119. package/dist/components/Drawer/Drawer.module.scss.js +31 -28
  120. package/dist/components/Drawer/index.cjs +1 -1
  121. package/dist/components/Drawer/index.js +1 -1
  122. package/dist/components/Editor/Editor.module.scss.cjs +23 -23
  123. package/dist/components/Editor/Editor.module.scss.js +23 -23
  124. package/dist/components/Editor/index.d.ts +10 -10
  125. package/dist/components/Editor/index.d.ts.map +1 -1
  126. package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
  127. package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
  128. package/dist/components/EmptyState/index.cjs +8 -6
  129. package/dist/components/EmptyState/index.d.ts +9 -4
  130. package/dist/components/EmptyState/index.d.ts.map +1 -1
  131. package/dist/components/EmptyState/index.js +8 -6
  132. package/dist/components/Field/Field.module.scss.cjs +8 -5
  133. package/dist/components/Field/Field.module.scss.js +8 -5
  134. package/dist/components/Field/index.cjs +18 -1
  135. package/dist/components/Field/index.d.ts +9 -2
  136. package/dist/components/Field/index.d.ts.map +1 -1
  137. package/dist/components/Field/index.js +18 -1
  138. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  139. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  140. package/dist/components/Form/Form.module.scss.cjs +5 -2
  141. package/dist/components/Form/Form.module.scss.js +5 -2
  142. package/dist/components/Form/index.cjs +6 -1
  143. package/dist/components/Form/index.d.ts +8 -3
  144. package/dist/components/Form/index.d.ts.map +1 -1
  145. package/dist/components/Form/index.js +6 -1
  146. package/dist/components/Grid/Grid.module.scss.cjs +54 -72
  147. package/dist/components/Grid/Grid.module.scss.js +54 -72
  148. package/dist/components/Grid/index.cjs +57 -77
  149. package/dist/components/Grid/index.d.ts +11 -11
  150. package/dist/components/Grid/index.d.ts.map +1 -1
  151. package/dist/components/Grid/index.js +57 -77
  152. package/dist/components/Header/Header.module.scss.cjs +33 -33
  153. package/dist/components/Header/Header.module.scss.js +33 -33
  154. package/dist/components/Header/index.cjs +18 -38
  155. package/dist/components/Header/index.d.ts +15 -11
  156. package/dist/components/Header/index.d.ts.map +1 -1
  157. package/dist/components/Header/index.js +18 -38
  158. package/dist/components/Icon/Icon.module.scss.cjs +29 -8
  159. package/dist/components/Icon/Icon.module.scss.js +30 -9
  160. package/dist/components/Icon/index.cjs +30 -48
  161. package/dist/components/Icon/index.d.ts +6 -6
  162. package/dist/components/Icon/index.d.ts.map +1 -1
  163. package/dist/components/Icon/index.js +30 -48
  164. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  165. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  166. package/dist/components/IconButton/index.cjs +2 -1
  167. package/dist/components/IconButton/index.d.ts.map +1 -1
  168. package/dist/components/IconButton/index.js +2 -1
  169. package/dist/components/Image/Image.module.scss.cjs +27 -27
  170. package/dist/components/Image/Image.module.scss.js +27 -27
  171. package/dist/components/Input/Input.module.scss.cjs +19 -25
  172. package/dist/components/Input/Input.module.scss.js +19 -25
  173. package/dist/components/Input/index.cjs +1 -2
  174. package/dist/components/Input/index.d.ts.map +1 -1
  175. package/dist/components/Input/index.js +1 -2
  176. package/dist/components/Link/Link.module.scss.cjs +14 -10
  177. package/dist/components/Link/Link.module.scss.js +14 -10
  178. package/dist/components/Link/index.d.ts +1 -1
  179. package/dist/components/Link/index.d.ts.map +1 -1
  180. package/dist/components/List/List.module.scss.cjs +19 -19
  181. package/dist/components/List/List.module.scss.js +19 -19
  182. package/dist/components/List/index.cjs +4 -7
  183. package/dist/components/List/index.d.ts.map +1 -1
  184. package/dist/components/List/index.js +4 -7
  185. package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
  186. package/dist/components/Listbox/Listbox.module.scss.js +9 -9
  187. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  188. package/dist/components/Loading/Loading.module.scss.js +34 -34
  189. package/dist/components/Loading/index.cjs +39 -67
  190. package/dist/components/Loading/index.d.ts +6 -6
  191. package/dist/components/Loading/index.d.ts.map +1 -1
  192. package/dist/components/Loading/index.js +39 -67
  193. package/dist/components/Main/Main.module.scss.cjs +7 -7
  194. package/dist/components/Main/Main.module.scss.js +7 -7
  195. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  196. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  197. package/dist/components/Markdown/index.d.ts +2 -2
  198. package/dist/components/Markdown/index.d.ts.map +1 -1
  199. package/dist/components/Menu/Menu.module.scss.cjs +16 -16
  200. package/dist/components/Menu/Menu.module.scss.js +16 -16
  201. package/dist/components/Menu/index.cjs +19 -61
  202. package/dist/components/Menu/index.d.ts +10 -10
  203. package/dist/components/Menu/index.d.ts.map +1 -1
  204. package/dist/components/Menu/index.js +19 -61
  205. package/dist/components/Message/Message.module.scss.cjs +18 -21
  206. package/dist/components/Message/Message.module.scss.js +18 -21
  207. package/dist/components/Message/index.cjs +15 -2
  208. package/dist/components/Message/index.d.ts.map +1 -1
  209. package/dist/components/Message/index.js +15 -2
  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 +18 -9
  217. package/dist/components/Pagination/Pagination.module.scss.js +19 -10
  218. package/dist/components/Pagination/index.cjs +5 -2
  219. package/dist/components/Pagination/index.d.ts +3 -1
  220. package/dist/components/Pagination/index.d.ts.map +1 -1
  221. package/dist/components/Pagination/index.js +5 -2
  222. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  223. package/dist/components/Popover/Popover.module.scss.js +10 -10
  224. package/dist/components/Progress/Progress.module.scss.cjs +29 -32
  225. package/dist/components/Progress/Progress.module.scss.js +29 -32
  226. package/dist/components/Progress/geometry.cjs +30 -0
  227. package/dist/components/Progress/geometry.d.ts +8 -0
  228. package/dist/components/Progress/geometry.d.ts.map +1 -0
  229. package/dist/components/Progress/geometry.js +30 -0
  230. package/dist/components/Progress/index.cjs +40 -29
  231. package/dist/components/Progress/index.d.ts +4 -3
  232. package/dist/components/Progress/index.d.ts.map +1 -1
  233. package/dist/components/Progress/index.js +40 -29
  234. package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
  235. package/dist/components/Prompt/Prompt.module.scss.js +29 -29
  236. package/dist/components/Prompt/index.cjs +5 -4
  237. package/dist/components/Prompt/index.d.ts.map +1 -1
  238. package/dist/components/Prompt/index.js +5 -4
  239. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
  240. package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
  241. package/dist/components/RadioGroup/index.cjs +7 -6
  242. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  243. package/dist/components/RadioGroup/index.js +7 -6
  244. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
  245. package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
  246. package/dist/components/ScrollArea/index.cjs +66 -42
  247. package/dist/components/ScrollArea/index.d.ts +6 -5
  248. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  249. package/dist/components/ScrollArea/index.js +66 -42
  250. package/dist/components/ScrollArea/scroll-state.cjs +58 -0
  251. package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
  252. package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
  253. package/dist/components/ScrollArea/scroll-state.js +58 -0
  254. package/dist/components/Select/Select.module.scss.cjs +21 -21
  255. package/dist/components/Select/Select.module.scss.js +21 -21
  256. package/dist/components/Select/index.cjs +3 -2
  257. package/dist/components/Select/index.d.ts.map +1 -1
  258. package/dist/components/Select/index.js +3 -2
  259. package/dist/components/Separator/Separator.module.scss.cjs +13 -10
  260. package/dist/components/Separator/Separator.module.scss.js +13 -10
  261. package/dist/components/Separator/index.cjs +37 -38
  262. package/dist/components/Separator/index.d.ts +4 -4
  263. package/dist/components/Separator/index.d.ts.map +1 -1
  264. package/dist/components/Separator/index.js +37 -38
  265. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  266. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  267. package/dist/components/Sidebar/index.cjs +17 -38
  268. package/dist/components/Sidebar/index.d.ts +23 -18
  269. package/dist/components/Sidebar/index.d.ts.map +1 -1
  270. package/dist/components/Sidebar/index.js +17 -38
  271. package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
  272. package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
  273. package/dist/components/Skeleton/index.cjs +41 -55
  274. package/dist/components/Skeleton/index.d.ts +7 -7
  275. package/dist/components/Skeleton/index.d.ts.map +1 -1
  276. package/dist/components/Skeleton/index.js +41 -55
  277. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  278. package/dist/components/Slider/Slider.module.scss.js +12 -12
  279. package/dist/components/Stack/Stack.module.scss.cjs +25 -45
  280. package/dist/components/Stack/Stack.module.scss.js +25 -45
  281. package/dist/components/Stack/index.cjs +106 -101
  282. package/dist/components/Stack/index.d.ts +7 -7
  283. package/dist/components/Stack/index.d.ts.map +1 -1
  284. package/dist/components/Stack/index.js +106 -101
  285. package/dist/components/Switch/Switch.module.scss.cjs +32 -0
  286. package/dist/components/Switch/Switch.module.scss.js +32 -0
  287. package/dist/components/{Toggle → Switch}/index.cjs +9 -14
  288. package/dist/components/Switch/index.d.ts +37 -1
  289. package/dist/components/Switch/index.d.ts.map +1 -1
  290. package/dist/components/{Toggle → Switch}/index.js +5 -10
  291. package/dist/components/Table/Table.module.scss.cjs +21 -30
  292. package/dist/components/Table/Table.module.scss.js +21 -30
  293. package/dist/components/Table/index.d.ts +6 -5
  294. package/dist/components/Table/index.d.ts.map +1 -1
  295. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  296. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  297. package/dist/components/TableOfContents/index.cjs +13 -9
  298. package/dist/components/TableOfContents/index.d.ts +5 -3
  299. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  300. package/dist/components/TableOfContents/index.js +13 -9
  301. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  302. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  303. package/dist/components/Tabs/index.cjs +28 -8
  304. package/dist/components/Tabs/index.d.ts.map +1 -1
  305. package/dist/components/Tabs/index.js +28 -8
  306. package/dist/components/Text/Text.module.scss.cjs +105 -57
  307. package/dist/components/Text/Text.module.scss.js +105 -57
  308. package/dist/components/Text/index.cjs +49 -33
  309. package/dist/components/Text/index.d.ts +30 -19
  310. package/dist/components/Text/index.d.ts.map +1 -1
  311. package/dist/components/Text/index.js +49 -33
  312. package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
  313. package/dist/components/Textarea/Textarea.module.scss.js +26 -23
  314. package/dist/components/Textarea/index.cjs +5 -10
  315. package/dist/components/Textarea/index.d.ts.map +1 -1
  316. package/dist/components/Textarea/index.js +5 -10
  317. package/dist/components/Theme/context.cjs +39 -0
  318. package/dist/components/Theme/context.d.ts +21 -0
  319. package/dist/components/Theme/context.d.ts.map +1 -0
  320. package/dist/components/Theme/context.js +22 -0
  321. package/dist/components/Theme/index.cjs +16 -210
  322. package/dist/components/Theme/index.d.ts +4 -37
  323. package/dist/components/Theme/index.d.ts.map +1 -1
  324. package/dist/components/Theme/index.js +11 -205
  325. package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
  326. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
  327. package/dist/components/ThemeToggle/index.cjs +140 -0
  328. package/dist/components/ThemeToggle/index.d.ts +26 -0
  329. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  330. package/dist/components/ThemeToggle/index.js +140 -0
  331. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  332. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  333. package/dist/components/ThinkingIndicator/index.cjs +34 -41
  334. package/dist/components/ThinkingIndicator/index.d.ts +4 -4
  335. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  336. package/dist/components/ThinkingIndicator/index.js +34 -41
  337. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  338. package/dist/components/Toast/Toast.module.scss.js +20 -20
  339. package/dist/components/Toggle/index.d.ts +2 -42
  340. package/dist/components/Toggle/index.d.ts.map +1 -1
  341. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
  342. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
  343. package/dist/components/ToggleGroup/index.cjs +3 -2
  344. package/dist/components/ToggleGroup/index.d.ts +2 -1
  345. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  346. package/dist/components/ToggleGroup/index.js +3 -2
  347. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  348. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  349. package/dist/components/Tooltip/index.cjs +24 -40
  350. package/dist/components/Tooltip/index.d.ts +4 -4
  351. package/dist/components/Tooltip/index.d.ts.map +1 -1
  352. package/dist/components/Tooltip/index.js +24 -40
  353. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  354. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  355. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  356. package/dist/data-table.cjs +14 -10
  357. package/dist/data-table.js +14 -10
  358. package/dist/datepicker.cjs +5 -3
  359. package/dist/datepicker.js +5 -3
  360. package/dist/editor.cjs +68 -28
  361. package/dist/editor.js +68 -28
  362. package/dist/index.cjs +101 -99
  363. package/dist/index.d.ts +3 -3
  364. package/dist/index.d.ts.map +1 -1
  365. package/dist/index.js +6 -4
  366. package/dist/markdown.cjs +21 -29
  367. package/dist/markdown.js +22 -30
  368. package/dist/measurements/generated.cjs +304 -0
  369. package/dist/measurements/generated.d.ts +268 -0
  370. package/dist/measurements/generated.d.ts.map +1 -0
  371. package/dist/measurements/generated.js +304 -0
  372. package/dist/measurements/index.d.ts +2 -0
  373. package/dist/measurements/index.d.ts.map +1 -0
  374. package/dist/measurements.cjs +6 -0
  375. package/dist/measurements.js +6 -0
  376. package/dist/recipes/popup.cjs +14 -0
  377. package/dist/recipes/popup.d.ts +4 -0
  378. package/dist/recipes/popup.d.ts.map +1 -0
  379. package/dist/recipes/popup.js +14 -0
  380. package/dist/recipes/table-chrome.cjs +18 -0
  381. package/dist/recipes/table-chrome.d.ts +10 -0
  382. package/dist/recipes/table-chrome.d.ts.map +1 -0
  383. package/dist/recipes/table-chrome.js +18 -0
  384. package/dist/table.cjs +5 -2
  385. package/dist/table.js +5 -2
  386. package/dist/utils/a11y.cjs +5 -2
  387. package/dist/utils/a11y.d.ts +5 -5
  388. package/dist/utils/a11y.d.ts.map +1 -1
  389. package/dist/utils/a11y.js +5 -2
  390. package/dist/utils/canonical-stamp.cjs +2 -8
  391. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  392. package/dist/utils/canonical-stamp.js +1 -7
  393. package/dist/utils/css-warning.cjs +1 -1
  394. package/dist/utils/css-warning.js +1 -1
  395. package/dist/utils/env.cjs +17 -0
  396. package/dist/utils/env.d.ts +3 -0
  397. package/dist/utils/env.d.ts.map +1 -0
  398. package/dist/utils/env.js +17 -0
  399. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  400. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  401. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  402. package/dist/utils/keyboard-shortcuts.js +3 -10
  403. package/dist/utils/layout-spacing.cjs +27 -0
  404. package/dist/utils/layout-spacing.d.ts +5 -0
  405. package/dist/utils/layout-spacing.d.ts.map +1 -0
  406. package/dist/utils/layout-spacing.js +27 -0
  407. package/dist/utils/seed-derivation.cjs +14 -48
  408. package/dist/utils/seed-derivation.d.ts +4 -3
  409. package/dist/utils/seed-derivation.d.ts.map +1 -1
  410. package/dist/utils/seed-derivation.js +14 -48
  411. package/dist/utils/theme-presets.cjs +1 -0
  412. package/dist/utils/theme-presets.d.ts +3 -2
  413. package/dist/utils/theme-presets.d.ts.map +1 -1
  414. package/dist/utils/theme-presets.js +1 -0
  415. package/fragments.json +1 -1
  416. package/package.json +25 -4
  417. package/src/assets/fragments-logo.tsx +2 -2
  418. package/src/assets/fragments-wordmark.tsx +4 -2
  419. package/src/components/Accordion/Accordion.contract.json +24 -48
  420. package/src/components/Accordion/Accordion.module.scss +31 -52
  421. package/src/components/Alert/Alert.contract.json +37 -53
  422. package/src/components/Alert/Alert.module.scss +52 -44
  423. package/src/components/Alert/index.tsx +55 -29
  424. package/src/components/AppShell/AppShell.contract.json +34 -51
  425. package/src/components/AppShell/AppShell.module.scss +59 -43
  426. package/src/components/AppShell/index.tsx +8 -4
  427. package/src/components/Avatar/Avatar.contract.json +31 -48
  428. package/src/components/Avatar/Avatar.module.scss +25 -60
  429. package/src/components/Avatar/index.tsx +152 -146
  430. package/src/components/Badge/Badge.contract.json +37 -42
  431. package/src/components/Badge/Badge.module.scss +59 -47
  432. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  433. package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
  434. package/src/components/Box/Box.contract.json +40 -148
  435. package/src/components/Box/Box.module.scss +253 -81
  436. package/src/components/Box/index.tsx +92 -99
  437. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  438. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
  439. package/src/components/Button/Button.module.scss +60 -64
  440. package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
  441. package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
  442. package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
  443. package/src/components/Card/Card.module.scss +284 -167
  444. package/src/components/Card/index.tsx +21 -2
  445. package/src/components/Chart/Chart.contract.json +21 -29
  446. package/src/components/Chart/Chart.module.scss +28 -29
  447. package/src/components/Chart/index.tsx +72 -55
  448. package/src/components/Checkbox/Checkbox.contract.json +24 -24
  449. package/src/components/Checkbox/Checkbox.module.scss +75 -87
  450. package/src/components/Checkbox/index.tsx +8 -11
  451. package/src/components/Chip/Chip.contract.json +36 -42
  452. package/src/components/Chip/Chip.module.scss +25 -36
  453. package/src/components/Chip/index.tsx +5 -5
  454. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  455. package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
  456. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  457. package/src/components/CodeBlock/index.tsx +91 -35
  458. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  459. package/src/components/Collapsible/Collapsible.module.scss +29 -63
  460. package/src/components/Collapsible/index.tsx +22 -26
  461. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  462. package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
  463. package/src/components/ColorPicker/index.tsx +7 -2
  464. package/src/components/Combobox/Combobox.contract.json +36 -37
  465. package/src/components/Combobox/Combobox.module.scss +61 -74
  466. package/src/components/Combobox/index.tsx +34 -6
  467. package/src/components/Command/Command.contract.json +21 -43
  468. package/src/components/Command/Command.module.scss +47 -77
  469. package/src/components/Command/index.tsx +58 -47
  470. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  471. package/src/components/ConversationList/ConversationList.module.scss +20 -78
  472. package/src/components/ConversationList/index.tsx +55 -59
  473. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  474. package/src/components/DataTable/DataTable.module.scss +81 -217
  475. package/src/components/DataTable/index.tsx +28 -32
  476. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  477. package/src/components/DatePicker/DatePicker.module.scss +66 -38
  478. package/src/components/DatePicker/index.tsx +7 -3
  479. package/src/components/Dialog/Dialog.module.scss +45 -69
  480. package/src/components/Dialog/index.tsx +47 -37
  481. package/src/components/Drawer/Drawer.contract.json +22 -36
  482. package/src/components/Drawer/Drawer.module.scss +93 -99
  483. package/src/components/Drawer/index.tsx +1 -1
  484. package/src/components/Editor/Editor.contract.json +31 -48
  485. package/src/components/Editor/Editor.module.scss +137 -220
  486. package/src/components/Editor/index.tsx +240 -179
  487. package/src/components/EmptyState/EmptyState.contract.json +31 -43
  488. package/src/components/EmptyState/EmptyState.module.scss +45 -84
  489. package/src/components/EmptyState/index.tsx +48 -23
  490. package/src/components/Field/Field.contract.json +28 -45
  491. package/src/components/Field/Field.module.scss +9 -11
  492. package/src/components/Field/index.tsx +31 -1
  493. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  494. package/src/components/Fieldset/Fieldset.module.scss +23 -8
  495. package/src/components/Form/Form.contract.json +27 -40
  496. package/src/components/Form/Form.module.scss +9 -4
  497. package/src/components/Form/index.tsx +22 -7
  498. package/src/components/Grid/Grid.contract.json +28 -64
  499. package/src/components/Grid/Grid.module.scss +159 -63
  500. package/src/components/Grid/index.tsx +114 -133
  501. package/src/components/Header/Header.contract.json +31 -67
  502. package/src/components/Header/Header.module.scss +56 -48
  503. package/src/components/Header/index.tsx +134 -121
  504. package/src/components/Icon/Icon.contract.json +22 -62
  505. package/src/components/Icon/Icon.module.scss +16 -0
  506. package/src/components/Icon/index.tsx +74 -86
  507. package/src/components/IconButton/IconButton.contract.json +34 -18
  508. package/src/components/IconButton/IconButton.module.scss +15 -26
  509. package/src/components/IconButton/index.tsx +2 -1
  510. package/src/components/Image/Image.contract.json +23 -56
  511. package/src/components/Input/Input.contract.json +26 -32
  512. package/src/components/Input/Input.module.scss +69 -56
  513. package/src/components/Input/index.tsx +1 -2
  514. package/src/components/Link/Link.contract.json +32 -52
  515. package/src/components/Link/Link.module.scss +29 -13
  516. package/src/components/Link/index.tsx +1 -1
  517. package/src/components/List/List.contract.json +23 -52
  518. package/src/components/List/List.module.scss +16 -21
  519. package/src/components/List/index.tsx +4 -10
  520. package/src/components/Listbox/Listbox.contract.json +21 -37
  521. package/src/components/Listbox/Listbox.module.scss +26 -54
  522. package/src/components/Loading/Loading.contract.json +37 -61
  523. package/src/components/Loading/Loading.module.scss +33 -40
  524. package/src/components/Loading/index.tsx +68 -97
  525. package/src/components/Main/Main.contract.json +17 -9
  526. package/src/components/Main/Main.module.scss +3 -5
  527. package/src/components/Markdown/Markdown.contract.json +22 -43
  528. package/src/components/Markdown/Markdown.module.scss +72 -182
  529. package/src/components/Markdown/index.tsx +50 -51
  530. package/src/components/Menu/Menu.contract.json +25 -41
  531. package/src/components/Menu/Menu.module.scss +63 -133
  532. package/src/components/Menu/index.tsx +57 -89
  533. package/src/components/Message/Message.contract.json +29 -52
  534. package/src/components/Message/Message.module.scss +60 -143
  535. package/src/components/Message/index.tsx +16 -6
  536. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  537. package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
  538. package/src/components/NavigationMenu/index.tsx +105 -81
  539. package/src/components/Pagination/Pagination.contract.json +22 -40
  540. package/src/components/Pagination/Pagination.module.scss +34 -27
  541. package/src/components/Pagination/index.tsx +7 -2
  542. package/src/components/Popover/Popover.contract.json +24 -46
  543. package/src/components/Popover/Popover.module.scss +43 -78
  544. package/src/components/Progress/Progress.contract.json +32 -28
  545. package/src/components/Progress/Progress.module.scss +64 -43
  546. package/src/components/Progress/geometry.ts +41 -0
  547. package/src/components/Progress/index.tsx +44 -30
  548. package/src/components/Prompt/Prompt.contract.json +31 -47
  549. package/src/components/Prompt/Prompt.module.scss +58 -87
  550. package/src/components/Prompt/index.tsx +6 -5
  551. package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
  552. package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
  553. package/src/components/RadioGroup/index.tsx +7 -9
  554. package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
  555. package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
  556. package/src/components/ScrollArea/index.tsx +85 -67
  557. package/src/components/ScrollArea/scroll-state.ts +87 -0
  558. package/src/components/Select/Select.module.scss +55 -43
  559. package/src/components/Select/index.tsx +6 -2
  560. package/src/components/Separator/Separator.contract.json +24 -48
  561. package/src/components/Separator/Separator.module.scss +29 -19
  562. package/src/components/Separator/index.tsx +55 -51
  563. package/src/components/Sidebar/Sidebar.contract.json +42 -62
  564. package/src/components/Sidebar/Sidebar.module.scss +117 -106
  565. package/src/components/Sidebar/index.tsx +169 -162
  566. package/src/components/Skeleton/Skeleton.contract.json +28 -54
  567. package/src/components/Skeleton/Skeleton.module.scss +51 -34
  568. package/src/components/Skeleton/index.tsx +65 -72
  569. package/src/components/Slider/Slider.contract.json +27 -39
  570. package/src/components/Slider/Slider.module.scss +33 -27
  571. package/src/components/Stack/Stack.contract.json +29 -56
  572. package/src/components/Stack/Stack.module.scss +110 -38
  573. package/src/components/Stack/index.tsx +157 -127
  574. package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
  575. package/src/components/Switch/Switch.module.scss +255 -0
  576. package/src/components/{Toggle → Switch}/index.tsx +5 -21
  577. package/src/components/Table/Table.contract.json +28 -46
  578. package/src/components/Table/Table.module.scss +50 -129
  579. package/src/components/Table/index.tsx +13 -6
  580. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  581. package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
  582. package/src/components/TableOfContents/index.tsx +26 -9
  583. package/src/components/Tabs/Tabs.contract.json +24 -45
  584. package/src/components/Tabs/Tabs.module.scss +28 -23
  585. package/src/components/Tabs/index.tsx +17 -5
  586. package/src/components/Text/Text.contract.json +30 -72
  587. package/src/components/Text/Text.module.scss +43 -7
  588. package/src/components/Text/index.tsx +136 -63
  589. package/src/components/Textarea/Textarea.contract.json +25 -43
  590. package/src/components/Textarea/Textarea.module.scss +58 -40
  591. package/src/components/Textarea/index.tsx +5 -12
  592. package/src/components/Theme/Theme.contract.json +32 -51
  593. package/src/components/Theme/context.ts +42 -0
  594. package/src/components/Theme/index.tsx +16 -310
  595. package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
  596. package/src/components/ThemeToggle/index.tsx +180 -0
  597. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
  598. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
  599. package/src/components/ThinkingIndicator/index.tsx +44 -54
  600. package/src/components/Toast/Toast.contract.json +35 -61
  601. package/src/components/Toast/Toast.module.scss +62 -139
  602. package/src/components/Toggle/index.ts +7 -0
  603. package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
  604. package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
  605. package/src/components/ToggleGroup/index.tsx +5 -3
  606. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  607. package/src/components/Tooltip/Tooltip.module.scss +23 -39
  608. package/src/components/Tooltip/index.tsx +19 -24
  609. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  610. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
  611. package/src/components/VisuallyHidden/index.tsx +5 -5
  612. package/src/index.ts +4 -3
  613. package/src/measurements/MeasurementTargets.module.scss +229 -0
  614. package/src/measurements/generated.ts +324 -0
  615. package/src/measurements/index.ts +8 -0
  616. package/src/measurements/measurements.json +368 -0
  617. package/src/recipes/_action.scss +138 -0
  618. package/src/recipes/_boolean-range.scss +116 -0
  619. package/src/recipes/_feedback.scss +171 -0
  620. package/src/recipes/_field.scss +102 -0
  621. package/src/recipes/_layout.scss +74 -0
  622. package/src/recipes/_navigation.scss +110 -0
  623. package/src/recipes/_overlay.scss +191 -0
  624. package/src/recipes/_popup.scss +102 -0
  625. package/src/recipes/_prose.scss +182 -0
  626. package/src/recipes/_representation.scss +193 -0
  627. package/src/recipes/_segmented.scss +26 -0
  628. package/src/recipes/_surface.scss +13 -0
  629. package/src/recipes/_table-chrome.scss +119 -0
  630. package/src/recipes/_target.scss +31 -0
  631. package/src/recipes/_typography.scss +38 -0
  632. package/src/recipes/popup.ts +12 -0
  633. package/src/recipes/table-chrome.ts +30 -0
  634. package/src/scss.d.ts +1 -1
  635. package/src/styles/globals.scss +21 -20
  636. package/src/tokens/_component-properties.scss +2 -2
  637. package/src/tokens/_computed.scss +14 -25
  638. package/src/tokens/_density.scss +41 -132
  639. package/src/tokens/_derive.scss +112 -210
  640. package/src/tokens/_measurements.catalog.generated.css +96 -0
  641. package/src/tokens/_measurements.generated.scss +617 -0
  642. package/src/tokens/_mixins.scss +7 -284
  643. package/src/tokens/_palettes.scss +39 -167
  644. package/src/tokens/_property-registrations.scss +96 -92
  645. package/src/tokens/_radius.scss +16 -70
  646. package/src/tokens/_seeds.scss +24 -23
  647. package/src/tokens/_variables.scss +338 -178
  648. package/src/utils/a11y.tsx +69 -69
  649. package/src/utils/aria.ts +3 -3
  650. package/src/utils/canonical-stamp.ts +2 -12
  651. package/src/utils/css-warning.ts +7 -7
  652. package/src/utils/env.ts +25 -0
  653. package/src/utils/keyboard-shortcuts.ts +131 -126
  654. package/src/utils/layout-spacing.ts +31 -0
  655. package/src/utils/seed-derivation.ts +144 -178
  656. package/src/utils/theme-presets.ts +58 -30
  657. package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
  658. package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
  659. package/dist/components/Toggle/Toggle.module.scss.js +0 -44
  660. package/src/components/Button/Button.contract.json +0 -218
  661. package/src/components/Card/Card.contract.json +0 -175
  662. package/src/components/DataTable/DataTable.contract.json +0 -302
  663. package/src/components/Dialog/Dialog.contract.json +0 -159
  664. package/src/components/Select/Select.contract.json +0 -259
  665. package/src/components/Switch/index.ts +0 -3
  666. package/src/components/Theme/ThemeToggle.module.scss +0 -91
  667. package/src/components/Toggle/Toggle.module.scss +0 -244
@@ -2,109 +2,43 @@
2
2
  // @usefragments/ui Density Scales
3
3
  // ============================================
4
4
  //
5
- // Defines 3 density presets that control spacing and sizing.
6
- // Each preset uses a different base unit to scale all spacing.
5
+ // Compatibility adapter over the generated Measurement Module. Existing Sass
6
+ // callers keep their flat map/function API, while measurements.json remains the
7
+ // only editable numeric owner.
7
8
  //
8
9
  // ============================================
9
10
 
10
- @use "sass:math";
11
11
  @use "sass:map";
12
+ @use "sass:math";
13
+ @use "measurements.generated" as measurements;
12
14
 
13
- // --------------------------------------------
14
- // Density Definitions
15
- // --------------------------------------------
16
- // Each density includes:
17
- // - base-unit: The fundamental spacing unit
18
- // - multipliers: Scale factors for spacing tokens
19
-
20
- $density-compact: (
21
- base-unit: 6px,
22
- base-font-size: 14px,
23
- // Button heights (compact, with a 32px interactive floor)
24
- button-height-xs: 32px,
25
- button-height-sm: 32px,
26
- button-height-md: 32px,
27
- button-height-lg: 36px,
28
- // 6 units
29
- // Input height
30
- input-height: 32px,
31
- input-height-sm: 32px,
32
- input-height-lg: 36px,
33
- // 6 units
34
- // Touch targets
35
- touch-sm: 32px,
36
- touch-md: 32px,
37
- touch-lg: 40px,
38
- // Sidebar navigation
39
- sidebar-item-height: 32px,
40
- );
41
-
42
- $density-default: (
43
- base-unit: 7px,
44
- base-font-size: 14px,
45
- // Button heights align with field heights at each size
46
- button-height-xs: 32px,
47
- button-height-sm: 32px,
48
- button-height-md: 40px,
49
- button-height-lg: 44px,
50
- // ~6 units
51
- // Input height
52
- input-height: 40px,
53
- // ~6 units
54
- input-height-sm: 32px,
55
- // ~4.5 units
56
- input-height-lg: 44px,
57
- // ~6 units
58
- // Touch targets (baseline)
59
- touch-sm: 32px,
60
- touch-md: 32px,
61
- touch-lg: 44px,
62
- // WCAG AAA recommended
63
- // Sidebar navigation
64
- sidebar-item-height: 32px,
65
- );
15
+ @function _adapt-density($name) {
16
+ @return (
17
+ base-unit: measurements.density-value($name, "baseUnit"),
18
+ base-font-size: measurements.density-value($name, "baseFontSize"),
19
+ spacing-multipliers: measurements.density-value($name, "spacingMultipliers"),
20
+ control-height-xs: measurements.density-nested-value($name, "controlHeight", "xs"),
21
+ control-height-sm: measurements.density-nested-value($name, "controlHeight", "sm"),
22
+ control-height-md: measurements.density-nested-value($name, "controlHeight", "md"),
23
+ control-height-lg: measurements.density-nested-value($name, "controlHeight", "lg"),
24
+ touch-sm: measurements.density-nested-value($name, "touch", "sm"),
25
+ touch-md: measurements.density-nested-value($name, "touch", "md"),
26
+ touch-lg: measurements.density-nested-value($name, "touch", "lg"),
27
+ sidebar-item-height: measurements.density-value($name, "sidebarItemHeight")
28
+ );
29
+ }
66
30
 
67
- $density-relaxed: (
68
- base-unit: 8px,
69
- base-font-size: 14px,
70
- // Button heights align with field heights at each size
71
- button-height-xs: 32px,
72
- button-height-sm: 32px,
73
- button-height-md: 44px,
74
- button-height-lg: 48px,
75
- // 6 units
76
- // Input height
77
- input-height: 44px,
78
- // ~5.5 units
79
- input-height-sm: 32px,
80
- // 4 units
81
- input-height-lg: 48px,
82
- // 6 units
83
- // Touch targets (proportional from default, not blown out)
84
- touch-sm: 32px,
85
- touch-md: 40px,
86
- touch-lg: 48px,
87
- // +9% from default (unchanged)
88
- // Sidebar navigation
89
- sidebar-item-height: 36px,
90
- );
31
+ $density-compact: _adapt-density("compact");
32
+ $density-default: _adapt-density("default");
33
+ $density-relaxed: _adapt-density("relaxed");
91
34
 
92
- // --------------------------------------------
93
- // Density Map for Dynamic Access
94
- // --------------------------------------------
95
35
  $densities: (
96
36
  "compact": $density-compact,
97
37
  "default": $density-default,
98
38
  "relaxed": $density-relaxed,
99
39
  );
100
40
 
101
- // --------------------------------------------
102
- // Helper Functions
103
- // --------------------------------------------
104
-
105
- /// Get a density configuration by name
106
- /// @param {String} $name - Density name (compact, default, relaxed)
107
- /// @return {Map} The density configuration map
41
+ /// Get a density configuration by name.
108
42
  @function get-density($name) {
109
43
  @if not map.has-key($densities, $name) {
110
44
  @warn "Unknown density '#{$name}'. Using 'default' as fallback.";
@@ -113,10 +47,7 @@ $densities: (
113
47
  @return map.get($densities, $name);
114
48
  }
115
49
 
116
- /// Get a specific value from a density configuration
117
- /// @param {Map} $density - A density configuration map
118
- /// @param {String} $key - The key to retrieve
119
- /// @return {*} The value
50
+ /// Get a specific value from a density configuration.
120
51
  @function density-value($density, $key) {
121
52
  @if not map.has-key($density, $key) {
122
53
  @warn "Unknown density key '#{$key}'.";
@@ -125,52 +56,30 @@ $densities: (
125
56
  @return map.get($density, $key);
126
57
  }
127
58
 
128
- /// Derive spacing scale from base unit
129
- /// Returns a map with spacing tokens
130
- /// @param {Map} $density - A density configuration map
131
- /// @return {Map} Spacing tokens
59
+ /// Derive the legacy density-responsive spacing map from generated values.
132
60
  @function derive-spacing($density) {
133
61
  $base: map.get($density, base-unit);
134
62
  $font-size: map.get($density, base-font-size);
135
-
136
- // Convert to rem based on font size
137
- // 1 unit = base-unit / font-size * 1rem
138
63
  $unit-rem: math.div($base, $font-size) * 1rem;
64
+ $multipliers: map.get($density, spacing-multipliers);
139
65
 
140
66
  @return (
141
- // Micro spacing (pixel-precise for tiny alignments)
142
- px: 1px,
143
- 0-5: $unit-rem * 0.3,
144
- // ~2px for 7px base
145
- 0-75: $unit-rem * 0.43,
146
-
147
- // ~3px for 7px base
148
- // Standard spacing scale
149
- 1: $unit-rem,
150
- // 1 unit
151
- 2: $unit-rem * 2,
152
- // 2 units
153
- 3: $unit-rem * 3,
154
- // 3 units
155
- 4: $unit-rem * 4,
156
- // 4 units
157
- 5: $unit-rem * 5,
158
- // 5 units
159
- 6: $unit-rem * 6,
160
- // 6 units
161
- 8: $unit-rem * 8,
162
- // 8 units
163
- 10: $unit-rem * 10,
164
- // 10 units
165
- 12: $unit-rem * 12 // 12 units
67
+ px: map.get($multipliers, "px"),
68
+ 0-5: $unit-rem * map.get($multipliers, "0-5"),
69
+ 0-75: $unit-rem * map.get($multipliers, "0-75"),
70
+ 1: $unit-rem * map.get($multipliers, "1"),
71
+ 2: $unit-rem * map.get($multipliers, "2"),
72
+ 3: $unit-rem * map.get($multipliers, "3"),
73
+ 4: $unit-rem * map.get($multipliers, "4"),
74
+ 5: $unit-rem * map.get($multipliers, "5"),
75
+ 6: $unit-rem * map.get($multipliers, "6"),
76
+ 8: $unit-rem * map.get($multipliers, "8"),
77
+ 10: $unit-rem * map.get($multipliers, "10"),
78
+ 12: $unit-rem * map.get($multipliers, "12")
166
79
  );
167
80
  }
168
81
 
169
- /// Convert pixel value to rem based on density
170
- /// @param {Map} $density - A density configuration map
171
- /// @param {Number} $px - Pixel value to convert
172
- /// @return {Number} Value in rem
82
+ /// Convert a pixel value to rem based on a density profile.
173
83
  @function px-to-rem($density, $px) {
174
- $font-size: map.get($density, base-font-size);
175
- @return math.div($px, $font-size) * 1rem;
84
+ @return math.div($px, map.get($density, base-font-size)) * 1rem;
176
85
  }
@@ -8,9 +8,9 @@
8
8
  //
9
9
  // ============================================
10
10
 
11
- @use 'sass:color';
12
- @use 'sass:math';
13
- @use 'palettes' as *;
11
+ @use "sass:color";
12
+ @use "sass:math";
13
+ @use "palettes" as *;
14
14
 
15
15
  // --------------------------------------------
16
16
  // Color Utility Functions
@@ -21,7 +21,7 @@
21
21
  /// @return {Boolean} True if dark
22
22
  @function is-dark-color($color) {
23
23
  // oklch lightness is perceptually uniform (0-1 range)
24
- @return color.channel($color, 'lightness', $space: oklch) < 0.5;
24
+ @return color.channel($color, "lightness", $space: oklch) < 0.5;
25
25
  }
26
26
 
27
27
  /// Get appropriate contrast color (black or white)
@@ -46,7 +46,7 @@
46
46
  /// @param {Boolean} $is-dark - Whether in dark mode
47
47
  /// @return {Color} Hover state color
48
48
  @function derive-accent-hover($base, $is-dark: false) {
49
- $l: color.channel($base, 'lightness', $space: oklch);
49
+ $l: color.channel($base, "lightness", $space: oklch);
50
50
 
51
51
  @if $is-dark {
52
52
  @if $l > 0.85 {
@@ -72,7 +72,7 @@
72
72
  /// @param {Boolean} $is-dark - Whether in dark mode
73
73
  /// @return {Color} Active state color
74
74
  @function derive-accent-active($base, $is-dark: false) {
75
- $l: color.channel($base, 'lightness', $space: oklch);
75
+ $l: color.channel($base, "lightness", $space: oklch);
76
76
 
77
77
  @if $is-dark {
78
78
  @if $l > 0.85 {
@@ -102,8 +102,8 @@
102
102
  /// @param {Color} $brand - Brand color
103
103
  /// @return {Color} Dark-mode accent
104
104
  @function derive-dark-accent($brand) {
105
- $l: color.channel($brand, 'lightness', $space: oklch);
106
- $c: color.channel($brand, 'chroma', $space: oklch);
105
+ $l: color.channel($brand, "lightness", $space: oklch);
106
+ $c: color.channel($brand, "chroma", $space: oklch);
107
107
  // color.channel returns lightness as a percentage; normalize to a unitless 0–1
108
108
  // ratio so the comparisons below share a scale with the 0.55/0.85 bounds.
109
109
  $l-num: $l;
@@ -113,7 +113,7 @@
113
113
  // grey-lift only kicks in for low-chroma brands; vibrant brands keep their own L.
114
114
  $target-l: math.max($l-num, 0.95 - 2 * $c);
115
115
  $clamped-l: math.max(0.55, math.min($target-l, 0.85));
116
- @return oklch($clamped-l $c color.channel($brand, 'hue', $space: oklch));
116
+ @return oklch($clamped-l $c color.channel($brand, "hue", $space: oklch));
117
117
  }
118
118
 
119
119
  // --------------------------------------------
@@ -146,185 +146,103 @@
146
146
  // Surface/Background Derivation
147
147
  // --------------------------------------------
148
148
 
149
- /// Derive surface/background tokens from a neutral palette
149
+ /// Derive surface/background tokens for the paper ramp.
150
150
  /// Maps shade levels to semantic surface tokens for visual depth layering.
151
- /// For colorful palettes (ice, earth, sand, fire), light mode uses tinted backgrounds.
152
151
  /// @param {Map} $palette - Neutral palette map
153
152
  /// @param {Boolean} $is-dark - Whether in dark mode
154
- /// @param {String} $palette-name - Palette name for colorful detection (default: 'stone')
155
153
  /// @return {Map} Surface token values
156
- @function derive-surfaces($palette, $is-dark: false, $palette-name: 'stone') {
154
+ @function derive-surfaces($palette, $is-dark: false, $palette-name: "paper") {
157
155
  @if $is-dark {
158
- // Carbon (Fragments default) charcoal material surfaces, not voids.
159
- @if $palette-name == 'carbon' {
160
- @return (
161
- primary: #212121, // page / body background
162
- secondary: #171717, // sidebar, recessed panels, surface
163
- tertiary: #2f2f2f, // raised / hover / active row (surface-2)
164
- elevated: #2f2f2f, // cards float above the page tone
165
- subtle: #171717, // recessed (code wells, insets)
166
- hover: rgba(255, 255, 255, 0.055),
167
- active: rgba(255, 255, 255, 0.085)
168
- );
169
- }
170
-
171
- @if $palette-name == 'stone' or $palette-name == 'mono' {
172
- @return (
173
- primary: #000000,
174
- secondary: #050505,
175
- tertiary: #111111,
176
- elevated: #151515,
177
- subtle: #080808,
178
- hover: rgba(255, 255, 255, 0.055),
179
- active: rgba(255, 255, 255, 0.085)
180
- );
181
- }
182
-
183
- // Dark mode: darker = more recessed, lighter = elevated
184
- // Hover/active opacities tuned for subdued dense-UI aesthetic: hairlines and
185
- // alpha overlays do most of the depth work rather than heavy color shifts.
156
+ // The cream canvas moved onto a warm charcoal plane with a real elevation
157
+ // ladder: bands step up from the page, cards step up from bands — the
158
+ // dark mirror of canvas / tinted band / white card in light mode.
186
159
  @return (
187
- primary: get-shade($palette, 950), // Page background (darkest)
188
- secondary: get-shade($palette, 900), // Sidebar, panels
189
- tertiary: get-shade($palette, 800), // Content areas (lighter)
190
- elevated: interpolate-shade($palette, 875), // Cards (distinct from secondary)
191
- subtle: interpolate-shade($palette, 925), // Between primary and secondary
192
- hover: rgba(255, 255, 255, 0.035), // Interactive hover
193
- active: rgba(255, 255, 255, 0.06) // Interactive active
160
+ primary: #171614,
161
+ // page background
162
+ secondary: #171614,
163
+ // shell/sidebar on the same plane
164
+ tertiary: #1e1c19,
165
+ // tinted section band, raised chrome
166
+ elevated: #262421,
167
+ // cards and overlays float clearly above bands
168
+ subtle: #1b1a17,
169
+ // barely-raised wells
170
+ hover: #2a2723,
171
+ // transient interaction
172
+ active: #322e29 // transient pressed interaction
194
173
  );
195
174
  }
196
175
 
197
- // Light mode: colorful palettes get tinted backgrounds. Carbon is a neutral
198
- // (like stone) white surfaces in light mode.
199
- $is-colorful: $palette-name != 'stone' and $palette-name != 'carbon';
200
- @if $is-colorful {
201
- @return (
202
- primary: get-shade($palette, 50), // Tinted page background
203
- secondary: get-shade($palette, 100), // Tinted secondary panels
204
- tertiary: get-shade($palette, 200), // Deeper tint for nested sections
205
- elevated: #ffffff, // Cards, modals (floats above)
206
- subtle: get-shade($palette, 50), // Very subtle tinted background
207
- hover: rgba(0, 0, 0, 0.04), // Interactive hover
208
- active: rgba(0, 0, 0, 0.06) // Interactive active
209
- );
210
- }
211
-
212
- // Stone palette: neutral white backgrounds
176
+ // Light mode the warm gallery scheme: a cream page canvas, white cards
177
+ // floating above it, and a deeper cream band for nested sections.
178
+ // Hover/active are warm alpha tints so interaction chrome never goes cold
179
+ // grey on the warm canvas.
213
180
  @return (
214
- primary: #ffffff, // Page background (white)
215
- secondary: get-shade($palette, 100), // Sidebar, secondary panels
216
- tertiary: get-shade($palette, 100), // Nested sections
217
- elevated: #ffffff, // Cards, modals (floats above)
218
- subtle: get-shade($palette, 50), // Very subtle backgrounds
219
- hover: rgba(0, 0, 0, 0.04), // Interactive hover
220
- active: rgba(0, 0, 0, 0.06) // Interactive active
181
+ primary: #faf8f5,
182
+ // page canvas (cream)
183
+ secondary: #faf8f5,
184
+ // shell/sidebar on the same plane
185
+ tertiary: #f2ede7,
186
+ // tinted section band, hover-on-paper
187
+ elevated: #ffffff,
188
+ // cards and overlays float white
189
+ subtle: #fdfcfa,
190
+ // barely-raised wells
191
+ hover: rgba(96, 48, 16, 0.06),
192
+ // warm transient interaction
193
+ active: rgba(96, 48, 16, 0.1) // warm pressed interaction
221
194
  );
222
195
  }
223
196
 
224
197
  /// Derive document/application canvas tokens used by base body styles and
225
- /// large layout containers. The defaults intentionally separate the page
226
- /// canvas from the primary main surface so app shells can expose chrome around
227
- /// the focused content region.
198
+ /// large layout containers. Body and main share the paper canvas so app
199
+ /// shells sit on one plane; raised component roles provide the contrast.
228
200
  /// @param {Map} $palette - Neutral palette map
229
201
  /// @param {Boolean} $is-dark - Whether in dark mode
230
- /// @param {String} $palette-name - Palette name for colorful detection
231
202
  /// @return {Map} Body and main background values
232
- @function derive-app-surfaces($palette, $is-dark: false, $palette-name: 'stone') {
203
+ @function derive-app-surfaces($palette, $is-dark: false, $palette-name: "paper") {
233
204
  @if $is-dark {
234
- // Carbon (Fragments default) flat page canvas at #212121.
235
- @if $palette-name == 'carbon' {
236
- @return (
237
- body: #212121,
238
- main: #212121
239
- );
240
- }
241
-
242
- @if $palette-name == 'stone' or $palette-name == 'mono' or $palette-name == 'wind' {
243
- @return (
244
- body: #000000,
245
- main: #050505
246
- );
247
- }
248
-
249
- @return (
250
- body: get-shade($palette, 800),
251
- main: get-shade($palette, 900)
252
- );
205
+ @return (body: #171614, main: #171614);
253
206
  }
254
-
255
- @if $palette-name == 'stone' or $palette-name == 'carbon' or $palette-name == 'wind' {
256
- @return (
257
- body: get-shade($palette, 100),
258
- main: #ffffff
259
- );
260
- }
261
-
262
- @return (
263
- body: get-shade($palette, 100),
264
- main: get-shade($palette, 50)
265
- );
207
+ @return (body: #faf8f5, main: #faf8f5);
266
208
  }
267
209
 
268
210
  // --------------------------------------------
269
211
  // Text Color Derivation
270
212
  // --------------------------------------------
271
213
 
272
- /// Derive text tokens from a neutral palette.
273
- /// For colorful palettes in light mode, applies ensure-contrast() to meet
274
- /// WCAG AAA (7:1) against tinted backgrounds (palette[50]).
214
+ /// Derive text tokens for the paper ramp.
215
+ /// Light mode applies ensure-contrast() to meet WCAG AAA (7:1) against the
216
+ /// cream canvas; dark mode uses warm ink tiers so text keeps the scheme's
217
+ /// warmth instead of snapping to pure white.
275
218
  /// @param {Map} $palette - Neutral palette map
276
219
  /// @param {Boolean} $is-dark - Whether in dark mode
277
- /// @param {String} $palette-name - Palette name for background detection (default: 'stone')
278
220
  /// @return {Map} Text token values
279
- @function derive-text($palette, $is-dark: false, $palette-name: 'stone') {
221
+ @function derive-text($palette, $is-dark: false, $palette-name: "paper") {
280
222
  @if $is-dark {
281
- // Carbon (Fragments default) — ink / muted / faint text tiers.
282
- @if $palette-name == 'carbon' {
283
- @return (
284
- primary: #ececec, // ink
285
- secondary: #b4b4b4, // muted
286
- tertiary: #8f8f8f, // faint / placeholder
287
- inverse: #212121 // text on light (sage) accents
288
- );
289
- }
290
-
291
- @if $palette-name == 'stone' or $palette-name == 'mono' {
292
- @return (
293
- primary: #ededed,
294
- secondary: #a1a1a1,
295
- tertiary: #7a7a7a,
296
- inverse: #000000
297
- );
298
- }
299
-
300
- // Dark mode: neutral white text on all palettes.
301
- // Palette-tinted text (e.g. green-on-green-dark) looks muddy and reduces
302
- // readability. Major polished dark themes use neutral white text regardless
303
- // of background tint.
304
- // Opacity ladder tuned for a subdued, product-chrome aesthetic — secondary
305
- // and tertiary are lifted closer to primary so dense UI reads cleanly
306
- // without needing to bump to primary for every chrome label.
307
223
  @return (
308
- primary: #ffffff,
309
- secondary: rgba(255, 255, 255, 0.72),
310
- tertiary: rgba(255, 255, 255, 0.5),
311
- inverse: get-shade($palette, 900) // Text on light accents
224
+ primary: #f0ede9,
225
+ // warm ink
226
+ secondary: #b6b0a8,
227
+ // muted
228
+ tertiary: #8d8780,
229
+ // faint / placeholder
230
+ inverse: #171614 // text on light (cream) accents
312
231
  );
313
232
  }
314
233
 
315
- // Light mode background — stone/carbon use white, colorful palettes use palette[50]
316
- $bg: #ffffff;
317
- @if $palette-name != 'stone' and $palette-name != 'carbon' {
318
- $bg: get-shade($palette, 50);
319
- }
234
+ $bg: get-shade($palette, 50);
320
235
 
321
236
  @return (
322
- primary: get-shade($palette, 900), // Main text (high contrast)
237
+ primary: get-shade($palette, 900),
238
+ // Main text (high contrast)
323
239
  secondary: ensure-contrast(get-shade($palette, 600), $bg, 7),
324
240
  tertiary: ensure-contrast(
325
- color.mix(get-shade($palette, 600), get-shade($palette, 500), 20%), $bg, 7
326
- ),
327
- inverse: get-shade($palette, 100) // Text on dark accents
241
+ color.mix(get-shade($palette, 600), get-shade($palette, 500), 20%),
242
+ $bg,
243
+ 7
244
+ ),
245
+ inverse: get-shade($palette, 100) // Text on dark accents
328
246
  );
329
247
  }
330
248
 
@@ -332,41 +250,22 @@
332
250
  // Border Color Derivation
333
251
  // --------------------------------------------
334
252
 
335
- /// Derive border tokens from a neutral palette
253
+ /// Derive border tokens for the paper ramp
336
254
  /// @param {Map} $palette - Neutral palette map
337
255
  /// @param {Boolean} $is-dark - Whether in dark mode
338
256
  /// @return {Map} Border token values
339
- @function derive-borders($palette, $is-dark: false, $palette-name: 'stone') {
257
+ @function derive-borders($palette, $is-dark: false, $palette-name: "paper") {
340
258
  @if $is-dark {
341
- // Carbon (Fragments default) — solid hairline + strong border.
342
- @if $palette-name == 'carbon' {
343
- @return (
344
- default: #323232, // hairline
345
- strong: #4b4b4b // strong border
346
- );
347
- }
348
-
349
- @if $palette-name == 'stone' or $palette-name == 'mono' {
350
- @return (
351
- default: rgba(255, 255, 255, 0.075),
352
- strong: rgba(255, 255, 255, 0.14)
353
- );
354
- }
355
-
356
- // Dark mode: subtle white-alpha hairlines. Tight opacities keep panel
357
- // edges barely-there so borders define structure without adding visual
358
- // weight — matches the dense dashboard aesthetic.
259
+ // Solid warm hairline + strong border on the charcoal plane.
359
260
  @return (
360
- default: rgba(255, 255, 255, 0.055),
361
- strong: rgba(255, 255, 255, 0.085)
362
- );
363
- } @else {
364
- // Light mode: reduced opacity (ChatGPT --border-light ~5%)
365
- @return (
366
- default: rgba(0, 0, 0, 0.05),
367
- strong: rgba(0, 0, 0, 0.10)
261
+ default: #343029,
262
+ // hairline
263
+ strong: #4a4641 // strong border
368
264
  );
369
265
  }
266
+ // Warm-tinted hairlines so edges on the cream canvas never read as cold
267
+ // grey lines cutting through a warm scheme.
268
+ @return (default: rgba(60, 45, 30, 0.1), strong: rgba(60, 45, 30, 0.18));
370
269
  }
371
270
 
372
271
  // --------------------------------------------
@@ -381,17 +280,33 @@
381
280
  // Dark mode: near-zero shadows — hairlines and alpha overlays carry
382
281
  // elevation instead, matching dense product-chrome aesthetics.
383
282
  @return (
384
- sm: (0 1px 2px 0 rgba(0, 0, 0, 0.15)),
385
- md: (0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 1px 3px -2px rgba(0, 0, 0, 0.15)),
386
- lg: (0 8px 12px -3px rgba(0, 0, 0, 0.25), 0 3px 5px -4px rgba(0, 0, 0, 0.18))
283
+ sm: (
284
+ 0 1px 2px 0 rgba(0, 0, 0, 0.15),
285
+ ),
286
+ md: (
287
+ 0 2px 4px -1px rgba(0, 0, 0, 0.2),
288
+ 0 1px 3px -2px rgba(0, 0, 0, 0.15),
289
+ ),
290
+ lg: (
291
+ 0 8px 12px -3px rgba(0, 0, 0, 0.25),
292
+ 0 3px 5px -4px rgba(0, 0, 0, 0.18),
293
+ )
387
294
  );
388
295
  } @else {
389
296
  // Light mode: flatter aesthetic — near-zero shadows so layout reads
390
297
  // as structure rather than floating chrome.
391
298
  @return (
392
- sm: (0 1px 2px 0 rgba(0, 0, 0, 0.02)),
393
- md: (0 2px 4px -1px rgba(0, 0, 0, 0.04), 0 1px 3px -2px rgba(0, 0, 0, 0.03)),
394
- lg: (0 8px 12px -3px rgba(0, 0, 0, 0.06), 0 3px 5px -4px rgba(0, 0, 0, 0.04))
299
+ sm: (
300
+ 0 1px 2px 0 rgba(0, 0, 0, 0.02),
301
+ ),
302
+ md: (
303
+ 0 2px 4px -1px rgba(0, 0, 0, 0.04),
304
+ 0 1px 3px -2px rgba(0, 0, 0, 0.03),
305
+ ),
306
+ lg: (
307
+ 0 8px 12px -3px rgba(0, 0, 0, 0.06),
308
+ 0 3px 5px -4px rgba(0, 0, 0, 0.04),
309
+ )
395
310
  );
396
311
  }
397
312
  }
@@ -400,33 +315,20 @@
400
315
  // Scrollbar Derivation
401
316
  // --------------------------------------------
402
317
 
403
- /// Derive scrollbar tokens from a neutral palette
318
+ /// Derive scrollbar tokens for the paper ramp
404
319
  /// @param {Map} $palette - Neutral palette map
405
320
  /// @param {Boolean} $is-dark - Whether in dark mode
406
321
  /// @return {Map} Scrollbar token values
407
- @function derive-scrollbar($palette, $is-dark: false, $palette-name: 'stone') {
322
+ @function derive-scrollbar($palette, $is-dark: false, $palette-name: "paper") {
408
323
  @if $is-dark {
409
- // Carbon (Fragments default) — transparent track, strong-border thumb.
410
- @if $palette-name == 'carbon' {
411
- @return (
412
- track: transparent,
413
- thumb: #4b4b4b,
414
- thumb-hover: #b4b4b4
415
- );
416
- }
417
-
418
- @return (
419
- track: get-shade($palette, 800),
420
- thumb: get-shade($palette, 600),
421
- thumb-hover: get-shade($palette, 500)
422
- );
423
- } @else {
424
- @return (
425
- track: get-shade($palette, 100),
426
- thumb: get-shade($palette, 300),
427
- thumb-hover: get-shade($palette, 400)
428
- );
324
+ // Transparent track, strong-border thumb on the warm charcoal plane.
325
+ @return (track: transparent, thumb: #4a4641, thumb-hover: #b6b0a8);
429
326
  }
327
+ @return (
328
+ track: get-shade($palette, 100),
329
+ thumb: get-shade($palette, 300),
330
+ thumb-hover: get-shade($palette, 400)
331
+ );
430
332
  }
431
333
 
432
334
  // --------------------------------------------
@@ -510,9 +412,9 @@
510
412
  /// @param {Color} $color - Color to measure
511
413
  /// @return {Number} Relative luminance 0-1
512
414
  @function _wcag-luminance($color) {
513
- $r: _srgb-linearize(color.channel($color, 'red', $space: rgb));
514
- $g: _srgb-linearize(color.channel($color, 'green', $space: rgb));
515
- $b: _srgb-linearize(color.channel($color, 'blue', $space: rgb));
415
+ $r: _srgb-linearize(color.channel($color, "red", $space: rgb));
416
+ $g: _srgb-linearize(color.channel($color, "green", $space: rgb));
417
+ $b: _srgb-linearize(color.channel($color, "blue", $space: rgb));
516
418
  @return 0.2126 * $r + 0.7152 * $g + 0.0722 * $b;
517
419
  }
518
420