@higinio/design-mcp 0.1.1 → 0.2.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.
- package/LICENSE +4 -4
- package/README.md +5 -5
- package/assets/bruma/design-doc.md +1275 -0
- package/assets/bruma/framework.css +1591 -0
- package/assets/bruma/styleguide.html +5195 -0
- package/assets/bruma/tailwind.css +163 -0
- package/assets/bruma/tokens.css +203 -0
- package/assets/bruma/tokens.json +1739 -0
- package/assets/celeste/design-doc.md +297 -44
- package/assets/celeste/framework.css +382 -65
- package/assets/celeste/styleguide.html +1011 -196
- package/assets/celeste/tailwind.css +48 -6
- package/assets/celeste/tokens.css +67 -6
- package/assets/celeste/tokens.json +778 -26
- package/assets/nocturna/design-doc.md +406 -61
- package/assets/nocturna/framework.css +418 -114
- package/assets/nocturna/styleguide.html +1147 -330
- package/assets/nocturna/tailwind.css +46 -3
- package/assets/nocturna/tokens.css +123 -9
- package/assets/nocturna/tokens.json +754 -21
- package/assets/salvia/design-doc.md +1260 -0
- package/assets/salvia/framework.css +1588 -0
- package/assets/salvia/styleguide.html +5176 -0
- package/assets/salvia/tailwind.css +163 -0
- package/assets/salvia/tokens.css +199 -0
- package/assets/salvia/tokens.json +1767 -0
- package/dist/cli.js +7 -5
- package/dist/doc.js +18 -4
- package/dist/preflight.js +2 -1
- package/dist/server.js +7 -7
- package/dist/snippet.js +26 -17
- package/dist/systems.js +27 -1
- package/dist/tokens.js +42 -5
- package/dist/validate.js +13 -5
- package/package.json +5 -3
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Bruma Lavanda — Tailwind CSS v4 (@theme)
|
|
3
|
+
Sistema de diseño de Higinio Sosa · light-first
|
|
4
|
+
Uso: @import "tailwindcss"; y luego este archivo,
|
|
5
|
+
o copiar este contenido en tu CSS principal de Tailwind v4.
|
|
6
|
+
Requiere dist/bruma-lavanda/tokens.css para los aliases
|
|
7
|
+
semánticos con theme switch (o pega sus :root/[data-theme]).
|
|
8
|
+
============================================================ */
|
|
9
|
+
|
|
10
|
+
@import "tailwindcss";
|
|
11
|
+
@import "./tokens.css"; /* primitivos + aliases + [data-theme="dark"] + fuentes */
|
|
12
|
+
|
|
13
|
+
@theme {
|
|
14
|
+
/* == Colores primitivos → genera bg-primary-500, text-neutral-800, etc. == */
|
|
15
|
+
--color-primary-50: #e5e3f1; /* acento suave */
|
|
16
|
+
--color-primary-100: #d8d5ea;
|
|
17
|
+
--color-primary-200: #bdb9da;
|
|
18
|
+
--color-primary-300: #9d99c4; /* decorativo — nunca texto sobre niebla */
|
|
19
|
+
--color-primary-400: #7c78a8;
|
|
20
|
+
--color-primary-500: #5b578a; /* acento lavanda — controles, estados activos, focus; nunca fondo de áreas grandes */
|
|
21
|
+
--color-primary-600: #4d4979; /* --link: #4d4979;
|
|
22
|
+
--color-primary-800: #35334f;
|
|
23
|
+
--color-primary-900: #2c2b38; /* tinta de marca */
|
|
24
|
+
|
|
25
|
+
--color-neutral-0: #fbfbfd;
|
|
26
|
+
--color-neutral-50: #f2f1f6;
|
|
27
|
+
--color-neutral-100: #e9e8f0;
|
|
28
|
+
--color-neutral-200: #dedce8;
|
|
29
|
+
--color-neutral-300: #b8b6c8;
|
|
30
|
+
--color-neutral-400: #86849a;
|
|
31
|
+
--color-neutral-500: #5d5b6e;
|
|
32
|
+
--color-neutral-600: #48475a;
|
|
33
|
+
--color-neutral-700: #393846;
|
|
34
|
+
--color-neutral-800: #2c2b38;
|
|
35
|
+
--color-neutral-900: #1f1e28;
|
|
36
|
+
|
|
37
|
+
--color-success-500: #2f7a68; /* verde azulado, nunca el acento lavanda */
|
|
38
|
+
--color-success-100: #dcefe9;
|
|
39
|
+
--color-success-700: #235e50; /* texto AA sobre success-100 */
|
|
40
|
+
--color-warning-500: #b07f2a;
|
|
41
|
+
--color-warning-100: #f5ecd9;
|
|
42
|
+
--color-warning-700: #7a5716;
|
|
43
|
+
--color-danger-500: #b24c55;
|
|
44
|
+
--color-danger-100: #f6e3e5;
|
|
45
|
+
--color-danger-700: #8b3540;
|
|
46
|
+
--color-info-500: #4f7896;
|
|
47
|
+
--color-info-100: #e1eaf1;
|
|
48
|
+
--color-info-700: #3a5b74;
|
|
49
|
+
|
|
50
|
+
/* == Tipografía → font-display, font-body, font-mono == */
|
|
51
|
+
--font-display: "Bricolage Grotesque", system-ui, sans-serif; /* marca, lectura y cifras destacadas */
|
|
52
|
+
--font-body: "Atkinson Hyperlegible Next", system-ui, -apple-system, sans-serif;
|
|
53
|
+
--font-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace;
|
|
54
|
+
|
|
55
|
+
/* == Escala tipográfica (ratio 1.25) con line-heights emparejados == */
|
|
56
|
+
--text-xs: .75rem; --text-xs--line-height: 1.5;
|
|
57
|
+
--text-sm: .875rem; --text-sm--line-height: 1.5;
|
|
58
|
+
--text-base: 1rem; --text-base--line-height: 1.6;
|
|
59
|
+
--text-lg: 1.125rem; --text-lg--line-height: 1.55;
|
|
60
|
+
--text-xl: 1.25rem; --text-xl--line-height: 1.4;
|
|
61
|
+
--text-2xl: 1.5625rem; --text-2xl--line-height: 1.3;
|
|
62
|
+
--text-3xl: 1.9375rem; --text-3xl--line-height: 1.25;
|
|
63
|
+
--text-4xl: 2.4375rem; --text-4xl--line-height: 1.15;
|
|
64
|
+
--text-5xl: 3.0625rem; --text-5xl--line-height: 1.1;
|
|
65
|
+
|
|
66
|
+
--tracking-display: -0.02em;
|
|
67
|
+
--tracking-label: 0.04em;
|
|
68
|
+
|
|
69
|
+
/* == Radios → rounded-sm/md/lg/xl == */
|
|
70
|
+
--radius-sm: 6px;
|
|
71
|
+
--radius-md: 8px;
|
|
72
|
+
--radius-lg: 12px;
|
|
73
|
+
--radius-xl: 16px;
|
|
74
|
+
|
|
75
|
+
/* == Sombras mínimas (teñidas de tinta #2c2b38; la elevación va en el borde) → shadow-xs…xl == */
|
|
76
|
+
--shadow-xs: 0 1px 1px rgba(44,43,56,.04);
|
|
77
|
+
--shadow-sm: 0 1px 2px rgba(44,43,56,.06);
|
|
78
|
+
--shadow-md: 0 2px 6px rgba(44,43,56,.07), 0 1px 2px rgba(44,43,56,.04);
|
|
79
|
+
--shadow-lg: 0 8px 20px rgba(44,43,56,.09), 0 2px 6px rgba(44,43,56,.05);
|
|
80
|
+
--shadow-xl: 0 16px 36px rgba(44,43,56,.12);
|
|
81
|
+
|
|
82
|
+
/* == Easings → ease-out-brand, ease-in-brand, ease-in-out-brand, ease-spring == */
|
|
83
|
+
--ease-out-brand: cubic-bezier(0.2, 0, 0, 1);
|
|
84
|
+
--ease-in-brand: cubic-bezier(0.4, 0, 1, 1);
|
|
85
|
+
--ease-in-out-brand: cubic-bezier(0.65, 0, 0.35, 1); /* moverse de A a B en pantalla */
|
|
86
|
+
--ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
|
|
87
|
+
--stagger-step: 30ms;
|
|
88
|
+
|
|
89
|
+
/* Breakpoints: los default de Tailwind (sm 640 / md 768 / lg 1024 / xl 1280)
|
|
90
|
+
coinciden con el sistema — no se redefinen.
|
|
91
|
+
Espaciado: la escala default (múltiplos de 0.25rem = 4px) coincide con
|
|
92
|
+
la escala base 4px del sistema — no se redefine. */
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* == Capa semántica con theme switch (shadcn-style) ==
|
|
96
|
+
Genera utilidades que cambian solas con [data-theme="dark"]:
|
|
97
|
+
bg-background · bg-surface · bg-surface-alt · text-foreground ·
|
|
98
|
+
text-muted-foreground · text-disabled-foreground · border-border ·
|
|
99
|
+
border-border-strong · bg-accent · text-link · bg-accent-soft */
|
|
100
|
+
@theme inline {
|
|
101
|
+
--color-background: var(--bg);
|
|
102
|
+
--color-surface: var(--surface);
|
|
103
|
+
--color-surface-alt: var(--surface-alt);
|
|
104
|
+
--color-foreground: var(--text-primary);
|
|
105
|
+
--color-secondary-foreground: var(--text-secondary);
|
|
106
|
+
--color-muted-foreground: var(--text-muted);
|
|
107
|
+
--color-disabled-foreground: var(--text-disabled);
|
|
108
|
+
--color-border: var(--border);
|
|
109
|
+
--color-border-strong: var(--border-strong);
|
|
110
|
+
--color-accent: var(--accent);
|
|
111
|
+
--color-accent-hover: var(--accent-hover);
|
|
112
|
+
--color-accent-active: var(--accent-active);
|
|
113
|
+
--color-accent-soft: var(--accent-soft);
|
|
114
|
+
--color-accent-foreground: var(--text-on-primary);
|
|
115
|
+
--color-link: var(--link);
|
|
116
|
+
--color-success: var(--success-500);
|
|
117
|
+
--color-warning: var(--warning-500);
|
|
118
|
+
--color-danger: var(--danger-500);
|
|
119
|
+
--color-info: var(--info-500);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* CONTRATOS COMPARTIDOS GENERADOS */
|
|
123
|
+
@theme inline {
|
|
124
|
+
--color-surface: var(--surface);
|
|
125
|
+
--color-surface-alt: var(--surface-alt);
|
|
126
|
+
--color-action-bg: var(--action-bg);
|
|
127
|
+
--color-action-hover: var(--action-hover);
|
|
128
|
+
--color-action-active: var(--action-active);
|
|
129
|
+
--color-text-on-action: var(--text-on-action);
|
|
130
|
+
--color-control-border: var(--control-border);
|
|
131
|
+
--color-focus-color: var(--focus-color);
|
|
132
|
+
--color-placeholder: var(--placeholder);
|
|
133
|
+
--color-selection-bg: var(--selection-bg);
|
|
134
|
+
--color-selection-text: var(--selection-text);
|
|
135
|
+
--color-chart-1: var(--chart-1);
|
|
136
|
+
--color-chart-2: var(--chart-2);
|
|
137
|
+
--color-chart-3: var(--chart-3);
|
|
138
|
+
--color-chart-4: var(--chart-4);
|
|
139
|
+
--color-chart-5: var(--chart-5);
|
|
140
|
+
--color-chart-6: var(--chart-6);
|
|
141
|
+
--color-chart-7: var(--chart-7);
|
|
142
|
+
--spacing-1: var(--space-1);
|
|
143
|
+
--spacing-2: var(--space-2);
|
|
144
|
+
--spacing-3: var(--space-3);
|
|
145
|
+
--spacing-4: var(--space-4);
|
|
146
|
+
--spacing-5: var(--space-5);
|
|
147
|
+
--spacing-6: var(--space-6);
|
|
148
|
+
--spacing-8: var(--space-8);
|
|
149
|
+
--spacing-10: var(--space-10);
|
|
150
|
+
--spacing-12: var(--space-12);
|
|
151
|
+
--spacing-16: var(--space-16);
|
|
152
|
+
--spacing-20: var(--space-20);
|
|
153
|
+
--spacing-24: var(--space-24);
|
|
154
|
+
--spacing-field-gap: var(--field-gap);
|
|
155
|
+
--spacing-heading-gap: var(--heading-gap);
|
|
156
|
+
--spacing-content-gap: var(--content-gap);
|
|
157
|
+
--spacing-card-content-gap: var(--card-content-gap);
|
|
158
|
+
--spacing-card-group-gap: var(--card-group-gap);
|
|
159
|
+
--spacing-form-gap: var(--form-gap);
|
|
160
|
+
--spacing-section-gap: var(--section-gap);
|
|
161
|
+
--text-display: var(--text-display-fluid);
|
|
162
|
+
--text-title-ui: var(--text-ui-title);
|
|
163
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Bruma Lavanda — Design Tokens v1.0
|
|
3
|
+
Sistema de diseño de Higinio Sosa · light-first
|
|
4
|
+
Fuente de verdad: DESIGN-bruma-lavanda.md
|
|
5
|
+
Uso: importar ANTES de cualquier estilo propio.
|
|
6
|
+
Los componentes consumen SOLO aliases semánticos, nunca hex.
|
|
7
|
+
============================================================ */
|
|
8
|
+
|
|
9
|
+
@import url("https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@600;700&family=Atkinson+Hyperlegible+Next:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Atkinson+Hyperlegible+Mono:wght@400;500&display=swap");
|
|
10
|
+
|
|
11
|
+
:root {
|
|
12
|
+
/* == Primitivos: primario (Lavanda) ==
|
|
13
|
+
Lavanda apagada, nunca violeta saturado. El acento no rellena áreas grandes:
|
|
14
|
+
solo controles, estados activos y anillos de foco. */
|
|
15
|
+
--primary-50: #e5e3f1; --primary-100: #d8d5ea; --primary-200: #bdb9da;
|
|
16
|
+
--primary-300: #9d99c4; --primary-400: #7c78a8; --primary-500: #5b578a;
|
|
17
|
+
--primary-600: #4d4979; --primary-700: #403d66; --primary-800: #35334f;
|
|
18
|
+
--primary-900: #2c2b38;
|
|
19
|
+
|
|
20
|
+
/* == Primitivos: neutrales (Niebla) == */
|
|
21
|
+
--neutral-0: #fbfbfd; --neutral-50: #f2f1f6; --neutral-100: #e9e8f0;
|
|
22
|
+
--neutral-200: #dedce8; --neutral-300: #b8b6c8; --neutral-400: #86849a;
|
|
23
|
+
--neutral-500: #5d5b6e; --neutral-600: #48475a; --neutral-700: #393846;
|
|
24
|
+
--neutral-800: #2c2b38; --neutral-900: #1f1e28;
|
|
25
|
+
|
|
26
|
+
/* == Primitivos: semánticos (ramp de 3: sólido / fondo / texto AA) ==
|
|
27
|
+
El éxito es verde azulado, lejos del acento lavanda: el acento nunca comunica éxito. */
|
|
28
|
+
--success-500: #2f7a68; --success-100: #dcefe9; --success-text: #235e50;
|
|
29
|
+
--warning-500: #b07f2a; --warning-100: #f5ecd9; --warning-text: #7a5716;
|
|
30
|
+
--danger-500: #b24c55; --danger-100: #f6e3e5; --danger-text: #8b3540;
|
|
31
|
+
--info-500: #4f7896; --info-100: #e1eaf1; --info-text: #3a5b74;
|
|
32
|
+
|
|
33
|
+
/* == Aliases semánticos (los componentes consumen SOLO esto) == */
|
|
34
|
+
--bg: var(--neutral-50);
|
|
35
|
+
--surface: var(--neutral-0);
|
|
36
|
+
--surface-alt: var(--neutral-100);
|
|
37
|
+
--border: var(--neutral-200);
|
|
38
|
+
--border-strong: var(--neutral-400);
|
|
39
|
+
--text-primary: var(--neutral-800);
|
|
40
|
+
--text-secondary: var(--neutral-600);
|
|
41
|
+
--text-muted: var(--neutral-500);
|
|
42
|
+
--text-disabled: var(--neutral-400);
|
|
43
|
+
--text-on-primary: #ffffff;
|
|
44
|
+
--text-on-primary-solid: var(--primary-700);
|
|
45
|
+
--accent: var(--primary-500);
|
|
46
|
+
--accent-hover: var(--primary-600);
|
|
47
|
+
--accent-active: var(--primary-700);
|
|
48
|
+
--accent-soft: var(--primary-50);
|
|
49
|
+
--accent-soft-strong: var(--primary-100);
|
|
50
|
+
--link: var(--primary-600); /* AA 7.98:1 sobre --surface — texto de links y ghost */
|
|
51
|
+
|
|
52
|
+
/* == Tipografía == */
|
|
53
|
+
--font-display: "Bricolage Grotesque", system-ui, sans-serif;
|
|
54
|
+
--font-body: "Atkinson Hyperlegible Next", system-ui, -apple-system, sans-serif;
|
|
55
|
+
--font-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace;
|
|
56
|
+
--text-xs: .75rem; --text-sm: .875rem; --text-base: 1rem; --text-lg: 1.125rem;
|
|
57
|
+
--text-xl: 1.25rem; --text-2xl: 1.5625rem; --text-3xl: 1.9375rem;
|
|
58
|
+
--text-4xl: 2.4375rem; --text-5xl: 3.0625rem;
|
|
59
|
+
--leading-xs: 1.5; --leading-sm: 1.5; --leading-base: 1.6; --leading-lg: 1.55;
|
|
60
|
+
--leading-xl: 1.4; --leading-2xl: 1.3; --leading-3xl: 1.25;
|
|
61
|
+
--leading-4xl: 1.15; --leading-5xl: 1.1;
|
|
62
|
+
--tracking-display: -0.02em; --tracking-body: 0; --tracking-label: 0.04em;
|
|
63
|
+
--weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700;
|
|
64
|
+
--measure: 65ch;
|
|
65
|
+
|
|
66
|
+
/* == Espaciado (escala base 4px; densidad algo compacta) == */
|
|
67
|
+
--space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
|
|
68
|
+
--space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
|
|
69
|
+
--space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;
|
|
70
|
+
--card-padding: var(--space-5); --card-padding-mobile: var(--space-4);
|
|
71
|
+
--section-gap: var(--space-12); --form-gap: var(--space-5);
|
|
72
|
+
--button-padding-md: 12px 20px; --button-padding-sm: 8px 14px;
|
|
73
|
+
--control-height-sm: 36px; --control-height-md: 44px; --control-height-lg: 52px;
|
|
74
|
+
--gutter: 24px; --gutter-mobile: 16px;
|
|
75
|
+
|
|
76
|
+
/* == Radios, bordes y sombras ==
|
|
77
|
+
La elevación se apoya en el borde; las sombras son mínimas y van
|
|
78
|
+
teñidas de la tinta, nunca negro puro. */
|
|
79
|
+
--radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px;
|
|
80
|
+
--radius-xl: 16px; --radius-full: 9999px;
|
|
81
|
+
--border-width: 1px;
|
|
82
|
+
--shadow-xs: 0 1px 1px rgba(44,43,56,.04);
|
|
83
|
+
--shadow-sm: 0 1px 2px rgba(44,43,56,.06);
|
|
84
|
+
--shadow-md: 0 2px 6px rgba(44,43,56,.07), 0 1px 2px rgba(44,43,56,.04);
|
|
85
|
+
--shadow-lg: 0 8px 20px rgba(44,43,56,.09), 0 2px 6px rgba(44,43,56,.05);
|
|
86
|
+
--shadow-xl: 0 16px 36px rgba(44,43,56,.12);
|
|
87
|
+
|
|
88
|
+
/* == Focus == */
|
|
89
|
+
--ring: 0 0 0 3px rgba(91,87,138,.25);
|
|
90
|
+
--ring-color: rgba(91,87,138,.25);
|
|
91
|
+
|
|
92
|
+
/* == Motion (corto y preciso) == */
|
|
93
|
+
--duration-instant: 100ms; --duration-fast: 140ms; --duration-base: 180ms;
|
|
94
|
+
--duration-slow: 240ms; --duration-page: 300ms;
|
|
95
|
+
--ease-out: cubic-bezier(0.2, 0, 0, 1);
|
|
96
|
+
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
97
|
+
--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); /* moverse de A a B en pantalla */
|
|
98
|
+
--ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
|
|
99
|
+
--stagger-step: 30ms;
|
|
100
|
+
|
|
101
|
+
color-scheme: light;
|
|
102
|
+
|
|
103
|
+
--overlay: rgba(31, 30, 40, .5);
|
|
104
|
+
--tooltip-bg: var(--neutral-900);
|
|
105
|
+
--tooltip-text: var(--neutral-0);
|
|
106
|
+
--focus-color: var(--accent);
|
|
107
|
+
--text-on-danger: var(--neutral-0);
|
|
108
|
+
--border-hover: var(--neutral-500);
|
|
109
|
+
--ring-danger: 0 0 0 3px rgba(178,76,85,.22);
|
|
110
|
+
|
|
111
|
+
--action-bg: var(--accent);
|
|
112
|
+
--action-hover: var(--accent-hover);
|
|
113
|
+
--action-active: var(--accent-active);
|
|
114
|
+
--text-on-action: var(--text-on-primary);
|
|
115
|
+
--control-border: var(--border-strong);
|
|
116
|
+
--placeholder: var(--text-muted);
|
|
117
|
+
--selection-bg: var(--action-bg);
|
|
118
|
+
--selection-text: var(--text-on-action);
|
|
119
|
+
--font-ui-heading: var(--font-body);
|
|
120
|
+
--text-ui-title: 2rem;
|
|
121
|
+
--touch-target: 44px;
|
|
122
|
+
--text-display-fluid: clamp(2.5rem, 1.8rem + 2.2vw, 4.25rem);
|
|
123
|
+
|
|
124
|
+
/* Series categóricas: orden estable; acompañar con etiqueta o forma. */
|
|
125
|
+
--chart-1: #857bc1;
|
|
126
|
+
--chart-2: #8a600a;
|
|
127
|
+
--chart-3: #4a8cc1;
|
|
128
|
+
--chart-4: #853f63;
|
|
129
|
+
--chart-5: #129a92;
|
|
130
|
+
--chart-6: #8e4031;
|
|
131
|
+
--chart-7: #5b975e;
|
|
132
|
+
/* Ritmo de contenido y formularios. */
|
|
133
|
+
--field-gap: 6px;
|
|
134
|
+
--heading-gap: var(--space-2);
|
|
135
|
+
--content-gap: var(--space-4);
|
|
136
|
+
--card-content-gap: var(--space-4);
|
|
137
|
+
--card-group-gap: var(--space-5);
|
|
138
|
+
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* == Modo oscuro (variante) — alternar data-theme en <html> ==
|
|
142
|
+
Sin sombras en las capas: se separan por superficie y borde, y solo
|
|
143
|
+
los overlays (lg/xl) conservan una sombra tenue. */
|
|
144
|
+
[data-theme="dark"] {
|
|
145
|
+
--bg: #16151c;
|
|
146
|
+
--surface: #1f1e27;
|
|
147
|
+
--surface-alt: #27262f;
|
|
148
|
+
--border: #2f2d3a;
|
|
149
|
+
--border-strong: #747189;
|
|
150
|
+
--text-primary: #e7e6ef;
|
|
151
|
+
--text-secondary: #c9c7d6;
|
|
152
|
+
--text-muted: #aaa8bb;
|
|
153
|
+
--text-disabled: #7b7990;
|
|
154
|
+
--accent: #b0acdc;
|
|
155
|
+
--accent-hover: #c4c1e6;
|
|
156
|
+
--accent-active: #9d98cf;
|
|
157
|
+
--accent-soft: #2b2940;
|
|
158
|
+
--accent-soft-strong: #36334f;
|
|
159
|
+
--text-on-primary: #16151c;
|
|
160
|
+
--text-on-primary-solid: #c4c1e6;
|
|
161
|
+
--link: #c4c1e6;
|
|
162
|
+
--success-500: #6cc1ad; --success-100: #13261f; --success-text: #8bd1c0;
|
|
163
|
+
--warning-500: #d6a752; --warning-100: #29220f; --warning-text: #e4c07f;
|
|
164
|
+
--danger-500: #e08890; --danger-100: #2c171a; --danger-text: #eba4ab;
|
|
165
|
+
--info-500: #8daecb; --info-100: #172129; --info-text: #a8c3da;
|
|
166
|
+
--ring: 0 0 0 3px rgba(176,172,220,.3);
|
|
167
|
+
--ring-color: rgba(176,172,220,.3);
|
|
168
|
+
--shadow-xs: none;
|
|
169
|
+
--shadow-sm: none;
|
|
170
|
+
--shadow-md: none;
|
|
171
|
+
--shadow-lg: 0 8px 20px rgba(8,8,12,.28);
|
|
172
|
+
--shadow-xl: 0 16px 32px rgba(8,8,12,.32);
|
|
173
|
+
color-scheme: dark;
|
|
174
|
+
|
|
175
|
+
--overlay: rgba(0, 0, 0, .6);
|
|
176
|
+
--tooltip-bg: #e7e6ef;
|
|
177
|
+
--tooltip-text: #1f1e28;
|
|
178
|
+
--focus-color: var(--accent);
|
|
179
|
+
--text-on-danger: #16151c;
|
|
180
|
+
--border-hover: #aaa8bb;
|
|
181
|
+
--ring-danger: 0 0 0 3px rgba(224,136,144,.25);
|
|
182
|
+
|
|
183
|
+
--selection-bg: var(--action-bg);
|
|
184
|
+
--selection-text: var(--text-on-action);
|
|
185
|
+
|
|
186
|
+
/* Series categóricas: orden estable; acompañar con etiqueta o forma. */
|
|
187
|
+
--chart-1: #877cc3;
|
|
188
|
+
--chart-2: #946a1c;
|
|
189
|
+
--chart-3: #5798ce;
|
|
190
|
+
--chart-4: #a0587c;
|
|
191
|
+
--chart-5: #2aa79e;
|
|
192
|
+
--chart-6: #aa5849;
|
|
193
|
+
--chart-7: #67a369;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* == Accesibilidad del movimiento == */
|
|
197
|
+
|
|
198
|
+
@media (prefers-reduced-motion: reduce) {
|
|
199
|
+
:root {
|
|
200
|
+
--duration-instant: 0ms; --duration-fast: 0ms; --duration-base: 0ms;
|
|
201
|
+
--duration-slow: 0ms; --duration-page: 0ms; --stagger-step: 0ms;
|
|
202
|
+
}
|
|
203
|
+
}
|