@zendir/ui 0.6.0 → 0.6.1

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 (116) hide show
  1. package/CHANGELOG.md +419 -406
  2. package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
  3. package/dist/react/3d/ZenSpace3D.js.map +1 -1
  4. package/dist/react/3d/ZenSpace3DCesium.js.map +1 -1
  5. package/dist/react/3d/ZenSpace3DShaders.js.map +1 -1
  6. package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
  7. package/dist/react/3d/capturePngAnalysis.js.map +1 -1
  8. package/dist/react/3d/threeLoader.js.map +1 -1
  9. package/dist/react/astro/ClassificationBanner.js.map +1 -1
  10. package/dist/react/astro/GlobalStatusBar.js.map +1 -1
  11. package/dist/react/astro/MissionClock.js.map +1 -1
  12. package/dist/react/astro/MonitoringIcon.js.map +1 -1
  13. package/dist/react/astro/Notification.js.map +1 -1
  14. package/dist/react/astro/Progress.js.map +1 -1
  15. package/dist/react/astro/SimulationControls.js.map +1 -1
  16. package/dist/react/astro/StatusIndicator.js.map +1 -1
  17. package/dist/react/astro/UnifiedTimeline.js.map +1 -1
  18. package/dist/react/cards/AccessCard.js.map +1 -1
  19. package/dist/react/cards/OrbitCard.js.map +1 -1
  20. package/dist/react/cards/SpacecraftCard.js.map +1 -1
  21. package/dist/react/cards/TelemetryCard.js.map +1 -1
  22. package/dist/react/cards/TelemetryStreamCard.js.map +1 -1
  23. package/dist/react/charts/GroundTrackMap.js.map +1 -1
  24. package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -1
  25. package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -1
  26. package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -1
  27. package/dist/react/charts/unified/AstroChart.js.map +1 -1
  28. package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -1
  29. package/dist/react/charts/unified/domain.js.map +1 -1
  30. package/dist/react/charts/unified/generators.js.map +1 -1
  31. package/dist/react/charts/unified/presets.js.map +1 -1
  32. package/dist/react/charts/unified/sync.js.map +1 -1
  33. package/dist/react/charts/unified/theme.js.map +1 -1
  34. package/dist/react/charts/unified/useChartStream.js.map +1 -1
  35. package/dist/react/chatgpt/index.js.map +1 -1
  36. package/dist/react/context/CategoryContext.js.map +1 -1
  37. package/dist/react/context/DisplaySettingsContext.js.map +1 -1
  38. package/dist/react/context/SpatialSelectionContext.js.map +1 -1
  39. package/dist/react/core/data/DataTable.js.map +1 -1
  40. package/dist/react/core/data/DataValue.js.map +1 -1
  41. package/dist/react/core/data/propertyConfig.js.map +1 -1
  42. package/dist/react/core/display/AstroIcon.js.map +1 -1
  43. package/dist/react/core/display/Badge.js.map +1 -1
  44. package/dist/react/core/display/CardHeader.js.map +1 -1
  45. package/dist/react/core/display/Container.js.map +1 -1
  46. package/dist/react/core/display/CopyButton.js.map +1 -1
  47. package/dist/react/core/display/GlassCard.js.map +1 -1
  48. package/dist/react/core/display/HeaderIconWithStatus.js.map +1 -1
  49. package/dist/react/core/display/Icon.js.map +1 -1
  50. package/dist/react/core/display/Typography.js.map +1 -1
  51. package/dist/react/core/feedback/ConfirmDialog.js.map +1 -1
  52. package/dist/react/core/feedback/Dialog.js.map +1 -1
  53. package/dist/react/core/feedback/Toast.js.map +1 -1
  54. package/dist/react/core/inputs/Button.js.map +1 -1
  55. package/dist/react/core/inputs/Checkbox.js.map +1 -1
  56. package/dist/react/core/inputs/Input.js.map +1 -1
  57. package/dist/react/core/inputs/LimitsBar.js.map +1 -1
  58. package/dist/react/core/inputs/NumberInput.js.map +1 -1
  59. package/dist/react/core/inputs/PinInput.js.map +1 -1
  60. package/dist/react/core/inputs/Select.js.map +1 -1
  61. package/dist/react/core/inputs/Toggle.js.map +1 -1
  62. package/dist/react/core/layout/Box.js.map +1 -1
  63. package/dist/react/core/layout/Center.js.map +1 -1
  64. package/dist/react/core/layout/Divider.js.map +1 -1
  65. package/dist/react/core/layout/Flex.js.map +1 -1
  66. package/dist/react/core/layout/Grid.js.map +1 -1
  67. package/dist/react/core/layout/Spacer.js.map +1 -1
  68. package/dist/react/core/layout/Stack.js.map +1 -1
  69. package/dist/react/core/layout/responsive.js.map +1 -1
  70. package/dist/react/core/layout/useBreakpoint.js.map +1 -1
  71. package/dist/react/core/navigation/AppBar.js.map +1 -1
  72. package/dist/react/core/navigation/Pagination.js.map +1 -1
  73. package/dist/react/core/navigation/SideNav.js.map +1 -1
  74. package/dist/react/core/navigation/Tabs.js.map +1 -1
  75. package/dist/react/core/overlays/Popover.js.map +1 -1
  76. package/dist/react/core/overlays/SidePanel.js.map +1 -1
  77. package/dist/react/core/overlays/Tooltip.js.map +1 -1
  78. package/dist/react/core/widgets/ActivityPlanner.js.map +1 -1
  79. package/dist/react/core/widgets/Capture.js.map +1 -1
  80. package/dist/react/core/widgets/ChatPanel.js.map +1 -1
  81. package/dist/react/core/widgets/ColorPickerPanel.js.map +1 -1
  82. package/dist/react/core/widgets/CommandBuilder.js.map +1 -1
  83. package/dist/react/core/widgets/ConnectionForm.js.map +1 -1
  84. package/dist/react/core/widgets/FileExplorer.js.map +1 -1
  85. package/dist/react/core/widgets/HexViewer.js.map +1 -1
  86. package/dist/react/core/widgets/ImageFrame.js.map +1 -1
  87. package/dist/react/core/widgets/ImageGallery.js.map +1 -1
  88. package/dist/react/core/widgets/ImagePanel.js.map +1 -1
  89. package/dist/react/core/widgets/LogViewer.js.map +1 -1
  90. package/dist/react/core/widgets/MessageStream.js.map +1 -1
  91. package/dist/react/core/widgets/MissionCalendar.js.map +1 -1
  92. package/dist/react/core/widgets/PacketViewer.js.map +1 -1
  93. package/dist/react/hooks/useCompactMode.js.map +1 -1
  94. package/dist/react/hooks/useSimulationScene.js.map +1 -1
  95. package/dist/react/panels/LayerControlPanel.js.map +1 -1
  96. package/dist/react/panels/ObjectInventoryPanel.js.map +1 -1
  97. package/dist/react/shared/ErrorBoundary.js.map +1 -1
  98. package/dist/react/shared/Skeleton.js.map +1 -1
  99. package/dist/react/theme/ThemeProvider.js +2 -1
  100. package/dist/react/theme/ThemeProvider.js.map +1 -1
  101. package/dist/react/theme/cardAccent.js.map +1 -1
  102. package/dist/react/theme/config.js.map +1 -1
  103. package/dist/react/theme/types.js.map +1 -1
  104. package/dist/react/types.js.map +1 -1
  105. package/dist/react/utils/categoryPalette.js.map +1 -1
  106. package/dist/react/utils/index.js.map +1 -1
  107. package/dist/style.css +216 -216
  108. package/dist/tokens/core.js.map +1 -1
  109. package/dist/tokens/index.js.map +1 -1
  110. package/dist/tokens/palettes/astro.js.map +1 -1
  111. package/dist/tokens/palettes/index.js.map +1 -1
  112. package/dist/tokens/palettes/tailwind.js.map +1 -1
  113. package/dist/tokens/palettes/zendir.js.map +1 -1
  114. package/dist/tokens/themes.js.map +1 -1
  115. package/dist/tokens/tokens.css +533 -533
  116. package/package.json +1 -1
