@higinio/design-mcp 0.1.0 → 0.1.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.
@@ -17,8 +17,9 @@
17
17
  --color-accent-300: #7dccf1;
18
18
  --color-accent-400: #52baed; /* acento principal — un CTA por pantalla */
19
19
  --color-accent-500: #2fa3dd;
20
- --color-accent-600: #1f87bb;
21
- --color-accent-700: #186a94;
20
+ --color-accent-600: #1f87bb; /* UI sobre claro (4.01:1) — nunca texto */
21
+ --color-accent-700: #186a94; /* texto de acción sobre claro (5.95:1) */
22
+ --color-accent-800: #12506f; /* hover del texto de acción en light (8.74:1) */
22
23
 
23
24
  --color-indigo-300: #7a83c4;
24
25
  --color-indigo-400: #565fa3;
@@ -33,6 +34,7 @@
33
34
  --color-night-700: #1e222d;
34
35
  --color-night-600: #2a2f3d;
35
36
  --color-night-500: #3d4354;
37
+ --color-night-450: #5f6575; /* texto atenuado en light */
36
38
  --color-night-400: #6b7183;
37
39
  --color-night-300: #9aa0b0;
38
40
  --color-night-200: #c5c9d4;
@@ -112,4 +114,8 @@
112
114
  --color-accent-brand: var(--accent-400);
113
115
  --color-on-accent: var(--text-on-accent);
114
116
  --color-link: var(--link);
117
+ --color-success: var(--success);
118
+ --color-warning: var(--warning);
119
+ --color-danger: var(--danger);
120
+ --color-info: var(--info);
115
121
  }
@@ -9,9 +9,12 @@
9
9
  @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
10
10
 
11
11
  :root {
12
- /* == Primitivos: acento (Celeste Eléctrico) == */
12
+ /* == Primitivos: acento (Celeste Eléctrico) ==
13
+ accent-600 sobre blanco da 4.01:1 — vale como UI (≥3) pero NO como texto (<4.5).
14
+ Para texto sobre claro se usa accent-700 (5.95:1) y accent-800 (8.74:1). */
13
15
  --accent-100: #d9f0fb; --accent-200: #a8ddf6; --accent-300: #7dccf1;
14
16
  --accent-400: #52baed; --accent-500: #2fa3dd; --accent-600: #1f87bb; --accent-700: #186a94;
17
+ --accent-800: #12506f;
15
18
 
16
19
  /* == Primitivos: índigo (Índigo Profundo) — nunca texto sobre negro == */
17
20
  --indigo-300: #7a83c4; --indigo-400: #565fa3; --indigo-500: #353d7c;
@@ -20,6 +23,7 @@
20
23
  /* == Primitivos: escala nocturna == */
21
24
  --night-950: #010203; --night-900: #0b0d12; --night-800: #14171f;
22
25
  --night-700: #1e222d; --night-600: #2a2f3d; --night-500: #3d4354;
26
+ --night-450: #5f6575; /* texto atenuado en light: night-400 caía a 4.27:1 sobre --surface-3 */
23
27
  --night-400: #6b7183; --night-300: #9aa0b0; --night-200: #c5c9d4;
24
28
  --night-100: #e8eaef; --night-50: #f6f7f9;
25
29
 
@@ -110,16 +114,18 @@
110
114
  --border-strong: #b9c3d1;
111
115
  --text-primary: #14171f;
112
116
  --text-secondary: #3d4354;
113
- --text-muted: #6b7183;
117
+ --text-muted: var(--night-450); /* no night-400: ese caía a 4.27:1 sobre --surface-3 */
114
118
  --text-disabled: #9aa0b0;
115
119
  --text-heading: #14171f;
116
- --link: #1f87bb;
117
- --link-hover: #186a94;
120
+ --link: #186a94; /* accent-700 · 5.95:1 sobre blanco — accent-600 solo daba 4.01:1 */
121
+ --link-hover: #12506f; /* accent-800 · en light el hover OSCURECE (en dark aclara) */
118
122
  --text-on-accent: #010203; /* CTA no cambia entre modos */
119
- --success: #15803d;
120
- --warning: #a16207;
121
- --danger: #c03535;
122
- --info: #1f87bb;
123
+ /* Semánticos de light: son a la vez relleno y TEXTO sobre su propio --*-bg tintado,
124
+ así que se calibran contra ese fondo, no contra blanco. */
125
+ --success: #166534;
126
+ --warning: #854d0e;
127
+ --danger: #b02c2c;
128
+ --info: #186a94;
123
129
  --success-bg: #e3f5ea; --warning-bg: #fbf3dd;
124
130
  --danger-bg: #fbe7e7; --info-bg: #e3f2fb;
125
131
  --accent-ghost-hover: rgba(31,135,187,.08);
@@ -79,7 +79,20 @@
79
79
  0.5804
80
80
  ],
81
81
  "hex": "#186a94"
