@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.
- package/README.md +4 -4
- package/dist/assets/fragments-wordmark.cjs +2 -2
- package/dist/assets/fragments-wordmark.d.ts.map +1 -1
- package/dist/assets/fragments-wordmark.js +2 -2
- package/dist/assets/ui.css +10468 -6909
- package/dist/chart.cjs +31 -26
- package/dist/chart.js +31 -26
- package/dist/codeblock.cjs +55 -29
- package/dist/codeblock.js +55 -29
- package/dist/colorpicker.cjs +5 -2
- package/dist/colorpicker.js +5 -2
- package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
- package/dist/components/Accordion/Accordion.module.scss.js +8 -8
- package/dist/components/Alert/Alert.module.scss.cjs +15 -12
- package/dist/components/Alert/Alert.module.scss.js +15 -12
- package/dist/components/Alert/index.cjs +7 -1
- package/dist/components/Alert/index.d.ts +12 -6
- package/dist/components/Alert/index.d.ts.map +1 -1
- package/dist/components/Alert/index.js +7 -1
- package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
- package/dist/components/AppShell/AppShell.module.scss.js +14 -14
- package/dist/components/AppShell/index.cjs +5 -3
- package/dist/components/AppShell/index.d.ts +4 -2
- package/dist/components/AppShell/index.d.ts.map +1 -1
- package/dist/components/AppShell/index.js +5 -3
- package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
- package/dist/components/Avatar/Avatar.module.scss.js +17 -14
- package/dist/components/Avatar/index.cjs +100 -118
- package/dist/components/Avatar/index.d.ts +7 -5
- package/dist/components/Avatar/index.d.ts.map +1 -1
- package/dist/components/Avatar/index.js +100 -118
- package/dist/components/Badge/Badge.module.scss.cjs +19 -19
- package/dist/components/Badge/Badge.module.scss.js +19 -19
- package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
- package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
- package/dist/components/Box/Box.module.scss.cjs +152 -152
- package/dist/components/Box/Box.module.scss.js +152 -152
- package/dist/components/Box/index.cjs +64 -75
- package/dist/components/Box/index.d.ts +16 -16
- package/dist/components/Box/index.d.ts.map +1 -1
- package/dist/components/Box/index.js +64 -75
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
- package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
- package/dist/components/Button/Button.module.scss.cjs +14 -14
- package/dist/components/Button/Button.module.scss.js +14 -14
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
- package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
- package/dist/components/Card/Card.module.scss.cjs +30 -18
- package/dist/components/Card/Card.module.scss.js +31 -19
- package/dist/components/Card/index.cjs +8 -0
- package/dist/components/Card/index.d.ts +12 -2
- package/dist/components/Card/index.d.ts.map +1 -1
- package/dist/components/Card/index.js +8 -0
- package/dist/components/Chart/Chart.module.scss.cjs +15 -15
- package/dist/components/Chart/Chart.module.scss.js +15 -15
- package/dist/components/Chart/index.d.ts +7 -7
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
- package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
- package/dist/components/Checkbox/index.cjs +6 -8
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.js +6 -8
- package/dist/components/Chip/Chip.module.scss.cjs +15 -15
- package/dist/components/Chip/Chip.module.scss.js +15 -15
- package/dist/components/Chip/index.cjs +6 -6
- package/dist/components/Chip/index.d.ts +1 -1
- package/dist/components/Chip/index.js +4 -4
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
- package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
- package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
- package/dist/components/CodeBlock/css-variables-theme.js +98 -0
- package/dist/components/CodeBlock/index.d.ts +17 -3
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
- package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
- package/dist/components/Collapsible/index.cjs +3 -2
- package/dist/components/Collapsible/index.d.ts +3 -3
- package/dist/components/Collapsible/index.d.ts.map +1 -1
- package/dist/components/Collapsible/index.js +3 -2
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
- package/dist/components/Combobox/Combobox.module.scss.js +21 -27
- package/dist/components/Combobox/index.cjs +21 -5
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +21 -5
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/Command/index.cjs +26 -15
- package/dist/components/Command/index.d.ts +2 -2
- package/dist/components/Command/index.d.ts.map +1 -1
- package/dist/components/Command/index.js +26 -15
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
- package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
- package/dist/components/ConversationList/index.cjs +40 -44
- package/dist/components/ConversationList/index.d.ts +3 -3
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +40 -44
- package/dist/components/DataTable/DataTable.icons.cjs +6 -33
- package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.icons.js +6 -33
- package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
- package/dist/components/DataTable/DataTable.module.scss.js +32 -56
- package/dist/components/DataTable/index.d.ts +5 -4
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
- package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
- package/dist/components/Dialog/Dialog.module.scss.js +14 -14
- package/dist/components/Dialog/index.cjs +11 -14
- package/dist/components/Dialog/index.d.ts +7 -7
- package/dist/components/Dialog/index.d.ts.map +1 -1
- package/dist/components/Dialog/index.js +11 -14
- package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
- package/dist/components/Drawer/Drawer.module.scss.js +31 -28
- package/dist/components/Drawer/index.cjs +1 -1
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/Editor/Editor.module.scss.cjs +23 -23
- package/dist/components/Editor/Editor.module.scss.js +23 -23
- package/dist/components/Editor/index.d.ts +10 -10
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
- package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
- package/dist/components/EmptyState/index.cjs +8 -6
- package/dist/components/EmptyState/index.d.ts +9 -4
- package/dist/components/EmptyState/index.d.ts.map +1 -1
- package/dist/components/EmptyState/index.js +8 -6
- package/dist/components/Field/Field.module.scss.cjs +8 -5
- package/dist/components/Field/Field.module.scss.js +8 -5
- package/dist/components/Field/index.cjs +18 -1
- package/dist/components/Field/index.d.ts +9 -2
- package/dist/components/Field/index.d.ts.map +1 -1
- package/dist/components/Field/index.js +18 -1
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Form/Form.module.scss.cjs +5 -2
- package/dist/components/Form/Form.module.scss.js +5 -2
- package/dist/components/Form/index.cjs +6 -1
- package/dist/components/Form/index.d.ts +8 -3
- package/dist/components/Form/index.d.ts.map +1 -1
- package/dist/components/Form/index.js +6 -1
- package/dist/components/Grid/Grid.module.scss.cjs +54 -72
- package/dist/components/Grid/Grid.module.scss.js +54 -72
- package/dist/components/Grid/index.cjs +57 -77
- package/dist/components/Grid/index.d.ts +11 -11
- package/dist/components/Grid/index.d.ts.map +1 -1
- package/dist/components/Grid/index.js +57 -77
- package/dist/components/Header/Header.module.scss.cjs +33 -33
- package/dist/components/Header/Header.module.scss.js +33 -33
- package/dist/components/Header/index.cjs +18 -38
- package/dist/components/Header/index.d.ts +15 -11
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +18 -38
- package/dist/components/Icon/Icon.module.scss.cjs +29 -8
- package/dist/components/Icon/Icon.module.scss.js +30 -9
- package/dist/components/Icon/index.cjs +30 -48
- package/dist/components/Icon/index.d.ts +6 -6
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.js +30 -48
- package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
- package/dist/components/IconButton/IconButton.module.scss.js +8 -8
- package/dist/components/IconButton/index.cjs +2 -1
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.js +2 -1
- package/dist/components/Image/Image.module.scss.cjs +27 -27
- package/dist/components/Image/Image.module.scss.js +27 -27
- package/dist/components/Input/Input.module.scss.cjs +19 -25
- package/dist/components/Input/Input.module.scss.js +19 -25
- package/dist/components/Input/index.cjs +1 -2
- package/dist/components/Input/index.d.ts.map +1 -1
- package/dist/components/Input/index.js +1 -2
- package/dist/components/Link/Link.module.scss.cjs +14 -10
- package/dist/components/Link/Link.module.scss.js +14 -10
- package/dist/components/Link/index.d.ts +1 -1
- package/dist/components/Link/index.d.ts.map +1 -1
- package/dist/components/List/List.module.scss.cjs +19 -19
- package/dist/components/List/List.module.scss.js +19 -19
- package/dist/components/List/index.cjs +4 -7
- package/dist/components/List/index.d.ts.map +1 -1
- package/dist/components/List/index.js +4 -7
- package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
- package/dist/components/Listbox/Listbox.module.scss.js +9 -9
- package/dist/components/Loading/Loading.module.scss.cjs +34 -34
- package/dist/components/Loading/Loading.module.scss.js +34 -34
- package/dist/components/Loading/index.cjs +39 -67
- package/dist/components/Loading/index.d.ts +6 -6
- package/dist/components/Loading/index.d.ts.map +1 -1
- package/dist/components/Loading/index.js +39 -67
- package/dist/components/Main/Main.module.scss.cjs +7 -7
- package/dist/components/Main/Main.module.scss.js +7 -7
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +2 -2
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +16 -16
- package/dist/components/Menu/Menu.module.scss.js +16 -16
- package/dist/components/Menu/index.cjs +19 -61
- package/dist/components/Menu/index.d.ts +10 -10
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +19 -61
- package/dist/components/Message/Message.module.scss.cjs +18 -21
- package/dist/components/Message/Message.module.scss.js +18 -21
- package/dist/components/Message/index.cjs +15 -2
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +15 -2
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
- package/dist/components/NavigationMenu/index.cjs +32 -15
- package/dist/components/NavigationMenu/index.d.ts +12 -6
- package/dist/components/NavigationMenu/index.d.ts.map +1 -1
- package/dist/components/NavigationMenu/index.js +32 -15
- package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
- package/dist/components/Pagination/Pagination.module.scss.js +19 -10
- package/dist/components/Pagination/index.cjs +5 -2
- package/dist/components/Pagination/index.d.ts +3 -1
- package/dist/components/Pagination/index.d.ts.map +1 -1
- package/dist/components/Pagination/index.js +5 -2
- package/dist/components/Popover/Popover.module.scss.cjs +10 -10
- package/dist/components/Popover/Popover.module.scss.js +10 -10
- package/dist/components/Progress/Progress.module.scss.cjs +29 -32
- package/dist/components/Progress/Progress.module.scss.js +29 -32
- package/dist/components/Progress/geometry.cjs +30 -0
- package/dist/components/Progress/geometry.d.ts +8 -0
- package/dist/components/Progress/geometry.d.ts.map +1 -0
- package/dist/components/Progress/geometry.js +30 -0
- package/dist/components/Progress/index.cjs +40 -29
- package/dist/components/Progress/index.d.ts +4 -3
- package/dist/components/Progress/index.d.ts.map +1 -1
- package/dist/components/Progress/index.js +40 -29
- package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
- package/dist/components/Prompt/Prompt.module.scss.js +29 -29
- package/dist/components/Prompt/index.cjs +5 -4
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +5 -4
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
- package/dist/components/RadioGroup/index.cjs +7 -6
- package/dist/components/RadioGroup/index.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.js +7 -6
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
- package/dist/components/ScrollArea/index.cjs +66 -42
- package/dist/components/ScrollArea/index.d.ts +6 -5
- package/dist/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/components/ScrollArea/index.js +66 -42
- package/dist/components/ScrollArea/scroll-state.cjs +58 -0
- package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
- package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
- package/dist/components/ScrollArea/scroll-state.js +58 -0
- package/dist/components/Select/Select.module.scss.cjs +21 -21
- package/dist/components/Select/Select.module.scss.js +21 -21
- package/dist/components/Select/index.cjs +3 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +3 -2
- package/dist/components/Separator/Separator.module.scss.cjs +13 -10
- package/dist/components/Separator/Separator.module.scss.js +13 -10
- package/dist/components/Separator/index.cjs +37 -38
- package/dist/components/Separator/index.d.ts +4 -4
- package/dist/components/Separator/index.d.ts.map +1 -1
- package/dist/components/Separator/index.js +37 -38
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
- package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
- package/dist/components/Sidebar/index.cjs +17 -38
- package/dist/components/Sidebar/index.d.ts +23 -18
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +17 -38
- package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
- package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
- package/dist/components/Skeleton/index.cjs +41 -55
- package/dist/components/Skeleton/index.d.ts +7 -7
- package/dist/components/Skeleton/index.d.ts.map +1 -1
- package/dist/components/Skeleton/index.js +41 -55
- package/dist/components/Slider/Slider.module.scss.cjs +12 -12
- package/dist/components/Slider/Slider.module.scss.js +12 -12
- package/dist/components/Stack/Stack.module.scss.cjs +25 -45
- package/dist/components/Stack/Stack.module.scss.js +25 -45
- package/dist/components/Stack/index.cjs +106 -101
- package/dist/components/Stack/index.d.ts +7 -7
- package/dist/components/Stack/index.d.ts.map +1 -1
- package/dist/components/Stack/index.js +106 -101
- package/dist/components/Switch/Switch.module.scss.cjs +32 -0
- package/dist/components/Switch/Switch.module.scss.js +32 -0
- package/dist/components/{Toggle → Switch}/index.cjs +9 -14
- package/dist/components/Switch/index.d.ts +37 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/{Toggle → Switch}/index.js +5 -10
- package/dist/components/Table/Table.module.scss.cjs +21 -30
- package/dist/components/Table/Table.module.scss.js +21 -30
- package/dist/components/Table/index.d.ts +6 -5
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
- package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
- package/dist/components/TableOfContents/index.cjs +13 -9
- package/dist/components/TableOfContents/index.d.ts +5 -3
- package/dist/components/TableOfContents/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/index.js +13 -9
- package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
- package/dist/components/Tabs/Tabs.module.scss.js +12 -12
- package/dist/components/Tabs/index.cjs +28 -8
- package/dist/components/Tabs/index.d.ts.map +1 -1
- package/dist/components/Tabs/index.js +28 -8
- package/dist/components/Text/Text.module.scss.cjs +105 -57
- package/dist/components/Text/Text.module.scss.js +105 -57
- package/dist/components/Text/index.cjs +49 -33
- package/dist/components/Text/index.d.ts +30 -19
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/components/Text/index.js +49 -33
- package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
- package/dist/components/Textarea/Textarea.module.scss.js +26 -23
- package/dist/components/Textarea/index.cjs +5 -10
- package/dist/components/Textarea/index.d.ts.map +1 -1
- package/dist/components/Textarea/index.js +5 -10
- package/dist/components/Theme/context.cjs +39 -0
- package/dist/components/Theme/context.d.ts +21 -0
- package/dist/components/Theme/context.d.ts.map +1 -0
- package/dist/components/Theme/context.js +22 -0
- package/dist/components/Theme/index.cjs +16 -210
- package/dist/components/Theme/index.d.ts +4 -37
- package/dist/components/Theme/index.d.ts.map +1 -1
- package/dist/components/Theme/index.js +11 -205
- package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
- package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
- package/dist/components/ThemeToggle/index.cjs +140 -0
- package/dist/components/ThemeToggle/index.d.ts +26 -0
- package/dist/components/ThemeToggle/index.d.ts.map +1 -0
- package/dist/components/ThemeToggle/index.js +140 -0
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
- package/dist/components/ThinkingIndicator/index.cjs +34 -41
- package/dist/components/ThinkingIndicator/index.d.ts +4 -4
- package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
- package/dist/components/ThinkingIndicator/index.js +34 -41
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/Toggle/index.d.ts +2 -42
- package/dist/components/Toggle/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
- package/dist/components/ToggleGroup/index.cjs +3 -2
- package/dist/components/ToggleGroup/index.d.ts +2 -1
- package/dist/components/ToggleGroup/index.d.ts.map +1 -1
- package/dist/components/ToggleGroup/index.js +3 -2
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
- package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
- package/dist/components/Tooltip/index.cjs +24 -40
- package/dist/components/Tooltip/index.d.ts +4 -4
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +24 -40
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
- package/dist/components/VisuallyHidden/index.d.ts +2 -2
- package/dist/data-table.cjs +14 -10
- package/dist/data-table.js +14 -10
- package/dist/datepicker.cjs +5 -3
- package/dist/datepicker.js +5 -3
- package/dist/editor.cjs +68 -28
- package/dist/editor.js +68 -28
- package/dist/index.cjs +101 -99
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/markdown.cjs +21 -29
- package/dist/markdown.js +22 -30
- package/dist/measurements/generated.cjs +304 -0
- package/dist/measurements/generated.d.ts +268 -0
- package/dist/measurements/generated.d.ts.map +1 -0
- package/dist/measurements/generated.js +304 -0
- package/dist/measurements/index.d.ts +2 -0
- package/dist/measurements/index.d.ts.map +1 -0
- package/dist/measurements.cjs +6 -0
- package/dist/measurements.js +6 -0
- package/dist/recipes/popup.cjs +14 -0
- package/dist/recipes/popup.d.ts +4 -0
- package/dist/recipes/popup.d.ts.map +1 -0
- package/dist/recipes/popup.js +14 -0
- package/dist/recipes/table-chrome.cjs +18 -0
- package/dist/recipes/table-chrome.d.ts +10 -0
- package/dist/recipes/table-chrome.d.ts.map +1 -0
- package/dist/recipes/table-chrome.js +18 -0
- package/dist/table.cjs +5 -2
- package/dist/table.js +5 -2
- package/dist/utils/a11y.cjs +5 -2
- package/dist/utils/a11y.d.ts +5 -5
- package/dist/utils/a11y.d.ts.map +1 -1
- package/dist/utils/a11y.js +5 -2
- package/dist/utils/canonical-stamp.cjs +2 -8
- package/dist/utils/canonical-stamp.d.ts.map +1 -1
- package/dist/utils/canonical-stamp.js +1 -7
- package/dist/utils/css-warning.cjs +1 -1
- package/dist/utils/css-warning.js +1 -1
- package/dist/utils/env.cjs +17 -0
- package/dist/utils/env.d.ts +3 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +17 -0
- package/dist/utils/keyboard-shortcuts.cjs +3 -10
- package/dist/utils/keyboard-shortcuts.d.ts +4 -4
- package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
- package/dist/utils/keyboard-shortcuts.js +3 -10
- package/dist/utils/layout-spacing.cjs +27 -0
- package/dist/utils/layout-spacing.d.ts +5 -0
- package/dist/utils/layout-spacing.d.ts.map +1 -0
- package/dist/utils/layout-spacing.js +27 -0
- package/dist/utils/seed-derivation.cjs +14 -48
- package/dist/utils/seed-derivation.d.ts +4 -3
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +14 -48
- package/dist/utils/theme-presets.cjs +1 -0
- package/dist/utils/theme-presets.d.ts +3 -2
- package/dist/utils/theme-presets.d.ts.map +1 -1
- package/dist/utils/theme-presets.js +1 -0
- package/fragments.json +1 -1
- package/package.json +25 -4
- package/src/assets/fragments-logo.tsx +2 -2
- package/src/assets/fragments-wordmark.tsx +4 -2
- package/src/components/Accordion/Accordion.contract.json +24 -48
- package/src/components/Accordion/Accordion.module.scss +31 -52
- package/src/components/Alert/Alert.contract.json +37 -53
- package/src/components/Alert/Alert.module.scss +52 -44
- package/src/components/Alert/index.tsx +55 -29
- package/src/components/AppShell/AppShell.contract.json +34 -51
- package/src/components/AppShell/AppShell.module.scss +59 -43
- package/src/components/AppShell/index.tsx +8 -4
- package/src/components/Avatar/Avatar.contract.json +31 -48
- package/src/components/Avatar/Avatar.module.scss +25 -60
- package/src/components/Avatar/index.tsx +152 -146
- package/src/components/Badge/Badge.contract.json +37 -42
- package/src/components/Badge/Badge.module.scss +59 -47
- package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
- package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
- package/src/components/Box/Box.contract.json +40 -148
- package/src/components/Box/Box.module.scss +253 -81
- package/src/components/Box/index.tsx +92 -99
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
- package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
- package/src/components/Button/Button.module.scss +60 -64
- package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
- package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
- package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
- package/src/components/Card/Card.module.scss +284 -167
- package/src/components/Card/index.tsx +21 -2
- package/src/components/Chart/Chart.contract.json +21 -29
- package/src/components/Chart/Chart.module.scss +28 -29
- package/src/components/Chart/index.tsx +72 -55
- package/src/components/Checkbox/Checkbox.contract.json +24 -24
- package/src/components/Checkbox/Checkbox.module.scss +75 -87
- package/src/components/Checkbox/index.tsx +8 -11
- package/src/components/Chip/Chip.contract.json +36 -42
- package/src/components/Chip/Chip.module.scss +25 -36
- package/src/components/Chip/index.tsx +5 -5
- package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
- package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
- package/src/components/CodeBlock/css-variables-theme.ts +102 -0
- package/src/components/CodeBlock/index.tsx +91 -35
- package/src/components/Collapsible/Collapsible.contract.json +21 -36
- package/src/components/Collapsible/Collapsible.module.scss +29 -63
- package/src/components/Collapsible/index.tsx +22 -26
- package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
- package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
- package/src/components/ColorPicker/index.tsx +7 -2
- package/src/components/Combobox/Combobox.contract.json +36 -37
- package/src/components/Combobox/Combobox.module.scss +61 -74
- package/src/components/Combobox/index.tsx +34 -6
- package/src/components/Command/Command.contract.json +21 -43
- package/src/components/Command/Command.module.scss +47 -77
- package/src/components/Command/index.tsx +58 -47
- package/src/components/ConversationList/ConversationList.contract.json +27 -32
- package/src/components/ConversationList/ConversationList.module.scss +20 -78
- package/src/components/ConversationList/index.tsx +55 -59
- package/src/components/DataTable/DataTable.icons.tsx +4 -21
- package/src/components/DataTable/DataTable.module.scss +81 -217
- package/src/components/DataTable/index.tsx +28 -32
- package/src/components/DatePicker/DatePicker.contract.json +27 -28
- package/src/components/DatePicker/DatePicker.module.scss +66 -38
- package/src/components/DatePicker/index.tsx +7 -3
- package/src/components/Dialog/Dialog.module.scss +45 -69
- package/src/components/Dialog/index.tsx +47 -37
- package/src/components/Drawer/Drawer.contract.json +22 -36
- package/src/components/Drawer/Drawer.module.scss +93 -99
- package/src/components/Drawer/index.tsx +1 -1
- package/src/components/Editor/Editor.contract.json +31 -48
- package/src/components/Editor/Editor.module.scss +137 -220
- package/src/components/Editor/index.tsx +240 -179
- package/src/components/EmptyState/EmptyState.contract.json +31 -43
- package/src/components/EmptyState/EmptyState.module.scss +45 -84
- package/src/components/EmptyState/index.tsx +48 -23
- package/src/components/Field/Field.contract.json +28 -45
- package/src/components/Field/Field.module.scss +9 -11
- package/src/components/Field/index.tsx +31 -1
- package/src/components/Fieldset/Fieldset.contract.json +21 -38
- package/src/components/Fieldset/Fieldset.module.scss +23 -8
- package/src/components/Form/Form.contract.json +27 -40
- package/src/components/Form/Form.module.scss +9 -4
- package/src/components/Form/index.tsx +22 -7
- package/src/components/Grid/Grid.contract.json +28 -64
- package/src/components/Grid/Grid.module.scss +159 -63
- package/src/components/Grid/index.tsx +114 -133
- package/src/components/Header/Header.contract.json +31 -67
- package/src/components/Header/Header.module.scss +56 -48
- package/src/components/Header/index.tsx +134 -121
- package/src/components/Icon/Icon.contract.json +22 -62
- package/src/components/Icon/Icon.module.scss +16 -0
- package/src/components/Icon/index.tsx +74 -86
- package/src/components/IconButton/IconButton.contract.json +34 -18
- package/src/components/IconButton/IconButton.module.scss +15 -26
- package/src/components/IconButton/index.tsx +2 -1
- package/src/components/Image/Image.contract.json +23 -56
- package/src/components/Input/Input.contract.json +26 -32
- package/src/components/Input/Input.module.scss +69 -56
- package/src/components/Input/index.tsx +1 -2
- package/src/components/Link/Link.contract.json +32 -52
- package/src/components/Link/Link.module.scss +29 -13
- package/src/components/Link/index.tsx +1 -1
- package/src/components/List/List.contract.json +23 -52
- package/src/components/List/List.module.scss +16 -21
- package/src/components/List/index.tsx +4 -10
- package/src/components/Listbox/Listbox.contract.json +21 -37
- package/src/components/Listbox/Listbox.module.scss +26 -54
- package/src/components/Loading/Loading.contract.json +37 -61
- package/src/components/Loading/Loading.module.scss +33 -40
- package/src/components/Loading/index.tsx +68 -97
- package/src/components/Main/Main.contract.json +17 -9
- package/src/components/Main/Main.module.scss +3 -5
- package/src/components/Markdown/Markdown.contract.json +22 -43
- package/src/components/Markdown/Markdown.module.scss +72 -182
- package/src/components/Markdown/index.tsx +50 -51
- package/src/components/Menu/Menu.contract.json +25 -41
- package/src/components/Menu/Menu.module.scss +63 -133
- package/src/components/Menu/index.tsx +57 -89
- package/src/components/Message/Message.contract.json +29 -52
- package/src/components/Message/Message.module.scss +60 -143
- package/src/components/Message/index.tsx +16 -6
- package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
- package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
- package/src/components/NavigationMenu/index.tsx +105 -81
- package/src/components/Pagination/Pagination.contract.json +22 -40
- package/src/components/Pagination/Pagination.module.scss +34 -27
- package/src/components/Pagination/index.tsx +7 -2
- package/src/components/Popover/Popover.contract.json +24 -46
- package/src/components/Popover/Popover.module.scss +43 -78
- package/src/components/Progress/Progress.contract.json +32 -28
- package/src/components/Progress/Progress.module.scss +64 -43
- package/src/components/Progress/geometry.ts +41 -0
- package/src/components/Progress/index.tsx +44 -30
- package/src/components/Prompt/Prompt.contract.json +31 -47
- package/src/components/Prompt/Prompt.module.scss +58 -87
- package/src/components/Prompt/index.tsx +6 -5
- package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
- package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
- package/src/components/RadioGroup/index.tsx +7 -9
- package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
- package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
- package/src/components/ScrollArea/index.tsx +85 -67
- package/src/components/ScrollArea/scroll-state.ts +87 -0
- package/src/components/Select/Select.module.scss +55 -43
- package/src/components/Select/index.tsx +6 -2
- package/src/components/Separator/Separator.contract.json +24 -48
- package/src/components/Separator/Separator.module.scss +29 -19
- package/src/components/Separator/index.tsx +55 -51
- package/src/components/Sidebar/Sidebar.contract.json +42 -62
- package/src/components/Sidebar/Sidebar.module.scss +117 -106
- package/src/components/Sidebar/index.tsx +169 -162
- package/src/components/Skeleton/Skeleton.contract.json +28 -54
- package/src/components/Skeleton/Skeleton.module.scss +51 -34
- package/src/components/Skeleton/index.tsx +65 -72
- package/src/components/Slider/Slider.contract.json +27 -39
- package/src/components/Slider/Slider.module.scss +33 -27
- package/src/components/Stack/Stack.contract.json +29 -56
- package/src/components/Stack/Stack.module.scss +110 -38
- package/src/components/Stack/index.tsx +157 -127
- package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
- package/src/components/Switch/Switch.module.scss +255 -0
- package/src/components/{Toggle → Switch}/index.tsx +5 -21
- package/src/components/Table/Table.contract.json +28 -46
- package/src/components/Table/Table.module.scss +50 -129
- package/src/components/Table/index.tsx +13 -6
- package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
- package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
- package/src/components/TableOfContents/index.tsx +26 -9
- package/src/components/Tabs/Tabs.contract.json +24 -45
- package/src/components/Tabs/Tabs.module.scss +28 -23
- package/src/components/Tabs/index.tsx +17 -5
- package/src/components/Text/Text.contract.json +30 -72
- package/src/components/Text/Text.module.scss +43 -7
- package/src/components/Text/index.tsx +136 -63
- package/src/components/Textarea/Textarea.contract.json +25 -43
- package/src/components/Textarea/Textarea.module.scss +58 -40
- package/src/components/Textarea/index.tsx +5 -12
- package/src/components/Theme/Theme.contract.json +32 -51
- package/src/components/Theme/context.ts +42 -0
- package/src/components/Theme/index.tsx +16 -310
- package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
- package/src/components/ThemeToggle/index.tsx +180 -0
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
- package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
- package/src/components/ThinkingIndicator/index.tsx +44 -54
- package/src/components/Toast/Toast.contract.json +35 -61
- package/src/components/Toast/Toast.module.scss +62 -139
- package/src/components/Toggle/index.ts +7 -0
- package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
- package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
- package/src/components/ToggleGroup/index.tsx +5 -3
- package/src/components/Tooltip/Tooltip.contract.json +31 -52
- package/src/components/Tooltip/Tooltip.module.scss +23 -39
- package/src/components/Tooltip/index.tsx +19 -24
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
- package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
- package/src/components/VisuallyHidden/index.tsx +5 -5
- package/src/index.ts +4 -3
- package/src/measurements/MeasurementTargets.module.scss +229 -0
- package/src/measurements/generated.ts +324 -0
- package/src/measurements/index.ts +8 -0
- package/src/measurements/measurements.json +368 -0
- package/src/recipes/_action.scss +138 -0
- package/src/recipes/_boolean-range.scss +116 -0
- package/src/recipes/_feedback.scss +171 -0
- package/src/recipes/_field.scss +102 -0
- package/src/recipes/_layout.scss +74 -0
- package/src/recipes/_navigation.scss +110 -0
- package/src/recipes/_overlay.scss +191 -0
- package/src/recipes/_popup.scss +102 -0
- package/src/recipes/_prose.scss +182 -0
- package/src/recipes/_representation.scss +193 -0
- package/src/recipes/_segmented.scss +26 -0
- package/src/recipes/_surface.scss +13 -0
- package/src/recipes/_table-chrome.scss +119 -0
- package/src/recipes/_target.scss +31 -0
- package/src/recipes/_typography.scss +38 -0
- package/src/recipes/popup.ts +12 -0
- package/src/recipes/table-chrome.ts +30 -0
- package/src/scss.d.ts +1 -1
- package/src/styles/globals.scss +21 -20
- package/src/tokens/_component-properties.scss +2 -2
- package/src/tokens/_computed.scss +14 -25
- package/src/tokens/_density.scss +41 -132
- package/src/tokens/_derive.scss +112 -210
- package/src/tokens/_measurements.catalog.generated.css +96 -0
- package/src/tokens/_measurements.generated.scss +617 -0
- package/src/tokens/_mixins.scss +7 -284
- package/src/tokens/_palettes.scss +39 -167
- package/src/tokens/_property-registrations.scss +96 -92
- package/src/tokens/_radius.scss +16 -70
- package/src/tokens/_seeds.scss +24 -23
- package/src/tokens/_variables.scss +338 -178
- package/src/utils/a11y.tsx +69 -69
- package/src/utils/aria.ts +3 -3
- package/src/utils/canonical-stamp.ts +2 -12
- package/src/utils/css-warning.ts +7 -7
- package/src/utils/env.ts +25 -0
- package/src/utils/keyboard-shortcuts.ts +131 -126
- package/src/utils/layout-spacing.ts +31 -0
- package/src/utils/seed-derivation.ts +144 -178
- package/src/utils/theme-presets.ts +58 -30
- package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
- package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
- package/dist/components/Toggle/Toggle.module.scss.js +0 -44
- package/src/components/Button/Button.contract.json +0 -218
- package/src/components/Card/Card.contract.json +0 -175
- package/src/components/DataTable/DataTable.contract.json +0 -302
- package/src/components/Dialog/Dialog.contract.json +0 -159
- package/src/components/Select/Select.contract.json +0 -259
- package/src/components/Switch/index.ts +0 -3
- package/src/components/Theme/ThemeToggle.module.scss +0 -91
- package/src/components/Toggle/Toggle.module.scss +0 -244
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
// Import computed values from seed system
|
|
25
25
|
@use "sass:string";
|
|
26
|
+
@use "sass:map";
|
|
26
27
|
@use "computed" as computed;
|
|
28
|
+
@use "measurements.generated" as measurements;
|
|
27
29
|
|
|
28
30
|
// --------------------------------------------
|
|
29
31
|
// Base Configuration
|
|
@@ -45,8 +47,8 @@ $fui-base-unit: computed.$computed-base-unit !default;
|
|
|
45
47
|
// Typography
|
|
46
48
|
// --------------------------------------------
|
|
47
49
|
$fui-font-sans:
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
+
"Onest Variable",
|
|
51
|
+
Onest,
|
|
50
52
|
-apple-system,
|
|
51
53
|
BlinkMacSystemFont,
|
|
52
54
|
"Segoe UI",
|
|
@@ -55,23 +57,18 @@ $fui-font-sans:
|
|
|
55
57
|
$fui-font-mono:
|
|
56
58
|
"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace !default;
|
|
57
59
|
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
$fui-font-size-
|
|
66
|
-
$fui-font-size-
|
|
67
|
-
$fui-font-size-
|
|
68
|
-
$fui-font-size-
|
|
69
|
-
$fui-font-size-
|
|
70
|
-
$fui-font-size-lg: 1.429rem !default; // 20px (h3, dialog/drawer/alert title)
|
|
71
|
-
$fui-font-size-xl: 1.714rem !default; // 24px (h2, section heading)
|
|
72
|
-
$fui-font-size-2xl: 2.143rem !default; // 30px (large display)
|
|
73
|
-
$fui-font-size-3xl: 2.571rem !default; // 36px (h1, page title)
|
|
74
|
-
$fui-font-size-4xl: 3.429rem !default; // 48px (hero display)
|
|
60
|
+
// Legacy public typography variables are generated compatibility views. New
|
|
61
|
+
// component work uses the semantic typography recipe.
|
|
62
|
+
$fui-font-size-2xs: map.get(measurements.$legacy, "typography", "fontSize", "2xs") !default;
|
|
63
|
+
$fui-font-size-xs: map.get(measurements.$legacy, "typography", "fontSize", "xs") !default;
|
|
64
|
+
$fui-font-size-sm: map.get(measurements.$legacy, "typography", "fontSize", "sm") !default;
|
|
65
|
+
$fui-font-size-base: map.get(measurements.$legacy, "typography", "fontSize", "base") !default;
|
|
66
|
+
$fui-font-size-md: map.get(measurements.$legacy, "typography", "fontSize", "md") !default;
|
|
67
|
+
$fui-font-size-lg: map.get(measurements.$legacy, "typography", "fontSize", "lg") !default;
|
|
68
|
+
$fui-font-size-xl: map.get(measurements.$legacy, "typography", "fontSize", "xl") !default;
|
|
69
|
+
$fui-font-size-2xl: map.get(measurements.$legacy, "typography", "fontSize", "2xl") !default;
|
|
70
|
+
$fui-font-size-3xl: map.get(measurements.$legacy, "typography", "fontSize", "3xl") !default;
|
|
71
|
+
$fui-font-size-4xl: map.get(measurements.$legacy, "typography", "fontSize", "4xl") !default;
|
|
75
72
|
|
|
76
73
|
// Dropdown/popup list items — menus, selects, comboboxes, listboxes, command
|
|
77
74
|
// palettes. One step below chrome text: a popup is a dense list scanned against
|
|
@@ -81,23 +78,73 @@ $fui-font-size-4xl: 3.429rem !default; // 48px (hero display)
|
|
|
81
78
|
// literal in the mixin would let the height calcs drift out of step with it.
|
|
82
79
|
$fui-popup-item-font-size: $fui-font-size-xs !default; // 12px
|
|
83
80
|
|
|
84
|
-
$fui-font-weight-normal:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
$fui-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
81
|
+
$fui-font-weight-normal: map.get(
|
|
82
|
+
measurements.$legacy,
|
|
83
|
+
"typography",
|
|
84
|
+
"fontWeight",
|
|
85
|
+
"normal"
|
|
86
|
+
) !default;
|
|
87
|
+
$fui-font-weight-medium: map.get(
|
|
88
|
+
measurements.$legacy,
|
|
89
|
+
"typography",
|
|
90
|
+
"fontWeight",
|
|
91
|
+
"medium"
|
|
92
|
+
) !default;
|
|
93
|
+
$fui-font-weight-semibold: map.get(
|
|
94
|
+
measurements.$legacy,
|
|
95
|
+
"typography",
|
|
96
|
+
"fontWeight",
|
|
97
|
+
"semibold"
|
|
98
|
+
) !default;
|
|
99
|
+
$fui-font-weight-bold: map.get(measurements.$legacy, "typography", "fontWeight", "bold") !default;
|
|
100
|
+
|
|
101
|
+
$fui-line-height-tight: map.get(measurements.$legacy, "typography", "lineHeight", "tight") !default;
|
|
102
|
+
$fui-line-height-normal: map.get(
|
|
103
|
+
measurements.$legacy,
|
|
104
|
+
"typography",
|
|
105
|
+
"lineHeight",
|
|
106
|
+
"normal"
|
|
107
|
+
) !default;
|
|
108
|
+
$fui-line-height-relaxed: map.get(
|
|
109
|
+
measurements.$legacy,
|
|
110
|
+
"typography",
|
|
111
|
+
"lineHeight",
|
|
112
|
+
"relaxed"
|
|
113
|
+
) !default;
|
|
114
|
+
$fui-line-height-display: map.get(
|
|
115
|
+
measurements.$legacy,
|
|
116
|
+
"typography",
|
|
117
|
+
"lineHeight",
|
|
118
|
+
"display"
|
|
119
|
+
) !default;
|
|
120
|
+
$fui-line-height-prose: map.get(measurements.$legacy, "typography", "lineHeight", "prose") !default;
|
|
94
121
|
|
|
95
122
|
// Letter spacing — keep neutral by default so dense product chrome, headings,
|
|
96
123
|
// and generated app surfaces do not drift into separate typographic systems.
|
|
97
|
-
$fui-letter-spacing-tight:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
124
|
+
$fui-letter-spacing-tight: map.get(
|
|
125
|
+
measurements.$legacy,
|
|
126
|
+
"typography",
|
|
127
|
+
"letterSpacing",
|
|
128
|
+
"tight"
|
|
129
|
+
) !default;
|
|
130
|
+
$fui-letter-spacing-normal: map.get(
|
|
131
|
+
measurements.$legacy,
|
|
132
|
+
"typography",
|
|
133
|
+
"letterSpacing",
|
|
134
|
+
"normal"
|
|
135
|
+
) !default;
|
|
136
|
+
$fui-letter-spacing-display: map.get(
|
|
137
|
+
measurements.$legacy,
|
|
138
|
+
"typography",
|
|
139
|
+
"letterSpacing",
|
|
140
|
+
"display"
|
|
141
|
+
) !default;
|
|
142
|
+
$fui-letter-spacing-wide: map.get(
|
|
143
|
+
measurements.$legacy,
|
|
144
|
+
"typography",
|
|
145
|
+
"letterSpacing",
|
|
146
|
+
"wide"
|
|
147
|
+
) !default;
|
|
101
148
|
|
|
102
149
|
// --------------------------------------------
|
|
103
150
|
// Spacing (derived from density seed)
|
|
@@ -141,6 +188,17 @@ $fui-radius-lg: computed.$computed-radius-lg !default;
|
|
|
141
188
|
$fui-radius-xl: computed.$computed-radius-xl !default;
|
|
142
189
|
$fui-radius-full: computed.$computed-radius-full !default;
|
|
143
190
|
|
|
191
|
+
// --------------------------------------------
|
|
192
|
+
// Strokes + control tracks (mirror the measurement CSS vars for SCSS fallbacks)
|
|
193
|
+
// --------------------------------------------
|
|
194
|
+
$fui-stroke-hairline: measurements.target-value("stroke", "hairline") !default;
|
|
195
|
+
$fui-stroke-default: measurements.target-value("stroke", "default") !default;
|
|
196
|
+
$fui-stroke-strong: measurements.target-value("stroke", "strong") !default;
|
|
197
|
+
$fui-control-track-micro: measurements.target-value("controlTrack", "micro") !default;
|
|
198
|
+
$fui-control-track-sm: measurements.target-value("controlTrack", "sm") !default;
|
|
199
|
+
$fui-control-track-md: measurements.target-value("controlTrack", "md") !default;
|
|
200
|
+
$fui-control-track-lg: measurements.target-value("controlTrack", "lg") !default;
|
|
201
|
+
|
|
144
202
|
// --------------------------------------------
|
|
145
203
|
// Transitions
|
|
146
204
|
// --------------------------------------------
|
|
@@ -189,9 +247,10 @@ $fui-bg-elevated: computed.$computed-bg-elevated !default;
|
|
|
189
247
|
$fui-bg-subtle: computed.$computed-bg-subtle !default;
|
|
190
248
|
$fui-bg-hover: computed.$computed-bg-hover !default;
|
|
191
249
|
$fui-bg-active: computed.$computed-bg-active !default;
|
|
192
|
-
// The document canvas
|
|
193
|
-
//
|
|
194
|
-
|
|
250
|
+
// The document canvas is the derived "paper" tone in light mode (carbon 100).
|
|
251
|
+
// Body and main stay on that shared plane; raised component roles provide the
|
|
252
|
+
// contrast instead of consumer-specific page overrides.
|
|
253
|
+
$fui-body-bg: computed.$computed-body-bg !default;
|
|
195
254
|
$fui-main-bg: computed.$computed-main-bg !default;
|
|
196
255
|
|
|
197
256
|
// Text colors (derived from $fui-neutral palette)
|
|
@@ -323,19 +382,23 @@ $fui-breakpoint-xl: 1280px !default;
|
|
|
323
382
|
// Component-specific tokens
|
|
324
383
|
// --------------------------------------------
|
|
325
384
|
|
|
326
|
-
//
|
|
327
|
-
|
|
328
|
-
$fui-
|
|
329
|
-
$fui-
|
|
330
|
-
$fui-
|
|
331
|
-
$fui-
|
|
332
|
-
|
|
385
|
+
// Interactive control heights are fixed geometry. Density still governs
|
|
386
|
+
// composition spacing, but it cannot resize a named control.
|
|
387
|
+
$fui-control-height-xs: measurements.target-value("controlTrack", "micro") !default;
|
|
388
|
+
$fui-control-height-sm: measurements.target-value("controlTrack", "sm") !default;
|
|
389
|
+
$fui-control-height-md: measurements.target-value("controlTrack", "md") !default;
|
|
390
|
+
$fui-control-height-lg: measurements.target-value("controlTrack", "lg") !default;
|
|
391
|
+
|
|
392
|
+
// Legacy aliases — prefer --fui-control-height-* in new code
|
|
393
|
+
$fui-button-height-xs: $fui-control-height-xs !default;
|
|
394
|
+
$fui-button-height-sm: $fui-control-height-sm !default;
|
|
395
|
+
$fui-button-height-md: $fui-control-height-md !default;
|
|
396
|
+
$fui-button-height-lg: $fui-control-height-lg !default;
|
|
397
|
+
$fui-button-outlined-shadow: none !default;
|
|
333
398
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
$fui-input-height:
|
|
337
|
-
$fui-input-height-sm: computed.$computed-input-height-sm !default;
|
|
338
|
-
$fui-input-height-lg: computed.$computed-input-height-lg !default;
|
|
399
|
+
$fui-input-height-sm: measurements.target-value("fieldTrack", "sm") !default;
|
|
400
|
+
$fui-input-height: measurements.target-value("fieldTrack", "md") !default;
|
|
401
|
+
$fui-input-height-lg: measurements.target-value("fieldTrack", "lg") !default;
|
|
339
402
|
|
|
340
403
|
// Touch targets (derived from density seed)
|
|
341
404
|
$fui-touch-sm: computed.$computed-touch-sm !default;
|
|
@@ -346,37 +409,91 @@ $fui-touch-lg: computed.$computed-touch-lg !default;
|
|
|
346
409
|
// Keep this token globally available to preserve a product-control floor for
|
|
347
410
|
// touch/pointer targets. WCAG 2.2 allows 24px, but Fragments uses 32px so
|
|
348
411
|
// field controls, toolbar buttons, tabs, and picker triggers align.
|
|
349
|
-
$fui-target-size-min:
|
|
412
|
+
$fui-target-size-min: map.get(measurements.$legacy, "touch", "minimum") !default;
|
|
350
413
|
$fui-target-size-comfortable: $fui-touch-md !default;
|
|
351
414
|
|
|
352
|
-
//
|
|
353
|
-
|
|
354
|
-
$fui-icon-
|
|
355
|
-
$fui-icon-
|
|
356
|
-
$fui-icon-
|
|
357
|
-
$fui-icon-
|
|
358
|
-
$fui-icon-
|
|
415
|
+
// Fixed icon geometry. The legacy rem records remain frozen for compatibility
|
|
416
|
+
// auditing, while active Sass and runtime values project the accepted px targets.
|
|
417
|
+
$fui-icon-xs: measurements.target-value("icon", "xs") !default;
|
|
418
|
+
$fui-icon-sm: measurements.target-value("icon", "sm") !default;
|
|
419
|
+
$fui-icon-md: measurements.target-value("icon", "md") !default;
|
|
420
|
+
$fui-icon-lg: measurements.target-value("icon", "lg") !default;
|
|
421
|
+
$fui-icon-xl: measurements.target-value("icon", "xl") !default;
|
|
422
|
+
$fui-icon-2xl: measurements.target-value("icon", "2xl") !default;
|
|
359
423
|
|
|
360
424
|
// Animation offsets
|
|
361
425
|
$fui-anim-offset-sm: 4px !default; // Small slide animation
|
|
362
426
|
$fui-anim-offset-md: 8px !default; // Medium slide animation
|
|
363
427
|
|
|
428
|
+
// Ambient loop durations — infinite animations (spinners, pulses, shimmer).
|
|
429
|
+
// Easing stays per-effect; duration is the system knob.
|
|
430
|
+
$fui-duration-spin: 800ms !default; // Busy indicators
|
|
431
|
+
$fui-duration-pulse: 1500ms !default; // Breathing / attention loops
|
|
432
|
+
$fui-duration-shimmer: 2000ms !default; // Placeholder shimmer
|
|
433
|
+
|
|
434
|
+
// Overlay stacking layers (kept adjacent so relative order is auditable)
|
|
435
|
+
$fui-overlay-layer-swipe: 49 !default;
|
|
436
|
+
$fui-overlay-layer-backdrop: 50 !default;
|
|
437
|
+
$fui-overlay-layer-modal: 51 !default;
|
|
438
|
+
$fui-overlay-layer-anchored: 52 !default;
|
|
439
|
+
$fui-overlay-layer-tooltip: 60 !default;
|
|
440
|
+
|
|
364
441
|
// Sidebar (multi-consumer — used by Sidebar, NavigationMenu, Theme)
|
|
365
442
|
$fui-sidebar-item-height: computed.$computed-sidebar-item-height !default; // density-responsive (compact/default: 32px, relaxed: 36px)
|
|
366
443
|
|
|
367
444
|
// AppShell Layout
|
|
368
|
-
$fui-appshell-header-height:
|
|
445
|
+
$fui-appshell-header-height: map.get(
|
|
446
|
+
measurements.$legacy,
|
|
447
|
+
"navigation",
|
|
448
|
+
"appShellHeaderHeight"
|
|
449
|
+
) !default;
|
|
369
450
|
$fui-header-z-index: 40 !default;
|
|
370
451
|
|
|
371
452
|
// CodeBlock background — shared with Markdown's <pre> prose styling — and
|
|
372
453
|
// selection tint are runtime hooks so consuming apps can preserve their own
|
|
373
454
|
// code-surface treatment without forking either component.
|
|
374
|
-
|
|
455
|
+
// Light stop is the paper tertiary well — not a second dark grey.
|
|
456
|
+
$fui-code-bg: light-dark(#{$fui-bg-tertiary}, #{$fui-dark-bg-tertiary}) !default;
|
|
457
|
+
// Accent capsule — the tertiary well + wash/hairline, so the earned moment
|
|
458
|
+
// sits *into* the page rather than floating a white slab on it (lifted-verdict
|
|
459
|
+
// direction, 2026-08-22). Do not mix toward black: that paints a dark slab on
|
|
460
|
+
// the light canvas.
|
|
461
|
+
$fui-card-accent-bg: $fui-bg-tertiary !default;
|
|
462
|
+
$fui-card-accent-border: color-mix(in srgb, $fui-color-accent 30%, $fui-border) !default;
|
|
463
|
+
// Softer than a panel: the capsule is a moment, not another card.
|
|
464
|
+
$fui-card-accent-radius: $fui-radius-xl !default;
|
|
465
|
+
// Selection tint tracks the accent (pine light / sage dark), not the button
|
|
466
|
+
// chrome — the ink-first default theme paints buttons with the inverse
|
|
467
|
+
// surface, which would grey out code selection.
|
|
375
468
|
$fui-code-selection-bg: color-mix(
|
|
376
469
|
in srgb,
|
|
377
|
-
var(--fui-
|
|
470
|
+
var(--fui-color-accent, #f56138) 30%,
|
|
378
471
|
transparent
|
|
379
472
|
) !default;
|
|
473
|
+
// Default code ink follows primary text so unhighlighted fallback and shiki
|
|
474
|
+
// `css-variables` foreground stay on the same contrast floor.
|
|
475
|
+
$fui-code-text: $fui-text-primary !default;
|
|
476
|
+
// Syntax ink for CodeBlock's css-variables theme. Each light stop is ≥ 4.5:1
|
|
477
|
+
// on the light code well; each dark stop is ≥ 4.5:1 on the dark code well
|
|
478
|
+
// (gated by read-safe-contrast.test.ts).
|
|
479
|
+
$fui-code-token-keyword: #9a3412 !default;
|
|
480
|
+
$fui-code-token-string: #166534 !default;
|
|
481
|
+
$fui-code-token-comment: #5c5348 !default;
|
|
482
|
+
$fui-code-token-function: #1e3a8a !default;
|
|
483
|
+
$fui-code-token-number: #92400e !default;
|
|
484
|
+
$fui-code-token-punctuation: #3d3429 !default;
|
|
485
|
+
$fui-code-token-variable: #3d3429 !default;
|
|
486
|
+
$fui-dark-code-token-keyword: #f56138 !default;
|
|
487
|
+
$fui-dark-code-token-string: #7dcea0 !default;
|
|
488
|
+
$fui-dark-code-token-comment: #a89b8c !default;
|
|
489
|
+
$fui-dark-code-token-function: #8cb4e8 !default;
|
|
490
|
+
$fui-dark-code-token-number: #e8b86d !default;
|
|
491
|
+
$fui-dark-code-token-punctuation: #c9c2b8 !default;
|
|
492
|
+
$fui-dark-code-token-variable: #f0ede9 !default;
|
|
493
|
+
// Prose/link ink. Light is a darker accent step so 4.5:1 holds on
|
|
494
|
+
// --fui-app-main-bg; dark keeps the theme accent (already ≥ 4.5).
|
|
495
|
+
$fui-link-ink: #9a3412 !default;
|
|
496
|
+
$fui-dark-link-ink: $fui-dark-color-accent !default;
|
|
380
497
|
|
|
381
498
|
// --------------------------------------------
|
|
382
499
|
// CSS Custom Properties Export
|
|
@@ -394,6 +511,7 @@ $fui-code-selection-bg: color-mix(
|
|
|
394
511
|
// Base configuration
|
|
395
512
|
font-size: #{$fui-base-font-size};
|
|
396
513
|
--fui-base-unit: #{$fui-base-unit};
|
|
514
|
+
@include measurements.emit-fixed-custom-properties;
|
|
397
515
|
|
|
398
516
|
// Seed colors — the 5 configurable seeds exposed as custom properties.
|
|
399
517
|
// Tracks SCSS seed variables, so compile-time customization is reflected.
|
|
@@ -468,6 +586,20 @@ $fui-code-selection-bg: color-mix(
|
|
|
468
586
|
--fui-transition-fast: #{$fui-transition-fast};
|
|
469
587
|
--fui-transition-normal: #{$fui-transition-normal};
|
|
470
588
|
|
|
589
|
+
// Motion primitives
|
|
590
|
+
--fui-anim-offset-sm: #{$fui-anim-offset-sm};
|
|
591
|
+
--fui-anim-offset-md: #{$fui-anim-offset-md};
|
|
592
|
+
--fui-duration-spin: #{$fui-duration-spin};
|
|
593
|
+
--fui-duration-pulse: #{$fui-duration-pulse};
|
|
594
|
+
--fui-duration-shimmer: #{$fui-duration-shimmer};
|
|
595
|
+
|
|
596
|
+
// Overlay stacking layers
|
|
597
|
+
--fui-overlay-layer-swipe: #{$fui-overlay-layer-swipe};
|
|
598
|
+
--fui-overlay-layer-backdrop: #{$fui-overlay-layer-backdrop};
|
|
599
|
+
--fui-overlay-layer-modal: #{$fui-overlay-layer-modal};
|
|
600
|
+
--fui-overlay-layer-anchored: #{$fui-overlay-layer-anchored};
|
|
601
|
+
--fui-overlay-layer-tooltip: #{$fui-overlay-layer-tooltip};
|
|
602
|
+
|
|
471
603
|
// Colors — Accent (light-dark for automatic dark mode)
|
|
472
604
|
--fui-color-accent: light-dark(#{$fui-color-accent}, #{$fui-dark-color-accent});
|
|
473
605
|
--fui-color-on-accent: light-dark(#{$fui-color-on-accent}, #{$fui-dark-color-on-accent});
|
|
@@ -569,15 +701,36 @@ $fui-code-selection-bg: color-mix(
|
|
|
569
701
|
--fui-border-strong: light-dark(#{$fui-border-strong}, #{$fui-dark-border-strong});
|
|
570
702
|
--fui-border-subtle: color-mix(in srgb, var(--fui-border-default) 68%, transparent);
|
|
571
703
|
|
|
704
|
+
// Placeholder fills. A skeleton has to read as a *missing fact* against the
|
|
705
|
+
// card it sits in — a hairline-weight tint is invisible on paper, so the
|
|
706
|
+
// base leans on the border colour and the highlight is the shimmer stop.
|
|
707
|
+
--fui-skeleton: color-mix(in srgb, var(--fui-border-default) 62%, var(--fui-bg-secondary));
|
|
708
|
+
--fui-skeleton-hi: color-mix(in srgb, var(--fui-border-default) 24%, var(--fui-bg-secondary));
|
|
709
|
+
|
|
572
710
|
// Native browser text selection tracks the accent (pine in light, sage in
|
|
573
711
|
// dark) as a soft wash — matching the Flight Recorder accent-tint.
|
|
574
712
|
// Component-selected states stay tuned per control density.
|
|
575
713
|
--fui-selection-bg: light-dark(
|
|
576
|
-
color-mix(in srgb, var(--fui-color-accent, #
|
|
577
|
-
color-mix(in srgb, var(--fui-color-accent, #
|
|
714
|
+
color-mix(in srgb, var(--fui-color-accent, #f56138) 18%, transparent),
|
|
715
|
+
color-mix(in srgb, var(--fui-color-accent, #f56138) 22%, transparent)
|
|
578
716
|
);
|
|
579
717
|
--fui-selection-color: var(--fui-text-primary);
|
|
580
718
|
|
|
719
|
+
// Persistent neutral selection for navigation, segmented controls, fields,
|
|
720
|
+
// and rows. Keep this separate from --fui-bg-active: active is the brief
|
|
721
|
+
// pointer-down state; selected must remain visible without dominating its
|
|
722
|
+
// surrounding surface.
|
|
723
|
+
--fui-control-selected-bg: color-mix(in srgb, var(--fui-text-primary) 9%, transparent);
|
|
724
|
+
|
|
725
|
+
// Checked/value controls carry product meaning, so they follow the accent
|
|
726
|
+
// rather than button chrome. This keeps Checkbox, RadioGroup, and Switch
|
|
727
|
+
// stable when a consumer customizes primary actions independently.
|
|
728
|
+
--fui-control-checked-bg: var(--fui-color-accent);
|
|
729
|
+
--fui-control-checked-bg-hover: var(--fui-color-accent-hover);
|
|
730
|
+
--fui-control-checked-border: var(--fui-color-accent);
|
|
731
|
+
--fui-control-checked-border-hover: var(--fui-color-accent-hover);
|
|
732
|
+
--fui-control-checked-color: var(--fui-color-on-accent);
|
|
733
|
+
|
|
581
734
|
// Form chrome (shared by Input, Textarea, Select, Combobox, DatePicker,
|
|
582
735
|
// ColorPicker, Editor, and listbox-style controls).
|
|
583
736
|
--fui-field-bg: color-mix(in srgb, var(--fui-bg-elevated) 72%, transparent);
|
|
@@ -589,7 +742,7 @@ $fui-code-selection-bg: color-mix(
|
|
|
589
742
|
var(--fui-border-strong)
|
|
590
743
|
);
|
|
591
744
|
--fui-field-border-focus: var(--fui-text-primary);
|
|
592
|
-
--fui-field-selection-bg:
|
|
745
|
+
--fui-field-selection-bg: var(--fui-control-selected-bg);
|
|
593
746
|
--fui-field-selection-bg-hover: color-mix(in srgb, var(--fui-text-primary) 11%, transparent);
|
|
594
747
|
--fui-field-selection-border: var(--fui-border-strong);
|
|
595
748
|
--fui-field-selection-color: var(--fui-text-primary);
|
|
@@ -614,96 +767,55 @@ $fui-code-selection-bg: color-mix(
|
|
|
614
767
|
--fui-kbd-radius: var(--fui-radius-sm);
|
|
615
768
|
--fui-kbd-reserved-width: 2.714rem; // 38px, enough for "⌘K"
|
|
616
769
|
|
|
617
|
-
// Button chrome.
|
|
618
|
-
//
|
|
619
|
-
//
|
|
620
|
-
//
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
var(--fui-button-primary-active) 86%,
|
|
627
|
-
black 14%
|
|
628
|
-
);
|
|
629
|
-
--fui-button-primary-border: color-mix(
|
|
630
|
-
in srgb,
|
|
631
|
-
var(--fui-button-primary-active) 74%,
|
|
632
|
-
black 26%
|
|
633
|
-
);
|
|
634
|
-
--fui-button-primary-color: #fff;
|
|
635
|
-
|
|
770
|
+
// Button chrome. Every theme uses flat fills: hierarchy comes from colour,
|
|
771
|
+
// border, and state contrast rather than a second raised/gradient material.
|
|
772
|
+
//
|
|
773
|
+
// The Fragments default is ink-first: the primary action wears the inverse
|
|
774
|
+
// surface (near-black on paper, near-white on charcoal) with the accent
|
|
775
|
+
// reserved for meaning — links, selection, focus, "contract passing".
|
|
776
|
+
// A consumer-supplied $fui-brand switches primary chrome to the accent
|
|
777
|
+
// ramp so their brand colour actually paints their buttons (previously the
|
|
778
|
+
// chrome stayed pine regardless of seed).
|
|
636
779
|
@if $fui-brand-is-default {
|
|
637
|
-
|
|
638
|
-
--fui-button-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
--fui-button-primary-bg-active: var(--fui-button-primary-active);
|
|
642
|
-
--fui-button-primary-shadow: none;
|
|
643
|
-
--fui-button-primary-shadow-active: inset
|
|
644
|
-
0
|
|
645
|
-
1px
|
|
646
|
-
2px
|
|
647
|
-
color-mix(in srgb, black 22%, transparent);
|
|
648
|
-
} @else {
|
|
649
|
-
// Raised-gradient recipe for consumer-branded builds.
|
|
650
|
-
--fui-button-radius: var(--fui-radius-lg);
|
|
651
|
-
--fui-button-primary-bg: linear-gradient(
|
|
652
|
-
to bottom,
|
|
653
|
-
color-mix(in srgb, var(--fui-button-primary-base) 78%, white 22%) 0%,
|
|
654
|
-
var(--fui-button-primary-base) 52%,
|
|
655
|
-
color-mix(in srgb, var(--fui-button-primary-active) 88%, black 12%) 100%
|
|
656
|
-
);
|
|
657
|
-
--fui-button-primary-bg-hover: linear-gradient(
|
|
658
|
-
to bottom,
|
|
659
|
-
color-mix(in srgb, var(--fui-button-primary-hover) 76%, white 24%) 0%,
|
|
660
|
-
var(--fui-button-primary-hover) 52%,
|
|
661
|
-
color-mix(in srgb, var(--fui-button-primary-active) 84%, black 16%) 100%
|
|
780
|
+
--fui-button-primary-base: var(--fui-bg-inverse);
|
|
781
|
+
--fui-button-primary-hover: light-dark(
|
|
782
|
+
color-mix(in srgb, var(--fui-bg-inverse) 88%, white),
|
|
783
|
+
#ffffff
|
|
662
784
|
);
|
|
663
|
-
--fui-button-primary-
|
|
664
|
-
|
|
665
|
-
color-mix(in srgb, var(--fui-
|
|
666
|
-
var(--fui-button-primary-active) 100%
|
|
785
|
+
--fui-button-primary-active: light-dark(
|
|
786
|
+
color-mix(in srgb, var(--fui-bg-inverse) 92%, black),
|
|
787
|
+
color-mix(in srgb, var(--fui-bg-inverse) 94%, black)
|
|
667
788
|
);
|
|
668
|
-
--fui-button-primary-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
--fui-button-primary-
|
|
673
|
-
|
|
674
|
-
|
|
789
|
+
--fui-button-primary-color: var(--fui-text-inverse);
|
|
790
|
+
--fui-button-radius: var(--fui-radius-xl);
|
|
791
|
+
} @else {
|
|
792
|
+
--fui-button-primary-base: var(--fui-color-accent);
|
|
793
|
+
--fui-button-primary-hover: var(--fui-color-accent-hover);
|
|
794
|
+
--fui-button-primary-active: var(--fui-color-accent-active);
|
|
795
|
+
--fui-button-primary-color: var(--fui-color-on-accent);
|
|
796
|
+
--fui-button-radius: var(--fui-radius-lg);
|
|
675
797
|
}
|
|
676
798
|
|
|
677
|
-
--fui-button-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
799
|
+
--fui-button-primary-border: var(--fui-button-primary-base);
|
|
800
|
+
--fui-button-primary-border-hover: var(--fui-button-primary-hover);
|
|
801
|
+
|
|
802
|
+
--fui-button-primary-bg: var(--fui-button-primary-base);
|
|
803
|
+
--fui-button-primary-bg-hover: var(--fui-button-primary-hover);
|
|
804
|
+
--fui-button-primary-bg-active: var(--fui-button-primary-active);
|
|
805
|
+
--fui-button-primary-shadow: none;
|
|
806
|
+
--fui-button-primary-shadow-active: none;
|
|
807
|
+
|
|
808
|
+
--fui-button-neutral-bg: light-dark(
|
|
809
|
+
color-mix(in srgb, var(--fui-bg-elevated) 94%, var(--fui-text-primary) 6%),
|
|
810
|
+
color-mix(in srgb, var(--fui-bg-elevated) 92%, var(--fui-text-primary) 8%)
|
|
689
811
|
);
|
|
690
|
-
--fui-button-neutral-bg-hover:
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
color-mix(in srgb, var(--fui-bg-elevated) 99%, var(--fui-text-primary) 1%),
|
|
694
|
-
color-mix(in srgb, var(--fui-bg-elevated) 82%, var(--fui-text-primary) 18%)
|
|
695
|
-
)
|
|
696
|
-
0%,
|
|
697
|
-
light-dark(
|
|
698
|
-
color-mix(in srgb, var(--fui-bg-elevated) 88%, var(--fui-text-primary) 12%),
|
|
699
|
-
color-mix(in srgb, var(--fui-bg-elevated) 92%, var(--fui-text-primary) 8%)
|
|
700
|
-
)
|
|
701
|
-
100%
|
|
812
|
+
--fui-button-neutral-bg-hover: light-dark(
|
|
813
|
+
color-mix(in srgb, var(--fui-bg-elevated) 90%, var(--fui-text-primary) 10%),
|
|
814
|
+
color-mix(in srgb, var(--fui-bg-elevated) 86%, var(--fui-text-primary) 14%)
|
|
702
815
|
);
|
|
703
|
-
--fui-button-neutral-bg-active:
|
|
704
|
-
|
|
705
|
-
color-mix(in srgb, var(--fui-bg-elevated)
|
|
706
|
-
color-mix(in srgb, var(--fui-bg-elevated) 90%, var(--fui-text-primary) 10%) 100%
|
|
816
|
+
--fui-button-neutral-bg-active: light-dark(
|
|
817
|
+
color-mix(in srgb, var(--fui-bg-elevated) 84%, var(--fui-text-primary) 16%),
|
|
818
|
+
color-mix(in srgb, var(--fui-bg-elevated) 80%, var(--fui-text-primary) 20%)
|
|
707
819
|
);
|
|
708
820
|
--fui-button-neutral-border: color-mix(
|
|
709
821
|
in srgb,
|
|
@@ -716,21 +828,39 @@ $fui-code-selection-bg: color-mix(
|
|
|
716
828
|
var(--fui-text-primary) 42%
|
|
717
829
|
);
|
|
718
830
|
--fui-button-neutral-color: var(--fui-text-primary);
|
|
719
|
-
--fui-button-outlined-shadow:
|
|
720
|
-
--fui-button-neutral-shadow:
|
|
721
|
-
|
|
722
|
-
light-dark(
|
|
723
|
-
color-mix(in srgb, white 88%, transparent),
|
|
724
|
-
color-mix(in srgb, white 7%, transparent)
|
|
725
|
-
),
|
|
726
|
-
inset 0 -1px 0 color-mix(in srgb, var(--fui-text-primary) 7%, transparent),
|
|
727
|
-
0 1px 1px color-mix(in srgb, black 12%, transparent);
|
|
728
|
-
--fui-button-neutral-shadow-active:
|
|
729
|
-
inset 0 1px 2px color-mix(in srgb, black 16%, transparent),
|
|
730
|
-
inset 0 0 0 1px color-mix(in srgb, var(--fui-text-primary) 6%, transparent);
|
|
831
|
+
--fui-button-outlined-shadow: none;
|
|
832
|
+
--fui-button-neutral-shadow: none;
|
|
833
|
+
--fui-button-neutral-shadow-active: none;
|
|
731
834
|
|
|
732
835
|
--fui-code-bg: #{$fui-code-bg};
|
|
733
836
|
--fui-code-selection-bg: #{$fui-code-selection-bg};
|
|
837
|
+
--fui-code-text: var(--fui-text-primary);
|
|
838
|
+
--fui-code-token-keyword: light-dark(
|
|
839
|
+
#{$fui-code-token-keyword},
|
|
840
|
+
#{$fui-dark-code-token-keyword}
|
|
841
|
+
);
|
|
842
|
+
--fui-code-token-string: light-dark(#{$fui-code-token-string}, #{$fui-dark-code-token-string});
|
|
843
|
+
--fui-code-token-comment: light-dark(
|
|
844
|
+
#{$fui-code-token-comment},
|
|
845
|
+
#{$fui-dark-code-token-comment}
|
|
846
|
+
);
|
|
847
|
+
--fui-code-token-function: light-dark(
|
|
848
|
+
#{$fui-code-token-function},
|
|
849
|
+
#{$fui-dark-code-token-function}
|
|
850
|
+
);
|
|
851
|
+
--fui-code-token-number: light-dark(#{$fui-code-token-number}, #{$fui-dark-code-token-number});
|
|
852
|
+
--fui-code-token-punctuation: light-dark(
|
|
853
|
+
#{$fui-code-token-punctuation},
|
|
854
|
+
#{$fui-dark-code-token-punctuation}
|
|
855
|
+
);
|
|
856
|
+
--fui-code-token-variable: light-dark(
|
|
857
|
+
#{$fui-code-token-variable},
|
|
858
|
+
#{$fui-dark-code-token-variable}
|
|
859
|
+
);
|
|
860
|
+
--fui-link-ink: light-dark(#{$fui-link-ink}, #{$fui-dark-link-ink});
|
|
861
|
+
--fui-card-accent-bg: var(--fui-bg-tertiary);
|
|
862
|
+
--fui-card-accent-border: color-mix(in srgb, var(--fui-color-accent) 30%, var(--fui-border));
|
|
863
|
+
--fui-card-accent-radius: #{$fui-card-accent-radius};
|
|
734
864
|
|
|
735
865
|
// Popup/menu active-item highlight — neutral, deliberately stronger than
|
|
736
866
|
// --fui-bg-hover (which is tuned for subtle surface hovers and reads as ~invisible
|
|
@@ -741,15 +871,18 @@ $fui-code-selection-bg: color-mix(
|
|
|
741
871
|
// Product shell and navigation chrome. These stay neutral-first so a
|
|
742
872
|
// dashboard page reads as one system instead of brand-tinted islands.
|
|
743
873
|
--fui-app-canvas-bg: var(--fui-body-bg);
|
|
744
|
-
|
|
745
|
-
|
|
874
|
+
// Same surface order in both themes: the rail is recessed, the main
|
|
875
|
+
// reading sheet is raised. Light: tertiary paper rail, body-bg sheet.
|
|
876
|
+
// Dark keeps the lifted rail on a deeper body.
|
|
877
|
+
--fui-app-main-bg: var(--fui-body-bg);
|
|
878
|
+
--fui-app-sidebar-bg: var(--fui-bg-tertiary);
|
|
746
879
|
--fui-sidebar-bg: var(--fui-app-sidebar-bg);
|
|
747
880
|
--fui-sidebar-border: var(--fui-border-default);
|
|
748
881
|
--fui-sidebar-item-color: var(--fui-text-secondary);
|
|
749
882
|
--fui-sidebar-item-icon-color: var(--fui-text-tertiary);
|
|
750
883
|
--fui-sidebar-item-hover-bg: var(--fui-bg-hover);
|
|
751
884
|
--fui-sidebar-item-hover-color: var(--fui-text-primary);
|
|
752
|
-
--fui-sidebar-item-active-bg:
|
|
885
|
+
--fui-sidebar-item-active-bg: var(--fui-control-selected-bg);
|
|
753
886
|
--fui-sidebar-item-active-border: transparent;
|
|
754
887
|
--fui-sidebar-item-active-color: var(--fui-text-primary);
|
|
755
888
|
--fui-sidebar-item-active-indicator: transparent;
|
|
@@ -760,6 +893,11 @@ $fui-code-selection-bg: color-mix(
|
|
|
760
893
|
--fui-badge-dot-color: currentColor;
|
|
761
894
|
--fui-card-radius: var(--fui-radius-lg);
|
|
762
895
|
--fui-card-bg: color-mix(in srgb, var(--fui-bg-elevated) 92%, transparent);
|
|
896
|
+
// Full-bleed card chrome (for example `Card.Header divided`) shares the
|
|
897
|
+
// raised-neutral plane with shell controls. Keep the semantic alias
|
|
898
|
+
// component-specific so consumers can tune card hierarchy without
|
|
899
|
+
// changing every subtle surface.
|
|
900
|
+
--fui-card-header-bg: var(--fui-bg-subtle);
|
|
763
901
|
--fui-card-border: color-mix(in srgb, var(--fui-border-default) 86%, transparent);
|
|
764
902
|
--fui-card-outlined-border: var(--fui-card-border);
|
|
765
903
|
--fui-card-shadow: inset 0 1px 0
|
|
@@ -792,7 +930,7 @@ $fui-code-selection-bg: color-mix(
|
|
|
792
930
|
--fui-table-header-border: var(--fui-border-strong);
|
|
793
931
|
--fui-table-row-hover-bg: var(--fui-bg-hover);
|
|
794
932
|
--fui-table-row-active-bg: var(--fui-bg-active);
|
|
795
|
-
--fui-table-row-selected-bg:
|
|
933
|
+
--fui-table-row-selected-bg: var(--fui-control-selected-bg);
|
|
796
934
|
--fui-table-row-selected-border: var(--fui-border-strong);
|
|
797
935
|
--fui-table-subrow-bg: color-mix(in srgb, var(--fui-bg-secondary) 62%, transparent);
|
|
798
936
|
|
|
@@ -800,13 +938,18 @@ $fui-code-selection-bg: color-mix(
|
|
|
800
938
|
--fui-tabs-pills-bg: color-mix(in srgb, var(--fui-text-primary) 5%, transparent);
|
|
801
939
|
--fui-tabs-pills-border: var(--fui-border-default);
|
|
802
940
|
--fui-tabs-pill-hover-bg: transparent;
|
|
803
|
-
--fui-tabs-pill-active-bg:
|
|
941
|
+
--fui-tabs-pill-active-bg: var(--fui-control-selected-bg);
|
|
804
942
|
--fui-tabs-pill-active-border: transparent;
|
|
805
943
|
--fui-tabs-pill-active-shadow: none;
|
|
806
|
-
--fui-toggle-group-selected-bg:
|
|
944
|
+
--fui-toggle-group-selected-bg: var(--fui-control-selected-bg);
|
|
807
945
|
--fui-toggle-group-selected-border: transparent;
|
|
808
946
|
--fui-toggle-group-selected-shadow: none;
|
|
809
947
|
|
|
948
|
+
// Header search is persistent shell chrome rather than a ghost action.
|
|
949
|
+
// One surface step above divided card headers keeps this global affordance
|
|
950
|
+
// easy to find in both themes without turning it into a selected control.
|
|
951
|
+
--fui-header-search-bg: var(--fui-bg-hover);
|
|
952
|
+
|
|
810
953
|
// Shadows (not <color> type — light-dark() can't be used, handled in dark overrides)
|
|
811
954
|
--fui-shadow-sm: #{$fui-shadow-sm};
|
|
812
955
|
--fui-shadow-md: #{$fui-shadow-md};
|
|
@@ -826,14 +969,18 @@ $fui-code-selection-bg: color-mix(
|
|
|
826
969
|
#{$fui-dark-scrollbar-thumb-hover}
|
|
827
970
|
);
|
|
828
971
|
|
|
829
|
-
//
|
|
830
|
-
--fui-
|
|
831
|
-
--fui-
|
|
832
|
-
--fui-
|
|
833
|
-
--fui-
|
|
834
|
-
--fui-
|
|
835
|
-
--fui-
|
|
836
|
-
--fui-
|
|
972
|
+
// Fixed component tracks plus compatibility aliases.
|
|
973
|
+
--fui-control-height-xs: #{$fui-control-height-xs};
|
|
974
|
+
--fui-control-height-sm: #{$fui-control-height-sm};
|
|
975
|
+
--fui-control-height-md: #{$fui-control-height-md};
|
|
976
|
+
--fui-control-height-lg: #{$fui-control-height-lg};
|
|
977
|
+
--fui-button-height-xs: var(--fui-control-height-xs);
|
|
978
|
+
--fui-button-height-sm: var(--fui-control-height-sm);
|
|
979
|
+
--fui-button-height-md: var(--fui-control-height-md);
|
|
980
|
+
--fui-button-height-lg: var(--fui-control-height-lg);
|
|
981
|
+
--fui-input-height-sm: var(--fui-field-track-sm);
|
|
982
|
+
--fui-input-height: var(--fui-field-track-md);
|
|
983
|
+
--fui-input-height-lg: var(--fui-field-track-lg);
|
|
837
984
|
|
|
838
985
|
// Touch targets (density-responsive, Fragments control floor: ≥32px)
|
|
839
986
|
--fui-touch-sm: #{$fui-touch-sm};
|
|
@@ -847,14 +994,22 @@ $fui-code-selection-bg: color-mix(
|
|
|
847
994
|
// AppShell Layout
|
|
848
995
|
--fui-appshell-header-height: #{$fui-appshell-header-height};
|
|
849
996
|
--fui-header-z-index: #{$fui-header-z-index};
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
// Named runtime selectors use the same generated profiles as compile-time
|
|
1000
|
+
// Sass seeds. Attribute specificity intentionally matches :root so these
|
|
1001
|
+
// later rules can override the compiled default on either the document root
|
|
1002
|
+
// or a scoped provider without inline numeric maps.
|
|
1003
|
+
@each $density in measurements.$density-profile-names {
|
|
1004
|
+
[data-fui-density="#{$density}"] {
|
|
1005
|
+
@include measurements.emit-density-profile($density);
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
850
1008
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
--fui-icon-lg: #{$fui-icon-lg};
|
|
856
|
-
--fui-icon-xl: #{$fui-icon-xl};
|
|
857
|
-
--fui-icon-2xl: #{$fui-icon-2xl};
|
|
1009
|
+
@each $radius-style in measurements.$radius-profile-names {
|
|
1010
|
+
[data-fui-radius-style="#{$radius-style}"] {
|
|
1011
|
+
@include measurements.emit-radius-profile($radius-style);
|
|
1012
|
+
}
|
|
858
1013
|
}
|
|
859
1014
|
|
|
860
1015
|
// Dark mode via data-theme attribute (manual toggle).
|
|
@@ -1076,6 +1231,11 @@ $fui-code-selection-bg: color-mix(
|
|
|
1076
1231
|
--fui-bg-highlight: color-mix(in srgb, var(--fui-text-primary) 10%, transparent);
|
|
1077
1232
|
--fui-body-bg: #{$fui-dark-body-bg};
|
|
1078
1233
|
--fui-main-bg: #{$fui-dark-main-bg};
|
|
1234
|
+
--fui-app-main-bg: var(--fui-main-bg);
|
|
1235
|
+
// Paper primary == secondary in dark, so a mix of the two is a no-op.
|
|
1236
|
+
// Tertiary is the lifted rail; main stays the deeper body.
|
|
1237
|
+
--fui-app-sidebar-bg: var(--fui-bg-tertiary);
|
|
1238
|
+
--fui-sidebar-bg: var(--fui-app-sidebar-bg);
|
|
1079
1239
|
--fui-bg-inverse: #{$fui-dark-bg-inverse};
|
|
1080
1240
|
|
|
1081
1241
|
// Text
|