@@ -1,533 +1,533 @@
1
- /**
2
- * @zendir/ui — CSS Design Tokens
3
- *
4
- * SOURCE OF TRUTH — hand-maintained. Edit color/token values here.
5
- * `npm run build:tokens` reads this file and regenerates the typed name
6
- * constants in css-vars.ts (never the reverse). The scales here mirror the
7
- * primitive palettes in src/tokens/palettes/*.ts (the TypeScript source for
8
- * JS consumers and the ThemeProvider runtime); keep the two in sync by hand.
9
- *
10
- * Usage:
11
- * @import '@zendir/ui/tokens/css';
12
- * .my-component { background: var(--zendir-bg-surface); }
13
- */
14
-
15
- :root {
16
- /* ============================================================
17
- * STATUS COLORS (Astro UX Compliant)
18
- * ============================================================ */
19
- --zendir-status-critical: #ff3838;
20
- --zendir-status-serious: #ffb302;
21
- --zendir-status-caution: #fce83a;
22
- --zendir-status-normal: #56f000;
23
- --zendir-status-standby: #2dccff;
24
- --zendir-status-off: #a4abb6;
25
-
26
- /* Light-theme status fill colors */
27
- --zendir-status-critical-light: #ff2a04;
28
- --zendir-status-serious-light: #ffaf3d;
29
- --zendir-status-caution-light: #fad800;
30
- --zendir-status-normal-light: #00e200;
31
- --zendir-status-standby-light: #64d9ff;
32
- --zendir-status-off-light: #7b8089;
33
-
34
- /* Light-theme status border colors */
35
- --zendir-status-critical-border: #661102;
36
- --zendir-status-serious-border: #664618;
37
- --zendir-status-caution-border: #645600;
38
- --zendir-status-normal-border: #005a00;
39
- --zendir-status-standby-border: #285766;
40
- --zendir-status-off-border: #3c3e42;
41
-
42
- /* ============================================================
43
- * SPACING
44
- * ============================================================ */
45
- --zendir-spacing-xs: 4px;
46
- --zendir-spacing-sm: 8px;
47
- --zendir-spacing-md: 16px;
48
- --zendir-spacing-lg: 24px;
49
- --zendir-spacing-xl: 32px;
50
- --zendir-spacing-xxl: 48px;
51
-
52
- /* ============================================================
53
- * BORDER RADIUS
54
- * ============================================================ */
55
- --zendir-radius-none: 0;
56
- --zendir-radius-sm: 2px;
57
- --zendir-radius-md: 4px;
58
- --zendir-radius-lg: 8px;
59
- --zendir-radius-xl: 16px;
60
- --zendir-radius-full: 9999px;
61
-
62
- /* ============================================================
63
- * TYPOGRAPHY
64
- * Public Sans leads body, Sora leads headings, Roboto is the
65
- * AstroUXDS-compliant fallback. OS-native fonts complete the chain.
66
- * @see https://www.astrouxds.com/foundations/typography/
67
- * ============================================================ */
68
- --zendir-font-primary:
69
- "Public Sans", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI",
70
- "Helvetica Neue", Arial, sans-serif;
71
- --zendir-font-heading:
72
- "Sora", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI",
73
- "Helvetica Neue", Arial, sans-serif;
74
- --zendir-font-mono:
75
- "Roboto Mono", "SF Mono", "Consolas", "Liberation Mono", monospace;
76
-
77
- /* Font sizes (rem-based, AstroUXDS scale) */
78
- --zendir-font-size-micro: 0.5625rem;
79
- --zendir-font-size-xxs: 0.625rem;
80
- --zendir-font-size-xs: 0.75rem;
81
- --zendir-font-size-sm: 0.875rem;
82
- --zendir-font-size-base: 1rem;
83
- --zendir-font-size-md: 1.125rem;
84
- --zendir-font-size-lg: 1.25rem;
85
- --zendir-font-size-xl: 1.5rem;
86
- --zendir-font-size-xxl: 2.125rem;
87
- --zendir-font-size-xxxl: 3rem;
88
- --zendir-font-size-display: 3.75rem;
89
-
90
- /* Font weights — AstroUXDS supports only 300/400/500/700 */
91
- --zendir-font-weight-light: 300;
92
- --zendir-font-weight-normal: 400;
93
- --zendir-font-weight-medium: 500;
94
- --zendir-font-weight-semibold: 500;
95
- --zendir-font-weight-bold: 700;
96
-
97
- /* Line heights */
98
- --zendir-line-height-tight: 1.25;
99
- --zendir-line-height-normal: 1.5;
100
- --zendir-line-height-relaxed: 1.75;
101
-
102
- /* ============================================================
103
- * SHADOWS
104
- * ============================================================ */
105
- --zendir-shadow-none: none;
106
- --zendir-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
107
- --zendir-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
108
- --zendir-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.3);
109
- --zendir-shadow-xl: 0 8px 32px rgba(0, 0, 0, 0.4);
110
- --zendir-shadow-glow: 0 0 20px rgba(77, 172, 255, 0.4);
111
-
112
- /* ============================================================
113
- * ANIMATION
114
- * ============================================================ */
115
- --zendir-animation-fast: 150ms ease;
116
- --zendir-animation-normal: 250ms ease;
117
- --zendir-animation-slow: 400ms ease;
118
- }
119
-
120
- /* ============================================================
121
- * PRIMITIVE PALETTES (Layer 0 — src/tokens/palettes)
122
- * Raw scales; prefer the semantic tokens above for UI surfaces.
123
- * ============================================================ */
124
- :root {
125
- /* Zendir Colour System */
126
- --zendir-eb-50: #eef2ff;
127
- --zendir-eb-100: #e0e7ff;
128
- --zendir-eb-200: #c4d2ff;
129
- --zendir-eb-300: #9eb4ff;
130
- --zendir-eb-400: #6f89ff;
131
- --zendir-eb-500: #5061ff;
132
- --zendir-eb-600: #3e3cff;
133
- --zendir-eb-700: #352edf;
134
- --zendir-eb-800: #2a2bb2;
135
- --zendir-eb-900: #252e8a;
136
- --zendir-eb-950: #151c50;
137
- --zendir-pb-50: #eef2ff;
138
- --zendir-pb-100: #dee7fe;
139
- --zendir-pb-200: #c3d4fe;
140
- --zendir-pb-300: #9bb6ff;
141
- --zendir-pb-400: #698eff;
142
- --zendir-pb-500: #466afc;
143
- --zendir-pb-600: #2f4af0;
144
- --zendir-pb-700: #263dd3;
145
- --zendir-pb-800: #1b2da0;
146
- --zendir-pb-900: #192b7a;
147
- --zendir-pb-950: #0d1945;
148
- --zendir-uv-50: #f5f3fd;
149
- --zendir-uv-100: #eae6fa;
150
- --zendir-uv-200: #d8cff9;
151
- --zendir-uv-300: #c6b4ff;
152
- --zendir-uv-400: #9d70ff;
153
- --zendir-uv-500: #8744f3;
154
- --zendir-uv-600: #7515e2;
155
- --zendir-uv-700: #6600cd;
156
- --zendir-uv-800: #5400ab;
157
- --zendir-uv-900: #421182;
158
- --zendir-uv-950: #251048;
159
- --zendir-neutral-50: #f6f7fd;
160
- --zendir-neutral-100: #edf2fc;
161
- --zendir-neutral-200: #dde5f4;
162
- --zendir-neutral-300: #c8d1e6;
163
- --zendir-neutral-400: #8899bc;
164
- --zendir-neutral-500: #596b8e;
165
- --zendir-neutral-600: #445272;
166
- --zendir-neutral-700: #303c58;
167
- --zendir-neutral-800: #1b243d;
168
- --zendir-neutral-900: #0d1429;
169
- --zendir-neutral-950: #030414;
170
-
171
- /* Astro UXDS status ramps */
172
- --zendir-astro-red-400: #ff5f60;
173
- --zendir-astro-red-500: #ff3838;
174
- --zendir-astro-red-600: #ff2a04;
175
- --zendir-astro-red-700: #c8102e;
176
- --zendir-astro-red-800: #8b1703;
177
- --zendir-astro-red-900: #661102;
178
- --zendir-astro-amber-400: #ffcc57;
179
- --zendir-astro-amber-500: #ffb302;
180
- --zendir-astro-amber-600: #ffaf3d;
181
- --zendir-astro-amber-700: #ff8c00;
182
- --zendir-astro-amber-800: #975f0e;
183
- --zendir-astro-amber-900: #664618;
184
- --zendir-astro-yellow-400: #fded61;
185
- --zendir-astro-yellow-500: #fce83a;
186
- --zendir-astro-yellow-600: #fad800;
187
- --zendir-astro-yellow-700: #c7ab00;
188
- --zendir-astro-yellow-800: #917d01;
189
- --zendir-astro-yellow-900: #645600;
190
- --zendir-astro-green-400: #99f666;
191
- --zendir-astro-green-500: #56f000;
192
- --zendir-astro-green-600: #00e200;
193
- --zendir-astro-green-700: #00ad23;
194
- --zendir-astro-green-800: #007a33;
195
- --zendir-astro-green-900: #005a00;
196
- --zendir-astro-cyan-400: #5ce2ff;
197
- --zendir-astro-cyan-500: #64d9ff;
198
- --zendir-astro-cyan-600: #2dccff;
199
- --zendir-astro-cyan-700: #20a9d5;
200
- --zendir-astro-cyan-800: #35798e;
201
- --zendir-astro-cyan-900: #285766;
202
-
203
- /* Tailwind CSS v4.2 */
204
- --zendir-tw-red-50: #fef2f2;
205
- --zendir-tw-red-100: #ffe2e2;
206
- --zendir-tw-red-200: #ffcaca;
207
- --zendir-tw-red-300: #ffa3a4;
208
- --zendir-tw-red-400: #ff6568;
209
- --zendir-tw-red-500: #fb2c36;
210
- --zendir-tw-red-600: #e40016;
211
- --zendir-tw-red-700: #bf000f;
212
- --zendir-tw-red-800: #9f0712;
213
- --zendir-tw-red-900: #82181a;
214
- --zendir-tw-red-950: #460809;
215
- --zendir-tw-orange-50: #fff7ed;
216
- --zendir-tw-orange-100: #ffedd5;
217
- --zendir-tw-orange-200: #ffd7a8;
218
- --zendir-tw-orange-300: #ffb970;
219
- --zendir-tw-orange-400: #ff8b1f;
220
- --zendir-tw-orange-500: #fc7100;
221
- --zendir-tw-orange-600: #ec5600;
222
- --zendir-tw-orange-700: #c43e00;
223
- --zendir-tw-orange-800: #9f2d00;
224
- --zendir-tw-orange-900: #7e2a0c;
225
- --zendir-tw-orange-950: #441306;
226
- --zendir-tw-yellow-50: #fefce8;
227
- --zendir-tw-yellow-100: #fef9c2;
228
- --zendir-tw-yellow-200: #fff085;
229
- --zendir-tw-yellow-300: #ffe030;
230
- --zendir-tw-yellow-400: #f7c900;
231
- --zendir-tw-yellow-500: #eab300;
232
- --zendir-tw-yellow-600: #ca8a00;
233
- --zendir-tw-yellow-700: #a26200;
234
- --zendir-tw-yellow-800: #874c00;
235
- --zendir-tw-yellow-900: #733e0a;
236
- --zendir-tw-yellow-950: #432004;
237
- --zendir-tw-green-50: #f0fdf4;
238
- --zendir-tw-green-100: #dcfce7;
239
- --zendir-tw-green-200: #b9f8cf;
240
- --zendir-tw-green-300: #7bf1a8;
241
- --zendir-tw-green-400: #05df72;
242
- --zendir-tw-green-500: #00c65a;
243
- --zendir-tw-green-600: #00a447;
244
- --zendir-tw-green-700: #00813a;
245
- --zendir-tw-green-800: #016630;
246
- --zendir-tw-green-900: #0d542b;
247
- --zendir-tw-green-950: #032e15;
248
- --zendir-tw-sky-50: #f0f9ff;
249
- --zendir-tw-sky-100: #dff2fe;
250
- --zendir-tw-sky-200: #b8e6fe;
251
- --zendir-tw-sky-300: #78d4ff;
252
- --zendir-tw-sky-400: #00bbfd;
253
- --zendir-tw-sky-500: #00a5ea;
254
- --zendir-tw-sky-600: #0084c7;
255
- --zendir-tw-sky-700: #0069a2;
256
- --zendir-tw-sky-800: #005986;
257
- --zendir-tw-sky-900: #024a70;
258
- --zendir-tw-sky-950: #052f4a;
259
- --zendir-tw-blue-50: #eff6ff;
260
- --zendir-tw-blue-100: #dbeafe;
261
- --zendir-tw-blue-200: #bedbff;
262
- --zendir-tw-blue-300: #91c5ff;
263
- --zendir-tw-blue-400: #56a2ff;
264
- --zendir-tw-blue-500: #3280ff;
265
- --zendir-tw-blue-600: #155dfc;
266
- --zendir-tw-blue-700: #1447e6;
267
- --zendir-tw-blue-800: #193cb8;
268
- --zendir-tw-blue-900: #1c398e;
269
- --zendir-tw-blue-950: #162456;
270
- --zendir-tw-indigo-50: #eef2ff;
271
- --zendir-tw-indigo-100: #e0e7ff;
272
- --zendir-tw-indigo-200: #c7d2ff;
273
- --zendir-tw-indigo-300: #a4b4ff;
274
- --zendir-tw-indigo-400: #7d87ff;
275
- --zendir-tw-indigo-500: #6260ff;
276
- --zendir-tw-indigo-600: #4f39f6;
277
- --zendir-tw-indigo-700: #432dd7;
278
- --zendir-tw-indigo-800: #372aac;
279
- --zendir-tw-indigo-900: #312c85;
280
- --zendir-tw-indigo-950: #1e1a4d;
281
- --zendir-tw-purple-50: #faf5ff;
282
- --zendir-tw-purple-100: #f3e8ff;
283
- --zendir-tw-purple-200: #e9d5ff;
284
- --zendir-tw-purple-300: #d8b4ff;
285
- --zendir-tw-purple-400: #bf7eff;
286
- --zendir-tw-purple-500: #ab4eff;
287
- --zendir-tw-purple-600: #9810fa;
288
- --zendir-tw-purple-700: #8200d9;
289
- --zendir-tw-purple-800: #6e11b0;
290
- --zendir-tw-purple-900: #59168b;
291
- --zendir-tw-purple-950: #3c0366;
292
- --zendir-tw-pink-50: #fdf2f8;
293
- --zendir-tw-pink-100: #fce7f3;
294
- --zendir-tw-pink-200: #fccee8;
295
- --zendir-tw-pink-300: #fda5d5;
296
- --zendir-tw-pink-400: #fb64b6;
297
- --zendir-tw-pink-500: #f6339a;
298
- --zendir-tw-pink-600: #e30076;
299
- --zendir-tw-pink-700: #c2005c;
300
- --zendir-tw-pink-800: #a2004c;
301
- --zendir-tw-pink-900: #861043;
302
- --zendir-tw-pink-950: #510424;
303
- --zendir-tw-rose-50: #fff1f2;
304
- --zendir-tw-rose-100: #ffe4e6;
305
- --zendir-tw-rose-200: #ffccd3;
306
- --zendir-tw-rose-300: #ffa3ae;
307
- --zendir-tw-rose-400: #ff6880;
308
- --zendir-tw-rose-500: #ff2357;
309
- --zendir-tw-rose-600: #e60045;
310
- --zendir-tw-rose-700: #c1003a;
311
- --zendir-tw-rose-800: #a30037;
312
- --zendir-tw-rose-900: #8b0836;
313
- --zendir-tw-rose-950: #4d0218;
314
- --zendir-tw-slate-50: #f8fafc;
315
- --zendir-tw-slate-100: #f1f5f9;
316
- --zendir-tw-slate-200: #e2e8f0;
317
- --zendir-tw-slate-300: #cad5e2;
318
- --zendir-tw-slate-400: #90a1b9;
319
- --zendir-tw-slate-500: #62748e;
320
- --zendir-tw-slate-600: #45556c;
321
- --zendir-tw-slate-700: #314158;
322
- --zendir-tw-slate-800: #1d293d;
323
- --zendir-tw-slate-900: #0f172b;
324
- --zendir-tw-slate-950: #020618;
325
- --zendir-tw-neutral-50: #fafafa;
326
- --zendir-tw-neutral-100: #f5f5f5;
327
- --zendir-tw-neutral-200: #e5e5e5;
328
- --zendir-tw-neutral-300: #d4d4d4;
329
- --zendir-tw-neutral-400: #a1a1a1;
330
- --zendir-tw-neutral-500: #737373;
331
- --zendir-tw-neutral-600: #525252;
332
- --zendir-tw-neutral-700: #404040;
333
- --zendir-tw-neutral-800: #262626;
334
- --zendir-tw-neutral-900: #171717;
335
- --zendir-tw-neutral-950: #0a0a0a;
336
- }
337
-
338
- /* ============================================================
339
- * ZEN (HYBRID) THEME (default)
340
- * ============================================================ */
341
- :root,
342
- [data-theme="hybrid"],
343
- [data-theme="dark"] {
344
- --zendir-bg-base: #09090b;
345
- --zendir-bg-surface: rgba(24, 24, 27, 0.98);
346
- --zendir-bg-elevated: rgba(39, 39, 42, 0.98);
347
- --zendir-bg-overlay: rgba(0, 0, 0, 0.85);
348
-
349
- --zendir-text-primary: #ffffff;
350
- --zendir-text-secondary: #a1a1aa;
351
- --zendir-text-tertiary: #8e8e96;
352
- --zendir-text-muted: #8e8e96;
353
-
354
- --zendir-border-default: rgba(139, 92, 246, 0.3);
355
- --zendir-border-muted: rgba(63, 63, 70, 0.5);
356
- --zendir-border-focus: #8b5cf6;
357
-
358
- --zendir-accent-primary: #8b5cf6;
359
- --zendir-accent-secondary: #a78bfa;
360
- --zendir-accent-tertiary: #7c3aed;
361
-
362
- --zendir-semantic-success: #56f000;
363
- --zendir-semantic-warning: #fce83a;
364
- --zendir-semantic-error: #ff3838;
365
- --zendir-semantic-info: #8b5cf6;
366
- }
367
-
368
- /* ============================================================
369
- * ASTRO THEME
370
- * ============================================================ */
371
- [data-theme="astro"] {
372
- --zendir-bg-base: #101923;
373
- --zendir-bg-surface: #1b2d3e;
374
- --zendir-bg-elevated: #243b53;
375
- --zendir-bg-overlay: rgba(16, 25, 35, 0.95);
376
-
377
- --zendir-text-primary: #ffffff;
378
- --zendir-text-secondary: #b7c5d3;
379
- --zendir-text-tertiary: #8fa4b7;
380
- --zendir-text-muted: #8fa4b7;
381
-
382
- --zendir-border-default: #2b659b;
383
- --zendir-border-muted: #172635;
384
- --zendir-border-focus: #4dacff;
385
-
386
- --zendir-accent-primary: #4dacff;
387
- --zendir-accent-secondary: #56f000;
388
- --zendir-accent-tertiary: #a371f7;
389
-
390
- --zendir-semantic-success: #56f000;
391
- --zendir-semantic-warning: #fce83a;
392
- --zendir-semantic-error: #ff3838;
393
- --zendir-semantic-info: #4dacff;
394
- }
395
-
396
- [data-theme="astro"][data-mode="light"],
397
- [data-theme="hybrid"][data-mode="light"],
398
- [data-theme="nebula"][data-mode="light"],
399
- [data-theme="purple-hue"][data-mode="light"],
400
- [data-theme="light"] {
401
- --zendir-bg-base: #eaeef4;
402
- --zendir-bg-surface: #f5f8fc;
403
- --zendir-bg-elevated: #ffffff;
404
- --zendir-bg-overlay: rgba(234, 238, 244, 0.95);
405
-
406
- --zendir-text-primary: #1b2d3e;
407
- --zendir-text-secondary: #51667c;
408
- --zendir-text-tertiary: #556a7c;
409
- --zendir-text-muted: #556a7c;
410
-
411
- --zendir-border-default: #2b659b;
412
- --zendir-border-muted: #d1d5db;
413
- --zendir-border-focus: #0066cc;
414
-
415
- --zendir-accent-primary: #0066cc;
416
- --zendir-accent-secondary: #56f000;
417
- --zendir-accent-tertiary: #7c3aed;
418
-
419
- --zendir-semantic-success: #56f000;
420
- --zendir-semantic-warning: #fce83a;
421
- --zendir-semantic-error: #ff3838;
422
- --zendir-semantic-info: #4dacff;
423
- }
424
-
425
- /* ============================================================
426
- * NEBULA THEME
427
- * ============================================================ */
428
- [data-theme="nebula"] {
429
- --zendir-bg-base: #070a18;
430
- --zendir-bg-surface: #0d1429;
431
- --zendir-bg-elevated: #121b36;
432
- --zendir-bg-overlay: rgba(7, 10, 24, 0.9);
433
-
434
- --zendir-text-primary: #f6f7fd;
435
- --zendir-text-secondary: #c8d1e6;
436
- --zendir-text-tertiary: #8899bc;
437
- --zendir-text-muted: #596b8e;
438
-
439
- --zendir-border-default: #1b243d;
440
- --zendir-border-muted: #121b36;
441
- --zendir-border-focus: #8744f3;
442
-
443
- --zendir-accent-primary: #8744f3;
444
- --zendir-accent-secondary: #9d70ff;
445
- --zendir-accent-tertiary: #7515e2;
446
-
447
- --zendir-semantic-success: #00c65a;
448
- --zendir-semantic-warning: #eab300;
449
- --zendir-semantic-error: #fb2c36;
450
- --zendir-semantic-info: #5061ff;
451
- }
452
-
453
- /* ============================================================
454
- * PURPLE HUE THEME
455
- * ============================================================ */
456
- [data-theme="purple-hue"] {
457
- --zendir-bg-base: #0a0a0f;
458
- --zendir-bg-surface: rgba(18, 18, 28, 0.98);
459
- --zendir-bg-elevated: rgba(28, 28, 42, 0.98);
460
- --zendir-bg-overlay: rgba(0, 0, 0, 0.9);
461
-
462
- --zendir-text-primary: #fafafa;
463
- --zendir-text-secondary: #a1a1aa;
464
- --zendir-text-tertiary: #8e8e96;
465
- --zendir-text-muted: #8e8e96;
466
-
467
- --zendir-border-default: rgba(139, 92, 246, 0.25);
468
- --zendir-border-muted: rgba(55, 48, 82, 0.5);
469
- --zendir-border-focus: #8b5cf6;
470
-
471
- --zendir-accent-primary: #8b5cf6;
472
- --zendir-accent-secondary: #a78bfa;
473
- --zendir-accent-tertiary: #7c3aed;
474
-
475
- --zendir-semantic-success: #56f000;
476
- --zendir-semantic-warning: #fce83a;
477
- --zendir-semantic-error: #ff3838;
478
- --zendir-semantic-info: #a78bfa;
479
- }
480
-
481
- /* ============================================================
482
- * TRANSPARENT THEMES
483
- * ============================================================ */
484
- [data-theme="transparent"],
485
- [data-theme="transparent-bold"] {
486
- --zendir-bg-base: rgba(8, 12, 20, 0.95);
487
- --zendir-bg-surface: rgba(15, 20, 35, 0.85);
488
- --zendir-bg-elevated: rgba(25, 35, 55, 0.8);
489
- --zendir-bg-overlay: rgba(0, 0, 0, 0.75);
490
-
491
- --zendir-text-primary: #f0f4f8;
492
- --zendir-text-secondary: #94a3b8;
493
- --zendir-text-tertiary: #7b8da1;
494
- --zendir-text-muted: #7b8da1;
495
-
496
- --zendir-border-default: rgba(139, 92, 246, 0.25);
497
- --zendir-border-muted: rgba(139, 92, 246, 0.15);
498
- --zendir-border-focus: #8b5cf6;
499
-
500
- --zendir-accent-primary: #8b5cf6;
501
- --zendir-accent-secondary: #a78bfa;
502
- --zendir-accent-tertiary: #7c3aed;
503
-
504
- --zendir-semantic-success: #56f000;
505
- --zendir-semantic-warning: #fce83a;
506
- --zendir-semantic-error: #ff3838;
507
- --zendir-semantic-info: #8b5cf6;
508
- }
509
-
510
- [data-theme="transparent-minimal"] {
511
- --zendir-bg-base: rgba(8, 12, 20, 0.95);
512
- --zendir-bg-surface: rgba(15, 20, 35, 0.85);
513
- --zendir-bg-elevated: rgba(25, 35, 55, 0.8);
514
- --zendir-bg-overlay: rgba(0, 0, 0, 0.75);
515
-
516
- --zendir-text-primary: #f0f4f8;
517
- --zendir-text-secondary: #94a3b8;
518
- --zendir-text-tertiary: #7b8da1;
519
- --zendir-text-muted: #7b8da1;
520
-
521
- --zendir-border-default: rgba(139, 92, 246, 0.25);
522
- --zendir-border-muted: rgba(139, 92, 246, 0.15);
523
- --zendir-border-focus: #8b5cf6;
524
-
525
- --zendir-accent-primary: #8b5cf6;
526
- --zendir-accent-secondary: #a78bfa;
527
- --zendir-accent-tertiary: #7c3aed;
528
-
529
- --zendir-semantic-success: #56f000;
530
- --zendir-semantic-warning: #fce83a;
531
- --zendir-semantic-error: #ff3838;
532
- --zendir-semantic-info: #8b5cf6;
533
- }
1
+ /**
2
+ * @zendir/ui — CSS Design Tokens
3
+ *
4
+ * SOURCE OF TRUTH — hand-maintained. Edit color/token values here.
5
+ * `npm run build:tokens` reads this file and regenerates the typed name
6
+ * constants in css-vars.ts (never the reverse). The scales here mirror the
7
+ * primitive palettes in src/tokens/palettes/*.ts (the TypeScript source for
8
+ * JS consumers and the ThemeProvider runtime); keep the two in sync by hand.
9
+ *
10
+ * Usage:
11
+ * @import '@zendir/ui/tokens/css';
12
+ * .my-component { background: var(--zendir-bg-surface); }
13
+ */
14
+
15
+ :root {
16
+ /* ============================================================
17
+ * STATUS COLORS (Astro UX Compliant)
18
+ * ============================================================ */
19
+ --zendir-status-critical: #ff3838;
20
+ --zendir-status-serious: #ffb302;
21
+ --zendir-status-caution: #fce83a;
22
+ --zendir-status-normal: #56f000;
23
+ --zendir-status-standby: #2dccff;
24
+ --zendir-status-off: #a4abb6;
25
+
26
+ /* Light-theme status fill colors */
27
+ --zendir-status-critical-light: #ff2a04;
28
+ --zendir-status-serious-light: #ffaf3d;
29
+ --zendir-status-caution-light: #fad800;
30
+ --zendir-status-normal-light: #00e200;
31
+ --zendir-status-standby-light: #64d9ff;
32
+ --zendir-status-off-light: #7b8089;
33
+
34
+ /* Light-theme status border colors */
35
+ --zendir-status-critical-border: #661102;
36
+ --zendir-status-serious-border: #664618;
37
+ --zendir-status-caution-border: #645600;
38
+ --zendir-status-normal-border: #005a00;
39
+ --zendir-status-standby-border: #285766;
40
+ --zendir-status-off-border: #3c3e42;
41
+
42
+ /* ============================================================
43
+ * SPACING
44
+ * ============================================================ */
45
+ --zendir-spacing-xs: 4px;
46
+ --zendir-spacing-sm: 8px;
47
+ --zendir-spacing-md: 16px;
48
+ --zendir-spacing-lg: 24px;
49
+ --zendir-spacing-xl: 32px;
50
+ --zendir-spacing-xxl: 48px;
51
+
52
+ /* ============================================================
53
+ * BORDER RADIUS
54
+ * ============================================================ */
55
+ --zendir-radius-none: 0;
56
+ --zendir-radius-sm: 2px;
57
+ --zendir-radius-md: 4px;
58
+ --zendir-radius-lg: 8px;
59
+ --zendir-radius-xl: 16px;
60
+ --zendir-radius-full: 9999px;
61
+
62
+ /* ============================================================
63
+ * TYPOGRAPHY
64
+ * Public Sans leads body, Sora leads headings, Roboto is the
65
+ * AstroUXDS-compliant fallback. OS-native fonts complete the chain.
66
+ * @see https://www.astrouxds.com/foundations/typography/
67
+ * ============================================================ */
68
+ --zendir-font-primary:
69
+ "Public Sans", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI",
70
+ "Helvetica Neue", Arial, sans-serif;
71
+ --zendir-font-heading:
72
+ "Sora", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI",
73
+ "Helvetica Neue", Arial, sans-serif;
74
+ --zendir-font-mono:
75
+ "Roboto Mono", "SF Mono", "Consolas", "Liberation Mono", monospace;
76
+
77
+ /* Font sizes (rem-based, AstroUXDS scale) */
78
+ --zendir-font-size-micro: 0.5625rem;
79
+ --zendir-font-size-xxs: 0.625rem;
80
+ --zendir-font-size-xs: 0.75rem;
81
+ --zendir-font-size-sm: 0.875rem;
82
+ --zendir-font-size-base: 1rem;
83
+ --zendir-font-size-md: 1.125rem;
84
+ --zendir-font-size-lg: 1.25rem;
85
+ --zendir-font-size-xl: 1.5rem;
86
+ --zendir-font-size-xxl: 2.125rem;
87
+ --zendir-font-size-xxxl: 3rem;
88
+ --zendir-font-size-display: 3.75rem;
89
+
90
+ /* Font weights — AstroUXDS supports only 300/400/500/700 */
91
+ --zendir-font-weight-light: 300;
92
+ --zendir-font-weight-normal: 400;
93
+ --zendir-font-weight-medium: 500;
94
+ --zendir-font-weight-semibold: 500;
95
+ --zendir-font-weight-bold: 700;
96
+
97
+ /* Line heights */
98
+ --zendir-line-height-tight: 1.25;
99
+ --zendir-line-height-normal: 1.5;
100
+ --zendir-line-height-relaxed: 1.75;
101
+
102
+ /* ============================================================
103
+ * SHADOWS
104
+ * ============================================================ */
105
+ --zendir-shadow-none: none;
106
+ --zendir-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
107
+ --zendir-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
108
+ --zendir-shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.3);
109
+ --zendir-shadow-xl: 0 8px 32px rgba(0, 0, 0, 0.4);
110
+ --zendir-shadow-glow: 0 0 20px rgba(77, 172, 255, 0.4);
111
+
112
+ /* ============================================================
113
+ * ANIMATION
114
+ * ============================================================ */
115
+ --zendir-animation-fast: 150ms ease;
116
+ --zendir-animation-normal: 250ms ease;
117
+ --zendir-animation-slow: 400ms ease;
118
+ }
119
+
120
+ /* ============================================================
121
+ * PRIMITIVE PALETTES (Layer 0 — src/tokens/palettes)
122
+ * Raw scales; prefer the semantic tokens above for UI surfaces.
123
+ * ============================================================ */
124
+ :root {
125
+ /* Zendir Colour System */
126
+ --zendir-eb-50: #eef2ff;
127
+ --zendir-eb-100: #e0e7ff;
128
+ --zendir-eb-200: #c4d2ff;
129
+ --zendir-eb-300: #9eb4ff;
130
+ --zendir-eb-400: #6f89ff;
131
+ --zendir-eb-500: #5061ff;
132
+ --zendir-eb-600: #3e3cff;
133
+ --zendir-eb-700: #352edf;
134
+ --zendir-eb-800: #2a2bb2;
135
+ --zendir-eb-900: #252e8a;
136
+ --zendir-eb-950: #151c50;
137
+ --zendir-pb-50: #eef2ff;
138
+ --zendir-pb-100: #dee7fe;
139
+ --zendir-pb-200: #c3d4fe;
140
+ --zendir-pb-300: #9bb6ff;
141
+ --zendir-pb-400: #698eff;
142
+ --zendir-pb-500: #466afc;
143
+ --zendir-pb-600: #2f4af0;
144
+ --zendir-pb-700: #263dd3;
145
+ --zendir-pb-800: #1b2da0;
146
+ --zendir-pb-900: #192b7a;
147
+ --zendir-pb-950: #0d1945;
148
+ --zendir-uv-50: #f5f3fd;
149
+ --zendir-uv-100: #eae6fa;
150
+ --zendir-uv-200: #d8cff9;
151
+ --zendir-uv-300: #c6b4ff;
152
+ --zendir-uv-400: #9d70ff;
153
+ --zendir-uv-500: #8744f3;
154
+ --zendir-uv-600: #7515e2;
155
+ --zendir-uv-700: #6600cd;
156
+ --zendir-uv-800: #5400ab;
157
+ --zendir-uv-900: #421182;
158
+ --zendir-uv-950: #251048;
159
+ --zendir-neutral-50: #f6f7fd;
160
+ --zendir-neutral-100: #edf2fc;
161
+ --zendir-neutral-200: #dde5f4;
162
+ --zendir-neutral-300: #c8d1e6;
163
+ --zendir-neutral-400: #8899bc;
164
+ --zendir-neutral-500: #596b8e;
165
+ --zendir-neutral-600: #445272;
166
+ --zendir-neutral-700: #303c58;
167
+ --zendir-neutral-800: #1b243d;
168
+ --zendir-neutral-900: #0d1429;
169
+ --zendir-neutral-950: #030414;
170
+
171
+ /* Astro UXDS status ramps */
172
+ --zendir-astro-red-400: #ff5f60;
173
+ --zendir-astro-red-500: #ff3838;
174
+ --zendir-astro-red-600: #ff2a04;
175
+ --zendir-astro-red-700: #c8102e;
176
+ --zendir-astro-red-800: #8b1703;
177
+ --zendir-astro-red-900: #661102;
178
+ --zendir-astro-amber-400: #ffcc57;
179
+ --zendir-astro-amber-500: #ffb302;
180
+ --zendir-astro-amber-600: #ffaf3d;
181
+ --zendir-astro-amber-700: #ff8c00;
182
+ --zendir-astro-amber-800: #975f0e;
183
+ --zendir-astro-amber-900: #664618;
184
+ --zendir-astro-yellow-400: #fded61;
185
+ --zendir-astro-yellow-500: #fce83a;
186
+ --zendir-astro-yellow-600: #fad800;
187
+ --zendir-astro-yellow-700: #c7ab00;
188
+ --zendir-astro-yellow-800: #917d01;
189
+ --zendir-astro-yellow-900: #645600;
190
+ --zendir-astro-green-400: #99f666;
191
+ --zendir-astro-green-500: #56f000;
192
+ --zendir-astro-green-600: #00e200;
193
+ --zendir-astro-green-700: #00ad23;
194
+ --zendir-astro-green-800: #007a33;
195
+ --zendir-astro-green-900: #005a00;
196
+ --zendir-astro-cyan-400: #5ce2ff;
197
+ --zendir-astro-cyan-500: #64d9ff;
198
+ --zendir-astro-cyan-600: #2dccff;
199
+ --zendir-astro-cyan-700: #20a9d5;
200
+ --zendir-astro-cyan-800: #35798e;
201
+ --zendir-astro-cyan-900: #285766;
202
+
203
+ /* Tailwind CSS v4.2 */
204
+ --zendir-tw-red-50: #fef2f2;
205
+ --zendir-tw-red-100: #ffe2e2;
206
+ --zendir-tw-red-200: #ffcaca;
207
+ --zendir-tw-red-300: #ffa3a4;
208
+ --zendir-tw-red-400: #ff6568;
209
+ --zendir-tw-red-500: #fb2c36;
210
+ --zendir-tw-red-600: #e40016;
211
+ --zendir-tw-red-700: #bf000f;
212
+ --zendir-tw-red-800: #9f0712;
213
+ --zendir-tw-red-900: #82181a;
214
+ --zendir-tw-red-950: #460809;
215
+ --zendir-tw-orange-50: #fff7ed;
216
+ --zendir-tw-orange-100: #ffedd5;
217
+ --zendir-tw-orange-200: #ffd7a8;
218
+ --zendir-tw-orange-300: #ffb970;
219
+ --zendir-tw-orange-400: #ff8b1f;
220
+ --zendir-tw-orange-500: #fc7100;
221
+ --zendir-tw-orange-600: #ec5600;
222
+ --zendir-tw-orange-700: #c43e00;
223
+ --zendir-tw-orange-800: #9f2d00;
224
+ --zendir-tw-orange-900: #7e2a0c;
225
+ --zendir-tw-orange-950: #441306;
226
+ --zendir-tw-yellow-50: #fefce8;
227
+ --zendir-tw-yellow-100: #fef9c2;
228
+ --zendir-tw-yellow-200: #fff085;
229
+ --zendir-tw-yellow-300: #ffe030;
230
+ --zendir-tw-yellow-400: #f7c900;
231
+ --zendir-tw-yellow-500: #eab300;
232
+ --zendir-tw-yellow-600: #ca8a00;
233
+ --zendir-tw-yellow-700: #a26200;
234
+ --zendir-tw-yellow-800: #874c00;
235
+ --zendir-tw-yellow-900: #733e0a;
236
+ --zendir-tw-yellow-950: #432004;
237
+ --zendir-tw-green-50: #f0fdf4;
238
+ --zendir-tw-green-100: #dcfce7;
239
+ --zendir-tw-green-200: #b9f8cf;
240
+ --zendir-tw-green-300: #7bf1a8;
241
+ --zendir-tw-green-400: #05df72;
242
+ --zendir-tw-green-500: #00c65a;
243
+ --zendir-tw-green-600: #00a447;
244
+ --zendir-tw-green-700: #00813a;
245
+ --zendir-tw-green-800: #016630;
246
+ --zendir-tw-green-900: #0d542b;
247
+ --zendir-tw-green-950: #032e15;
248
+ --zendir-tw-sky-50: #f0f9ff;
249
+ --zendir-tw-sky-100: #dff2fe;
250
+ --zendir-tw-sky-200: #b8e6fe;
251
+ --zendir-tw-sky-300: #78d4ff;
252
+ --zendir-tw-sky-400: #00bbfd;
253
+ --zendir-tw-sky-500: #00a5ea;
254
+ --zendir-tw-sky-600: #0084c7;
255
+ --zendir-tw-sky-700: #0069a2;
256
+ --zendir-tw-sky-800: #005986;
257
+ --zendir-tw-sky-900: #024a70;
258
+ --zendir-tw-sky-950: #052f4a;
259
+ --zendir-tw-blue-50: #eff6ff;
260
+ --zendir-tw-blue-100: #dbeafe;
261
+ --zendir-tw-blue-200: #bedbff;
262
+ --zendir-tw-blue-300: #91c5ff;
263
+ --zendir-tw-blue-400: #56a2ff;
264
+ --zendir-tw-blue-500: #3280ff;
265
+ --zendir-tw-blue-600: #155dfc;
266
+ --zendir-tw-blue-700: #1447e6;
267
+ --zendir-tw-blue-800: #193cb8;
268
+ --zendir-tw-blue-900: #1c398e;
269
+ --zendir-tw-blue-950: #162456;
270
+ --zendir-tw-indigo-50: #eef2ff;
271
+ --zendir-tw-indigo-100: #e0e7ff;
272
+ --zendir-tw-indigo-200: #c7d2ff;
273
+ --zendir-tw-indigo-300: #a4b4ff;
274
+ --zendir-tw-indigo-400: #7d87ff;
275
+ --zendir-tw-indigo-500: #6260ff;
276
+ --zendir-tw-indigo-600: #4f39f6;
277
+ --zendir-tw-indigo-700: #432dd7;
278
+ --zendir-tw-indigo-800: #372aac;
279
+ --zendir-tw-indigo-900: #312c85;
280
+ --zendir-tw-indigo-950: #1e1a4d;
281
+ --zendir-tw-purple-50: #faf5ff;
282
+ --zendir-tw-purple-100: #f3e8ff;
283
+ --zendir-tw-purple-200: #e9d5ff;
284
+ --zendir-tw-purple-300: #d8b4ff;
285
+ --zendir-tw-purple-400: #bf7eff;
286
+ --zendir-tw-purple-500: #ab4eff;
287
+ --zendir-tw-purple-600: #9810fa;
288
+ --zendir-tw-purple-700: #8200d9;
289
+ --zendir-tw-purple-800: #6e11b0;
290
+ --zendir-tw-purple-900: #59168b;
291
+ --zendir-tw-purple-950: #3c0366;
292
+ --zendir-tw-pink-50: #fdf2f8;
293
+ --zendir-tw-pink-100: #fce7f3;
294
+ --zendir-tw-pink-200: #fccee8;
295
+ --zendir-tw-pink-300: #fda5d5;
296
+ --zendir-tw-pink-400: #fb64b6;
297
+ --zendir-tw-pink-500: #f6339a;
298
+ --zendir-tw-pink-600: #e30076;
299
+ --zendir-tw-pink-700: #c2005c;
300
+ --zendir-tw-pink-800: #a2004c;
301
+ --zendir-tw-pink-900: #861043;
302
+ --zendir-tw-pink-950: #510424;
303
+ --zendir-tw-rose-50: #fff1f2;
304
+ --zendir-tw-rose-100: #ffe4e6;
305
+ --zendir-tw-rose-200: #ffccd3;
306
+ --zendir-tw-rose-300: #ffa3ae;
307
+ --zendir-tw-rose-400: #ff6880;
308
+ --zendir-tw-rose-500: #ff2357;
309
+ --zendir-tw-rose-600: #e60045;
310
+ --zendir-tw-rose-700: #c1003a;
311
+ --zendir-tw-rose-800: #a30037;
312
+ --zendir-tw-rose-900: #8b0836;
313
+ --zendir-tw-rose-950: #4d0218;
314
+ --zendir-tw-slate-50: #f8fafc;
315
+ --zendir-tw-slate-100: #f1f5f9;
316
+ --zendir-tw-slate-200: #e2e8f0;
317
+ --zendir-tw-slate-300: #cad5e2;
318
+ --zendir-tw-slate-400: #90a1b9;
319
+ --zendir-tw-slate-500: #62748e;
320
+ --zendir-tw-slate-600: #45556c;
321
+ --zendir-tw-slate-700: #314158;
322
+ --zendir-tw-slate-800: #1d293d;
323
+ --zendir-tw-slate-900: #0f172b;
324
+ --zendir-tw-slate-950: #020618;
325
+ --zendir-tw-neutral-50: #fafafa;
326
+ --zendir-tw-neutral-100: #f5f5f5;
327
+ --zendir-tw-neutral-200: #e5e5e5;
328
+ --zendir-tw-neutral-300: #d4d4d4;
329
+ --zendir-tw-neutral-400: #a1a1a1;
330
+ --zendir-tw-neutral-500: #737373;
331
+ --zendir-tw-neutral-600: #525252;
332
+ --zendir-tw-neutral-700: #404040;
333
+ --zendir-tw-neutral-800: #262626;
334
+ --zendir-tw-neutral-900: #171717;
335
+ --zendir-tw-neutral-950: #0a0a0a;
336
+ }
337
+
338
+ /* ============================================================
339
+ * ZEN (HYBRID) THEME (default)
340
+ * ============================================================ */
341
+ :root,
342
+ [data-theme="hybrid"],
343
+ [data-theme="dark"] {
344
+ --zendir-bg-base: #09090b;
345
+ --zendir-bg-surface: rgba(24, 24, 27, 0.98);
346
+ --zendir-bg-elevated: rgba(39, 39, 42, 0.98);
347
+ --zendir-bg-overlay: rgba(0, 0, 0, 0.85);
348
+
349
+ --zendir-text-primary: #ffffff;
350
+ --zendir-text-secondary: #a1a1aa;
351
+ --zendir-text-tertiary: #8e8e96;
352
+ --zendir-text-muted: #8e8e96;
353
+
354
+ --zendir-border-default: rgba(139, 92, 246, 0.3);
355
+ --zendir-border-muted: rgba(63, 63, 70, 0.5);
356
+ --zendir-border-focus: #8b5cf6;
357
+
358
+ --zendir-accent-primary: #8b5cf6;
359
+ --zendir-accent-secondary: #a78bfa;
360
+ --zendir-accent-tertiary: #7c3aed;
361
+
362
+ --zendir-semantic-success: #56f000;
363
+ --zendir-semantic-warning: #fce83a;
364
+ --zendir-semantic-error: #ff3838;
365
+ --zendir-semantic-info: #8b5cf6;
366
+ }
367
+
368
+ /* ============================================================
369
+ * ASTRO THEME
370
+ * ============================================================ */
371
+ [data-theme="astro"] {
372
+ --zendir-bg-base: #101923;
373
+ --zendir-bg-surface: #1b2d3e;
374
+ --zendir-bg-elevated: #243b53;
375
+ --zendir-bg-overlay: rgba(16, 25, 35, 0.95);
376
+
377
+ --zendir-text-primary: #ffffff;
378
+ --zendir-text-secondary: #b7c5d3;
379
+ --zendir-text-tertiary: #8fa4b7;
380
+ --zendir-text-muted: #8fa4b7;
381
+
382
+ --zendir-border-default: #2b659b;
383
+ --zendir-border-muted: #172635;
384
+ --zendir-border-focus: #4dacff;
385
+
386
+ --zendir-accent-primary: #4dacff;
387
+ --zendir-accent-secondary: #56f000;
388
+ --zendir-accent-tertiary: #a371f7;
389
+
390
+ --zendir-semantic-success: #56f000;
391
+ --zendir-semantic-warning: #fce83a;
392
+ --zendir-semantic-error: #ff3838;
393
+ --zendir-semantic-info: #4dacff;
394
+ }
395
+
396
+ [data-theme="astro"][data-mode="light"],
397
+ [data-theme="hybrid"][data-mode="light"],
398
+ [data-theme="nebula"][data-mode="light"],
399
+ [data-theme="purple-hue"][data-mode="light"],
400
+ [data-theme="light"] {
401
+ --zendir-bg-base: #eaeef4;
402
+ --zendir-bg-surface: #f5f8fc;
403
+ --zendir-bg-elevated: #ffffff;
404
+ --zendir-bg-overlay: rgba(234, 238, 244, 0.95);
405
+
406
+ --zendir-text-primary: #1b2d3e;
407
+ --zendir-text-secondary: #51667c;
408
+ --zendir-text-tertiary: #556a7c;
409
+ --zendir-text-muted: #556a7c;
410
+
411
+ --zendir-border-default: #2b659b;
412
+ --zendir-border-muted: #d1d5db;
413
+ --zendir-border-focus: #0066cc;
414
+
415
+ --zendir-accent-primary: #0066cc;
416
+ --zendir-accent-secondary: #56f000;
417
+ --zendir-accent-tertiary: #7c3aed;
418
+
419
+ --zendir-semantic-success: #56f000;
420
+ --zendir-semantic-warning: #fce83a;
421
+ --zendir-semantic-error: #ff3838;
422
+ --zendir-semantic-info: #4dacff;
423
+ }
424
+
425
+ /* ============================================================
426
+ * NEBULA THEME
427
+ * ============================================================ */
428
+ [data-theme="nebula"] {
429
+ --zendir-bg-base: #070a18;
430
+ --zendir-bg-surface: #0d1429;
431
+ --zendir-bg-elevated: #121b36;
432
+ --zendir-bg-overlay: rgba(7, 10, 24, 0.9);
433
+
434
+ --zendir-text-primary: #f6f7fd;
435
+ --zendir-text-secondary: #c8d1e6;
436
+ --zendir-text-tertiary: #8899bc;
437
+ --zendir-text-muted: #596b8e;
438
+
439
+ --zendir-border-default: #1b243d;
440
+ --zendir-border-muted: #121b36;
441
+ --zendir-border-focus: #8744f3;
442
+
443
+ --zendir-accent-primary: #8744f3;
444
+ --zendir-accent-secondary: #9d70ff;
445
+ --zendir-accent-tertiary: #7515e2;
446
+
447
+ --zendir-semantic-success: #00c65a;
448
+ --zendir-semantic-warning: #eab300;
449
+ --zendir-semantic-error: #fb2c36;
450
+ --zendir-semantic-info: #5061ff;
451
+ }
452
+
453
+ /* ============================================================
454
+ * PURPLE HUE THEME
455
+ * ============================================================ */
456
+ [data-theme="purple-hue"] {
457
+ --zendir-bg-base: #0a0a0f;
458
+ --zendir-bg-surface: rgba(18, 18, 28, 0.98);
459
+ --zendir-bg-elevated: rgba(28, 28, 42, 0.98);
460
+ --zendir-bg-overlay: rgba(0, 0, 0, 0.9);
461
+
462
+ --zendir-text-primary: #fafafa;
463
+ --zendir-text-secondary: #a1a1aa;
464
+ --zendir-text-tertiary: #8e8e96;
465
+ --zendir-text-muted: #8e8e96;
466
+
467
+ --zendir-border-default: rgba(139, 92, 246, 0.25);
468
+ --zendir-border-muted: rgba(55, 48, 82, 0.5);
469
+ --zendir-border-focus: #8b5cf6;
470
+
471
+ --zendir-accent-primary: #8b5cf6;
472
+ --zendir-accent-secondary: #a78bfa;
473
+ --zendir-accent-tertiary: #7c3aed;
474
+
475
+ --zendir-semantic-success: #56f000;
476
+ --zendir-semantic-warning: #fce83a;
477
+ --zendir-semantic-error: #ff3838;
478
+ --zendir-semantic-info: #a78bfa;
479
+ }
480
+
481
+ /* ============================================================
482
+ * TRANSPARENT THEMES
483
+ * ============================================================ */
484
+ [data-theme="transparent"],
485
+ [data-theme="transparent-bold"] {
486
+ --zendir-bg-base: rgba(8, 12, 20, 0.95);
487
+ --zendir-bg-surface: rgba(15, 20, 35, 0.85);
488
+ --zendir-bg-elevated: rgba(25, 35, 55, 0.8);
489
+ --zendir-bg-overlay: rgba(0, 0, 0, 0.75);
490
+
491
+ --zendir-text-primary: #f0f4f8;
492
+ --zendir-text-secondary: #94a3b8;
493
+ --zendir-text-tertiary: #7b8da1;
494
+ --zendir-text-muted: #7b8da1;
495
+
496
+ --zendir-border-default: rgba(139, 92, 246, 0.25);
497
+ --zendir-border-muted: rgba(139, 92, 246, 0.15);
498
+ --zendir-border-focus: #8b5cf6;
499
+
500
+ --zendir-accent-primary: #8b5cf6;
501
+ --zendir-accent-secondary: #a78bfa;
502
+ --zendir-accent-tertiary: #7c3aed;
503
+
504
+ --zendir-semantic-success: #56f000;
505
+ --zendir-semantic-warning: #fce83a;
506
+ --zendir-semantic-error: #ff3838;
507
+ --zendir-semantic-info: #8b5cf6;
508
+ }
509
+
510
+ [data-theme="transparent-minimal"] {
511
+ --zendir-bg-base: rgba(8, 12, 20, 0.95);
512
+ --zendir-bg-surface: rgba(15, 20, 35, 0.85);
513
+ --zendir-bg-elevated: rgba(25, 35, 55, 0.8);
514
+ --zendir-bg-overlay: rgba(0, 0, 0, 0.75);
515
+
516
+ --zendir-text-primary: #f0f4f8;
517
+ --zendir-text-secondary: #94a3b8;
518
+ --zendir-text-tertiary: #7b8da1;
519
+ --zendir-text-muted: #7b8da1;
520
+
521
+ --zendir-border-default: rgba(139, 92, 246, 0.25);
522
+ --zendir-border-muted: rgba(139, 92, 246, 0.15);
523
+ --zendir-border-focus: #8b5cf6;
524
+
525
+ --zendir-accent-primary: #8b5cf6;
526
+ --zendir-accent-secondary: #a78bfa;
527
+ --zendir-accent-tertiary: #7c3aed;
528
+
529
+ --zendir-semantic-success: #56f000;
530
+ --zendir-semantic-warning: #fce83a;
531
+ --zendir-semantic-error: #ff3838;
532
+ --zendir-semantic-info: #8b5cf6;
533
+ }