orbital-ds 0.3.0 → 0.5.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 +3 -0
- package/README.md +6 -0
- package/contract.json +82 -2
- package/dist/themes/friendly.css +310 -0
- package/dist/themes/friendly.fonts.css +2 -0
- package/dist/themes/friendly.scoped.css +310 -0
- package/dist/themes/twitter.css +290 -0
- package/dist/themes/twitter.fonts.css +6 -0
- package/dist/themes/twitter.scoped.css +290 -0
- package/dist/themes/zyro.css +38 -0
- package/dist/themes/zyro.scoped.css +38 -0
- package/dist/ui/attachment.d.ts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/item.d.ts +1 -1
- package/dist/ui/marker.d.ts +1 -1
- package/docs/CONTRACT.md +29 -0
- package/package.json +6 -4
- package/scripts/doctor.mjs +22 -0
- package/scripts/init.mjs +55 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* TEMA friendly — «SaaS amable con personalidad».
|
|
3
|
+
*
|
|
4
|
+
* Referencia: la interfaz de SerpWatch (v2). Se conserva lo que le da carácter y se
|
|
5
|
+
* corrigen sus defectos. Valores LEÍDOS de la referencia: lienzo #F5F6FC, tinta índigo
|
|
6
|
+
* #232450, fuente Rubik, sombras teñidas de índigo, botón en píldora en mayúsculas con
|
|
7
|
+
* brillo de color debajo, naranja #FBB232 como segundo acento, tarjetas de esquina
|
|
8
|
+
* pequeña frente a botones del todo redondos.
|
|
9
|
+
*
|
|
10
|
+
* Mejoras respecto a la referencia:
|
|
11
|
+
* - El botón primario usa un periwinkle algo más oscuro (#5F6EC9) para que el texto
|
|
12
|
+
* blanco alcance contraste AA (el original, #7987CE, queda en torno a 3:1); el
|
|
13
|
+
* original se conserva como brillo (`--brand-bright`).
|
|
14
|
+
* - Texto atenuado y de estado con contraste AA.
|
|
15
|
+
*
|
|
16
|
+
* Importar DESPUÉS de la estructura. Variables `--zf-*`: privadas de este tema.
|
|
17
|
+
* Fuentes: `friendly.fonts.css` (Rubik), lo primero del CSS de la app.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/* ── VARIABLES · PIEL CLARA ──────────────────────────────────────────────── */
|
|
21
|
+
:root[data-theme='friendly'] {
|
|
22
|
+
--radius: 8px;
|
|
23
|
+
|
|
24
|
+
--ds-font-sans: 'Rubik', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
25
|
+
--ds-font-display: var(--ds-font-sans);
|
|
26
|
+
--ds-font-mono: ui-monospace, 'SF Mono', Menlo, monospace;
|
|
27
|
+
--ds-heading-tracking: normal;
|
|
28
|
+
|
|
29
|
+
/* Color: lienzo azulado, tinta índigo, acento periwinkle + naranja cálido */
|
|
30
|
+
--background: #f5f6fc;
|
|
31
|
+
--foreground: #232450;
|
|
32
|
+
|
|
33
|
+
--card: #ffffff;
|
|
34
|
+
--card-foreground: #232450;
|
|
35
|
+
--popover: #ffffff;
|
|
36
|
+
--popover-foreground: #232450;
|
|
37
|
+
|
|
38
|
+
--primary: #5f6ec9;
|
|
39
|
+
--primary-foreground: #ffffff;
|
|
40
|
+
--secondary: #e8eaf8;
|
|
41
|
+
--secondary-foreground: #232450;
|
|
42
|
+
--muted: #eef0fa;
|
|
43
|
+
--muted-foreground: #6b6d96;
|
|
44
|
+
--accent: rgba(55, 132, 247, 0.14);
|
|
45
|
+
--accent-foreground: #2a64c4;
|
|
46
|
+
--destructive: #e5484d;
|
|
47
|
+
--destructive-foreground: #ffffff;
|
|
48
|
+
|
|
49
|
+
--border: rgba(35, 36, 80, 0.08);
|
|
50
|
+
--input: rgba(35, 36, 80, 0.18);
|
|
51
|
+
--ring: #5f6ec9;
|
|
52
|
+
|
|
53
|
+
--chart-1: #5f6ec9;
|
|
54
|
+
--chart-2: #fbb232;
|
|
55
|
+
--chart-3: #1db87a;
|
|
56
|
+
--chart-4: #e5484d;
|
|
57
|
+
--chart-5: #3784f7;
|
|
58
|
+
|
|
59
|
+
--sidebar: #ffffff;
|
|
60
|
+
--sidebar-foreground: #3a3b6b;
|
|
61
|
+
--sidebar-primary: #5f6ec9;
|
|
62
|
+
--sidebar-primary-foreground: #ffffff;
|
|
63
|
+
--sidebar-accent: rgba(55, 132, 247, 0.16);
|
|
64
|
+
--sidebar-accent-foreground: #2a64c4;
|
|
65
|
+
--sidebar-border: rgba(35, 36, 80, 0.07);
|
|
66
|
+
--sidebar-ring: #5f6ec9;
|
|
67
|
+
|
|
68
|
+
--danger: #c7343a;
|
|
69
|
+
--danger-soft: rgba(229, 72, 77, 0.12);
|
|
70
|
+
--warning: #9a5b00;
|
|
71
|
+
--warning-soft: rgba(251, 178, 50, 0.24);
|
|
72
|
+
--success: #0a7d55;
|
|
73
|
+
--success-soft: rgba(29, 184, 122, 0.14);
|
|
74
|
+
--info: #2a64c4;
|
|
75
|
+
--info-soft: rgba(55, 132, 247, 0.14);
|
|
76
|
+
--neutral: #6b6d96;
|
|
77
|
+
--neutral-soft: rgba(35, 36, 80, 0.07);
|
|
78
|
+
|
|
79
|
+
--link: #2a64c4;
|
|
80
|
+
--link-hover: #1f4f9e;
|
|
81
|
+
--inset: #eef0fa;
|
|
82
|
+
--inset-foreground: #232450;
|
|
83
|
+
--brand: #5f6ec9;
|
|
84
|
+
--brand-bright: #7987ce;
|
|
85
|
+
|
|
86
|
+
/* Formas: superficies de esquina pequeña; las acciones, del todo redondas */
|
|
87
|
+
--ds-radius-sm: 4px;
|
|
88
|
+
--ds-radius-md: 6px;
|
|
89
|
+
--ds-radius-lg: 8px;
|
|
90
|
+
--ds-radius-xl: 10px;
|
|
91
|
+
--ds-radius-2xl: 14px;
|
|
92
|
+
--ds-radius-control: 10px;
|
|
93
|
+
--ds-radius-overlay: 14px;
|
|
94
|
+
|
|
95
|
+
/* Sombras suaves TEÑIDAS de índigo (nunca negras) */
|
|
96
|
+
--ds-shadow-card: 0 8px 20px rgba(0, 4, 131, 0.04);
|
|
97
|
+
--ds-shadow-card-hover: 0 10px 26px rgba(0, 4, 131, 0.09);
|
|
98
|
+
--ds-shadow-control: 0 0 #0000;
|
|
99
|
+
--ds-shadow-raised: 0 8px 20px rgba(0, 4, 131, 0.06);
|
|
100
|
+
--ds-shadow-overlay: 0 16px 40px rgba(35, 36, 80, 0.16);
|
|
101
|
+
--ds-shadow-popover: 0 16px 40px rgba(35, 36, 80, 0.16);
|
|
102
|
+
|
|
103
|
+
/* Medidas: controles de 38px, botones generosos */
|
|
104
|
+
--ds-control-h-sm: 2rem;
|
|
105
|
+
--ds-control-h-md: 2.375rem;
|
|
106
|
+
--ds-control-h-lg: 2.75rem;
|
|
107
|
+
--ds-button-px-sm: 1rem;
|
|
108
|
+
--ds-button-px-md: 1.5rem;
|
|
109
|
+
--ds-button-px-lg: 2rem;
|
|
110
|
+
--ds-field-px: 0.875rem;
|
|
111
|
+
--ds-card-spacing: 1.25rem;
|
|
112
|
+
--ds-card-spacing-sm: 1rem;
|
|
113
|
+
|
|
114
|
+
/* Sin cristal: material plano y luminoso */
|
|
115
|
+
--ds-card-backdrop: none;
|
|
116
|
+
--ds-overlay-backdrop: none;
|
|
117
|
+
--ds-field-backdrop: none;
|
|
118
|
+
--ds-sidebar-backdrop: none;
|
|
119
|
+
--ds-page-backdrop: none;
|
|
120
|
+
|
|
121
|
+
/* Sidebar a ras de borde, blanco sobre el lienzo, filas con tinte azul */
|
|
122
|
+
--ds-sidebar-pad: 0px;
|
|
123
|
+
--ds-sidebar-radius: 0px;
|
|
124
|
+
--ds-sidebar-shadow: 0 0 #0000;
|
|
125
|
+
--ds-sidebar-ring: 0px;
|
|
126
|
+
--ds-sidebar-edge: 1px solid var(--sidebar-border);
|
|
127
|
+
--ds-sidebar-item-radius: 6px;
|
|
128
|
+
--ds-sidebar-item-h: 2.75rem;
|
|
129
|
+
|
|
130
|
+
/* Privadas de friendly */
|
|
131
|
+
--zf-orange: #fbb232;
|
|
132
|
+
--zf-orange-ink: #232450;
|
|
133
|
+
--zf-glow: rgba(95, 110, 201, 0.42);
|
|
134
|
+
--zf-glow-hover: rgba(95, 110, 201, 0.55);
|
|
135
|
+
--zf-fill: rgba(35, 36, 80, 0.05);
|
|
136
|
+
--zf-fill-hover: rgba(35, 36, 80, 0.08);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* ── VARIABLES · PIEL OSCURA («noche índigo») ────────────────────────────── */
|
|
140
|
+
:root[data-theme='friendly'].dark {
|
|
141
|
+
--background: #16173b;
|
|
142
|
+
--foreground: #ecedfa;
|
|
143
|
+
|
|
144
|
+
--card: #1f2150;
|
|
145
|
+
--card-foreground: #ecedfa;
|
|
146
|
+
--popover: #25275c;
|
|
147
|
+
--popover-foreground: #ecedfa;
|
|
148
|
+
|
|
149
|
+
--primary: #8a98f0;
|
|
150
|
+
--primary-foreground: #14153a;
|
|
151
|
+
--secondary: #2a2c63;
|
|
152
|
+
--secondary-foreground: #ecedfa;
|
|
153
|
+
--muted: #232557;
|
|
154
|
+
--muted-foreground: #a3a6d4;
|
|
155
|
+
--accent: rgba(86, 156, 255, 0.18);
|
|
156
|
+
--accent-foreground: #8dbbff;
|
|
157
|
+
--destructive: #ef5d62;
|
|
158
|
+
--destructive-foreground: #14153a;
|
|
159
|
+
|
|
160
|
+
--border: rgba(255, 255, 255, 0.09);
|
|
161
|
+
--input: rgba(255, 255, 255, 0.2);
|
|
162
|
+
--ring: #8a98f0;
|
|
163
|
+
|
|
164
|
+
--chart-1: #8a98f0;
|
|
165
|
+
--chart-2: #fbb232;
|
|
166
|
+
--chart-3: #3fd397;
|
|
167
|
+
--chart-4: #ef5d62;
|
|
168
|
+
--chart-5: #569cff;
|
|
169
|
+
|
|
170
|
+
--sidebar: #1b1d47;
|
|
171
|
+
--sidebar-foreground: #c4c6ec;
|
|
172
|
+
--sidebar-primary: #8a98f0;
|
|
173
|
+
--sidebar-primary-foreground: #14153a;
|
|
174
|
+
--sidebar-accent: rgba(86, 156, 255, 0.2);
|
|
175
|
+
--sidebar-accent-foreground: #8dbbff;
|
|
176
|
+
--sidebar-border: rgba(255, 255, 255, 0.07);
|
|
177
|
+
--sidebar-ring: #8a98f0;
|
|
178
|
+
|
|
179
|
+
--danger: #ff7a7f;
|
|
180
|
+
--danger-soft: rgba(239, 93, 98, 0.2);
|
|
181
|
+
--warning: #fbb232;
|
|
182
|
+
--warning-soft: rgba(251, 178, 50, 0.18);
|
|
183
|
+
--success: #3fd397;
|
|
184
|
+
--success-soft: rgba(63, 211, 151, 0.16);
|
|
185
|
+
--info: #8dbbff;
|
|
186
|
+
--info-soft: rgba(86, 156, 255, 0.2);
|
|
187
|
+
--neutral: #a3a6d4;
|
|
188
|
+
--neutral-soft: rgba(255, 255, 255, 0.08);
|
|
189
|
+
|
|
190
|
+
--link: #8dbbff;
|
|
191
|
+
--link-hover: #b4d1ff;
|
|
192
|
+
--inset: #232557;
|
|
193
|
+
--inset-foreground: #ecedfa;
|
|
194
|
+
--brand: #8a98f0;
|
|
195
|
+
--brand-bright: #aab4f6;
|
|
196
|
+
|
|
197
|
+
--ds-shadow-card: 0 8px 20px rgba(0, 0, 20, 0.28);
|
|
198
|
+
--ds-shadow-card-hover: 0 10px 26px rgba(0, 0, 20, 0.4);
|
|
199
|
+
--ds-shadow-raised: 0 8px 20px rgba(0, 0, 20, 0.3);
|
|
200
|
+
--ds-shadow-overlay: 0 16px 40px rgba(0, 0, 20, 0.5);
|
|
201
|
+
--ds-shadow-popover: 0 16px 40px rgba(0, 0, 20, 0.5);
|
|
202
|
+
|
|
203
|
+
--zf-orange-ink: #232450;
|
|
204
|
+
--zf-glow: rgba(138, 152, 240, 0.4);
|
|
205
|
+
--zf-glow-hover: rgba(138, 152, 240, 0.55);
|
|
206
|
+
--zf-fill: rgba(255, 255, 255, 0.07);
|
|
207
|
+
--zf-fill-hover: rgba(255, 255, 255, 0.11);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/* ── PERSONALIDAD ────────────────────────────────────────────────────────────
|
|
211
|
+
* Sin capa: gana a las utilidades de los componentes. Solo variables.
|
|
212
|
+
*/
|
|
213
|
+
:root[data-theme='friendly'] {
|
|
214
|
+
/* Botones: píldora en mayúsculas con espaciado, y brillo de color debajo */
|
|
215
|
+
[data-slot='button'] {
|
|
216
|
+
border-radius: 9999px;
|
|
217
|
+
text-transform: uppercase;
|
|
218
|
+
letter-spacing: 0.05em;
|
|
219
|
+
font-weight: 500;
|
|
220
|
+
transition:
|
|
221
|
+
transform var(--ds-motion-base) ease,
|
|
222
|
+
box-shadow var(--ds-motion-base) ease,
|
|
223
|
+
background-color var(--ds-motion-base) ease;
|
|
224
|
+
}
|
|
225
|
+
[data-slot='button'][data-variant='link'] {
|
|
226
|
+
text-transform: none;
|
|
227
|
+
letter-spacing: normal;
|
|
228
|
+
}
|
|
229
|
+
[data-slot='button'][data-size^='icon'] {
|
|
230
|
+
border-radius: var(--ds-radius-xl);
|
|
231
|
+
}
|
|
232
|
+
[data-slot='button'][data-variant='default'] {
|
|
233
|
+
box-shadow: 0 8px 8px -3px var(--zf-glow);
|
|
234
|
+
}
|
|
235
|
+
[data-slot='button'][data-variant='default']:hover:not(:disabled) {
|
|
236
|
+
transform: translateY(-1px);
|
|
237
|
+
box-shadow: 0 10px 12px -3px var(--zf-glow-hover);
|
|
238
|
+
}
|
|
239
|
+
[data-slot='button'][data-variant='default']:active:not(:disabled) {
|
|
240
|
+
transform: translateY(0);
|
|
241
|
+
}
|
|
242
|
+
[data-slot='button'][data-variant='secondary'] {
|
|
243
|
+
background: var(--zf-fill);
|
|
244
|
+
color: var(--foreground);
|
|
245
|
+
}
|
|
246
|
+
[data-slot='button'][data-variant='secondary']:hover:not(:disabled),
|
|
247
|
+
[data-slot='button'][data-variant='ghost']:hover:not(:disabled) {
|
|
248
|
+
background: var(--zf-fill-hover);
|
|
249
|
+
}
|
|
250
|
+
[data-slot='button'][data-variant='outline'] {
|
|
251
|
+
background: transparent;
|
|
252
|
+
border: 1.5px solid color-mix(in oklch, var(--primary) 55%, transparent);
|
|
253
|
+
color: var(--primary);
|
|
254
|
+
}
|
|
255
|
+
[data-slot='button'][data-variant='outline']:hover:not(:disabled) {
|
|
256
|
+
background: color-mix(in oklch, var(--primary) 10%, transparent);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* Tarjetas: blancas, sin borde, solo la sombra teñida */
|
|
260
|
+
[data-slot='card'] {
|
|
261
|
+
border-color: transparent;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* Campos rellenos (sin borde), como el buscador de la referencia */
|
|
265
|
+
[data-slot='input'],
|
|
266
|
+
[data-slot='textarea'],
|
|
267
|
+
[data-slot='select-trigger'] {
|
|
268
|
+
background: var(--zf-fill);
|
|
269
|
+
border-color: transparent;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* Etiquetas en píldora; la secundaria es el naranja de la marca */
|
|
273
|
+
[data-slot='badge'] {
|
|
274
|
+
border-radius: 9999px;
|
|
275
|
+
}
|
|
276
|
+
[data-slot='badge'][data-variant='secondary'] {
|
|
277
|
+
background: var(--zf-orange);
|
|
278
|
+
color: var(--zf-orange-ink);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* Tablas: cabeceras en mayúsculas pequeñas */
|
|
282
|
+
[data-slot='table-head'] {
|
|
283
|
+
text-transform: uppercase;
|
|
284
|
+
font-size: 0.75rem;
|
|
285
|
+
letter-spacing: 0.05em;
|
|
286
|
+
font-weight: 600;
|
|
287
|
+
color: var(--foreground);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/* Sidebar: la fila activa con tinte azul y peso medio */
|
|
291
|
+
[data-sidebar='menu-button'][data-active='true'] {
|
|
292
|
+
font-weight: 500;
|
|
293
|
+
}
|
|
294
|
+
[data-sidebar='menu-button']:hover:not([data-active='true']) {
|
|
295
|
+
background: var(--zf-fill);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/* Pestañas: píldora tintada */
|
|
299
|
+
[data-slot='tabs-list'] {
|
|
300
|
+
background: var(--zf-fill);
|
|
301
|
+
border-radius: 9999px;
|
|
302
|
+
}
|
|
303
|
+
[data-slot='tabs-trigger'] {
|
|
304
|
+
border-radius: 9999px;
|
|
305
|
+
}
|
|
306
|
+
[data-slot='tabs-trigger'][data-active] {
|
|
307
|
+
background: var(--card);
|
|
308
|
+
box-shadow: var(--ds-shadow-raised);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
@@ -0,0 +1,290 @@
|
|
|
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
|
+
--ds-heading-tracking: normal;
|
|
26
|
+
|
|
27
|
+
/* Color */
|
|
28
|
+
--background: #ffffff;
|
|
29
|
+
--foreground: #0f1419;
|
|
30
|
+
|
|
31
|
+
--card: #ffffff;
|
|
32
|
+
--card-foreground: #0f1419;
|
|
33
|
+
--popover: #ffffff;
|
|
34
|
+
--popover-foreground: #0f1419;
|
|
35
|
+
|
|
36
|
+
--primary: #1d9bf0;
|
|
37
|
+
--primary-foreground: #ffffff;
|
|
38
|
+
--secondary: #eff3f4;
|
|
39
|
+
--secondary-foreground: #0f1419;
|
|
40
|
+
--muted: #f7f9f9;
|
|
41
|
+
--muted-foreground: #536471;
|
|
42
|
+
--accent: rgba(29, 155, 240, 0.1);
|
|
43
|
+
--accent-foreground: #1a8cd8;
|
|
44
|
+
--destructive: #f4212e;
|
|
45
|
+
--destructive-foreground: #ffffff;
|
|
46
|
+
|
|
47
|
+
--border: #eff3f4;
|
|
48
|
+
--input: #cfd9de;
|
|
49
|
+
--ring: #1d9bf0;
|
|
50
|
+
|
|
51
|
+
--chart-1: #1d9bf0;
|
|
52
|
+
--chart-2: #00ba7c;
|
|
53
|
+
--chart-3: #ffd400;
|
|
54
|
+
--chart-4: #f91880;
|
|
55
|
+
--chart-5: #7856ff;
|
|
56
|
+
|
|
57
|
+
--sidebar: transparent;
|
|
58
|
+
--sidebar-foreground: #0f1419;
|
|
59
|
+
--sidebar-primary: #1d9bf0;
|
|
60
|
+
--sidebar-primary-foreground: #ffffff;
|
|
61
|
+
--sidebar-accent: rgba(15, 20, 25, 0.1);
|
|
62
|
+
--sidebar-accent-foreground: #0f1419;
|
|
63
|
+
--sidebar-border: #eff3f4;
|
|
64
|
+
--sidebar-ring: #1d9bf0;
|
|
65
|
+
|
|
66
|
+
--danger: #d4141f;
|
|
67
|
+
--danger-soft: rgba(244, 33, 46, 0.1);
|
|
68
|
+
--warning: #8a6d00;
|
|
69
|
+
--warning-soft: rgba(255, 212, 0, 0.2);
|
|
70
|
+
--success: #00875a;
|
|
71
|
+
--success-soft: rgba(0, 186, 124, 0.12);
|
|
72
|
+
--info: #1a8cd8;
|
|
73
|
+
--info-soft: rgba(29, 155, 240, 0.1);
|
|
74
|
+
--neutral: #536471;
|
|
75
|
+
--neutral-soft: #eff3f4;
|
|
76
|
+
|
|
77
|
+
--link: #1d9bf0;
|
|
78
|
+
--link-hover: #1a8cd8;
|
|
79
|
+
--inset: #f7f9f9;
|
|
80
|
+
--inset-foreground: #0f1419;
|
|
81
|
+
--brand: #1d9bf0;
|
|
82
|
+
--brand-bright: #1d9bf0;
|
|
83
|
+
|
|
84
|
+
/* Formas: píldoras para acciones, 16px para superficies */
|
|
85
|
+
--ds-radius-sm: 8px;
|
|
86
|
+
--ds-radius-md: 12px;
|
|
87
|
+
--ds-radius-lg: 16px;
|
|
88
|
+
--ds-radius-xl: 16px;
|
|
89
|
+
--ds-radius-2xl: 20px;
|
|
90
|
+
--ds-radius-control: 9999px;
|
|
91
|
+
--ds-radius-overlay: 16px;
|
|
92
|
+
|
|
93
|
+
/* Sin elevación: solo los menús flotantes llevan sombra, muy suave */
|
|
94
|
+
--ds-shadow-card: 0 0 #0000;
|
|
95
|
+
--ds-shadow-card-hover: 0 0 #0000;
|
|
96
|
+
--ds-shadow-control: 0 0 #0000;
|
|
97
|
+
--ds-shadow-raised: 0 0 #0000;
|
|
98
|
+
--ds-shadow-overlay: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
99
|
+
--ds-shadow-popover: 0 0 15px rgba(101, 119, 134, 0.2), 0 0 3px 1px rgba(101, 119, 134, 0.15);
|
|
100
|
+
|
|
101
|
+
/* Medidas */
|
|
102
|
+
--ds-control-h-sm: 2rem;
|
|
103
|
+
--ds-control-h-md: 2.25rem;
|
|
104
|
+
--ds-control-h-lg: 3.25rem;
|
|
105
|
+
--ds-button-px-sm: 1rem;
|
|
106
|
+
--ds-button-px-md: 1.25rem;
|
|
107
|
+
--ds-button-px-lg: 2rem;
|
|
108
|
+
--ds-field-px: 1rem;
|
|
109
|
+
--ds-card-spacing: 1rem;
|
|
110
|
+
--ds-card-spacing-sm: 0.75rem;
|
|
111
|
+
|
|
112
|
+
/* Materiales: ninguno (plano) */
|
|
113
|
+
--ds-card-backdrop: none;
|
|
114
|
+
--ds-overlay-backdrop: none;
|
|
115
|
+
--ds-field-backdrop: none;
|
|
116
|
+
--ds-sidebar-backdrop: none;
|
|
117
|
+
--ds-page-backdrop: none;
|
|
118
|
+
|
|
119
|
+
/* Sidebar a ras de borde, sin silueta; filas en píldora grandes */
|
|
120
|
+
--ds-sidebar-pad: 0px;
|
|
121
|
+
--ds-sidebar-radius: 0px;
|
|
122
|
+
--ds-sidebar-shadow: 0 0 #0000;
|
|
123
|
+
--ds-sidebar-ring: 0px;
|
|
124
|
+
--ds-sidebar-edge: 1px solid var(--sidebar-border);
|
|
125
|
+
--ds-sidebar-item-radius: 9999px;
|
|
126
|
+
--ds-sidebar-item-h: 3.25rem;
|
|
127
|
+
|
|
128
|
+
/* Privadas de twitter */
|
|
129
|
+
--zt-hover: rgba(15, 20, 25, 0.1);
|
|
130
|
+
--zt-hover-soft: rgba(15, 20, 25, 0.03);
|
|
131
|
+
--zt-line-strong: #cfd9de;
|
|
132
|
+
--zt-ink: #0f1419;
|
|
133
|
+
--zt-ink-foreground: #ffffff;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* ── VARIABLES · PIEL OSCURA («Dim») ─────────────────────────────────────── */
|
|
137
|
+
.dark {
|
|
138
|
+
--background: #15202b;
|
|
139
|
+
--foreground: #f7f9f9;
|
|
140
|
+
|
|
141
|
+
--card: #15202b;
|
|
142
|
+
--card-foreground: #f7f9f9;
|
|
143
|
+
--popover: #1e2732;
|
|
144
|
+
--popover-foreground: #f7f9f9;
|
|
145
|
+
|
|
146
|
+
--primary: #1d9bf0;
|
|
147
|
+
--primary-foreground: #ffffff;
|
|
148
|
+
--secondary: #1e2732;
|
|
149
|
+
--secondary-foreground: #f7f9f9;
|
|
150
|
+
--muted: #1e2732;
|
|
151
|
+
--muted-foreground: #8b98a5;
|
|
152
|
+
--accent: rgba(29, 155, 240, 0.15);
|
|
153
|
+
--accent-foreground: #4db3f5;
|
|
154
|
+
--destructive: #f4212e;
|
|
155
|
+
--destructive-foreground: #ffffff;
|
|
156
|
+
|
|
157
|
+
--border: #38444d;
|
|
158
|
+
--input: #536471;
|
|
159
|
+
--ring: #1d9bf0;
|
|
160
|
+
|
|
161
|
+
--sidebar: transparent;
|
|
162
|
+
--sidebar-foreground: #f7f9f9;
|
|
163
|
+
--sidebar-primary: #1d9bf0;
|
|
164
|
+
--sidebar-primary-foreground: #ffffff;
|
|
165
|
+
--sidebar-accent: rgba(247, 249, 249, 0.1);
|
|
166
|
+
--sidebar-accent-foreground: #f7f9f9;
|
|
167
|
+
--sidebar-border: #38444d;
|
|
168
|
+
--sidebar-ring: #1d9bf0;
|
|
169
|
+
|
|
170
|
+
--danger: #ff5a64;
|
|
171
|
+
--danger-soft: rgba(244, 33, 46, 0.18);
|
|
172
|
+
--warning: #ffd400;
|
|
173
|
+
--warning-soft: rgba(255, 212, 0, 0.16);
|
|
174
|
+
--success: #00ba7c;
|
|
175
|
+
--success-soft: rgba(0, 186, 124, 0.16);
|
|
176
|
+
--info: #4db3f5;
|
|
177
|
+
--info-soft: rgba(29, 155, 240, 0.18);
|
|
178
|
+
--neutral: #8b98a5;
|
|
179
|
+
--neutral-soft: #1e2732;
|
|
180
|
+
|
|
181
|
+
--link: #4db3f5;
|
|
182
|
+
--link-hover: #8dcdf8;
|
|
183
|
+
--inset: #1e2732;
|
|
184
|
+
--inset-foreground: #f7f9f9;
|
|
185
|
+
--brand: #1d9bf0;
|
|
186
|
+
--brand-bright: #4db3f5;
|
|
187
|
+
|
|
188
|
+
--ds-shadow-overlay: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
189
|
+
--ds-shadow-popover: 0 0 15px rgba(255, 255, 255, 0.2), 0 0 3px 1px rgba(255, 255, 255, 0.15);
|
|
190
|
+
|
|
191
|
+
--zt-hover: rgba(247, 249, 249, 0.1);
|
|
192
|
+
--zt-hover-soft: rgba(247, 249, 249, 0.03);
|
|
193
|
+
--zt-line-strong: #536471;
|
|
194
|
+
--zt-ink: #eff3f4;
|
|
195
|
+
--zt-ink-foreground: #0f1419;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ── PERSONALIDAD ────────────────────────────────────────────────────────────
|
|
199
|
+
* Sin capa: gana a las utilidades de los componentes. Solo variables.
|
|
200
|
+
*/
|
|
201
|
+
:root {
|
|
202
|
+
/* Botones: píldora en peso 700; primario en azul; contorno con filete */
|
|
203
|
+
[data-slot='button'] {
|
|
204
|
+
border-radius: 9999px;
|
|
205
|
+
font-weight: 700;
|
|
206
|
+
}
|
|
207
|
+
[data-slot='button'][data-variant='default']:hover:not(:disabled) {
|
|
208
|
+
background-color: var(--link-hover);
|
|
209
|
+
}
|
|
210
|
+
[data-slot='button'][data-variant='secondary'] {
|
|
211
|
+
background: var(--zt-ink);
|
|
212
|
+
color: var(--zt-ink-foreground);
|
|
213
|
+
}
|
|
214
|
+
[data-slot='button'][data-variant='secondary']:hover:not(:disabled) {
|
|
215
|
+
opacity: 0.88;
|
|
216
|
+
}
|
|
217
|
+
[data-slot='button'][data-variant='outline'] {
|
|
218
|
+
background: transparent;
|
|
219
|
+
border: 1px solid var(--zt-line-strong);
|
|
220
|
+
color: var(--foreground);
|
|
221
|
+
}
|
|
222
|
+
[data-slot='button'][data-variant='outline']:hover:not(:disabled),
|
|
223
|
+
[data-slot='button'][data-variant='ghost']:hover:not(:disabled) {
|
|
224
|
+
background: var(--zt-hover);
|
|
225
|
+
}
|
|
226
|
+
[data-slot='button'][data-variant='destructive'] {
|
|
227
|
+
background: var(--destructive);
|
|
228
|
+
color: var(--destructive-foreground);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* Tarjetas: planas, con filete, sin elevación */
|
|
232
|
+
[data-slot='card'] {
|
|
233
|
+
border: 1px solid var(--border);
|
|
234
|
+
box-shadow: none;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* Campos: píldora/16px con filete; foco azul lo da el anillo */
|
|
238
|
+
[data-slot='input'],
|
|
239
|
+
[data-slot='textarea'],
|
|
240
|
+
[data-slot='select-trigger'] {
|
|
241
|
+
background: transparent;
|
|
242
|
+
border: 1px solid var(--input);
|
|
243
|
+
}
|
|
244
|
+
[data-slot='textarea'] {
|
|
245
|
+
border-radius: var(--ds-radius-lg);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* Etiquetas en píldora */
|
|
249
|
+
[data-slot='badge'] {
|
|
250
|
+
border-radius: 9999px;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* Pestañas: sin fondo, subrayado de acento en la activa */
|
|
254
|
+
[data-slot='tabs-list'] {
|
|
255
|
+
background: transparent;
|
|
256
|
+
border-bottom: 1px solid var(--border);
|
|
257
|
+
border-radius: 0;
|
|
258
|
+
}
|
|
259
|
+
[data-slot='tabs-trigger'] {
|
|
260
|
+
border-radius: 0;
|
|
261
|
+
background: transparent;
|
|
262
|
+
font-weight: 500;
|
|
263
|
+
}
|
|
264
|
+
[data-slot='tabs-trigger']:hover {
|
|
265
|
+
background: var(--zt-hover-soft);
|
|
266
|
+
}
|
|
267
|
+
[data-slot='tabs-trigger'][data-active] {
|
|
268
|
+
background: transparent;
|
|
269
|
+
box-shadow: inset 0 -4px 0 var(--primary);
|
|
270
|
+
font-weight: 700;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* Sidebar: filas grandes en píldora; la activa en negrita, sin relleno */
|
|
274
|
+
[data-sidebar='menu-button'] {
|
|
275
|
+
font-size: 1.125rem;
|
|
276
|
+
border-radius: 9999px;
|
|
277
|
+
}
|
|
278
|
+
[data-sidebar='menu-button']:hover {
|
|
279
|
+
background: var(--zt-hover);
|
|
280
|
+
}
|
|
281
|
+
[data-sidebar='menu-button'][data-active='true'] {
|
|
282
|
+
background: transparent;
|
|
283
|
+
font-weight: 700;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/* Interruptor y progreso en el azul de marca, planos */
|
|
287
|
+
[data-slot='progress-indicator'] {
|
|
288
|
+
background: var(--primary);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Fuentes del tema twitter. Chirp (la fuente de Twitter) es propietaria y no se
|
|
3
|
+
* puede distribuir: no hay nada que cargar. El tema usa la pila del sistema como
|
|
4
|
+
* respaldo (`-apple-system, Segoe UI, Roboto…`). Si tienes licencia de Chirp, defínela
|
|
5
|
+
* con @font-face en tu app y quedará aplicada.
|
|
6
|
+
*/
|