@fragments-sdk/ui 0.17.1 → 0.19.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/dist/assets/ui.css +2700 -3256
- package/dist/chart.cjs +0 -1
- package/dist/chart.js +0 -1
- package/dist/codeblock.cjs +0 -1
- package/dist/codeblock.js +0 -1
- package/dist/colorpicker.cjs +0 -1
- package/dist/colorpicker.js +0 -1
- 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 +12 -12
- package/dist/components/Alert/Alert.module.scss.js +12 -12
- package/dist/components/AppShell/AppShell.module.scss.cjs +12 -12
- package/dist/components/AppShell/AppShell.module.scss.js +12 -12
- package/dist/components/Avatar/Avatar.module.scss.cjs +13 -13
- package/dist/components/Avatar/Avatar.module.scss.js +13 -13
- package/dist/components/Badge/Badge.module.scss.cjs +13 -13
- package/dist/components/Badge/Badge.module.scss.js +13 -13
- 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/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 +12 -12
- package/dist/components/Button/Button.module.scss.js +12 -12
- package/dist/components/Card/Card.module.scss.cjs +14 -14
- package/dist/components/Card/Card.module.scss.js +14 -14
- 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 +0 -1
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
- package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
- package/dist/components/Chip/Chip.module.scss.cjs +15 -15
- package/dist/components/Chip/Chip.module.scss.js +15 -15
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +21 -21
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +21 -21
- package/dist/components/CodeBlock/index.d.ts +0 -1
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
- package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
- package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
- package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
- package/dist/components/ColorPicker/index.d.ts +0 -1
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +23 -23
- package/dist/components/Combobox/Combobox.module.scss.js +23 -23
- package/dist/components/Combobox/index.cjs +13 -10
- package/dist/components/Combobox/index.d.ts.map +1 -1
- package/dist/components/Combobox/index.js +13 -10
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
- package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
- package/dist/components/DataTable/DataTable.module.scss.js +26 -26
- package/dist/components/DataTable/index.cjs +0 -1
- package/dist/components/DataTable/index.d.ts +0 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DataTable/index.js +0 -1
- package/dist/components/DatePicker/DatePicker.module.scss.cjs +31 -31
- package/dist/components/DatePicker/DatePicker.module.scss.js +31 -31
- package/dist/components/DatePicker/index.d.ts +0 -1
- 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/Drawer/Drawer.module.scss.cjs +33 -27
- package/dist/components/Drawer/Drawer.module.scss.js +34 -28
- package/dist/components/Drawer/index.cjs +36 -14
- package/dist/components/Drawer/index.d.ts +21 -3
- package/dist/components/Drawer/index.d.ts.map +1 -1
- package/dist/components/Drawer/index.js +36 -14
- package/dist/components/Editor/Editor.module.scss.cjs +17 -17
- package/dist/components/Editor/Editor.module.scss.js +17 -17
- package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
- package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
- package/dist/components/Field/Field.module.scss.cjs +4 -4
- package/dist/components/Field/Field.module.scss.js +4 -4
- package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
- package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
- package/dist/components/Header/Header.module.scss.cjs +28 -28
- package/dist/components/Header/Header.module.scss.js +28 -28
- package/dist/components/Icon/Icon.module.scss.cjs +8 -8
- package/dist/components/Icon/Icon.module.scss.js +8 -8
- 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 -19
- package/dist/components/Input/Input.module.scss.js +19 -19
- package/dist/components/Link/Link.module.scss.cjs +10 -10
- package/dist/components/Link/Link.module.scss.js +10 -10
- package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- package/dist/components/Loading/Loading.module.scss.cjs +30 -30
- package/dist/components/Loading/Loading.module.scss.js +30 -30
- 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 +0 -1
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +16 -13
- package/dist/components/Menu/Menu.module.scss.js +17 -14
- package/dist/components/Menu/index.cjs +1 -1
- package/dist/components/Menu/index.d.ts.map +1 -1
- package/dist/components/Menu/index.js +1 -1
- package/dist/components/Message/Message.module.scss.cjs +18 -18
- package/dist/components/Message/Message.module.scss.js +18 -18
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
- package/dist/components/Pagination/Pagination.module.scss.cjs +7 -7
- package/dist/components/Pagination/Pagination.module.scss.js +7 -7
- 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 +25 -25
- package/dist/components/Progress/Progress.module.scss.js +25 -25
- package/dist/components/Prompt/Prompt.module.scss.cjs +26 -14
- package/dist/components/Prompt/Prompt.module.scss.js +26 -14
- package/dist/components/Prompt/index.cjs +16 -0
- package/dist/components/Prompt/index.d.ts +17 -1
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +16 -0
- package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +16 -16
- package/dist/components/RadioGroup/RadioGroup.module.scss.js +16 -16
- package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +10 -10
- package/dist/components/ScrollArea/ScrollArea.module.scss.js +10 -10
- package/dist/components/Select/Select.module.scss.cjs +17 -17
- package/dist/components/Select/Select.module.scss.js +17 -17
- package/dist/components/Select/index.cjs +20 -20
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +20 -20
- package/dist/components/Separator/Separator.module.scss.cjs +10 -10
- package/dist/components/Separator/Separator.module.scss.js +10 -10
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
- package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
- package/dist/components/Slider/Slider.module.scss.cjs +12 -12
- package/dist/components/Slider/Slider.module.scss.js +12 -12
- package/dist/components/Slider/index.cjs +23 -21
- package/dist/components/Slider/index.js +23 -21
- package/dist/components/Stack/Stack.module.scss.cjs +35 -35
- package/dist/components/Stack/Stack.module.scss.js +35 -35
- package/dist/components/Table/Table.module.scss.cjs +16 -16
- package/dist/components/Table/Table.module.scss.js +16 -16
- package/dist/components/Table/index.d.ts +0 -1
- package/dist/components/Table/index.d.ts.map +1 -1
- package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +7 -7
- package/dist/components/TableOfContents/TableOfContents.module.scss.js +7 -7
- package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
- package/dist/components/Tabs/Tabs.module.scss.js +9 -9
- package/dist/components/Text/Text.module.scss.cjs +38 -38
- package/dist/components/Text/Text.module.scss.js +38 -38
- package/dist/components/Textarea/Textarea.module.scss.cjs +23 -23
- package/dist/components/Textarea/Textarea.module.scss.js +23 -23
- package/dist/components/Theme/ThemeToggle.module.scss.cjs +6 -6
- package/dist/components/Theme/ThemeToggle.module.scss.js +6 -6
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
- package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
- package/dist/components/Toast/Toast.module.scss.cjs +20 -20
- package/dist/components/Toast/Toast.module.scss.js +20 -20
- package/dist/components/Toggle/Toggle.module.scss.cjs +13 -13
- package/dist/components/Toggle/Toggle.module.scss.js +13 -13
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
- package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
- 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 +4 -3
- package/dist/components/Tooltip/index.d.ts +4 -1
- package/dist/components/Tooltip/index.d.ts.map +1 -1
- package/dist/components/Tooltip/index.js +4 -3
- package/dist/datepicker.cjs +0 -1
- package/dist/datepicker.js +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/markdown.cjs +0 -1
- package/dist/markdown.js +0 -1
- package/dist/table.cjs +0 -1
- package/dist/table.js +0 -1
- package/dist/utils/seed-derivation.cjs +29 -0
- package/dist/utils/seed-derivation.d.ts +1 -1
- package/dist/utils/seed-derivation.d.ts.map +1 -1
- package/dist/utils/seed-derivation.js +29 -0
- package/fragments.json +1 -1
- package/package.json +18 -14
- package/src/components/Accordion/Accordion.contract.json +169 -0
- package/src/components/Alert/Alert.contract.json +157 -0
- package/src/components/AppShell/AppShell.contract.json +155 -0
- package/src/components/Avatar/Avatar.contract.json +189 -0
- package/src/components/Badge/Badge.contract.json +187 -0
- package/src/components/BentoGrid/BentoGrid.contract.json +135 -0
- package/src/components/Box/Box.contract.json +423 -0
- package/src/components/Breadcrumbs/Breadcrumbs.contract.json +143 -0
- package/src/components/Button/Button.contract.json +205 -0
- package/src/components/Button/Button.module.scss +24 -1
- package/src/components/ButtonGroup/ButtonGroup.contract.json +140 -0
- package/src/components/Card/Card.contract.json +185 -0
- package/src/components/Card/Card.module.scss +5 -1
- package/src/components/Chart/Chart.contract.json +129 -0
- package/src/components/Chart/index.tsx +0 -1
- package/src/components/Checkbox/Checkbox.contract.json +246 -0
- package/src/components/Chip/Chip.contract.json +212 -0
- package/src/components/Chip/Chip.module.scss +4 -4
- package/src/components/CodeBlock/CodeBlock.contract.json +388 -0
- package/src/components/CodeBlock/index.tsx +0 -1
- package/src/components/Collapsible/Collapsible.contract.json +154 -0
- package/src/components/ColorPicker/ColorPicker.contract.json +212 -0
- package/src/components/ColorPicker/index.tsx +0 -1
- package/src/components/Combobox/Combobox.contract.json +297 -0
- package/src/components/Combobox/index.tsx +7 -8
- package/src/components/Command/Command.contract.json +165 -0
- package/src/components/Command/Command.module.scss +22 -9
- package/src/components/ConversationList/ConversationList.contract.json +151 -0
- package/src/components/DataTable/DataTable.contract.json +302 -0
- package/src/components/DataTable/index.tsx +0 -2
- package/src/components/DatePicker/DatePicker.contract.json +288 -0
- package/src/components/DatePicker/index.tsx +0 -2
- package/src/components/Dialog/Dialog.contract.json +159 -0
- package/src/components/Drawer/Drawer.contract.json +161 -0
- package/src/components/Drawer/Drawer.module.scss +45 -5
- package/src/components/Drawer/index.tsx +66 -23
- package/src/components/Editor/Editor.contract.json +263 -0
- package/src/components/EmptyState/EmptyState.contract.json +133 -0
- package/src/components/Field/Field.contract.json +157 -0
- package/src/components/Fieldset/Fieldset.contract.json +117 -0
- package/src/components/Form/Form.contract.json +145 -0
- package/src/components/Grid/Grid.contract.json +195 -0
- package/src/components/Header/Header.contract.json +196 -0
- package/src/components/Icon/Icon.contract.json +194 -0
- package/src/components/Image/Image.contract.json +209 -0
- package/src/components/Input/Input.contract.json +344 -0
- package/src/components/Input/Input.module.scss +16 -6
- package/src/components/Link/Link.contract.json +180 -0
- package/src/components/List/List.contract.json +154 -0
- package/src/components/Listbox/Listbox.contract.json +158 -0
- package/src/components/Loading/Loading.contract.json +167 -0
- package/src/components/Markdown/Markdown.contract.json +127 -0
- package/src/components/Markdown/Markdown.module.scss +0 -3
- package/src/components/Markdown/index.tsx +0 -1
- package/src/components/Menu/Menu.contract.json +177 -0
- package/src/components/Menu/Menu.module.scss +6 -0
- package/src/components/Menu/index.tsx +3 -1
- package/src/components/Message/Message.contract.json +183 -0
- package/src/components/Message/Message.module.scss +2 -2
- package/src/components/NavigationMenu/NavigationMenu.contract.json +203 -0
- package/src/components/NavigationMenu/NavigationMenu.module.scss +18 -23
- package/src/components/Pagination/Pagination.contract.json +163 -0
- package/src/components/Pagination/Pagination.module.scss +1 -1
- package/src/components/Popover/Popover.contract.json +163 -0
- package/src/components/Progress/Progress.contract.json +176 -0
- package/src/components/Prompt/Prompt.contract.json +211 -0
- package/src/components/Prompt/Prompt.module.scss +117 -3
- package/src/components/Prompt/index.tsx +40 -0
- package/src/components/RadioGroup/RadioGroup.contract.json +226 -0
- package/src/components/ScrollArea/ScrollArea.contract.json +131 -0
- package/src/components/Select/Select.contract.json +269 -0
- package/src/components/Select/index.tsx +20 -25
- package/src/components/Separator/Separator.contract.json +143 -0
- package/src/components/Sidebar/Sidebar.contract.json +258 -0
- package/src/components/Sidebar/Sidebar.module.scss +1 -1
- package/src/components/Skeleton/Skeleton.contract.json +166 -0
- package/src/components/Slider/Slider.contract.json +248 -0
- package/src/components/Slider/index.tsx +10 -10
- package/src/components/Stack/Stack.contract.json +220 -0
- package/src/components/Table/Table.contract.json +171 -0
- package/src/components/Table/index.tsx +0 -2
- package/src/components/TableOfContents/TableOfContents.contract.json +145 -0
- package/src/components/TableOfContents/TableOfContents.module.scss +19 -15
- package/src/components/Tabs/Tabs.contract.json +159 -0
- package/src/components/Text/Text.contract.json +239 -0
- package/src/components/Textarea/Textarea.contract.json +308 -0
- package/src/components/Theme/Theme.contract.json +152 -0
- package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +165 -0
- package/src/components/Toast/Toast.contract.json +181 -0
- package/src/components/Toggle/Toggle.contract.json +231 -0
- package/src/components/Toggle/Toggle.module.scss +3 -3
- package/src/components/ToggleGroup/ToggleGroup.contract.json +206 -0
- package/src/components/Tooltip/Tooltip.contract.json +214 -0
- package/src/components/Tooltip/index.tsx +7 -3
- package/src/components/VisuallyHidden/VisuallyHidden.contract.json +116 -0
- package/src/index.ts +8 -3
- package/src/styles/globals.scss +6 -1
- package/src/tokens/_computed.scss +3 -1
- package/src/tokens/_density.scss +4 -4
- package/src/tokens/_derive.scss +52 -56
- package/src/tokens/_palettes.scss +20 -1
- package/src/tokens/_seeds.scss +2 -2
- package/src/tokens/_variables.scss +45 -29
- package/src/utils/seed-derivation.ts +23 -1
|
@@ -57,13 +57,15 @@ $fui-font-mono:
|
|
|
57
57
|
"Geist Mono", "SF Mono", SFMono-Regular, ui-monospace, "Cascadia Code", Menlo, monospace !default;
|
|
58
58
|
|
|
59
59
|
// Font sizes (rem based on 14px root)
|
|
60
|
+
// Compressed scale: base/md = 14px (1rem). No 16px step.
|
|
61
|
+
// Hierarchy driven by weight, not size jumps.
|
|
60
62
|
$fui-font-size-2xs: 0.714rem !default; // 10px
|
|
61
63
|
$fui-font-size-xs: 0.857rem !default; // 12px
|
|
62
64
|
$fui-font-size-sm: 1rem !default; // 14px (base)
|
|
63
|
-
$fui-font-size-base:
|
|
65
|
+
$fui-font-size-base: 1rem !default; // 14px (= sm, body base)
|
|
64
66
|
$fui-font-size-lg: 1.286rem !default; // 18px
|
|
65
|
-
$fui-font-size-xl: 1.
|
|
66
|
-
$fui-font-size-2xl:
|
|
67
|
+
$fui-font-size-xl: 1.429rem !default; // 20px
|
|
68
|
+
$fui-font-size-2xl: 1.714rem !default; // 24px
|
|
67
69
|
|
|
68
70
|
$fui-font-weight-normal: 400 !default;
|
|
69
71
|
$fui-font-weight-medium: 500 !default;
|
|
@@ -74,6 +76,10 @@ $fui-line-height-tight: 1.25 !default;
|
|
|
74
76
|
$fui-line-height-normal: 1.5 !default;
|
|
75
77
|
$fui-line-height-relaxed: 1.625 !default;
|
|
76
78
|
|
|
79
|
+
// Letter spacing (Linear-inspired tight tracking for headings)
|
|
80
|
+
$fui-letter-spacing-tight: -0.02em !default; // for xl+ headings
|
|
81
|
+
$fui-letter-spacing-normal: normal !default;
|
|
82
|
+
|
|
77
83
|
// --------------------------------------------
|
|
78
84
|
// Spacing (derived from density seed)
|
|
79
85
|
// --------------------------------------------
|
|
@@ -105,14 +111,15 @@ $fui-radius-full: computed.$computed-radius-full !default;
|
|
|
105
111
|
// --------------------------------------------
|
|
106
112
|
// Transitions
|
|
107
113
|
// --------------------------------------------
|
|
108
|
-
$fui-transition-fast:
|
|
109
|
-
$fui-transition-normal: 200ms
|
|
114
|
+
$fui-transition-fast: 160ms cubic-bezier(0.25, 0.46, 0.45, 0.94) !default; // Linear's easing
|
|
115
|
+
$fui-transition-normal: 200ms cubic-bezier(0.4, 0, 0.2, 1) !default; // ChatGPT's easing
|
|
110
116
|
|
|
111
117
|
// --------------------------------------------
|
|
112
118
|
// Colors - Light Mode (derived from brand/neutral seeds)
|
|
113
119
|
// --------------------------------------------
|
|
114
120
|
// Accent colors (derived from $fui-brand seed)
|
|
115
121
|
$fui-color-accent: computed.$computed-color-accent !default;
|
|
122
|
+
$fui-color-on-accent: computed.$computed-color-on-accent !default;
|
|
116
123
|
$fui-color-accent-hover: computed.$computed-color-accent-hover !default;
|
|
117
124
|
$fui-color-accent-active: computed.$computed-color-accent-active !default;
|
|
118
125
|
|
|
@@ -174,8 +181,9 @@ $fui-scrollbar-thumb-hover: computed.$computed-scrollbar-thumb-hover !default;
|
|
|
174
181
|
// --------------------------------------------
|
|
175
182
|
// Colors - Dark Mode (derived from seeds)
|
|
176
183
|
// --------------------------------------------
|
|
177
|
-
// Accent colors (
|
|
184
|
+
// Accent colors (brand used directly in dark mode; on-accent handles text contrast)
|
|
178
185
|
$fui-dark-color-accent: computed.$computed-dark-color-accent !default;
|
|
186
|
+
$fui-dark-color-on-accent: computed.$computed-dark-color-on-accent !default;
|
|
179
187
|
$fui-dark-color-accent-hover: computed.$computed-dark-color-accent-hover !default;
|
|
180
188
|
$fui-dark-color-accent-active: computed.$computed-dark-color-accent-active !default;
|
|
181
189
|
|
|
@@ -265,15 +273,15 @@ $fui-touch-lg: computed.$computed-touch-lg !default;
|
|
|
265
273
|
$fui-target-size-min: 1.714rem !default; // 24px
|
|
266
274
|
$fui-target-size-comfortable: $fui-touch-md !default;
|
|
267
275
|
|
|
268
|
-
// Toggle/Switch (
|
|
269
|
-
$fui-toggle-width-sm:
|
|
270
|
-
$fui-toggle-width-md:
|
|
271
|
-
$fui-toggle-width-lg:
|
|
272
|
-
$fui-toggle-height-sm:
|
|
273
|
-
$fui-toggle-height-md:
|
|
274
|
-
$fui-toggle-height-lg:
|
|
275
|
-
$fui-toggle-thumb-sm:
|
|
276
|
-
$fui-toggle-thumb-md: 1.
|
|
276
|
+
// Toggle/Switch (web-proportioned: ~1.8:1 width:height ratio)
|
|
277
|
+
$fui-toggle-width-sm: 1.857rem !default; // 26px
|
|
278
|
+
$fui-toggle-width-md: 2.571rem !default; // 36px
|
|
279
|
+
$fui-toggle-width-lg: 3.286rem !default; // 46px
|
|
280
|
+
$fui-toggle-height-sm: 1.143rem !default; // 16px
|
|
281
|
+
$fui-toggle-height-md: 1.429rem !default; // 20px
|
|
282
|
+
$fui-toggle-height-lg: 1.857rem !default; // 26px
|
|
283
|
+
$fui-toggle-thumb-sm: 0.857rem !default; // 12px
|
|
284
|
+
$fui-toggle-thumb-md: 1.143rem !default; // 16px
|
|
277
285
|
$fui-toggle-thumb-offset: 2px !default; // Thumb inset from track edge
|
|
278
286
|
|
|
279
287
|
// Badge
|
|
@@ -430,6 +438,8 @@ $fui-dark-tooltip-shadow:
|
|
|
430
438
|
--fui-line-height-tight: #{$fui-line-height-tight};
|
|
431
439
|
--fui-line-height-normal: #{$fui-line-height-normal};
|
|
432
440
|
--fui-line-height-relaxed: #{$fui-line-height-relaxed};
|
|
441
|
+
--fui-letter-spacing-tight: #{$fui-letter-spacing-tight};
|
|
442
|
+
--fui-letter-spacing-normal: #{$fui-letter-spacing-normal};
|
|
433
443
|
|
|
434
444
|
// Spacing (micro)
|
|
435
445
|
--fui-space-px: #{$fui-space-px};
|
|
@@ -460,6 +470,7 @@ $fui-dark-tooltip-shadow:
|
|
|
460
470
|
|
|
461
471
|
// Colors — Accent (light-dark for automatic dark mode)
|
|
462
472
|
--fui-color-accent: light-dark(#{$fui-color-accent}, #{$fui-dark-color-accent});
|
|
473
|
+
--fui-color-on-accent: light-dark(#{$fui-color-on-accent}, #{$fui-dark-color-on-accent});
|
|
463
474
|
--fui-color-accent-hover: light-dark(#{$fui-color-accent-hover}, #{$fui-dark-color-accent-hover});
|
|
464
475
|
--fui-color-accent-active: light-dark(#{$fui-color-accent-active}, #{$fui-dark-color-accent-active});
|
|
465
476
|
|
|
@@ -506,7 +517,7 @@ $fui-dark-tooltip-shadow:
|
|
|
506
517
|
--fui-border-strong: light-dark(#{$fui-border-strong}, #{$fui-dark-border-strong});
|
|
507
518
|
|
|
508
519
|
// Form chrome (derived from theme surfaces + seed-driven accent)
|
|
509
|
-
--fui-field-bg:
|
|
520
|
+
--fui-field-bg: var(--fui-bg-tertiary);
|
|
510
521
|
--fui-field-bg-disabled: color-mix(in srgb, var(--fui-bg-tertiary) 88%, var(--fui-bg-primary));
|
|
511
522
|
--fui-field-border: color-mix(in srgb, var(--fui-border-strong) 78%, var(--fui-bg-primary));
|
|
512
523
|
--fui-field-border-hover: color-mix(in srgb, var(--fui-text-tertiary) 58%, var(--fui-border-strong));
|
|
@@ -590,18 +601,22 @@ $fui-dark-tooltip-shadow:
|
|
|
590
601
|
@supports (color: oklch(from red l c h)) {
|
|
591
602
|
:root {
|
|
592
603
|
// Accent derived from seed-brand
|
|
593
|
-
// Light mode: brand as-is
|
|
604
|
+
// Light mode: brand as-is. Dark mode: lightened for visibility on dark surfaces.
|
|
594
605
|
--fui-color-accent: light-dark(
|
|
595
606
|
var(--fui-seed-brand),
|
|
596
|
-
oklch(from var(--fui-seed-brand) clamp(0.
|
|
607
|
+
oklch(from var(--fui-seed-brand) clamp(0.45, l, 0.85) min(c, 0.12) h)
|
|
597
608
|
);
|
|
609
|
+
|
|
610
|
+
// Auto-contrast text for elements on accent backgrounds (buttons, chips, etc.)
|
|
611
|
+
// Lightness > 0.6 → dark text; otherwise → white. Users can override this token.
|
|
612
|
+
--fui-color-on-accent: oklch(from var(--fui-color-accent) calc(0 + (1 - clamp(0, calc((l - 0.6) * 999), 1))) 0 0);
|
|
598
613
|
--fui-color-accent-hover: light-dark(
|
|
599
614
|
oklch(from var(--fui-seed-brand) max(0.05, calc(l - 0.06)) c h),
|
|
600
|
-
oklch(from var(--fui-seed-brand) clamp(0.
|
|
615
|
+
oklch(from var(--fui-seed-brand) clamp(0.52, calc(l + 0.07), 0.90) min(c, 0.12) h)
|
|
601
616
|
);
|
|
602
617
|
--fui-color-accent-active: light-dark(
|
|
603
618
|
oklch(from var(--fui-seed-brand) max(0.05, calc(l - 0.12)) c h),
|
|
604
|
-
oklch(from var(--fui-seed-brand) clamp(0.
|
|
619
|
+
oklch(from var(--fui-seed-brand) clamp(0.40, calc(l - 0.05), 0.80) min(c, 0.12) h)
|
|
605
620
|
);
|
|
606
621
|
|
|
607
622
|
// Semantic hover derived from seed
|
|
@@ -626,23 +641,23 @@ $fui-dark-tooltip-shadow:
|
|
|
626
641
|
);
|
|
627
642
|
|
|
628
643
|
// Focus ring derived from seed-brand
|
|
629
|
-
--fui-focus-ring-color:
|
|
630
|
-
var(--fui-seed-brand),
|
|
631
|
-
oklch(from var(--fui-seed-brand) clamp(0.88, calc(1 - l + 0.1), 0.96) min(c, 0.05) h)
|
|
632
|
-
);
|
|
644
|
+
--fui-focus-ring-color: var(--fui-seed-brand);
|
|
633
645
|
}
|
|
634
646
|
|
|
635
647
|
// Runtime-derived dark mode overrides (replaces SCSS-computed when supported)
|
|
648
|
+
// Dark brands are lightened so the button stands out against dark backgrounds.
|
|
649
|
+
// Hover goes slightly lighter, active slightly darker. on-accent handles text.
|
|
636
650
|
:root[data-theme="dark"],
|
|
637
651
|
:root.dark {
|
|
638
|
-
--fui-color-accent: oklch(from var(--fui-seed-brand) clamp(0.
|
|
639
|
-
--fui-color-accent
|
|
640
|
-
--fui-color-accent-
|
|
652
|
+
--fui-color-accent: oklch(from var(--fui-seed-brand) clamp(0.45, l, 0.85) min(c, 0.12) h);
|
|
653
|
+
--fui-color-on-accent: oklch(from var(--fui-color-accent) calc(0 + (1 - clamp(0, calc((l - 0.6) * 999), 1))) 0 0);
|
|
654
|
+
--fui-color-accent-hover: oklch(from var(--fui-seed-brand) clamp(0.52, calc(l + 0.07), 0.90) min(c, 0.12) h);
|
|
655
|
+
--fui-color-accent-active: oklch(from var(--fui-seed-brand) clamp(0.40, calc(l - 0.05), 0.80) min(c, 0.12) h);
|
|
641
656
|
--fui-color-danger-bg: color-mix(in oklch, var(--fui-seed-danger) 15%, transparent);
|
|
642
657
|
--fui-color-success-bg: color-mix(in oklch, var(--fui-seed-success) 15%, transparent);
|
|
643
658
|
--fui-color-warning-bg: color-mix(in oklch, var(--fui-seed-warning) 15%, transparent);
|
|
644
659
|
--fui-color-info-bg: color-mix(in oklch, var(--fui-seed-info) 15%, transparent);
|
|
645
|
-
--fui-focus-ring-color:
|
|
660
|
+
--fui-focus-ring-color: var(--fui-seed-brand);
|
|
646
661
|
}
|
|
647
662
|
}
|
|
648
663
|
|
|
@@ -717,8 +732,9 @@ $fui-dark-tooltip-shadow:
|
|
|
717
732
|
|
|
718
733
|
// Private mixin for dark mode token values
|
|
719
734
|
@mixin _fui-dark-tokens {
|
|
720
|
-
// Accent colors
|
|
735
|
+
// Accent colors — brand used directly; on-accent handles text contrast
|
|
721
736
|
--fui-color-accent: #{$fui-dark-color-accent};
|
|
737
|
+
--fui-color-on-accent: #{$fui-dark-color-on-accent};
|
|
722
738
|
--fui-color-accent-hover: #{$fui-dark-color-accent-hover};
|
|
723
739
|
--fui-color-accent-active: #{$fui-dark-color-accent-active};
|
|
724
740
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// Types
|
|
14
14
|
// ============================================
|
|
15
15
|
|
|
16
|
-
export type NeutralPalette = 'stone' | 'ice' | 'sand' | 'earth' | 'fire';
|
|
16
|
+
export type NeutralPalette = 'stone' | 'ice' | 'sand' | 'earth' | 'fire' | 'fragments';
|
|
17
17
|
export type DensityPreset = 'compact' | 'default' | 'relaxed';
|
|
18
18
|
export type RadiusStyle = 'sharp' | 'subtle' | 'default' | 'rounded' | 'pill';
|
|
19
19
|
|
|
@@ -128,6 +128,21 @@ export const PALETTES: Record<NeutralPalette, PaletteShades> = {
|
|
|
128
128
|
900: '#1c100a', // Darkened and desaturated for dark mode
|
|
129
129
|
950: '#120a06', // Very dark warm gray for dark mode bg
|
|
130
130
|
},
|
|
131
|
+
// Fragments - Rich saturated green tones (the Fragments brand palette)
|
|
132
|
+
// Dark shades anchor to the Fragments marketing aesthetic
|
|
133
|
+
fragments: {
|
|
134
|
+
50: '#f0f7f3',
|
|
135
|
+
100: '#dceee3',
|
|
136
|
+
200: '#b8ddc6',
|
|
137
|
+
300: '#88c5a0',
|
|
138
|
+
400: '#5aaa7a',
|
|
139
|
+
500: '#3d8f60',
|
|
140
|
+
600: '#2d7049',
|
|
141
|
+
700: '#235536',
|
|
142
|
+
800: '#1a3025', // Dark card surface
|
|
143
|
+
900: '#142318', // Dark surface
|
|
144
|
+
950: '#0d1f17', // Darkest bg
|
|
145
|
+
},
|
|
131
146
|
};
|
|
132
147
|
|
|
133
148
|
// ============================================
|
|
@@ -181,6 +196,13 @@ export const PALETTE_SEMANTIC_COLORS: Record<NeutralPalette, SemanticColors> = {
|
|
|
181
196
|
danger: '#dc2626', // Red 600 (complements orange)
|
|
182
197
|
info: '#2563eb', // Blue 600
|
|
183
198
|
},
|
|
199
|
+
// Fragments - Brand-complementary semantic colors
|
|
200
|
+
fragments: {
|
|
201
|
+
success: '#39d98a', // Vibrant green (brand signature)
|
|
202
|
+
warning: '#f59e0b', // Amber 500
|
|
203
|
+
danger: '#ef4444', // Red 500
|
|
204
|
+
info: '#3b82f6', // Blue 500
|
|
205
|
+
},
|
|
184
206
|
};
|
|
185
207
|
|
|
186
208
|
/**
|