zabi-components 5.0.21 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +42 -44
  2. package/THEME.md +473 -0
  3. package/THEMING.md +248 -0
  4. package/dist/atoms/Card.svelte +40 -67
  5. package/dist/atoms/Card.svelte.d.ts +3 -3
  6. package/dist/atoms/CardContent.svelte +1 -1
  7. package/dist/atoms/CardHeader.svelte +10 -1
  8. package/dist/atoms/CardHeader.svelte.d.ts +3 -0
  9. package/dist/atoms/Checkbox.svelte +1 -7
  10. package/dist/atoms/CodeBlock.svelte +7 -7
  11. package/dist/atoms/ColorPicker.svelte +81 -73
  12. package/dist/atoms/Input.svelte +16 -12
  13. package/dist/atoms/Input.svelte.d.ts +2 -0
  14. package/dist/atoms/List.svelte +47 -0
  15. package/dist/atoms/List.svelte.d.ts +19 -0
  16. package/dist/atoms/ListItem.svelte +148 -0
  17. package/dist/atoms/ListItem.svelte.d.ts +35 -0
  18. package/dist/atoms/Progress.svelte +4 -6
  19. package/dist/atoms/Select.svelte +65 -20
  20. package/dist/atoms/Select.svelte.d.ts +13 -1
  21. package/dist/atoms/Textarea.svelte +13 -11
  22. package/dist/atoms/Textarea.svelte.d.ts +1 -0
  23. package/dist/atoms/Toast.svelte +1 -1
  24. package/dist/atoms/Toggle.svelte +1 -7
  25. package/dist/atoms/Tooltip.svelte +8 -15
  26. package/dist/atoms/index.d.ts +2 -0
  27. package/dist/atoms/index.js +2 -0
  28. package/dist/components/atoms/index.d.ts +2 -0
  29. package/dist/components/atoms/index.d.ts.map +1 -1
  30. package/dist/components/index.d.ts +4 -1
  31. package/dist/components/index.d.ts.map +1 -1
  32. package/dist/components/molecules/index.d.ts +0 -1
  33. package/dist/components/molecules/index.d.ts.map +1 -1
  34. package/dist/components/molecules/navigation-menu-context.d.ts +7 -0
  35. package/dist/components/molecules/navigation-menu-context.d.ts.map +1 -0
  36. package/dist/components/organisms/index.d.ts +2 -1
  37. package/dist/components/organisms/index.d.ts.map +1 -1
  38. package/dist/index.d.ts +4 -1
  39. package/dist/index.js +5 -9
  40. package/dist/lib/showcase/components-catalog.d.ts +3 -0
  41. package/dist/lib/showcase/components-catalog.d.ts.map +1 -0
  42. package/dist/lib/showcase/components-showcase-constants.d.ts +63 -0
  43. package/dist/lib/showcase/components-showcase-constants.d.ts.map +1 -0
  44. package/dist/lib/showcase/docs-sidebar-helpers.d.ts +15 -0
  45. package/dist/lib/showcase/docs-sidebar-helpers.d.ts.map +1 -0
  46. package/dist/molecules/Alert.svelte +9 -4
  47. package/dist/molecules/ComponentDemo.svelte +53 -50
  48. package/dist/molecules/ContactForm.svelte +113 -76
  49. package/dist/molecules/ContactForm.svelte.d.ts +1 -4
  50. package/dist/molecules/Dropdown.svelte +4 -2
  51. package/dist/molecules/ImageUpload.svelte +27 -4
  52. package/dist/molecules/ImageUpload.svelte.d.ts +1 -0
  53. package/dist/molecules/Modal.svelte +46 -45
  54. package/dist/molecules/NavigationMenu.svelte +7 -10
  55. package/dist/molecules/NavigationMenuContent.svelte +9 -9
  56. package/dist/molecules/NavigationMenuItem.svelte +7 -6
  57. package/dist/molecules/NavigationMenuLink.svelte +8 -6
  58. package/dist/molecules/NavigationMenuList.svelte +0 -7
  59. package/dist/molecules/NavigationMenuTrigger.svelte +8 -11
  60. package/dist/molecules/Section.svelte +12 -12
  61. package/dist/molecules/SlideUp.svelte +32 -2
  62. package/dist/molecules/Tabs.svelte +74 -7
  63. package/dist/molecules/index.d.ts +0 -1
  64. package/dist/molecules/index.js +0 -1
  65. package/dist/molecules/navigation-menu-context.d.ts +6 -0
  66. package/dist/molecules/navigation-menu-context.js +1 -0
  67. package/dist/organisms/Navbar.svelte +170 -53
  68. package/dist/organisms/Navbar.svelte.d.ts +31 -4
  69. package/dist/organisms/SidebarNavigation.svelte +464 -0
  70. package/dist/organisms/SidebarNavigation.svelte.d.ts +49 -0
  71. package/dist/organisms/SidebarPanel.svelte +175 -0
  72. package/dist/organisms/SidebarPanel.svelte.d.ts +32 -0
  73. package/dist/organisms/index.d.ts +2 -1
  74. package/dist/organisms/index.js +2 -1
  75. package/dist/types/page.types.d.ts +32 -0
  76. package/dist/types/page.types.d.ts.map +1 -0
  77. package/dist/types/variants.ts +76 -0
  78. package/dist/zabi-components-colors.css +347 -324
  79. package/dist/zabi-components-theme-dark-only.css +159 -151
  80. package/dist/zabi-components-theme-dark.css +159 -151
  81. package/dist/zabi-components-theme-only.css +245 -230
  82. package/dist/zabi-components-theme.css +245 -230
  83. package/dist/zabi-components.css +722 -84
  84. package/docs/theme-imports.md +112 -0
  85. package/package.json +20 -9
  86. package/dist/molecules/Sidebar.svelte +0 -324
  87. package/dist/molecules/Sidebar.svelte.d.ts +0 -30
  88. package/dist/organisms/Navigation.svelte +0 -116
  89. package/dist/organisms/Navigation.svelte.d.ts +0 -20
