orbital-ds 0.7.0 → 0.9.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/AGENTS.md +145 -80
- package/README.md +87 -73
- package/components.manifest.json +1326 -1267
- package/contract.json +226 -168
- package/dist/hooks/use-ds-messages.d.ts +36 -0
- package/dist/hooks/use-ds-messages.js +12 -0
- package/dist/hooks/use-ds-motion.d.ts +17 -0
- package/dist/hooks/use-ds-motion.js +50 -0
- package/dist/lib/i18n.d.ts +46 -0
- package/dist/lib/i18n.js +109 -0
- package/dist/lib/motion.d.ts +74 -0
- package/dist/lib/motion.js +97 -0
- package/dist/styles.css +876 -528
- package/dist/themes/friendly.css +362 -318
- package/dist/themes/friendly.meta.json +75 -14
- package/dist/themes/friendly.scoped.css +362 -318
- package/dist/themes/qratia.meta.json +42 -12
- package/dist/themes/tactile.css +575 -429
- package/dist/themes/tactile.fonts.css +3 -2
- package/dist/themes/tactile.guide.md +82 -49
- package/dist/themes/tactile.meta.json +175 -16
- package/dist/themes/tactile.scoped.css +575 -429
- package/dist/themes/twitter.css +354 -298
- package/dist/themes/twitter.meta.json +83 -61
- package/dist/themes/twitter.scoped.css +354 -298
- package/dist/themes/zyro.css +443 -389
- package/dist/themes/zyro.meta.json +67 -14
- package/dist/themes/zyro.scoped.css +443 -389
- package/dist/ui/accordion.js +5 -5
- package/dist/ui/alert-dialog.js +3 -3
- package/dist/ui/alert.d.ts +1 -1
- package/dist/ui/alert.js +9 -3
- package/dist/ui/attachment.d.ts +1 -1
- package/dist/ui/attachment.js +4 -4
- package/dist/ui/avatar.js +6 -6
- package/dist/ui/ayuda.js +3 -2
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/badge.js +9 -3
- package/dist/ui/banner.d.ts +14 -0
- package/dist/ui/banner.js +88 -0
- package/dist/ui/breadcrumb.js +7 -3
- package/dist/ui/bubble.js +6 -6
- package/dist/ui/button-group.js +4 -4
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/button.js +5 -5
- package/dist/ui/calendar.js +33 -6
- package/dist/ui/card.js +4 -4
- package/dist/ui/carousel.js +15 -8
- package/dist/ui/chart.js +7 -3
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/combobox.js +7 -7
- package/dist/ui/command.js +13 -11
- package/dist/ui/context-menu.js +8 -8
- package/dist/ui/dialog.js +10 -6
- package/dist/ui/drawer.js +9 -9
- package/dist/ui/dropdown-menu.js +8 -8
- package/dist/ui/empty.js +3 -3
- package/dist/ui/field.js +2 -2
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/i18n-provider.d.ts +11 -0
- package/dist/ui/i18n-provider.js +18 -0
- package/dist/ui/icon-tile.d.ts +1 -1
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/input-group.js +11 -9
- package/dist/ui/input-otp.js +3 -3
- package/dist/ui/input.js +1 -1
- package/dist/ui/item.d.ts +1 -1
- package/dist/ui/item.js +3 -3
- package/dist/ui/kbd.js +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/marker.d.ts +1 -1
- package/dist/ui/marker.js +2 -2
- package/dist/ui/menubar.js +9 -9
- package/dist/ui/message-scroller.js +5 -2
- package/dist/ui/message.js +2 -2
- package/dist/ui/motion-provider.d.ts +11 -0
- package/dist/ui/motion-provider.js +16 -0
- package/dist/ui/native-select.js +4 -4
- package/dist/ui/navigation-menu.js +7 -6
- package/dist/ui/pagination.js +19 -11
- package/dist/ui/popover.js +2 -2
- package/dist/ui/progress.js +2 -2
- package/dist/ui/questionnaire.js +20 -15
- package/dist/ui/radio-group.js +2 -2
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/scroll-area.js +3 -3
- package/dist/ui/select.js +6 -6
- package/dist/ui/separator.js +1 -1
- package/dist/ui/sheet.js +6 -4
- package/dist/ui/sidebar.js +42 -30
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.js +6 -6
- package/dist/ui/sonner.js +25 -8
- package/dist/ui/spinner.js +4 -1
- package/dist/ui/switch.js +2 -2
- package/dist/ui/table.js +3 -3
- package/dist/ui/tabs.js +5 -5
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/toast.js +15 -12
- package/dist/ui/toggle-group.js +2 -2
- package/dist/ui/toggle.js +6 -4
- package/dist/ui/tooltip.js +2 -2
- package/docs/CONTRACT.md +183 -153
- package/package.json +160 -142
- package/scripts/brand-core.mjs +153 -0
- package/scripts/doctor.mjs +128 -7
- package/scripts/i18n.mjs +111 -0
- package/scripts/init.mjs +294 -57
- package/scripts/setup.mjs +99 -0
package/dist/themes/twitter.css
CHANGED
|
@@ -1,298 +1,354 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* TEMA twitter — la interfaz de Twitter anterior a X (rediseño de 2021).
|
|
3
|
-
*
|
|
4
|
-
* Personalidad: PLANO y de alto contraste. Sin sombras ni cristal en el contenido;
|
|
5
|
-
* separación por filetes de 1px; botones en píldora con peso 700; tarjetas de 16px
|
|
6
|
-
* sin elevación; sidebar a ras de borde, sin fondo, con filas en píldora y la activa
|
|
7
|
-
* en negrita; pestañas con subrayado de acento. Azul de marca #1D9BF0 (confirmado) con
|
|
8
|
-
* «menos azul»: la acción más importante puede ir en tinta (negro/blanco).
|
|
9
|
-
*
|
|
10
|
-
* VALORES APROXIMADOS: el azul de marca y la fuente (Chirp, propietaria) están
|
|
11
|
-
* documentados; los grises, bordes y los fondos de «Dim» son de memoria y NO se han
|
|
12
|
-
* contrastado con la hoja de estilos real — ajústalos con una captura de referencia.
|
|
13
|
-
* Chirp no se puede distribuir: se usa la pila del sistema como respaldo.
|
|
14
|
-
*
|
|
15
|
-
* Importar DESPUÉS de la estructura. Variables `--zt-*`: privadas de este tema.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/* ── VARIABLES · PIEL CLARA ──────────────────────────────────────────────── */
|
|
19
|
-
:root {
|
|
20
|
-
--radius: 16px;
|
|
21
|
-
|
|
22
|
-
--ds-font-sans: 'Chirp', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
|
23
|
-
--ds-font-display: var(--ds-font-sans);
|
|
24
|
-
--ds-font-mono: ui-monospace, 'SF Mono', Menlo, monospace;
|
|
25
|
-
|
|
26
|
-
/* Lateral: iconos, raíl, logo y separadores (cada tema fija su forma y tamaño) */
|
|
27
|
-
--ds-sidebar-icon: 1.5rem;
|
|
28
|
-
--ds-sidebar-icon-stroke: 2;
|
|
29
|
-
--ds-sidebar-rail-w: 4.5rem;
|
|
30
|
-
--ds-sidebar-rail-item: 3rem;
|
|
31
|
-
--ds-sidebar-logo: 2.25rem;
|
|
32
|
-
--ds-sidebar-sep-inset: 0rem;
|
|
33
|
-
--ds-heading-tracking: normal;
|
|
34
|
-
|
|
35
|
-
/* Color */
|
|
36
|
-
--background: #ffffff;
|
|
37
|
-
--foreground: #0f1419;
|
|
38
|
-
|
|
39
|
-
--card: #ffffff;
|
|
40
|
-
--card-foreground: #0f1419;
|
|
41
|
-
--popover: #ffffff;
|
|
42
|
-
--popover-foreground: #0f1419;
|
|
43
|
-
|
|
44
|
-
--primary: #1d9bf0;
|
|
45
|
-
--primary-foreground: #ffffff;
|
|
46
|
-
--secondary: #eff3f4;
|
|
47
|
-
--secondary-foreground: #0f1419;
|
|
48
|
-
--muted: #f7f9f9;
|
|
49
|
-
--muted-foreground: #536471;
|
|
50
|
-
--accent: rgba(29, 155, 240, 0.1);
|
|
51
|
-
--accent-foreground: #1a8cd8;
|
|
52
|
-
--destructive: #e51f2b;
|
|
53
|
-
--destructive-foreground: #ffffff;
|
|
54
|
-
|
|
55
|
-
--border: #eff3f4;
|
|
56
|
-
--input: #cfd9de;
|
|
57
|
-
--ring: #1d9bf0;
|
|
58
|
-
|
|
59
|
-
--chart-1: #1d9bf0;
|
|
60
|
-
--chart-2: #00ba7c;
|
|
61
|
-
--chart-3: #ffd400;
|
|
62
|
-
--chart-4: #f91880;
|
|
63
|
-
--chart-5: #7856ff;
|
|
64
|
-
|
|
65
|
-
--sidebar: transparent;
|
|
66
|
-
--sidebar-foreground: #0f1419;
|
|
67
|
-
--sidebar-primary: #1d9bf0;
|
|
68
|
-
--sidebar-primary-foreground: #ffffff;
|
|
69
|
-
--sidebar-accent: rgba(15, 20, 25, 0.1);
|
|
70
|
-
--sidebar-accent-foreground: #0f1419;
|
|
71
|
-
--sidebar-border: #eff3f4;
|
|
72
|
-
--sidebar-ring: #1d9bf0;
|
|
73
|
-
|
|
74
|
-
--danger: #d4141f;
|
|
75
|
-
--danger-soft: rgba(244, 33, 46, 0.1);
|
|
76
|
-
--warning: #8a6d00;
|
|
77
|
-
--warning-soft: rgba(255, 212, 0, 0.2);
|
|
78
|
-
--success: #007c53;
|
|
79
|
-
--success-soft: rgba(0, 186, 124, 0.12);
|
|
80
|
-
--info: #1573b1;
|
|
81
|
-
--info-soft: rgba(29, 155, 240, 0.1);
|
|
82
|
-
--neutral: #536471;
|
|
83
|
-
--neutral-soft: #eff3f4;
|
|
84
|
-
|
|
85
|
-
--link: #1d9bf0;
|
|
86
|
-
--link-hover: #1a8cd8;
|
|
87
|
-
--inset: #f7f9f9;
|
|
88
|
-
--inset-foreground: #0f1419;
|
|
89
|
-
--brand: #1d9bf0;
|
|
90
|
-
--brand-bright: #1d9bf0;
|
|
91
|
-
|
|
92
|
-
/* Formas: píldoras para acciones, 16px para superficies */
|
|
93
|
-
--ds-radius-sm: 8px;
|
|
94
|
-
--ds-radius-md: 12px;
|
|
95
|
-
--ds-radius-lg: 16px;
|
|
96
|
-
--ds-radius-xl: 16px;
|
|
97
|
-
--ds-radius-2xl: 20px;
|
|
98
|
-
--ds-radius-control: 9999px;
|
|
99
|
-
--ds-radius-overlay: 16px;
|
|
100
|
-
|
|
101
|
-
/* Sin elevación: solo los menús flotantes llevan sombra, muy suave */
|
|
102
|
-
--ds-shadow-card: 0 0 #0000;
|
|
103
|
-
--ds-shadow-card-hover: 0 0 #0000;
|
|
104
|
-
--ds-shadow-control: 0 0 #0000;
|
|
105
|
-
--ds-shadow-raised: 0 0 #0000;
|
|
106
|
-
--ds-shadow-overlay: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
107
|
-
--ds-shadow-popover: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
108
|
-
|
|
109
|
-
/* Medidas */
|
|
110
|
-
--ds-control-h-sm: 2rem;
|
|
111
|
-
--ds-control-h-md: 2.25rem;
|
|
112
|
-
--ds-control-h-lg: 3.25rem;
|
|
113
|
-
--ds-button-px-sm: 1rem;
|
|
114
|
-
--ds-button-px-md: 1.25rem;
|
|
115
|
-
--ds-button-px-lg: 2rem;
|
|
116
|
-
--ds-field-px: 1rem;
|
|
117
|
-
--ds-card-spacing: 1rem;
|
|
118
|
-
--ds-card-spacing-sm: 0.75rem;
|
|
119
|
-
|
|
120
|
-
/* Materiales: ninguno (plano) */
|
|
121
|
-
--ds-card-backdrop: none;
|
|
122
|
-
--ds-overlay-backdrop: none;
|
|
123
|
-
--ds-field-backdrop: none;
|
|
124
|
-
--ds-sidebar-backdrop: none;
|
|
125
|
-
--ds-page-backdrop: none;
|
|
126
|
-
|
|
127
|
-
/* Sidebar a ras de borde, sin silueta; filas en píldora grandes */
|
|
128
|
-
--ds-sidebar-pad: 0px;
|
|
129
|
-
--ds-sidebar-radius: 0px;
|
|
130
|
-
--ds-sidebar-shadow: 0 0 #0000;
|
|
131
|
-
--ds-sidebar-ring: 0px;
|
|
132
|
-
--ds-sidebar-edge: 1px solid var(--sidebar-border);
|
|
133
|
-
--ds-sidebar-item-radius: 9999px;
|
|
134
|
-
--ds-sidebar-item-h: 3.25rem;
|
|
135
|
-
|
|
136
|
-
/* Privadas de twitter */
|
|
137
|
-
--zt-hover: rgba(15, 20, 25, 0.1);
|
|
138
|
-
--zt-hover-soft: rgba(15, 20, 25, 0.03);
|
|
139
|
-
--zt-line-strong: #cfd9de;
|
|
140
|
-
--zt-ink: #0f1419;
|
|
141
|
-
--zt-ink-foreground: #ffffff;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/* ── VARIABLES · PIEL OSCURA («Dim») ─────────────────────────────────────── */
|
|
145
|
-
.dark {
|
|
146
|
-
--background: #15202b;
|
|
147
|
-
--foreground: #f7f9f9;
|
|
148
|
-
|
|
149
|
-
--card: #15202b;
|
|
150
|
-
--card-foreground: #f7f9f9;
|
|
151
|
-
--popover: #1e2732;
|
|
152
|
-
--popover-foreground: #f7f9f9;
|
|
153
|
-
|
|
154
|
-
--primary: #1d9bf0;
|
|
155
|
-
--primary-foreground: #ffffff;
|
|
156
|
-
--secondary: #1e2732;
|
|
157
|
-
--secondary-foreground: #f7f9f9;
|
|
158
|
-
--muted: #1e2732;
|
|
159
|
-
--muted-foreground: #8b98a5;
|
|
160
|
-
--accent: rgba(29, 155, 240, 0.15);
|
|
161
|
-
--accent-foreground: #4db3f5;
|
|
162
|
-
--destructive: #e51f2b;
|
|
163
|
-
--destructive-foreground: #ffffff;
|
|
164
|
-
|
|
165
|
-
--border: #38444d;
|
|
166
|
-
--input: #536471;
|
|
167
|
-
--ring: #1d9bf0;
|
|
168
|
-
|
|
169
|
-
--sidebar: transparent;
|
|
170
|
-
--sidebar-foreground: #f7f9f9;
|
|
171
|
-
--sidebar-primary: #1d9bf0;
|
|
172
|
-
--sidebar-primary-foreground: #ffffff;
|
|
173
|
-
--sidebar-accent: rgba(247, 249, 249, 0.1);
|
|
174
|
-
--sidebar-accent-foreground: #f7f9f9;
|
|
175
|
-
--sidebar-border: #38444d;
|
|
176
|
-
--sidebar-ring: #1d9bf0;
|
|
177
|
-
|
|
178
|
-
--danger: #ff5a64;
|
|
179
|
-
--danger-soft: rgba(244, 33, 46, 0.18);
|
|
180
|
-
--warning: #ffd400;
|
|
181
|
-
--warning-soft: rgba(255, 212, 0, 0.16);
|
|
182
|
-
--success: #00ba7c;
|
|
183
|
-
--success-soft: rgba(0, 186, 124, 0.16);
|
|
184
|
-
--info: #4db3f5;
|
|
185
|
-
--info-soft: rgba(29, 155, 240, 0.18);
|
|
186
|
-
--neutral: #8b98a5;
|
|
187
|
-
--neutral-soft: #1e2732;
|
|
188
|
-
|
|
189
|
-
--link: #4db3f5;
|
|
190
|
-
--link-hover: #8dcdf8;
|
|
191
|
-
--inset: #1e2732;
|
|
192
|
-
--inset-foreground: #f7f9f9;
|
|
193
|
-
--brand: #1d9bf0;
|
|
194
|
-
--brand-bright: #4db3f5;
|
|
195
|
-
|
|
196
|
-
--ds-shadow-overlay: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
197
|
-
--ds-shadow-popover: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
198
|
-
|
|
199
|
-
--zt-hover: rgba(247, 249, 249, 0.1);
|
|
200
|
-
--zt-hover-soft: rgba(247, 249, 249, 0.03);
|
|
201
|
-
--zt-line-strong: #536471;
|
|
202
|
-
--zt-ink: #eff3f4;
|
|
203
|
-
--zt-ink-foreground: #0f1419;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/* ── PERSONALIDAD
|
|
207
|
-
*
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
/*
|
|
240
|
-
[data-slot='
|
|
241
|
-
border:
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
[data-slot='
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
[data-slot='
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
1
|
+
/*
|
|
2
|
+
* TEMA twitter — la interfaz de Twitter anterior a X (rediseño de 2021).
|
|
3
|
+
*
|
|
4
|
+
* Personalidad: PLANO y de alto contraste. Sin sombras ni cristal en el contenido;
|
|
5
|
+
* separación por filetes de 1px; botones en píldora con peso 700; tarjetas de 16px
|
|
6
|
+
* sin elevación; sidebar a ras de borde, sin fondo, con filas en píldora y la activa
|
|
7
|
+
* en negrita; pestañas con subrayado de acento. Azul de marca #1D9BF0 (confirmado) con
|
|
8
|
+
* «menos azul»: la acción más importante puede ir en tinta (negro/blanco).
|
|
9
|
+
*
|
|
10
|
+
* VALORES APROXIMADOS: el azul de marca y la fuente (Chirp, propietaria) están
|
|
11
|
+
* documentados; los grises, bordes y los fondos de «Dim» son de memoria y NO se han
|
|
12
|
+
* contrastado con la hoja de estilos real — ajústalos con una captura de referencia.
|
|
13
|
+
* Chirp no se puede distribuir: se usa la pila del sistema como respaldo.
|
|
14
|
+
*
|
|
15
|
+
* Importar DESPUÉS de la estructura. Variables `--zt-*`: privadas de este tema.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/* ── VARIABLES · PIEL CLARA ──────────────────────────────────────────────── */
|
|
19
|
+
:root {
|
|
20
|
+
--radius: 16px;
|
|
21
|
+
|
|
22
|
+
--ds-font-sans: 'Chirp', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
|
23
|
+
--ds-font-display: var(--ds-font-sans);
|
|
24
|
+
--ds-font-mono: ui-monospace, 'SF Mono', Menlo, monospace;
|
|
25
|
+
|
|
26
|
+
/* Lateral: iconos, raíl, logo y separadores (cada tema fija su forma y tamaño) */
|
|
27
|
+
--ds-sidebar-icon: 1.5rem;
|
|
28
|
+
--ds-sidebar-icon-stroke: 2;
|
|
29
|
+
--ds-sidebar-rail-w: 4.5rem;
|
|
30
|
+
--ds-sidebar-rail-item: 3rem;
|
|
31
|
+
--ds-sidebar-logo: 2.25rem;
|
|
32
|
+
--ds-sidebar-sep-inset: 0rem;
|
|
33
|
+
--ds-heading-tracking: normal;
|
|
34
|
+
|
|
35
|
+
/* Color */
|
|
36
|
+
--background: #ffffff;
|
|
37
|
+
--foreground: #0f1419;
|
|
38
|
+
|
|
39
|
+
--card: #ffffff;
|
|
40
|
+
--card-foreground: #0f1419;
|
|
41
|
+
--popover: #ffffff;
|
|
42
|
+
--popover-foreground: #0f1419;
|
|
43
|
+
|
|
44
|
+
--primary: #1d9bf0;
|
|
45
|
+
--primary-foreground: #ffffff;
|
|
46
|
+
--secondary: #eff3f4;
|
|
47
|
+
--secondary-foreground: #0f1419;
|
|
48
|
+
--muted: #f7f9f9;
|
|
49
|
+
--muted-foreground: #536471;
|
|
50
|
+
--accent: rgba(29, 155, 240, 0.1);
|
|
51
|
+
--accent-foreground: #1a8cd8;
|
|
52
|
+
--destructive: #e51f2b;
|
|
53
|
+
--destructive-foreground: #ffffff;
|
|
54
|
+
|
|
55
|
+
--border: #eff3f4;
|
|
56
|
+
--input: #cfd9de;
|
|
57
|
+
--ring: #1d9bf0;
|
|
58
|
+
|
|
59
|
+
--chart-1: #1d9bf0;
|
|
60
|
+
--chart-2: #00ba7c;
|
|
61
|
+
--chart-3: #ffd400;
|
|
62
|
+
--chart-4: #f91880;
|
|
63
|
+
--chart-5: #7856ff;
|
|
64
|
+
|
|
65
|
+
--sidebar: transparent;
|
|
66
|
+
--sidebar-foreground: #0f1419;
|
|
67
|
+
--sidebar-primary: #1d9bf0;
|
|
68
|
+
--sidebar-primary-foreground: #ffffff;
|
|
69
|
+
--sidebar-accent: rgba(15, 20, 25, 0.1);
|
|
70
|
+
--sidebar-accent-foreground: #0f1419;
|
|
71
|
+
--sidebar-border: #eff3f4;
|
|
72
|
+
--sidebar-ring: #1d9bf0;
|
|
73
|
+
|
|
74
|
+
--danger: #d4141f;
|
|
75
|
+
--danger-soft: rgba(244, 33, 46, 0.1);
|
|
76
|
+
--warning: #8a6d00;
|
|
77
|
+
--warning-soft: rgba(255, 212, 0, 0.2);
|
|
78
|
+
--success: #007c53;
|
|
79
|
+
--success-soft: rgba(0, 186, 124, 0.12);
|
|
80
|
+
--info: #1573b1;
|
|
81
|
+
--info-soft: rgba(29, 155, 240, 0.1);
|
|
82
|
+
--neutral: #536471;
|
|
83
|
+
--neutral-soft: #eff3f4;
|
|
84
|
+
|
|
85
|
+
--link: #1d9bf0;
|
|
86
|
+
--link-hover: #1a8cd8;
|
|
87
|
+
--inset: #f7f9f9;
|
|
88
|
+
--inset-foreground: #0f1419;
|
|
89
|
+
--brand: #1d9bf0;
|
|
90
|
+
--brand-bright: #1d9bf0;
|
|
91
|
+
|
|
92
|
+
/* Formas: píldoras para acciones, 16px para superficies */
|
|
93
|
+
--ds-radius-sm: 8px;
|
|
94
|
+
--ds-radius-md: 12px;
|
|
95
|
+
--ds-radius-lg: 16px;
|
|
96
|
+
--ds-radius-xl: 16px;
|
|
97
|
+
--ds-radius-2xl: 20px;
|
|
98
|
+
--ds-radius-control: 9999px;
|
|
99
|
+
--ds-radius-overlay: 16px;
|
|
100
|
+
|
|
101
|
+
/* Sin elevación: solo los menús flotantes llevan sombra, muy suave */
|
|
102
|
+
--ds-shadow-card: 0 0 #0000;
|
|
103
|
+
--ds-shadow-card-hover: 0 0 #0000;
|
|
104
|
+
--ds-shadow-control: 0 0 #0000;
|
|
105
|
+
--ds-shadow-raised: 0 0 #0000;
|
|
106
|
+
--ds-shadow-overlay: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
107
|
+
--ds-shadow-popover: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
108
|
+
|
|
109
|
+
/* Medidas */
|
|
110
|
+
--ds-control-h-sm: 2rem;
|
|
111
|
+
--ds-control-h-md: 2.25rem;
|
|
112
|
+
--ds-control-h-lg: 3.25rem;
|
|
113
|
+
--ds-button-px-sm: 1rem;
|
|
114
|
+
--ds-button-px-md: 1.25rem;
|
|
115
|
+
--ds-button-px-lg: 2rem;
|
|
116
|
+
--ds-field-px: 1rem;
|
|
117
|
+
--ds-card-spacing: 1rem;
|
|
118
|
+
--ds-card-spacing-sm: 0.75rem;
|
|
119
|
+
|
|
120
|
+
/* Materiales: ninguno (plano) */
|
|
121
|
+
--ds-card-backdrop: none;
|
|
122
|
+
--ds-overlay-backdrop: none;
|
|
123
|
+
--ds-field-backdrop: none;
|
|
124
|
+
--ds-sidebar-backdrop: none;
|
|
125
|
+
--ds-page-backdrop: none;
|
|
126
|
+
|
|
127
|
+
/* Sidebar a ras de borde, sin silueta; filas en píldora grandes */
|
|
128
|
+
--ds-sidebar-pad: 0px;
|
|
129
|
+
--ds-sidebar-radius: 0px;
|
|
130
|
+
--ds-sidebar-shadow: 0 0 #0000;
|
|
131
|
+
--ds-sidebar-ring: 0px;
|
|
132
|
+
--ds-sidebar-edge: 1px solid var(--sidebar-border);
|
|
133
|
+
--ds-sidebar-item-radius: 9999px;
|
|
134
|
+
--ds-sidebar-item-h: 3.25rem;
|
|
135
|
+
|
|
136
|
+
/* Privadas de twitter */
|
|
137
|
+
--zt-hover: rgba(15, 20, 25, 0.1);
|
|
138
|
+
--zt-hover-soft: rgba(15, 20, 25, 0.03);
|
|
139
|
+
--zt-line-strong: #cfd9de;
|
|
140
|
+
--zt-ink: #0f1419;
|
|
141
|
+
--zt-ink-foreground: #ffffff;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* ── VARIABLES · PIEL OSCURA («Dim») ─────────────────────────────────────── */
|
|
145
|
+
.dark {
|
|
146
|
+
--background: #15202b;
|
|
147
|
+
--foreground: #f7f9f9;
|
|
148
|
+
|
|
149
|
+
--card: #15202b;
|
|
150
|
+
--card-foreground: #f7f9f9;
|
|
151
|
+
--popover: #1e2732;
|
|
152
|
+
--popover-foreground: #f7f9f9;
|
|
153
|
+
|
|
154
|
+
--primary: #1d9bf0;
|
|
155
|
+
--primary-foreground: #ffffff;
|
|
156
|
+
--secondary: #1e2732;
|
|
157
|
+
--secondary-foreground: #f7f9f9;
|
|
158
|
+
--muted: #1e2732;
|
|
159
|
+
--muted-foreground: #8b98a5;
|
|
160
|
+
--accent: rgba(29, 155, 240, 0.15);
|
|
161
|
+
--accent-foreground: #4db3f5;
|
|
162
|
+
--destructive: #e51f2b;
|
|
163
|
+
--destructive-foreground: #ffffff;
|
|
164
|
+
|
|
165
|
+
--border: #38444d;
|
|
166
|
+
--input: #536471;
|
|
167
|
+
--ring: #1d9bf0;
|
|
168
|
+
|
|
169
|
+
--sidebar: transparent;
|
|
170
|
+
--sidebar-foreground: #f7f9f9;
|
|
171
|
+
--sidebar-primary: #1d9bf0;
|
|
172
|
+
--sidebar-primary-foreground: #ffffff;
|
|
173
|
+
--sidebar-accent: rgba(247, 249, 249, 0.1);
|
|
174
|
+
--sidebar-accent-foreground: #f7f9f9;
|
|
175
|
+
--sidebar-border: #38444d;
|
|
176
|
+
--sidebar-ring: #1d9bf0;
|
|
177
|
+
|
|
178
|
+
--danger: #ff5a64;
|
|
179
|
+
--danger-soft: rgba(244, 33, 46, 0.18);
|
|
180
|
+
--warning: #ffd400;
|
|
181
|
+
--warning-soft: rgba(255, 212, 0, 0.16);
|
|
182
|
+
--success: #00ba7c;
|
|
183
|
+
--success-soft: rgba(0, 186, 124, 0.16);
|
|
184
|
+
--info: #4db3f5;
|
|
185
|
+
--info-soft: rgba(29, 155, 240, 0.18);
|
|
186
|
+
--neutral: #8b98a5;
|
|
187
|
+
--neutral-soft: #1e2732;
|
|
188
|
+
|
|
189
|
+
--link: #4db3f5;
|
|
190
|
+
--link-hover: #8dcdf8;
|
|
191
|
+
--inset: #1e2732;
|
|
192
|
+
--inset-foreground: #f7f9f9;
|
|
193
|
+
--brand: #1d9bf0;
|
|
194
|
+
--brand-bright: #4db3f5;
|
|
195
|
+
|
|
196
|
+
--ds-shadow-overlay: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
197
|
+
--ds-shadow-popover: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
198
|
+
|
|
199
|
+
--zt-hover: rgba(247, 249, 249, 0.1);
|
|
200
|
+
--zt-hover-soft: rgba(247, 249, 249, 0.03);
|
|
201
|
+
--zt-line-strong: #536471;
|
|
202
|
+
--zt-ink: #eff3f4;
|
|
203
|
+
--zt-ink-foreground: #0f1419;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* ── VARIABLES DE LA PERSONALIDAD ────────────────────────────────────────────
|
|
207
|
+
* Lo que las reglas de abajo piden: cámbialo aquí (o en el brand.css de la app),
|
|
208
|
+
* nunca en las reglas.
|
|
209
|
+
*/
|
|
210
|
+
:root {
|
|
211
|
+
/* Movimiento: funcional y rápido, la curva estándar de una app */
|
|
212
|
+
--ds-motion-fast: 100ms;
|
|
213
|
+
--ds-motion-base: 150ms;
|
|
214
|
+
--ds-motion-slow: 250ms;
|
|
215
|
+
--ds-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
|
|
216
|
+
--ds-ease-enter: cubic-bezier(0, 0, 0.2, 1);
|
|
217
|
+
--ds-ease-exit: cubic-bezier(0.4, 0, 1, 1);
|
|
218
|
+
--ds-motion-distance: 4px;
|
|
219
|
+
--ds-motion-scale: 0.98;
|
|
220
|
+
--ds-motion-blur: 0px;
|
|
221
|
+
--ds-spring-bounce: 0;
|
|
222
|
+
--ds-motion-stagger: 25ms;
|
|
223
|
+
--ds-motion-press-scale: 0.98;
|
|
224
|
+
--ds-key-weight: 700;
|
|
225
|
+
--ds-rule-w: 1px;
|
|
226
|
+
--ds-button-outline-w: 1px;
|
|
227
|
+
--ds-hover-opacity: 0.88;
|
|
228
|
+
--ds-tab-weight: 500;
|
|
229
|
+
--ds-tab-active-weight: 700;
|
|
230
|
+
--ds-tab-indicator-w: 4px;
|
|
231
|
+
--ds-nav-active-weight: 700;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* ── PERSONALIDAD ────────────────────────────────────────────────────────────
|
|
235
|
+
* Sin capa: gana a las utilidades de los componentes. Solo variables (lo comprueba
|
|
236
|
+
* el doctor: tema `conformance: strict`). Familias completas.
|
|
237
|
+
*/
|
|
238
|
+
:root {
|
|
239
|
+
/* Botones: píldora en peso 700; primario en azul; contorno con filete */
|
|
240
|
+
[data-slot='button'] {
|
|
241
|
+
border-radius: var(--ds-radius-pill);
|
|
242
|
+
font-weight: var(--ds-key-weight);
|
|
243
|
+
}
|
|
244
|
+
[data-slot='button'][data-variant='default']:hover:not(:disabled) {
|
|
245
|
+
background-color: var(--link-hover);
|
|
246
|
+
}
|
|
247
|
+
[data-slot='button'][data-variant='secondary'] {
|
|
248
|
+
background: var(--zt-ink);
|
|
249
|
+
color: var(--zt-ink-foreground);
|
|
250
|
+
}
|
|
251
|
+
[data-slot='button'][data-variant='secondary']:hover:not(:disabled) {
|
|
252
|
+
opacity: var(--ds-hover-opacity);
|
|
253
|
+
}
|
|
254
|
+
[data-slot='button'][data-variant='outline'] {
|
|
255
|
+
background: transparent;
|
|
256
|
+
border: var(--ds-button-outline-w) solid var(--zt-line-strong);
|
|
257
|
+
color: var(--foreground);
|
|
258
|
+
}
|
|
259
|
+
[data-slot='button'][data-variant='outline']:hover:not(:disabled),
|
|
260
|
+
[data-slot='button'][data-variant='ghost']:hover:not(:disabled) {
|
|
261
|
+
background: var(--zt-hover);
|
|
262
|
+
}
|
|
263
|
+
[data-slot='button'][data-variant='destructive'] {
|
|
264
|
+
background: var(--destructive);
|
|
265
|
+
color: var(--destructive-foreground);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/* Tarjetas: planas, con filete, sin elevación */
|
|
269
|
+
[data-slot='card'] {
|
|
270
|
+
border: var(--ds-rule-w) solid var(--border);
|
|
271
|
+
box-shadow: none;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* Campos con filete (familia «field»); foco azul lo da el anillo */
|
|
275
|
+
[data-slot='input'],
|
|
276
|
+
[data-slot='textarea'],
|
|
277
|
+
[data-slot='select-trigger'],
|
|
278
|
+
[data-slot='native-select'],
|
|
279
|
+
[data-slot='input-group'] {
|
|
280
|
+
background: transparent;
|
|
281
|
+
border: var(--ds-rule-w) solid var(--input);
|
|
282
|
+
}
|
|
283
|
+
/* El OTP es una fila de casillas pegadas: solo color, sin duplicar sus bordes */
|
|
284
|
+
[data-slot='input-otp-slot'] {
|
|
285
|
+
background: transparent;
|
|
286
|
+
border-color: var(--input);
|
|
287
|
+
}
|
|
288
|
+
[data-slot='textarea'] {
|
|
289
|
+
border-radius: var(--ds-radius-lg);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* Etiquetas en píldora */
|
|
293
|
+
[data-slot='badge'] {
|
|
294
|
+
border-radius: var(--ds-radius-pill);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/* Conmutadores (familia «toggle»): sin fondo; el activo, en negrita */
|
|
298
|
+
[data-slot='tabs-list'] {
|
|
299
|
+
background: transparent;
|
|
300
|
+
border-bottom: var(--ds-rule-w) solid var(--border);
|
|
301
|
+
border-radius: 0;
|
|
302
|
+
}
|
|
303
|
+
[data-slot='tabs-trigger'],
|
|
304
|
+
[data-slot='toggle'],
|
|
305
|
+
[data-slot='toggle-group-item'] {
|
|
306
|
+
background: transparent;
|
|
307
|
+
font-weight: var(--ds-tab-weight);
|
|
308
|
+
}
|
|
309
|
+
[data-slot='tabs-trigger'] {
|
|
310
|
+
border-radius: 0;
|
|
311
|
+
}
|
|
312
|
+
[data-slot='toggle'],
|
|
313
|
+
[data-slot='toggle-group-item'] {
|
|
314
|
+
border-radius: var(--ds-radius-pill);
|
|
315
|
+
}
|
|
316
|
+
[data-slot='tabs-trigger']:hover,
|
|
317
|
+
[data-slot='toggle']:hover,
|
|
318
|
+
[data-slot='toggle-group-item']:hover {
|
|
319
|
+
background: var(--zt-hover-soft);
|
|
320
|
+
}
|
|
321
|
+
[data-slot='tabs-trigger'][data-active],
|
|
322
|
+
[data-slot='toggle'][aria-pressed='true'],
|
|
323
|
+
[data-slot='toggle-group-item'][aria-pressed='true'] {
|
|
324
|
+
font-weight: var(--ds-tab-active-weight);
|
|
325
|
+
}
|
|
326
|
+
/* La pestaña activa, subrayada con el acento */
|
|
327
|
+
[data-slot='tabs-trigger'][data-active] {
|
|
328
|
+
background: transparent;
|
|
329
|
+
box-shadow: inset 0 calc(var(--ds-tab-indicator-w) * -1) 0 var(--primary);
|
|
330
|
+
}
|
|
331
|
+
/* El toggle activo, con el tinte de señalado */
|
|
332
|
+
[data-slot='toggle'][aria-pressed='true'],
|
|
333
|
+
[data-slot='toggle-group-item'][aria-pressed='true'] {
|
|
334
|
+
background: var(--zt-hover);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* Sidebar: filas grandes en píldora; la activa en negrita, sin relleno */
|
|
338
|
+
[data-sidebar='menu-button'] {
|
|
339
|
+
font-size: var(--ds-text-lg);
|
|
340
|
+
border-radius: var(--ds-radius-pill);
|
|
341
|
+
}
|
|
342
|
+
[data-sidebar='menu-button']:hover {
|
|
343
|
+
background: var(--zt-hover);
|
|
344
|
+
}
|
|
345
|
+
[data-sidebar='menu-button'][data-active='true'] {
|
|
346
|
+
background: transparent;
|
|
347
|
+
font-weight: var(--ds-nav-active-weight);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* Interruptor y progreso en el azul de marca, planos */
|
|
351
|
+
[data-slot='progress-indicator'] {
|
|
352
|
+
background: var(--primary);
|
|
353
|
+
}
|
|
354
|
+
}
|