82
- }
82
+ },
83
+ "$description": "Texto de acción sobre fondos claros (5.95:1 sobre blanco)"
84
+ },
85
+ "800": {
86
+ "$value": {
87
+ "colorSpace": "srgb",
88
+ "components": [
89
+ 0.0706,
90
+ 0.3137,
91
+ 0.4353
92
+ ],
93
+ "hex": "#12506f"
94
+ },
95
+ "$description": "Hover del texto de acción en modo claro (8.74:1 sobre blanco)"
83
96
  }
84
97
  },
85
98
  "indigo": {
@@ -208,6 +221,18 @@
208
221
  "hex": "#6b7183"
209
222
  }
210
223
  },
224
+ "450": {
225
+ "$value": {
226
+ "colorSpace": "srgb",
227
+ "components": [
228
+ 0.3725,
229
+ 0.3961,
230
+ 0.4588
231
+ ],
232
+ "hex": "#5f6575"
233
+ },
234
+ "$description": "Texto atenuado en modo claro (5.11:1 sobre --surface-3; night-400 solo daba 4.27:1)"
235
+ },
211
236
  "500": {
212
237
  "$value": {
213
238
  "colorSpace": "srgb",
package/dist/slop.js CHANGED
@@ -151,14 +151,14 @@ export function checkSlop(code, lang, mode = "light") {
151
151
  fix: "El glow es del elemento hero/CTA; máximo uno por pantalla." });
152
152
  }
153
153
  }
154
- // Borde lateral de acento en tarjetas. Exención: Toast y Alert usan border-left semántico de 3px por spec (§10.17).
154
+ // Borde lateral de acento en tarjetas. Exención: Toast (§10.17) y Alert (§10.16) usan border-left semántico de 3px por spec.
155
155
  for (const m of code.matchAll(/([^{}]*)\{([^}]*)\}/g)) {
156
156
  if (/toast|alert/i.test(m[1]))
157
157
  continue;
158
158
  if (accentSideBorder(m[2].toLowerCase())) {
159
159
  out.push({ level: "info", rule: "borde-acento-lateral", line: 0,
160
160
  message: "Borde lateral de acento en una superficie; tell de tarjeta de IA.",
161
- fix: "Reserva el border-left semántico para Toast y Alert (3px, §10.17); las tarjetas usan borde neutro completo." });
161
+ fix: "Reserva el border-left semántico para Toast (§10.17) y Alert (§10.16), 3px; las tarjetas usan borde neutro completo." });
162
162
  }
163
163
  }
164
164
  lines.forEach((line, i) => {
@@ -168,7 +168,7 @@ export function checkSlop(code, lang, mode = "light") {
168
168
  if (accentSideBorder(m[1].toLowerCase())) {
169
169
  out.push({ level: "info", rule: "borde-acento-lateral", line: i + 1,
170
170
  message: "Borde lateral de acento en una superficie; tell de tarjeta de IA.",
171
- fix: "Reserva el border-left semántico para Toast y Alert (3px, §10.17); las tarjetas usan borde neutro completo." });
171
+ fix: "Reserva el border-left semántico para Toast (§10.17) y Alert (§10.16), 3px; las tarjetas usan borde neutro completo." });
172
172
  }
173
173
  }
174
174
  });
package/package.json CHANGED
@@ -1,18 +1,40 @@
1
1
  {
2
2
  "name": "@higinio/design-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP server de los design systems de Higinio (Celeste Clásica y Nocturna Eléctrica).",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
7
7
  "author": "Higinio Sosa",
8
- "repository": { "type": "git", "url": "git+https://github.com/HiginioSosa/Diseno-Higinio.git", "directory": "mcp" },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/HiginioSosa/Diseno-Higinio.git",
11
+ "directory": "mcp"
12
+ },
9
13
  "homepage": "https://github.com/HiginioSosa/Diseno-Higinio#readme",
10
- "bugs": { "url": "https://github.com/HiginioSosa/Diseno-Higinio/issues" },
11
- "keywords": ["mcp", "design-system", "design-tokens", "celeste-clasica", "nocturna-electrica"],
12
- "bin": { "design-mcp": "dist/index.js", "design-lint": "dist/cli.js" },
13
- "files": ["dist", "assets"],
14
- "publishConfig": { "access": "public" },
15
- "engines": { "node": ">=20" },
14
+ "bugs": {
15
+ "url": "https://github.com/HiginioSosa/Diseno-Higinio/issues"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "design-system",
20
+ "design-tokens",
21
+ "celeste-clasica",
22
+ "nocturna-electrica"
23
+ ],
24
+ "bin": {
25
+ "design-mcp": "dist/index.js",
26
+ "design-lint": "dist/cli.js"
27
+ },
28
+ "files": [
29
+ "dist",
30
+ "assets"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "engines": {
36
+ "node": ">=20"
37
+ },
16
38
  "scripts": {
17
39
  "sync-assets": "tsx scripts/sync-assets.ts",
18
40
  "build": "tsc",