@@ -7,395 +7,418 @@
7
7
  ======================================== */
8
8
 
9
9
  :root {
10
+ /*
11
+ * Custom base (gray) ramp — single physical scale for --color-base-*.
12
+ * 21 stops: 50 … 950 (lightest → darkest). Edit hex here; mirror the same block in .dark for standalone imports.
13
+ * Dark: semantic step S maps to physical (1000 − S), e.g. 50↔950, 75↔925; 500 stays fixed.
14
+ * Midpoints are frozen hex values (default mode: fixed).
15
+ */
16
+ --zabi-base-50: #fafafa
17
+ --zabi-base-75: #f7f7f7
18
+ --zabi-base-100: #f4f4f5
19
+ --zabi-base-150: #ececee
20
+ --zabi-base-200: #e4e4e7
21
+ --zabi-base-250: #dcdcdf
22
+ --zabi-base-300: #d4d4d8
23
+ --zabi-base-350: #babac1
24
+ --zabi-base-400: #a1a1aa
25
+ --zabi-base-450: #898992
26
+ --zabi-base-500: #71717a
27
+ --zabi-base-550: #61616a
28
+ --zabi-base-600: #52525b
29
+ --zabi-base-650: #484850
30
+ --zabi-base-700: #3f3f46
31
+ --zabi-base-750: #333338
32
+ --zabi-base-800: #27272a
33
+ --zabi-base-850: #1f1f22
34
+ --zabi-base-900: #18181b
35
+ --zabi-base-925: #101013
36
+ --zabi-base-950: #09090b
10
37
  /* Typography - Nunito Sans font family */
11
- --font-family-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;
12
-
38
+ --font-family-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif
13
39
  /* Brand Color Scale */
14
- --color-brand-50: #f7faff;
15
- --color-brand-100: #edf2fb;
16
- --color-brand-200: #dfe7fb;
17
- --color-brand-300: #ccdbfd;
18
- --color-brand-400: #abc4ff;
19
- --color-brand-500: #8fa8ff;
20
- --color-brand-600: #6e84fa;
21
- --color-brand-700: #5366e2;
22
- --color-brand-800: #3f4fc0;
23
- --color-brand-900: #2f3c99;
24
- --color-brand-950: #1f2866;
25
-
40
+ --color-brand-50: #f7faff
41
+ --color-brand-100: #edf2fb
42
+ --color-brand-200: #dfe7fb
43
+ --color-brand-300: #ccdbfd
44
+ --color-brand-400: #abc4ff
45
+ --color-brand-500: #8fa8ff
46
+ --color-brand-600: #6e84fa
47
+ --color-brand-700: #5366e2
48
+ --color-brand-800: #3f4fc0
49
+ --color-brand-900: #2f3c99
50
+ --color-brand-950: #1f2866
26
51
  /* Citron Color Scale */
27
- --color-citron-50: #f9faeb;
28
- --color-citron-100: #f1f5cf;
29
- --color-citron-200: #e4ecaa;
30
- --color-citron-300: #d5e184;
31
- --color-citron-400: #c7d460;
32
- --color-citron-500: #bbbe64;
33
- --color-citron-600: #a3a852;
34
- --color-citron-700: #848a43;
35
- --color-citron-800: #666c35;
36
- --color-citron-900: #4d5229;
37
- --color-citron-950: #323518;
38
-
52
+ --color-citron-50: #f9faeb
53
+ --color-citron-100: #f1f5cf
54
+ --color-citron-200: #e4ecaa
55
+ --color-citron-300: #d5e184
56
+ --color-citron-400: #c7d460
57
+ --color-citron-500: #bbbe64
58
+ --color-citron-600: #a3a852
59
+ --color-citron-700: #848a43
60
+ --color-citron-800: #666c35
61
+ --color-citron-900: #4d5229
62
+ --color-citron-950: #323518
39
63
  /* Pine Color Scale */
40
- --color-pine-50: #e9f6f2;
41
- --color-pine-100: #d2ece4;
42
- --color-pine-200: #a7d9c9;
43
- --color-pine-300: #78c4ad;
44
- --color-pine-400: #49ad91;
45
- --color-pine-500: #0C5D43;
46
- --color-pine-600: #0a513a;
47
- --color-pine-700: #084532;
48
- --color-pine-800: #063a2a;
49
- --color-pine-900: #04231a;
50
- --color-pine-950: #02160f;
51
-
64
+ --color-pine-50: #e9f6f2
65
+ --color-pine-100: #d2ece4
66
+ --color-pine-200: #a7d9c9
67
+ --color-pine-300: #78c4ad
68
+ --color-pine-400: #49ad91
69
+ --color-pine-500: #0C5D43
70
+ --color-pine-600: #0a513a
71
+ --color-pine-700: #084532
72
+ --color-pine-800: #063a2a
73
+ --color-pine-900: #04231a
74
+ --color-pine-950: #02160f
52
75
  /* Iris Color Scale */
53
- --color-iris-50: #f4f4fa;
54
- --color-iris-100: #e9e9f7;
55
- --color-iris-200: #d6d6f0;
56
- --color-iris-300: #bdbde6;
57
- --color-iris-400: #a3a3d8;
58
- --color-iris-500: #6969B3;
59
- --color-iris-600: #58589e;
60
- --color-iris-700: #474788;
61
- --color-iris-800: #38386f;
62
- --color-iris-900: #2a2a56;
63
- --color-iris-950: #1b1b37;
64
-
65
- /* Base Color Scale - Maps to neutral palette */
66
- --color-base-50: theme(colors.neutral.50);
67
- --color-base-100: theme(colors.neutral.100);
68
- --color-base-200: theme(colors.neutral.200);
69
- --color-base-300: theme(colors.neutral.300);
70
- --color-base-400: theme(colors.neutral.400);
71
- --color-base-500: theme(colors.neutral.500);
72
- --color-base-600: theme(colors.neutral.600);
73
- --color-base-700: theme(colors.neutral.700);
74
- --color-base-800: theme(colors.neutral.800);
75
- --color-base-900: theme(colors.neutral.900);
76
- --color-base-950: theme(colors.neutral.950);
77
-
78
-
76
+ --color-iris-50: #f4f4fa
77
+ --color-iris-100: #e9e9f7
78
+ --color-iris-200: #d6d6f0
79
+ --color-iris-300: #bdbde6
80
+ --color-iris-400: #a3a3d8
81
+ --color-iris-500: #6969B3
82
+ --color-iris-600: #58589e
83
+ --color-iris-700: #474788
84
+ --color-iris-800: #38386f
85
+ --color-iris-900: #2a2a56
86
+ --color-iris-950: #1b1b37
87
+ /* Base Color Scale — semantic tokens alias the physical ramp (light: 1:1) */
88
+ --color-base-50: var(--zabi-base-50)
89
+ --color-base-75: var(--zabi-base-75)
90
+ --color-base-100: var(--zabi-base-100)
91
+ --color-base-150: var(--zabi-base-150)
92
+ --color-base-200: var(--zabi-base-200)
93
+ --color-base-250: var(--zabi-base-250)
94
+ --color-base-300: var(--zabi-base-300)
95
+ --color-base-350: var(--zabi-base-350)
96
+ --color-base-400: var(--zabi-base-400)
97
+ --color-base-450: var(--zabi-base-450)
98
+ --color-base-500: var(--zabi-base-500)
99
+ --color-base-550: var(--zabi-base-550)
100
+ --color-base-600: var(--zabi-base-600)
101
+ --color-base-650: var(--zabi-base-650)
102
+ --color-base-700: var(--zabi-base-700)
103
+ --color-base-750: var(--zabi-base-750)
104
+ --color-base-800: var(--zabi-base-800)
105
+ --color-base-850: var(--zabi-base-850)
106
+ --color-base-900: var(--zabi-base-900)
107
+ --color-base-925: var(--zabi-base-925)
108
+ --color-base-950: var(--zabi-base-950)
79
109
  /* Background Colors */
80
- --color-background: var(--color-base-100);
81
- --color-background-secondary: var(--color-base-50);
82
- --color-background-tertiary: var(--color-base-100);
83
-
110
+ --color-background: var(--color-base-100)
111
+ --color-background-secondary: var(--color-base-50)
112
+ --color-background-tertiary: var(--color-base-100)
84
113
  /* Page Colors */
85
- --color-page: var(--color-base-100);
86
- --color-page-secondary: var(--color-base-200);
87
-
114
+ --color-page: var(--color-base-100)
115
+ --color-page-secondary: var(--color-base-200)
88
116
  /* Card Colors */
89
- --color-card: theme(colors.white);
90
- --color-card-hover: var(--color-base-100);
91
- --color-card-active: var(--color-base-100);
92
- --color-card-elevated: theme(colors.white);
93
-
117
+ --color-card: theme(colors.white)
118
+ --color-card-hover: var(--color-base-100)
119
+ --color-card-active: var(--color-base-100)
120
+ --color-card-elevated: theme(colors.white)
94
121
  /* Overlay Colors */
95
- --color-overlay: rgba(0, 0, 0, 0.5);
96
-
122
+ --color-overlay: rgba(0, 0, 0, 0.5)
97
123
  /* Input Colors */
98
- --color-input: var(--color-base-200);
99
- --color-input-hover: var(--color-base-100);
100
- --color-input-focus: var(--color-base-100);
101
- --color-input-disabled: var(--color-base-100);
102
-
124
+ --color-input: var(--color-base-250)
125
+ --color-input-border: var(--color-base-350)
126
+ --color-input-hover: var(--color-base-300)
127
+ --color-input-focus: var(--color-base-300)
128
+ --color-input-disabled: var(--color-base-100)
103
129
  /* Text Colors */
104
- --color-headline: var(--color-base-900);
105
- --color-body: var(--color-base-800);
106
- --color-description: var(--color-base-600);
107
- --color-caption: var(--color-base-500);
108
- --color-input-placeholder: var(--color-base-400);
109
- --color-label: var(--color-base-700);
110
- --color-link: theme(colors.brand.600);
111
- --color-link-hover: theme(colors.brand.700);
112
- --color-success-text: var(--color-success);
113
- --color-warning-text: theme(colors.amber.700);
114
- --color-neutral-text: var(--color-base-700);
115
- --color-energetic-text: theme(colors.citron.700);
116
- --color-error-text: theme(colors.red.700);
117
- --color-inverse: theme(colors.white);
118
- --color-disabled: var(--color-base-400);
119
-
130
+ --color-headline: var(--color-base-900)
131
+ --color-body: var(--color-base-800)
132
+ --color-description: var(--color-base-600)
133
+ --color-caption: var(--color-base-500)
134
+ --color-input-placeholder: var(--color-base-400)
135
+ --color-label: var(--color-base-700)
136
+ --color-link: theme(colors.brand.600)
137
+ --color-link-hover: theme(colors.brand.700)
138
+ /* Navigation menu item — menubar triggers, menu links, inline/sidebar nav rows */
139
+ --color-nav-menu-item: var(--color-body)
140
+ --color-nav-menu-item-hover: var(--color-headline)
141
+ --color-nav-menu-item-active: var(--color-link)
142
+ --color-nav-menu-hover: var(--color-base-100)
143
+ --color-nav-menu-active: var(--color-action-primary-subtle)
144
+ --color-nav-menu-focus: var(--color-brand-500)
145
+ --color-success-text: var(--color-success)
146
+ --color-warning-text: theme(colors.amber.700)
147
+ --color-neutral-text: var(--color-base-700)
148
+ --color-energetic-text: theme(colors.citron.700)
149
+ --color-error-text: theme(colors.red.700)
150
+ --color-inverse: theme(colors.white)
151
+ --color-disabled: var(--color-base-400)
120
152
  /* Border Colors */
121
- --color-border: var(--color-base-200);
122
- --color-border-weak: var(--color-base-300);
123
- --color-border-medium: var(--color-base-400);
124
- --color-border-strong: var(--color-base-500);
125
-
153
+ --color-border: var(--color-base-200)
154
+ --color-border-weak: var(--color-base-300)
155
+ --color-border-medium: var(--color-base-400)
156
+ --color-border-strong: var(--color-base-500)
126
157
  /* Focus Colors */
127
- --color-focus: theme(colors.brand.500);
128
- --color-focus-weak: theme(colors.brand.600);
129
- --color-focus-medium: theme(colors.brand.700);
130
- --color-focus-strong: theme(colors.brand.800);
131
-
158
+ --color-focus: theme(colors.brand.500)
159
+ --color-focus-weak: theme(colors.brand.600)
160
+ --color-focus-medium: theme(colors.brand.700)
161
+ --color-focus-strong: theme(colors.brand.800)
132
162
  /* Primary Colors */
133
- --color-primary: theme(colors.brand.600);
134
- --color-primary-weak: theme(colors.brand.700);
135
- --color-primary-medium: theme(colors.brand.800);
136
- --color-primary-strong: theme(colors.brand.900);
137
-
163
+ --color-primary: theme(colors.brand.600)
164
+ --color-primary-weak: theme(colors.brand.700)
165
+ --color-primary-medium: theme(colors.brand.800)
166
+ --color-primary-strong: theme(colors.brand.900)
138
167
  /* Secondary Colors */
139
- --color-secondary: var(--color-base-600);
140
- --color-secondary-weak: var(--color-base-700);
141
- --color-secondary-medium: var(--color-base-800);
142
- --color-secondary-strong: var(--color-base-900);
143
-
168
+ --color-secondary: var(--color-base-600)
169
+ --color-secondary-weak: var(--color-base-700)
170
+ --color-secondary-medium: var(--color-base-800)
171
+ --color-secondary-strong: var(--color-base-900)
144
172
  /* Success Colors */
145
- --color-success: theme(colors.pine.600);
146
- --color-success-weak: theme(colors.pine.700);
147
- --color-success-medium: theme(colors.pine.800);
148
- --color-success-strong: theme(colors.pine.900);
149
-
173
+ --color-success: theme(colors.pine.600)
174
+ --color-success-weak: theme(colors.pine.700)
175
+ --color-success-medium: theme(colors.pine.800)
176
+ --color-success-strong: theme(colors.pine.900)
150
177
  /* Warning Colors */
151
- --color-warning: theme(colors.amber.500);
152
- --color-warning-weak: theme(colors.amber.600);
153
- --color-warning-medium: theme(colors.amber.400);
154
- --color-warning-strong: theme(colors.amber.300);
155
-
178
+ --color-warning: theme(colors.amber.500)
179
+ --color-warning-weak: theme(colors.amber.600)
180
+ --color-warning-medium: theme(colors.amber.400)
181
+ --color-warning-strong: theme(colors.amber.300)
156
182
  /* Error Colors */
157
- --color-error: theme(colors.red.500);
158
- --color-error-weak: theme(colors.red.600);
159
- --color-error-medium: theme(colors.red.400);
160
- --color-error-strong: theme(colors.red.300);
161
-
183
+ --color-error: theme(colors.red.500)
184
+ --color-error-weak: theme(colors.red.600)
185
+ --color-error-medium: theme(colors.red.400)
186
+ --color-error-strong: theme(colors.red.300)
162
187
  /* Energetic Colors (Citron) */
163
- --color-energetic: theme(colors.citron.500);
164
- --color-energetic-weak: theme(colors.citron.600);
165
- --color-energetic-medium: theme(colors.citron.400);
166
- --color-energetic-strong: theme(colors.citron.300);
167
-
188
+ --color-energetic: theme(colors.citron.500)
189
+ --color-energetic-weak: theme(colors.citron.600)
190
+ --color-energetic-medium: theme(colors.citron.400)
191
+ --color-energetic-strong: theme(colors.citron.300)
168
192
  /* Neutral Colors */
169
- --color-neutral: var(--color-base-600);
170
- --color-neutral-weak: var(--color-base-700);
171
- --color-neutral-medium: var(--color-base-800);
172
- --color-neutral-strong: var(--color-base-900);
173
-
193
+ --color-neutral: var(--color-base-600)
194
+ --color-neutral-weak: var(--color-base-700)
195
+ --color-neutral-medium: var(--color-base-800)
196
+ --color-neutral-strong: var(--color-base-900)
174
197
  /* Info Colors */
175
- --color-info: theme(colors.iris.600);
176
- --color-info-weak: theme(colors.iris.700);
177
- --color-info-medium: theme(colors.iris.800);
178
- --color-info-strong: theme(colors.iris.900);
198
+ --color-info: theme(colors.iris.600)
199
+ --color-info-weak: theme(colors.iris.700)
200
+ --color-info-medium: theme(colors.iris.800)
201
+ --color-info-strong: theme(colors.iris.900)
179
202
  /* Text alias */
180
- --color-info-text: var(--color-info);
181
-
203
+ --color-info-text: var(--color-info)
182
204
  /* ========================================
183
205
  ACTION COLORS - For interactive elements (buttons, links, etc.)
184
206
  ======================================== */
185
-
186
207
  /* Primary Actions - Used by bg-action-primary utility class */
187
208
  /* 🎯 TO CHANGE bg-action-primary COLOR: Edit the values below */
188
- --color-action-primary: var(--color-brand-950);
189
- --color-action-primary-hover: var(--color-brand-900);
190
- --color-action-primary-active: var(--color-brand-400);
191
- --color-action-primary-disabled: var(--color-brand-500);
192
- --color-action-primary-subtle: var(--color-brand-100);
193
- --color-action-primary-subtle-hover: var(--color-brand-200);
194
- --color-action-primary-text: var(--color-brand-50);
195
-
209
+ --color-action-primary: var(--color-brand-950)
210
+ --color-action-primary-hover: var(--color-brand-900)
211
+ --color-action-primary-active: var(--color-brand-400)
212
+ --color-action-primary-disabled: var(--color-brand-500)
213
+ --color-action-primary-subtle: var(--color-brand-100)
214
+ --color-action-primary-subtle-hover: var(--color-brand-200)
215
+ --color-action-primary-text: var(--color-brand-50)
196
216
  /* Secondary Actions - Used by bg-action-secondary utility class */
197
- --color-action-secondary: color-mix(in srgb, var(--color-brand-800) 10%, transparent);
198
- --color-action-secondary-hover: color-mix(in srgb, var(--color-brand-800) 20%, transparent);
199
- --color-action-secondary-active: var(--color-brand-400);
200
- --color-action-secondary-disabled: var(--color-brand-500);
201
- --color-action-secondary-subtle: var(--color-brand-600);
202
- --color-action-secondary-subtle-hover: var(--color-brand-700);
203
-
217
+ --color-action-secondary: color-mix(in srgb, var(--color-brand-800) 10%, transparent)
218
+ --color-action-secondary-hover: color-mix(in srgb, var(--color-brand-800) 20%, transparent)
219
+ --color-action-secondary-active: var(--color-brand-400)
220
+ --color-action-secondary-disabled: var(--color-brand-500)
221
+ --color-action-secondary-subtle: var(--color-brand-600)
222
+ --color-action-secondary-subtle-hover: var(--color-brand-700)
204
223
  /* Danger Actions - Used by bg-action-danger utility class */
205
- --color-action-danger: theme(colors.red.600);
206
- --color-action-danger-hover: theme(colors.red.700);
207
- --color-action-danger-active: theme(colors.red.800);
208
- --color-action-danger-disabled: theme(colors.red.300);
209
- --color-action-danger-subtle: theme(colors.red.50);
210
- --color-action-danger-subtle-hover: theme(colors.red.100);
211
-
224
+ --color-action-danger: theme(colors.red.600)
225
+ --color-action-danger-hover: theme(colors.red.700)
226
+ --color-action-danger-active: theme(colors.red.800)
227
+ --color-action-danger-disabled: theme(colors.red.300)
228
+ --color-action-danger-subtle: theme(colors.red.50)
229
+ --color-action-danger-subtle-hover: theme(colors.red.100)
212
230
  /* Shadow Colors */
213
- --shadow-color: 0 0 0;
214
- --shadow-opacity: 0.1;
215
- --shadow-sm: 0 1px 3px 0 rgb(var(--shadow-color) / var(--shadow-opacity)), 0 1px 2px -1px rgb(var(--shadow-color) / var(--shadow-opacity));
216
- --shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 2px 4px -2px rgb(var(--shadow-color) / var(--shadow-opacity));
217
- --shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 4px 6px -4px rgb(var(--shadow-color) / var(--shadow-opacity));
218
- --shadow-xl: 0 20px 25px -5px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 8px 10px -6px rgb(var(--shadow-color) / var(--shadow-opacity));
219
-
231
+ --shadow-color: 0 0 0
232
+ --shadow-opacity: 0.1
233
+ --shadow-sm: 0 1px 3px 0 rgb(var(--shadow-color) / var(--shadow-opacity)), 0 1px 2px -1px rgb(var(--shadow-color) / var(--shadow-opacity))
234
+ --shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 2px 4px -2px rgb(var(--shadow-color) / var(--shadow-opacity))
235
+ --shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 4px 6px -4px rgb(var(--shadow-color) / var(--shadow-opacity))
236
+ --shadow-xl: 0 20px 25px -5px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 8px 10px -6px rgb(var(--shadow-color) / var(--shadow-opacity))
220
237
  /* Spacing */
221
- --spacing-xs: 0.25rem;
222
- --spacing-sm: 0.5rem;
223
- --spacing-md: 1rem;
224
- --spacing-lg: 1.5rem;
225
- --spacing-xl: 2rem;
226
- --spacing-2xl: 3rem;
227
-
238
+ --spacing-xs: 0.25rem
239
+ --spacing-sm: 0.5rem
240
+ --spacing-md: 1rem
241
+ --spacing-lg: 1.5rem
242
+ --spacing-xl: 2rem
243
+ --spacing-2xl: 3rem
228
244
  /* Border Radius */
229
- --radius-sm: 0.25rem;
230
- --radius-md: 0.375rem;
231
- --radius-lg: 0.5rem;
232
- --radius-xl: 0.75rem;
233
-
245
+ --radius-sm: 0.25rem
246
+ --radius-md: 0.375rem
247
+ --radius-lg: 0.5rem
248
+ --radius-xl: 0.75rem
234
249
  /* Z-index */
235
- --z-dropdown: 1000;
236
- --z-sticky: 1020;
237
- --z-fixed: 1030;
238
- --z-modal-backdrop: 1040;
239
- --z-modal: 1050;
240
- --z-popover: 1060;
241
- --z-tooltip: 1070;
242
- --z-toast: 1080;
250
+ --z-dropdown: 1000
251
+ --z-sticky: 1020
252
+ --z-fixed: 1030
253
+ --z-modal-backdrop: 1040
254
+ --z-modal: 1050
255
+ --z-popover: 1060
256
+ --z-tooltip: 1070
257
+ --z-toast: 1080
243
258
  }
