zabi-components 7.0.1 ā 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -3
- package/THEMING.md +255 -15
- package/dist/atoms/ActionPanel.svelte +12 -7
- package/dist/atoms/ActionPanel.svelte.d.ts +2 -0
- package/dist/atoms/Badge.svelte +93 -56
- package/dist/atoms/Badge.svelte.d.ts +15 -3
- package/dist/atoms/Button.svelte +49 -49
- package/dist/atoms/Button.svelte.d.ts +3 -0
- package/dist/atoms/Card.svelte +31 -28
- package/dist/atoms/Card.svelte.d.ts +5 -2
- package/dist/atoms/CardContent.svelte +10 -2
- package/dist/atoms/CardContent.svelte.d.ts +2 -0
- package/dist/atoms/CardFooter.svelte +10 -2
- package/dist/atoms/CardFooter.svelte.d.ts +2 -0
- package/dist/atoms/CardHeader.svelte +10 -2
- package/dist/atoms/CardHeader.svelte.d.ts +2 -0
- package/dist/atoms/Checkbox.svelte +4 -0
- package/dist/atoms/Checkbox.svelte.d.ts +2 -0
- package/dist/atoms/CodeBlock.svelte +15 -7
- package/dist/atoms/CodeBlock.svelte.d.ts +9 -3
- package/dist/atoms/ColorPicker.svelte +19 -9
- package/dist/atoms/ColorPicker.svelte.d.ts +3 -1
- package/dist/atoms/Container.svelte +2 -3
- package/dist/atoms/Divider.svelte +4 -4
- package/dist/atoms/FeatureCard.svelte +4 -3
- package/dist/atoms/Heading.svelte +56 -27
- package/dist/atoms/Heading.svelte.d.ts +17 -4
- package/dist/atoms/IconButton.svelte +30 -37
- package/dist/atoms/Input.svelte +26 -34
- package/dist/atoms/List.svelte +10 -2
- package/dist/atoms/List.svelte.d.ts +2 -0
- package/dist/atoms/ListItem.svelte +2 -2
- package/dist/atoms/ListItemLeading.svelte +4 -2
- package/dist/atoms/ListItemLeading.svelte.d.ts +1 -1
- package/dist/atoms/OptimizedImage.svelte +11 -2
- package/dist/atoms/OptimizedImage.svelte.d.ts +2 -0
- package/dist/atoms/Progress.svelte +4 -1
- package/dist/atoms/Progress.svelte.d.ts +2 -0
- package/dist/atoms/Radio.svelte +4 -0
- package/dist/atoms/Radio.svelte.d.ts +2 -0
- package/dist/atoms/Select.svelte +65 -67
- package/dist/atoms/Select.svelte.d.ts +4 -0
- package/dist/atoms/SelectionControl.svelte +5 -1
- package/dist/atoms/SelectionControl.svelte.d.ts +2 -0
- package/dist/atoms/Skeleton.svelte +5 -3
- package/dist/atoms/Table.svelte +2 -1
- package/dist/atoms/Text.svelte +34 -5
- package/dist/atoms/Text.svelte.d.ts +7 -1
- package/dist/atoms/Textarea.svelte +7 -6
- package/dist/atoms/ThemeToggle.svelte +17 -14
- package/dist/atoms/ThemeToggle.svelte.d.ts +2 -0
- package/dist/atoms/Toast.svelte +10 -8
- package/dist/atoms/Toggle.svelte +21 -13
- package/dist/atoms/Toggle.svelte.d.ts +7 -0
- package/dist/atoms/Tooltip.svelte +89 -57
- package/dist/atoms/Tooltip.svelte.d.ts +15 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/organisms/index.d.ts +1 -0
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/util/cn.d.ts +8 -0
- package/dist/components/util/cn.d.ts.map +1 -0
- package/dist/components/util/ssr-safe.d.ts +4 -4
- package/dist/components/util/ssr-safe.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -6
- package/dist/molecules/Alert.svelte +43 -64
- package/dist/molecules/Alert.svelte.d.ts +7 -1
- package/dist/molecules/ComponentDemo.svelte +10 -2
- package/dist/molecules/ComponentDemo.svelte.d.ts +2 -0
- package/dist/molecules/ContactForm.svelte +12 -2
- package/dist/molecules/ContactForm.svelte.d.ts +2 -0
- package/dist/molecules/Dropdown.svelte +40 -11
- package/dist/molecules/Dropdown.svelte.d.ts +4 -0
- package/dist/molecules/EmptyState.svelte +2 -1
- package/dist/molecules/Form.svelte +25 -14
- package/dist/molecules/Form.svelte.d.ts +13 -5
- package/dist/molecules/FormField.svelte +2 -1
- package/dist/molecules/Header.svelte +13 -3
- package/dist/molecules/Header.svelte.d.ts +2 -0
- package/dist/molecules/ImageUpload.svelte +54 -15
- package/dist/molecules/ImageUpload.svelte.d.ts +16 -5
- package/dist/molecules/Modal.svelte +110 -31
- package/dist/molecules/Modal.svelte.d.ts +9 -6
- package/dist/molecules/NavigationMenu.svelte +15 -3
- package/dist/molecules/NavigationMenu.svelte.d.ts +4 -0
- package/dist/molecules/NavigationMenuContent.svelte +36 -38
- package/dist/molecules/NavigationMenuContent.svelte.d.ts +2 -0
- package/dist/molecules/NavigationMenuItem.svelte +10 -2
- package/dist/molecules/NavigationMenuItem.svelte.d.ts +2 -0
- package/dist/molecules/NavigationMenuLink.svelte +10 -2
- package/dist/molecules/NavigationMenuLink.svelte.d.ts +2 -0
- package/dist/molecules/NavigationMenuList.svelte +10 -2
- package/dist/molecules/NavigationMenuList.svelte.d.ts +2 -0
- package/dist/molecules/NavigationMenuTrigger.svelte +16 -3
- package/dist/molecules/NavigationMenuTrigger.svelte.d.ts +2 -0
- package/dist/molecules/Page.svelte +8 -2
- package/dist/molecules/Page.svelte.d.ts +2 -0
- package/dist/molecules/PropsTable.svelte +6 -3
- package/dist/molecules/PropsTable.svelte.d.ts +2 -0
- package/dist/molecules/RadioGroup.svelte +5 -1
- package/dist/molecules/RadioGroup.svelte.d.ts +2 -0
- package/dist/molecules/Section.svelte +12 -4
- package/dist/molecules/Section.svelte.d.ts +3 -1
- package/dist/molecules/SidebarBrandHeader.svelte +13 -4
- package/dist/molecules/SidebarBrandHeader.svelte.d.ts +2 -0
- package/dist/molecules/SidebarFooter.svelte +12 -4
- package/dist/molecules/SidebarFooter.svelte.d.ts +2 -0
- package/dist/molecules/SidebarNavSection.svelte +12 -4
- package/dist/molecules/SidebarNavSection.svelte.d.ts +2 -0
- package/dist/molecules/SlideUp.svelte +85 -21
- package/dist/molecules/SlideUp.svelte.d.ts +5 -4
- package/dist/molecules/Tabs.svelte +25 -19
- package/dist/molecules/Tabs.svelte.d.ts +8 -4
- package/dist/molecules/Toaster.svelte +3 -2
- package/dist/molecules/ToasterToast.svelte +41 -10
- package/dist/molecules/ToasterToast.svelte.d.ts +2 -0
- package/dist/organisms/SidebarAccountPanel.svelte +4 -0
- package/dist/organisms/SidebarAccountPanel.svelte.d.ts +2 -0
- package/dist/organisms/SidebarNavigation.svelte +102 -59
- package/dist/organisms/SidebarNavigation.svelte.d.ts +2 -0
- package/dist/organisms/SidebarPanel.svelte +19 -11
- package/dist/organisms/SidebarPanel.svelte.d.ts +2 -0
- package/dist/organisms/SidebarShell.svelte +112 -0
- package/dist/organisms/SidebarShell.svelte.d.ts +52 -0
- package/dist/organisms/TopNavbar.svelte +88 -17
- package/dist/organisms/TopNavbar.svelte.d.ts +2 -0
- package/dist/organisms/index.d.ts +1 -0
- package/dist/organisms/index.js +1 -0
- package/dist/routes/lib/variant-utils.d.ts +26 -0
- package/dist/routes/lib/{variant-utils.ts ā variant-utils.js} +15 -46
- package/dist/types/events.js +1 -0
- package/dist/types/index.js +3 -0
- package/dist/util/cn.d.ts +7 -0
- package/dist/util/cn.js +48 -0
- package/dist/util/ssr-safe.d.ts +4 -4
- package/dist/zabi-components-colors.css +3 -437
- package/dist/zabi-components-theme-dark-only.css +223 -103
- package/dist/zabi-components-theme-dark.css +223 -103
- package/dist/zabi-components-theme-only.css +347 -107
- package/dist/zabi-components-theme.css +347 -107
- package/dist/zabi-components.css +953 -843
- package/docs/lucide-icons.md +3 -1
- package/package.json +20 -25
- package/dist/lib/layout-width-tokens.d.ts +0 -17
- package/dist/lib/layout-width-tokens.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/Button.d.ts +0 -3
- package/dist/lib/showcase/component-docs/Button.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/Input.d.ts +0 -3
- package/dist/lib/showcase/component-docs/Input.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/List.d.ts +0 -3
- package/dist/lib/showcase/component-docs/List.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/Modal.d.ts +0 -3
- package/dist/lib/showcase/component-docs/Modal.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/Radio.d.ts +0 -3
- package/dist/lib/showcase/component-docs/Radio.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/SidebarNavigation.d.ts +0 -3
- package/dist/lib/showcase/component-docs/SidebarNavigation.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/Skeleton.d.ts +0 -3
- package/dist/lib/showcase/component-docs/Skeleton.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/_shared.d.ts +0 -12
- package/dist/lib/showcase/component-docs/_shared.d.ts.map +0 -1
- package/dist/lib/showcase/component-docs/index.d.ts +0 -4
- package/dist/lib/showcase/component-docs/index.d.ts.map +0 -1
- package/dist/lib/showcase/components-catalog.d.ts +0 -3
- package/dist/lib/showcase/components-catalog.d.ts.map +0 -1
- package/dist/lib/showcase/components-showcase-constants.d.ts +0 -89
- package/dist/lib/showcase/components-showcase-constants.d.ts.map +0 -1
- package/dist/lib/showcase/docs-sidebar-helpers.d.ts +0 -15
- package/dist/lib/showcase/docs-sidebar-helpers.d.ts.map +0 -1
- package/dist/routes/lib/focus-utils.d.ts +0 -12
- package/dist/routes/lib/focus-utils.ts +0 -110
- package/dist/routes/lib/ssr-safe.ts +0 -58
- package/scripts/fix-lucide-svelte-icon-dts.js +0 -35
|
@@ -30,54 +30,144 @@
|
|
|
30
30
|
--zabi-base-950: #09090b
|
|
31
31
|
/* Typography - Nunito Sans font family */
|
|
32
32
|
--font-family-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif
|
|
33
|
-
/* Brand Color Scale */
|
|
34
|
-
--
|
|
35
|
-
--
|
|
36
|
-
--
|
|
37
|
-
--
|
|
38
|
-
--
|
|
39
|
-
--
|
|
40
|
-
--
|
|
41
|
-
--
|
|
42
|
-
--
|
|
43
|
-
--
|
|
44
|
-
--
|
|
45
|
-
|
|
46
|
-
--color-
|
|
47
|
-
--color-
|
|
48
|
-
--color-
|
|
49
|
-
--color-
|
|
50
|
-
--color-
|
|
51
|
-
--color-
|
|
52
|
-
--color-
|
|
53
|
-
--color-
|
|
54
|
-
--color-
|
|
55
|
-
--color-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
61
|
-
--
|
|
62
|
-
--
|
|
63
|
-
--
|
|
64
|
-
--
|
|
65
|
-
--
|
|
66
|
-
--
|
|
67
|
-
--
|
|
68
|
-
--color-
|
|
69
|
-
|
|
70
|
-
--color-
|
|
71
|
-
--color-
|
|
72
|
-
--color-
|
|
73
|
-
--color-
|
|
74
|
-
--color-
|
|
75
|
-
--color-
|
|
76
|
-
--color-
|
|
77
|
-
--color-
|
|
78
|
-
--color-
|
|
79
|
-
--color-
|
|
80
|
-
--
|
|
33
|
+
/* Brand Color Scale ā physical ramp + semantic aliases (same mirror pattern as pine / base) */
|
|
34
|
+
--zabi-brand-50: #f4f6ff
|
|
35
|
+
--zabi-brand-100: #e9eeff
|
|
36
|
+
--zabi-brand-200: #d3dcff
|
|
37
|
+
--zabi-brand-300: #b5c6ff
|
|
38
|
+
--zabi-brand-400: #92a9ff
|
|
39
|
+
--zabi-brand-500: #6d87f1
|
|
40
|
+
--zabi-brand-600: #4f68da
|
|
41
|
+
--zabi-brand-700: #3c52ba
|
|
42
|
+
--zabi-brand-800: #2b3e95
|
|
43
|
+
--zabi-brand-900: #1c2c6d
|
|
44
|
+
--zabi-brand-950: #111d49
|
|
45
|
+
--color-brand-50: var(--zabi-brand-50)
|
|
46
|
+
--color-brand-100: var(--zabi-brand-100)
|
|
47
|
+
--color-brand-200: var(--zabi-brand-200)
|
|
48
|
+
--color-brand-300: var(--zabi-brand-300)
|
|
49
|
+
--color-brand-400: var(--zabi-brand-400)
|
|
50
|
+
--color-brand-500: var(--zabi-brand-500)
|
|
51
|
+
--color-brand-600: var(--zabi-brand-600)
|
|
52
|
+
--color-brand-700: var(--zabi-brand-700)
|
|
53
|
+
--color-brand-800: var(--zabi-brand-800)
|
|
54
|
+
--color-brand-900: var(--zabi-brand-900)
|
|
55
|
+
--color-brand-950: var(--zabi-brand-950)
|
|
56
|
+
/* Citron Color Scale ā physical ramp + semantic aliases (same mirror pattern as pine / base) */
|
|
57
|
+
--zabi-citron-50: #f6f7ef
|
|
58
|
+
--zabi-citron-100: #edefdf
|
|
59
|
+
--zabi-citron-200: #dcdfbf
|
|
60
|
+
--zabi-citron-300: #c5ca95
|
|
61
|
+
--zabi-citron-400: #aab063
|
|
62
|
+
--zabi-citron-500: #8c9027
|
|
63
|
+
--zabi-citron-600: #707400
|
|
64
|
+
--zabi-citron-700: #5a5d00
|
|
65
|
+
--zabi-citron-800: #454700
|
|
66
|
+
--zabi-citron-900: #313200
|
|
67
|
+
--zabi-citron-950: #202100
|
|
68
|
+
--color-citron-50: var(--zabi-citron-50)
|
|
69
|
+
--color-citron-100: var(--zabi-citron-100)
|
|
70
|
+
--color-citron-200: var(--zabi-citron-200)
|
|
71
|
+
--color-citron-300: var(--zabi-citron-300)
|
|
72
|
+
--color-citron-400: var(--zabi-citron-400)
|
|
73
|
+
--color-citron-500: var(--zabi-citron-500)
|
|
74
|
+
--color-citron-600: var(--zabi-citron-600)
|
|
75
|
+
--color-citron-700: var(--zabi-citron-700)
|
|
76
|
+
--color-citron-800: var(--zabi-citron-800)
|
|
77
|
+
--color-citron-900: var(--zabi-citron-900)
|
|
78
|
+
--color-citron-950: var(--zabi-citron-950)
|
|
79
|
+
/* Pine Color Scale ā physical ramp + semantic aliases (mirror pattern matches --zabi-base-* / --color-base-*) */
|
|
80
|
+
--zabi-pine-50: #f0f8f5
|
|
81
|
+
--zabi-pine-100: #e2f1eb
|
|
82
|
+
--zabi-pine-200: #c5e4d7
|
|
83
|
+
--zabi-pine-300: #9fd1bd
|
|
84
|
+
--zabi-pine-400: #70ba9e
|
|
85
|
+
--zabi-pine-500: #399c7a
|
|
86
|
+
--zabi-pine-600: #00805e
|
|
87
|
+
--zabi-pine-700: #00674a
|
|
88
|
+
--zabi-pine-800: #004f37
|
|
89
|
+
--zabi-pine-900: #003826
|
|
90
|
+
--zabi-pine-950: #002518
|
|
91
|
+
--color-pine-50: var(--zabi-pine-50)
|
|
92
|
+
--color-pine-100: var(--zabi-pine-100)
|
|
93
|
+
--color-pine-200: var(--zabi-pine-200)
|
|
94
|
+
--color-pine-300: var(--zabi-pine-300)
|
|
95
|
+
--color-pine-400: var(--zabi-pine-400)
|
|
96
|
+
--color-pine-500: var(--zabi-pine-500)
|
|
97
|
+
--color-pine-600: var(--zabi-pine-600)
|
|
98
|
+
--color-pine-700: var(--zabi-pine-700)
|
|
99
|
+
--color-pine-800: var(--zabi-pine-800)
|
|
100
|
+
--color-pine-900: var(--zabi-pine-900)
|
|
101
|
+
--color-pine-950: var(--zabi-pine-950)
|
|
102
|
+
/* Iris Color Scale ā physical ramp + semantic aliases (same mirror pattern as pine / base) */
|
|
103
|
+
--zabi-iris-50: #f6f6fd
|
|
104
|
+
--zabi-iris-100: #ecedfb
|
|
105
|
+
--zabi-iris-200: #dadbf6
|
|
106
|
+
--zabi-iris-300: #c1c4ef
|
|
107
|
+
--zabi-iris-400: #a5a7e2
|
|
108
|
+
--zabi-iris-500: #8486cd
|
|
109
|
+
--zabi-iris-600: #6969b4
|
|
110
|
+
--zabi-iris-700: #535397
|
|
111
|
+
--zabi-iris-800: #3f3f78
|
|
112
|
+
--zabi-iris-900: #2c2c58
|
|
113
|
+
--zabi-iris-950: #1d1d3a
|
|
114
|
+
--color-iris-50: var(--zabi-iris-50)
|
|
115
|
+
--color-iris-100: var(--zabi-iris-100)
|
|
116
|
+
--color-iris-200: var(--zabi-iris-200)
|
|
117
|
+
--color-iris-300: var(--zabi-iris-300)
|
|
118
|
+
--color-iris-400: var(--zabi-iris-400)
|
|
119
|
+
--color-iris-500: var(--zabi-iris-500)
|
|
120
|
+
--color-iris-600: var(--zabi-iris-600)
|
|
121
|
+
--color-iris-700: var(--zabi-iris-700)
|
|
122
|
+
--color-iris-800: var(--zabi-iris-800)
|
|
123
|
+
--color-iris-900: var(--zabi-iris-900)
|
|
124
|
+
--color-iris-950: var(--zabi-iris-950)
|
|
125
|
+
/* Warning Color Scale ā physical ramp + semantic aliases (Tailwind amber) */
|
|
126
|
+
--zabi-warning-50: #fbf6ed
|
|
127
|
+
--zabi-warning-100: #f7ecda
|
|
128
|
+
--zabi-warning-200: #f1d9b6
|
|
129
|
+
--zabi-warning-300: #e8bf87
|
|
130
|
+
--zabi-warning-400: #db9e4c
|
|
131
|
+
--zabi-warning-500: #c17b00
|
|
132
|
+
--zabi-warning-600: #9e6000
|
|
133
|
+
--zabi-warning-700: #824c00
|
|
134
|
+
--zabi-warning-800: #663800
|
|
135
|
+
--zabi-warning-900: #4b2600
|
|
136
|
+
--zabi-warning-950: #341800
|
|
137
|
+
--color-warning-50: var(--zabi-warning-50)
|
|
138
|
+
--color-warning-100: var(--zabi-warning-100)
|
|
139
|
+
--color-warning-200: var(--zabi-warning-200)
|
|
140
|
+
--color-warning-300: var(--zabi-warning-300)
|
|
141
|
+
--color-warning-400: var(--zabi-warning-400)
|
|
142
|
+
--color-warning-500: var(--zabi-warning-500)
|
|
143
|
+
--color-warning-600: var(--zabi-warning-600)
|
|
144
|
+
--color-warning-700: var(--zabi-warning-700)
|
|
145
|
+
--color-warning-800: var(--zabi-warning-800)
|
|
146
|
+
--color-warning-900: var(--zabi-warning-900)
|
|
147
|
+
--color-warning-950: var(--zabi-warning-950)
|
|
148
|
+
/* Error Color Scale ā physical ramp + semantic aliases (Tailwind red) */
|
|
149
|
+
--zabi-error-50: #fff4f3
|
|
150
|
+
--zabi-error-100: #ffe9e6
|
|
151
|
+
--zabi-error-200: #ffd2cd
|
|
152
|
+
--zabi-error-300: #ffb2ab
|
|
153
|
+
--zabi-error-400: #ff877d
|
|
154
|
+
--zabi-error-500: #ed564e
|
|
155
|
+
--zabi-error-600: #d22828
|
|
156
|
+
--zabi-error-700: #b20912
|
|
157
|
+
--zabi-error-800: #8c0006
|
|
158
|
+
--zabi-error-900: #660002
|
|
159
|
+
--zabi-error-950: #460202
|
|
160
|
+
--color-error-50: var(--zabi-error-50)
|
|
161
|
+
--color-error-100: var(--zabi-error-100)
|
|
162
|
+
--color-error-200: var(--zabi-error-200)
|
|
163
|
+
--color-error-300: var(--zabi-error-300)
|
|
164
|
+
--color-error-400: var(--zabi-error-400)
|
|
165
|
+
--color-error-500: var(--zabi-error-500)
|
|
166
|
+
--color-error-600: var(--zabi-error-600)
|
|
167
|
+
--color-error-700: var(--zabi-error-700)
|
|
168
|
+
--color-error-800: var(--zabi-error-800)
|
|
169
|
+
--color-error-900: var(--zabi-error-900)
|
|
170
|
+
--color-error-950: var(--zabi-error-950)
|
|
81
171
|
/* Base Color Scale ā semantic tokens alias the physical ramp (light: 1:1) */
|
|
82
172
|
--color-base-50: var(--zabi-base-50)
|
|
83
173
|
--color-base-75: var(--zabi-base-75)
|
|
@@ -101,52 +191,87 @@
|
|
|
101
191
|
--color-base-925: var(--zabi-base-925)
|
|
102
192
|
--color-base-950: var(--zabi-base-950)
|
|
103
193
|
/* Background Colors */
|
|
104
|
-
|
|
194
|
+
/* Surface elevation ā four semantic levels, lowest ā highest.
|
|
195
|
+
* base: page/app shell Ā· raised: cards, panels, sidebars Ā· elevated: nested cards, hover/active fills
|
|
196
|
+
* overlay: modals, sheets, menus, popovers, toasts. Light mode keeps white surfaces + shadows;
|
|
197
|
+
* dark mode (see .dark) steps each level up in OKLCH lightness because shadows don't read on dark.
|
|
198
|
+
* Keep this block BELOW the "Background Colors" marker: scripts/sync-theme-tokens.js regenerates
|
|
199
|
+
* everything between the base-scale aliases and that marker. */
|
|
200
|
+
--color-surface-base: var(--color-base-100)
|
|
201
|
+
--color-surface-raised: #ffffff
|
|
202
|
+
--color-surface-elevated: var(--color-base-50)
|
|
203
|
+
--color-surface-overlay: #ffffff
|
|
204
|
+
/* Hover/active fill for rows and icon buttons inside an overlay (must read above the overlay) */
|
|
205
|
+
--color-surface-overlay-hover: var(--color-base-100)
|
|
206
|
+
/* 1px edge for overlays: invisible in light (shadow carries elevation), visible in dark */
|
|
207
|
+
--color-border-overlay: transparent
|
|
208
|
+
--color-background: var(--color-surface-base)
|
|
105
209
|
--color-background-secondary: var(--color-base-50)
|
|
106
210
|
--color-background-tertiary: var(--color-base-100)
|
|
107
211
|
/* Page Colors */
|
|
108
212
|
--color-page: var(--color-base-100)
|
|
109
213
|
--color-page-secondary: var(--color-base-200)
|
|
110
|
-
/* Card Colors */
|
|
111
|
-
--color-card:
|
|
214
|
+
/* Card Colors ā aliases of the surface levels (kept for compatibility) */
|
|
215
|
+
--color-card: var(--color-surface-raised)
|
|
112
216
|
--color-card-hover: var(--color-base-100)
|
|
113
217
|
--color-card-active: var(--color-base-100)
|
|
114
|
-
--color-card-elevated:
|
|
115
|
-
/* Surfaces ā
|
|
116
|
-
--color-surface-1:
|
|
117
|
-
--color-surface-2: var(--color-
|
|
218
|
+
--color-card-elevated: var(--color-surface-overlay)
|
|
219
|
+
/* Surfaces ā numbered aliases (kept for compatibility; prefer surface-base/raised/elevated/overlay) */
|
|
220
|
+
--color-surface-1: var(--color-surface-raised)
|
|
221
|
+
--color-surface-2: var(--color-surface-elevated)
|
|
118
222
|
--color-surface-3: var(--color-base-75)
|
|
119
223
|
--color-surface-4: var(--color-base-100)
|
|
224
|
+
/* Control track ā the unselected rail of a Toggle or switch. A real token
|
|
225
|
+
* rather than a raw ramp step, so the hover/active direction is defined once
|
|
226
|
+
* and inverts correctly with the theme. */
|
|
227
|
+
--color-control-track: var(--color-base-400)
|
|
228
|
+
--color-control-track-hover: var(--color-base-450)
|
|
229
|
+
--color-control-track-active: var(--color-base-500)
|
|
230
|
+
/* Interaction fills ā surface-relative on purpose.
|
|
231
|
+
* A hard-coded ramp step (e.g. base-100) can coincide exactly with the
|
|
232
|
+
* surface it sits on, which is how ghost hover became invisible: in dark
|
|
233
|
+
* mode --color-base-100 IS --color-surface-base. An alpha tint is always
|
|
234
|
+
* one step away from whatever is underneath it. */
|
|
235
|
+
--color-surface-hover: rgba(9, 9, 11, 0.06)
|
|
236
|
+
--color-surface-active: rgba(9, 9, 11, 0.11)
|
|
120
237
|
/* Overlay Colors */
|
|
121
238
|
--color-overlay: rgba(0, 0, 0, 0.5)
|
|
122
|
-
/* Input Colors
|
|
123
|
-
|
|
239
|
+
/* Input Colors
|
|
240
|
+
* The field is a RAISED surface, not a grey well ā a grey fill on a grey
|
|
241
|
+
* page reads as disabled. The disabled state is the only grey field. */
|
|
242
|
+
--color-input: var(--color-surface-raised)
|
|
124
243
|
--color-input-border: var(--color-base-350)
|
|
125
|
-
--color-input-hover: var(--color-base-
|
|
126
|
-
--color-input-focus: var(--color-
|
|
244
|
+
--color-input-hover: var(--color-base-150)
|
|
245
|
+
--color-input-focus: var(--color-surface-raised)
|
|
127
246
|
--color-input-disabled: var(--color-base-100)
|
|
128
247
|
/* Text Colors */
|
|
129
248
|
--color-headline: var(--color-base-900)
|
|
130
249
|
--color-body: var(--color-base-800)
|
|
131
250
|
--color-description: var(--color-base-600)
|
|
132
|
-
--color-caption: var(--color-base-
|
|
133
|
-
|
|
251
|
+
--color-caption: var(--color-base-550)
|
|
252
|
+
/* ā„ 4.5:1 on every surface level (base-500 was 4.40 on surface-base) */
|
|
253
|
+
--color-input-placeholder: var(--color-base-500)
|
|
134
254
|
--color-label: var(--color-base-700)
|
|
135
|
-
|
|
136
|
-
|
|
255
|
+
/* brand-600 clears 4.5:1 on a card but only 4.42:1 on the page surface, so
|
|
256
|
+
* links sit one step darker. */
|
|
257
|
+
--color-link: var(--color-brand-700)
|
|
258
|
+
--color-link-hover: var(--color-brand-800)
|
|
137
259
|
/* Navigation menu item ā menubar triggers, menu links, inline/sidebar nav rows */
|
|
138
260
|
--color-nav-menu-item: var(--color-body)
|
|
139
261
|
--color-nav-menu-item-hover: var(--color-headline)
|
|
140
262
|
--color-nav-menu-item-active: var(--color-link)
|
|
141
|
-
|
|
263
|
+
/* Surface-relative on purpose: base-100 IS surface-base in both themes,
|
|
264
|
+
* so the old value made sidebar row hover do nothing at all. */
|
|
265
|
+
--color-nav-menu-hover: var(--color-surface-hover)
|
|
142
266
|
--color-nav-menu-active: var(--color-action-primary-subtle)
|
|
267
|
+
--color-nav-menu-active-hover: var(--color-action-primary-subtle-hover)
|
|
143
268
|
--color-nav-menu-focus: var(--color-brand-500)
|
|
144
|
-
--color-success-text: var(--color-
|
|
145
|
-
--color-warning-text:
|
|
269
|
+
--color-success-text: var(--color-pine-700)
|
|
270
|
+
--color-warning-text: var(--color-warning-700)
|
|
146
271
|
--color-neutral-text: var(--color-base-700)
|
|
147
272
|
--color-energetic-text: var(--color-citron-700)
|
|
148
|
-
--color-error-text:
|
|
149
|
-
--color-inverse:
|
|
273
|
+
--color-error-text: var(--color-error-700)
|
|
274
|
+
--color-inverse: var(--color-base-100)
|
|
150
275
|
--color-disabled: var(--color-base-400)
|
|
151
276
|
/* Border Colors */
|
|
152
277
|
--color-border: var(--color-base-300)
|
|
@@ -171,64 +296,125 @@
|
|
|
171
296
|
--color-secondary-weak: var(--color-base-700)
|
|
172
297
|
--color-secondary-medium: var(--color-base-800)
|
|
173
298
|
--color-secondary-strong: var(--color-base-900)
|
|
299
|
+
/* ----------------------------------------------------------------
|
|
300
|
+
* SEMANTIC FAMILIES
|
|
301
|
+
* Every family resolves to the SAME step on the shared lightness curve, so
|
|
302
|
+
* success / warning / error / info / energetic / neutral read as one family.
|
|
303
|
+
* See tokens/chromatic-scales.js; enforced by check-ramp-lightness.js.
|
|
304
|
+
*
|
|
305
|
+
* <family> step 600 solid fill (>= 4.5:1 with white)
|
|
306
|
+
* <family>-weak step 700 pressed / emphasis
|
|
307
|
+
* <family>-medium step 800 strongest fill
|
|
308
|
+
* <family>-strong step 900 darkest
|
|
309
|
+
* <family>-subtle step 100 tinted fill (badges, alerts)
|
|
310
|
+
* <family>-border step 200 tinted edge
|
|
311
|
+
* <family>-text step 700 text on a subtle fill or a page surface
|
|
312
|
+
*
|
|
313
|
+
* Warning, error and energetic previously sat at step 500 ā the mirror's
|
|
314
|
+
* fixed point ā so they did not invert between themes at all, while success
|
|
315
|
+
* and info did. That is why a solid warning badge was 2.15:1 in light mode
|
|
316
|
+
* and fine in dark.
|
|
317
|
+
* ---------------------------------------------------------------- */
|
|
174
318
|
/* Success Colors */
|
|
175
319
|
--color-success: var(--color-pine-600)
|
|
176
320
|
--color-success-weak: var(--color-pine-700)
|
|
177
321
|
--color-success-medium: var(--color-pine-800)
|
|
178
322
|
--color-success-strong: var(--color-pine-900)
|
|
323
|
+
--color-success-subtle: var(--color-pine-100)
|
|
324
|
+
--color-success-border: var(--color-pine-200)
|
|
179
325
|
/* Warning Colors */
|
|
180
|
-
--color-warning:
|
|
181
|
-
--color-warning-weak:
|
|
182
|
-
--color-warning-medium:
|
|
183
|
-
--color-warning-strong:
|
|
326
|
+
--color-warning: var(--color-warning-600)
|
|
327
|
+
--color-warning-weak: var(--color-warning-700)
|
|
328
|
+
--color-warning-medium: var(--color-warning-800)
|
|
329
|
+
--color-warning-strong: var(--color-warning-900)
|
|
330
|
+
--color-warning-subtle: var(--color-warning-100)
|
|
331
|
+
--color-warning-border: var(--color-warning-200)
|
|
184
332
|
/* Error Colors */
|
|
185
|
-
--color-error:
|
|
186
|
-
--color-error-weak:
|
|
187
|
-
--color-error-medium:
|
|
188
|
-
--color-error-strong:
|
|
333
|
+
--color-error: var(--color-error-600)
|
|
334
|
+
--color-error-weak: var(--color-error-700)
|
|
335
|
+
--color-error-medium: var(--color-error-800)
|
|
336
|
+
--color-error-strong: var(--color-error-900)
|
|
337
|
+
--color-error-subtle: var(--color-error-100)
|
|
338
|
+
--color-error-border: var(--color-error-200)
|
|
189
339
|
/* Energetic Colors (Citron) */
|
|
190
|
-
--color-energetic: var(--color-citron-
|
|
191
|
-
--color-energetic-weak: var(--color-citron-
|
|
192
|
-
--color-energetic-medium: var(--color-citron-
|
|
193
|
-
--color-energetic-strong: var(--color-citron-
|
|
194
|
-
|
|
195
|
-
--color-
|
|
196
|
-
|
|
197
|
-
|
|
340
|
+
--color-energetic: var(--color-citron-600)
|
|
341
|
+
--color-energetic-weak: var(--color-citron-700)
|
|
342
|
+
--color-energetic-medium: var(--color-citron-800)
|
|
343
|
+
--color-energetic-strong: var(--color-citron-900)
|
|
344
|
+
--color-energetic-subtle: var(--color-citron-100)
|
|
345
|
+
--color-energetic-border: var(--color-citron-200)
|
|
346
|
+
/* Neutral Colors
|
|
347
|
+
* The base ramp is wider than the chromatic ones on purpose (it also drives
|
|
348
|
+
* text, borders and surfaces), so neutral cannot sit on exactly the same
|
|
349
|
+
* step. base-550 is the closest match to the chromatic 600s that still
|
|
350
|
+
* clears AA; .dark pins base-600, because base-500 is the mirror's fixed
|
|
351
|
+
* point and would not invert at all. */
|
|
352
|
+
--color-neutral: var(--color-base-550)
|
|
353
|
+
--color-neutral-weak: var(--color-base-600)
|
|
354
|
+
--color-neutral-medium: var(--color-base-700)
|
|
198
355
|
--color-neutral-strong: var(--color-base-900)
|
|
356
|
+
/* base-200, not base-100: base-100 IS surface-base, which made a neutral
|
|
357
|
+
* badge measure 1.00:1 against the page and read as bare text. */
|
|
358
|
+
--color-neutral-subtle: var(--color-base-200)
|
|
359
|
+
--color-neutral-border: var(--color-base-200)
|
|
199
360
|
/* Info Colors */
|
|
200
361
|
--color-info: var(--color-iris-600)
|
|
201
362
|
--color-info-weak: var(--color-iris-700)
|
|
202
363
|
--color-info-medium: var(--color-iris-800)
|
|
203
364
|
--color-info-strong: var(--color-iris-900)
|
|
365
|
+
--color-info-active: var(--color-iris-400)
|
|
366
|
+
--color-info-subtle: var(--color-iris-100)
|
|
367
|
+
--color-info-border: var(--color-iris-200)
|
|
204
368
|
/* Text alias */
|
|
205
|
-
--color-info-text: var(--color-
|
|
369
|
+
--color-info-text: var(--color-iris-700)
|
|
206
370
|
/* ========================================
|
|
207
371
|
ACTION COLORS - For interactive elements (buttons, links, etc.)
|
|
208
372
|
======================================== */
|
|
209
|
-
/* Primary Actions - Used by bg-action-primary utility class
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
373
|
+
/* Primary Actions - Used by bg-action-primary utility class
|
|
374
|
+
* šÆ TO CHANGE bg-action-primary COLOR: edit --color-action-primary below.
|
|
375
|
+
*
|
|
376
|
+
* Primary is brand-600 ā the product actually looks like its brand. Hover
|
|
377
|
+
* and active go one and two steps DARKER in light mode; the .dark mirror
|
|
378
|
+
* flips that to lighter automatically, so "more pressed" always means "more
|
|
379
|
+
* contrast against the page" in both themes. Never point active at a step on
|
|
380
|
+
* the far side of the ramp: active used to be brand-400 against a brand-50
|
|
381
|
+
* label, which is 1.66:1 ā the label vanished while the button was held. */
|
|
382
|
+
--color-action-primary: var(--color-brand-600)
|
|
383
|
+
--color-action-primary-hover: var(--color-brand-700)
|
|
384
|
+
--color-action-primary-active: var(--color-brand-800)
|
|
215
385
|
--color-action-primary-subtle: var(--color-brand-100)
|
|
216
386
|
--color-action-primary-subtle-hover: var(--color-brand-200)
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
--color-action-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
--color-action-
|
|
227
|
-
--color-action-
|
|
228
|
-
--color-action-
|
|
229
|
-
--color-action-
|
|
230
|
-
--color-action-
|
|
231
|
-
|
|
387
|
+
/* Pinned rather than aliased to brand-50: the ramp's lightest tint lands at
|
|
388
|
+
* exactly 4.50:1 on brand-600 ā passing, but with no margin. Pure white
|
|
389
|
+
* gives 4.86:1. The .dark block pins the inverse. */
|
|
390
|
+
--color-action-primary-text: #ffffff
|
|
391
|
+
/* Secondary Actions - Used by bg-action-secondary utility class
|
|
392
|
+
* A neutral alpha tint: reads as a real button on any surface level, and
|
|
393
|
+
* cannot collide with the background the way a fixed ramp step can. The old
|
|
394
|
+
* 10%-brand wash was so pale it barely registered as a control. */
|
|
395
|
+
--color-action-secondary: rgba(9, 9, 11, 0.07)
|
|
396
|
+
--color-action-secondary-hover: rgba(9, 9, 11, 0.12)
|
|
397
|
+
--color-action-secondary-active: rgba(9, 9, 11, 0.17)
|
|
398
|
+
--color-action-secondary-subtle: var(--color-base-100)
|
|
399
|
+
--color-action-secondary-subtle-hover: var(--color-base-200)
|
|
400
|
+
--color-action-secondary-text: var(--color-headline)
|
|
401
|
+
/* Disabled Actions - shared by every variant.
|
|
402
|
+
* Disabled must be the QUIETEST state, never a brighter colour than the
|
|
403
|
+
* enabled secondary. It used to be brand-500 plus opacity-50, which made a
|
|
404
|
+
* disabled primary lighter and more colourful than an enabled secondary. */
|
|
405
|
+
--color-action-disabled: var(--color-base-200)
|
|
406
|
+
--color-action-disabled-text: var(--color-base-500)
|
|
407
|
+
--color-action-disabled-border: var(--color-base-250)
|
|
408
|
+
/* Danger Actions - Used by bg-action-danger utility class.
|
|
409
|
+
* Same ramp step as every other family, so the destructive action no longer
|
|
410
|
+
* out-shouts the primary one. The bright red is spent on hover, where the
|
|
411
|
+
* user is already committing. */
|
|
412
|
+
--color-action-danger: var(--color-error-600)
|
|
413
|
+
--color-action-danger-hover: var(--color-error-700)
|
|
414
|
+
--color-action-danger-active: var(--color-error-800)
|
|
415
|
+
--color-action-danger-subtle: var(--color-error-100)
|
|
416
|
+
--color-action-danger-subtle-hover: var(--color-error-200)
|
|
417
|
+
--color-action-danger-text: var(--color-error-50)
|
|
232
418
|
/* Shadow Colors */
|
|
233
419
|
--shadow-color: 0 0 0
|
|
234
420
|
--shadow-opacity: 0.1
|
|
@@ -243,11 +429,62 @@
|
|
|
243
429
|
--spacing-lg: 1.5rem
|
|
244
430
|
--spacing-xl: 2rem
|
|
245
431
|
--spacing-2xl: 3rem
|
|
246
|
-
/*
|
|
432
|
+
/*
|
|
433
|
+
* Sizing names for w-* / min-w-* / max-w-*.
|
|
434
|
+
* Tailwind v4 resolves these utilities as --max-width-* (or --width-* / --min-width-*) ā --spacing-* ā --container-*.
|
|
435
|
+
* Because the named --spacing-xsā¦2xl tokens above exist, `max-w-lg` would otherwise resolve to 1.5rem
|
|
436
|
+
* instead of Tailwind's 32rem container size. These keys are checked before --spacing-*, so they restore
|
|
437
|
+
* the standard container scale while `p-lg`, `gap-md`, etc. keep using the spacing tokens.
|
|
438
|
+
*/
|
|
439
|
+
--max-width-xs: 20rem
|
|
440
|
+
--max-width-sm: 24rem
|
|
441
|
+
--max-width-md: 28rem
|
|
442
|
+
--max-width-lg: 32rem
|
|
443
|
+
--max-width-xl: 36rem
|
|
444
|
+
--max-width-2xl: 42rem
|
|
445
|
+
--width-xs: 20rem
|
|
446
|
+
--width-sm: 24rem
|
|
447
|
+
--width-md: 28rem
|
|
448
|
+
--width-lg: 32rem
|
|
449
|
+
--width-xl: 36rem
|
|
450
|
+
--width-2xl: 42rem
|
|
451
|
+
--min-width-xs: 20rem
|
|
452
|
+
--min-width-sm: 24rem
|
|
453
|
+
--min-width-md: 28rem
|
|
454
|
+
--min-width-lg: 32rem
|
|
455
|
+
--min-width-xl: 36rem
|
|
456
|
+
--min-width-2xl: 42rem
|
|
457
|
+
/* ----------------------------------------------------------------
|
|
458
|
+
* BORDER RADIUS ā four values, chosen by ROLE, never by size.
|
|
459
|
+
* A large button is a bigger box with the same corner as a small one.
|
|
460
|
+
* Enforced by scripts/check-control-geometry.js.
|
|
461
|
+
* ---------------------------------------------------------------- */
|
|
462
|
+
--radius-control: 0.5rem
|
|
463
|
+
/* 8px ā buttons, inputs, selects, toggles */
|
|
464
|
+
--radius-container: 0.75rem
|
|
465
|
+
/* 12px ā cards, alerts, panels, list items */
|
|
466
|
+
--radius-overlay: 1rem
|
|
467
|
+
/* 16px ā modals, sheets, menus, popovers */
|
|
468
|
+
--radius-pill: 9999px
|
|
469
|
+
/* badges, avatars, status dots */
|
|
470
|
+
/* Legacy t-shirt radii. Kept so existing consumer overrides keep working;
|
|
471
|
+
* components must not use them. */
|
|
247
472
|
--radius-sm: 0.25rem
|
|
248
473
|
--radius-md: 0.375rem
|
|
249
474
|
--radius-lg: 0.5rem
|
|
250
475
|
--radius-xl: 0.75rem
|
|
476
|
+
/* ----------------------------------------------------------------
|
|
477
|
+
* CONTROL GEOMETRY ā one height scale shared by every form control, so a
|
|
478
|
+
* Button, Input, Select and IconButton of the same size are the same height
|
|
479
|
+
* and line up in a row. They previously rendered at 40/48/64, 38/46/50 and
|
|
480
|
+
* 32/40/48 respectively. Grid-aligned (8px).
|
|
481
|
+
* ---------------------------------------------------------------- */
|
|
482
|
+
--control-height-sm: 2rem
|
|
483
|
+
/* 32px */
|
|
484
|
+
--control-height-md: 2.5rem
|
|
485
|
+
/* 40px */
|
|
486
|
+
--control-height-lg: 3rem
|
|
487
|
+
/* 48px */
|
|
251
488
|
/* Z-index */
|
|
252
489
|
--z-dropdown: 1000
|
|
253
490
|
--z-sticky: 1020
|
|
@@ -257,4 +494,7 @@
|
|
|
257
494
|
--z-popover: 1060
|
|
258
495
|
--z-tooltip: 1070
|
|
259
496
|
--z-toast: 1080
|
|
497
|
+
/* Tooltip ā elevated hint surface (Tooltip.svelte); arrow uses --color-tooltip-bg */
|
|
498
|
+
--color-tooltip-bg: var(--color-base-800)
|
|
499
|
+
--color-tooltip-fg: var(--color-base-50)
|
|
260
500
|
}
|