244
259
 
245
260
  /* Dark Mode */
246
261
  .dark {
262
+ /* Mirror @theme --zabi-base-* ramp (same physical hex; required for standalone dark import) */
263
+ --zabi-base-50: #fafafa
264
+ --zabi-base-75: #f7f7f7
265
+ --zabi-base-100: #f4f4f5
266
+ --zabi-base-150: #ececee
267
+ --zabi-base-200: #e4e4e7
268
+ --zabi-base-250: #dcdcdf
269
+ --zabi-base-300: #d4d4d8
270
+ --zabi-base-350: #babac1
271
+ --zabi-base-400: #a1a1aa
272
+ --zabi-base-450: #898992
273
+ --zabi-base-500: #71717a
274
+ --zabi-base-550: #61616a
275
+ --zabi-base-600: #52525b
276
+ --zabi-base-650: #484850
277
+ --zabi-base-700: #3f3f46
278
+ --zabi-base-750: #333338
279
+ --zabi-base-800: #27272a
280
+ --zabi-base-850: #1f1f22
281
+ --zabi-base-900: #18181b
282
+ --zabi-base-925: #101013
283
+ --zabi-base-950: #09090b
247
284
  /* Brand Color Scale - Dark mode variants */
248
- --color-brand-50: theme(colors.brand.950);
249
- --color-brand-100: theme(colors.brand.900);
250
- --color-brand-200: theme(colors.brand.800);
251
- --color-brand-300: theme(colors.brand.700);
252
- --color-brand-400: theme(colors.brand.600);
253
- --color-brand-500: theme(colors.brand.500);
254
- --color-brand-600: theme(colors.brand.400);
255
- --color-brand-700: theme(colors.brand.300);
256
- --color-brand-800: theme(colors.brand.200);
257
- --color-brand-900: theme(colors.brand.100);
258
- --color-brand-950: theme(colors.brand.50);
259
-
285
+ --color-brand-50: theme(colors.brand.950)
286
+ --color-brand-100: theme(colors.brand.900)
287
+ --color-brand-200: theme(colors.brand.800)
288
+ --color-brand-300: theme(colors.brand.700)
289
+ --color-brand-400: theme(colors.brand.600)
290
+ --color-brand-500: theme(colors.brand.500)
291
+ --color-brand-600: theme(colors.brand.400)
292
+ --color-brand-700: theme(colors.brand.300)
293
+ --color-brand-800: theme(colors.brand.200)
294
+ --color-brand-900: theme(colors.brand.100)
295
+ --color-brand-950: theme(colors.brand.50)
260
296
  /* Citron Color Scale - Dark mode variants */
261
- --color-citron-50: theme(colors.citron.950);
262
- --color-citron-100: theme(colors.citron.900);
263
- --color-citron-200: theme(colors.citron.800);
264
- --color-citron-300: theme(colors.citron.700);
265
- --color-citron-400: theme(colors.citron.600);
266
- --color-citron-500: theme(colors.citron.500);
267
- --color-citron-600: theme(colors.citron.400);
268
- --color-citron-700: theme(colors.citron.300);
269
- --color-citron-800: theme(colors.citron.200);
270
- --color-citron-900: theme(colors.citron.100);
271
- --color-citron-950: theme(colors.citron.50);
272
-
297
+ --color-citron-50: theme(colors.citron.950)
298
+ --color-citron-100: theme(colors.citron.900)
299
+ --color-citron-200: theme(colors.citron.800)
300
+ --color-citron-300: theme(colors.citron.700)
301
+ --color-citron-400: theme(colors.citron.600)
302
+ --color-citron-500: theme(colors.citron.500)
303
+ --color-citron-600: theme(colors.citron.400)
304
+ --color-citron-700: theme(colors.citron.300)
305
+ --color-citron-800: theme(colors.citron.200)
306
+ --color-citron-900: theme(colors.citron.100)
307
+ --color-citron-950: theme(colors.citron.50)
273
308
  /* Pine Color Scale - Dark mode variants */
274
- --color-pine-50: theme(colors.pine.950);
275
- --color-pine-100: theme(colors.pine.900);
276
- --color-pine-200: theme(colors.pine.800);
277
- --color-pine-300: theme(colors.pine.700);
278
- --color-pine-400: theme(colors.pine.600);
279
- --color-pine-500: theme(colors.pine.500);
280
- --color-pine-600: theme(colors.pine.400);
281
- --color-pine-700: theme(colors.pine.300);
282
- --color-pine-800: theme(colors.pine.200);
283
- --color-pine-900: theme(colors.pine.100);
284
- --color-pine-950: theme(colors.pine.50);
285
-
309
+ --color-pine-50: theme(colors.pine.950)
310
+ --color-pine-100: theme(colors.pine.900)
311
+ --color-pine-200: theme(colors.pine.800)
312
+ --color-pine-300: theme(colors.pine.700)
313
+ --color-pine-400: theme(colors.pine.600)
314
+ --color-pine-500: theme(colors.pine.500)
315
+ --color-pine-600: theme(colors.pine.400)
316
+ --color-pine-700: theme(colors.pine.300)
317
+ --color-pine-800: theme(colors.pine.200)
318
+ --color-pine-900: theme(colors.pine.100)
319
+ --color-pine-950: theme(colors.pine.50)
286
320
  /* Iris Color Scale - Dark mode variants */
287
- --color-iris-50: theme(colors.iris.950);
288
- --color-iris-100: theme(colors.iris.900);
289
- --color-iris-200: theme(colors.iris.800);
290
- --color-iris-300: theme(colors.iris.700);
291
- --color-iris-400: theme(colors.iris.600);
292
- --color-iris-500: theme(colors.iris.500);
293
- --color-iris-600: theme(colors.iris.400);
294
- --color-iris-700: theme(colors.iris.300);
295
- --color-iris-800: theme(colors.iris.200);
296
- --color-iris-900: theme(colors.iris.100);
297
- --color-iris-950: theme(colors.iris.50);
298
-
299
- /* Base Color Scale - Dark mode variants (inverted neutral palette) */
300
- --color-base-50: theme(colors.neutral.950);
301
- --color-base-100: theme(colors.neutral.900);
302
- --color-base-200: theme(colors.neutral.800);
303
- --color-base-300: theme(colors.neutral.700);
304
- --color-base-400: theme(colors.neutral.600);
305
- --color-base-500: theme(colors.neutral.500);
306
- --color-base-600: theme(colors.neutral.400);
307
- --color-base-700: theme(colors.neutral.300);
308
- --color-base-800: theme(colors.neutral.200);
309
- --color-base-900: theme(colors.neutral.100);
310
- --color-base-950: theme(colors.neutral.50);
311
-
321
+ --color-iris-50: theme(colors.iris.950)
322
+ --color-iris-100: theme(colors.iris.900)
323
+ --color-iris-200: theme(colors.iris.800)
324
+ --color-iris-300: theme(colors.iris.700)
325
+ --color-iris-400: theme(colors.iris.600)
326
+ --color-iris-500: theme(colors.iris.500)
327
+ --color-iris-600: theme(colors.iris.400)
328
+ --color-iris-700: theme(colors.iris.300)
329
+ --color-iris-800: theme(colors.iris.200)
330
+ --color-iris-900: theme(colors.iris.100)
331
+ --color-iris-950: theme(colors.iris.50)
332
+ /* Base Color Scale — semantic → physical mirror (1000 − step); 500 is fixed point */
333
+ --color-base-50: #09090b
334
+ --color-base-75: #101013
335
+ --color-base-100: #18181b
336
+ --color-base-150: #1f1f22
337
+ --color-base-200: #27272a
338
+ --color-base-250: #333338
339
+ --color-base-300: #3f3f46
340
+ --color-base-350: #484850
341
+ --color-base-400: #52525b
342
+ --color-base-450: #61616a
343
+ --color-base-500: #71717a
344
+ --color-base-550: #898992
345
+ --color-base-600: #a1a1aa
346
+ --color-base-650: #babac1
347
+ --color-base-700: #d4d4d8
348
+ --color-base-750: #dcdcdf
349
+ --color-base-800: #e4e4e7
350
+ --color-base-850: #ececee
351
+ --color-base-900: #f4f4f5
352
+ --color-base-925: #f7f7f7
353
+ --color-base-950: #fafafa
312
354
  /* Background Colors - No dark mode overrides needed, base colors are already inverted */
313
-
314
355
  /* Page Colors - No dark mode overrides needed, base colors are already inverted */
315
-
316
356
  /* Card Colors */
317
- --color-card: var(--color-base-200);
318
- --color-card-hover: var(--color-base-300);
319
- --color-card-active: var(--color-base-400);
320
- --color-card-elevated: var(--color-base-200);
321
-
357
+ --color-card: var(--color-base-200)
358
+ --color-card-hover: var(--color-base-300)
359
+ --color-card-active: var(--color-base-400)
360
+ --color-card-elevated: var(--color-base-200)
322
361
  /* Overlay Colors */
323
- --color-overlay: rgba(0, 0, 0, 0.7);
324
-
362
+ --color-overlay: rgba(0, 0, 0, 0.7)
325
363
  /* Input Colors */
326
- --color-input: var(--color-base-300);
327
- --color-input-hover: var(--color-base-400);
328
- --color-input-focus: var(--color-base-300);
329
- --color-input-disabled: var(--color-base-400);
330
-
364
+ --color-input: var(--color-base-250)
365
+ --color-input-border: var(--color-base-350)
366
+ --color-input-hover: var(--color-base-300)
367
+ --color-input-focus: var(--color-base-300)
368
+ --color-input-disabled: var(--color-base-300)
331
369
  /* Text Colors - No dark mode overrides needed, base colors are already inverted */
332
-
333
370
  /* Border Colors - No dark mode overrides needed, base colors are already inverted */
334
-
335
371
  /* Focus Colors - No dark mode overrides needed, brand colors are already inverted */
336
-
337
372
  /* Primary Colors - No dark mode overrides needed, brand colors are already inverted */
338
-
339
373
  /* Secondary Colors - No dark mode overrides needed, base colors are already inverted */
340
-
341
374
  /* Success Colors */
342
- --color-success: theme(colors.pine.400);
343
- --color-success-weak: theme(colors.pine.500);
344
- --color-success-medium: theme(colors.pine.300);
345
- --color-success-strong: theme(colors.pine.200);
346
-
375
+ --color-success: theme(colors.pine.400)
376
+ --color-success-weak: theme(colors.pine.500)
377
+ --color-success-medium: theme(colors.pine.300)
378
+ --color-success-strong: theme(colors.pine.200)
347
379
  /* Warning Colors */
348
- --color-warning: theme(colors.amber.500);
349
- --color-warning-weak: theme(colors.amber.600);
350
- --color-warning-medium: theme(colors.amber.400);
351
- --color-warning-strong: theme(colors.amber.300);
352
-
380
+ --color-warning: theme(colors.amber.500)
381
+ --color-warning-weak: theme(colors.amber.600)
382
+ --color-warning-medium: theme(colors.amber.400)
383
+ --color-warning-strong: theme(colors.amber.300)
353
384
  /* Error Colors */
354
- --color-error: theme(colors.red.500);
355
- --color-error-weak: theme(colors.red.600);
356
- --color-error-medium: theme(colors.red.400);
357
- --color-error-strong: theme(colors.red.300);
358
-
385
+ --color-error: theme(colors.red.500)
386
+ --color-error-weak: theme(colors.red.600)
387
+ --color-error-medium: theme(colors.red.400)
388
+ --color-error-strong: theme(colors.red.300)
359
389
  /* Energetic Colors (Citron) */
360
- --color-energetic: theme(colors.citron.400);
361
- --color-energetic-weak: theme(colors.citron.500);
362
- --color-energetic-medium: theme(colors.citron.300);
363
- --color-energetic-strong: theme(colors.citron.200);
364
-
390
+ --color-energetic: theme(colors.citron.400)
391
+ --color-energetic-weak: theme(colors.citron.500)
392
+ --color-energetic-medium: theme(colors.citron.300)
393
+ --color-energetic-strong: theme(colors.citron.200)
365
394
  /* Neutral Colors - No dark mode overrides needed, base colors are already inverted */
366
-
367
395
  /* Info Colors */
368
- --color-info: theme(colors.iris.500);
369
- --color-info-weak: theme(colors.iris.600);
370
- --color-info-active: theme(colors.iris.400);
371
- --color-info-medium: theme(colors.iris.400);
372
- --color-info-strong: theme(colors.iris.300);
396
+ --color-info: theme(colors.iris.500)
397
+ --color-info-weak: theme(colors.iris.600)
398
+ --color-info-active: theme(colors.iris.400)
399
+ --color-info-medium: theme(colors.iris.400)
400
+ --color-info-strong: theme(colors.iris.300)
373
401
  /* Text alias */
374
- --color-info-text: var(--color-info);
375
-
402
+ --color-info-text: var(--color-info)
376
403
  /* ========================================
377
404
  ACTION COLORS - Dark Mode Overrides
378
405
  ======================================== */
379
-
380
406
  /* Primary Actions - Background adapts automatically via brand color inversion */
381
407
  /* 🎯 TO CHANGE bg-action-primary IN DARK MODE: Edit --color-brand-800 in .dark block (line ~275) */
382
408
  /* Text color - Use brand-50 (which maps to brand-950/darkest in dark mode) for proper contrast */
383
- --color-action-primary-text: var(--color-brand-50);
384
-
409
+ --color-action-primary-text: var(--color-brand-50)
385
410
  /* Secondary Actions - No dark mode overrides needed, base colors are already inverted */
386
-
387
411
  /* Danger Actions */
388
- --color-action-danger: theme(colors.red.500);
389
- --color-action-danger-hover: theme(colors.red.600);
390
- --color-action-danger-active: theme(colors.red.700);
391
- --color-action-danger-disabled: theme(colors.red.700);
392
- --color-action-danger-subtle: theme(colors.red.950);
393
- --color-action-danger-subtle-hover: theme(colors.red.900);
394
-
412
+ --color-action-danger: theme(colors.red.500)
413
+ --color-action-danger-hover: theme(colors.red.600)
414
+ --color-action-danger-active: theme(colors.red.700)
415
+ --color-action-danger-disabled: theme(colors.red.700)
416
+ --color-action-danger-subtle: theme(colors.red.950)
417
+ --color-action-danger-subtle-hover: theme(colors.red.900)
395
418
  /* Shadow Colors */
396
- --shadow-opacity: 0.3;
397
- --shadow-sm: 0 1px 3px 0 rgb(var(--shadow-color) / var(--shadow-opacity)), 0 1px 2px -1px rgb(var(--shadow-color) / var(--shadow-opacity));
398
- --shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 2px 4px -2px rgb(var(--shadow-color) / var(--shadow-opacity));
399
- --shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 4px 6px -4px rgb(var(--shadow-color) / var(--shadow-opacity));
400
- --shadow-xl: 0 20px 25px -5px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 8px 10px -6px rgb(var(--shadow-color) / var(--shadow-opacity));
419
+ --shadow-opacity: 0.3
420
+ --shadow-sm: 0 1px 3px 0 rgb(var(--shadow-color) / var(--shadow-opacity)), 0 1px 2px -1px rgb(var(--shadow-color) / var(--shadow-opacity))
421
+ --shadow-md: 0 4px 6px -1px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 2px 4px -2px rgb(var(--shadow-color) / var(--shadow-opacity))
422
+ --shadow-lg: 0 10px 15px -3px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 4px 6px -4px rgb(var(--shadow-color) / var(--shadow-opacity))
423
+ --shadow-xl: 0 20px 25px -5px rgb(var(--shadow-color) / var(--shadow-opacity)), 0 8px 10px -6px rgb(var(--shadow-color) / var(--shadow-opacity))
401
424
  }