gp-dimm-city 1.7.3 → 1.7.4

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/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ cut a version that has no `## [X.Y.Z]` heading below.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.7.4] - 2026-10-15
11
+
12
+ ### Changed
13
+
14
+ - **Proxy and Wirephreak swap colours.** Proxy now takes the magenta (the more
15
+ purple of the two: `--brand-magenta` accent, `#9a1896` mid, `#8a1a90` dark,
16
+ a deep-magenta title band with a cream tier chip) and Wirephreak the electric
17
+ indigo (`--signal-indigo` accent, `#2f2290` mid, `#1e0f50` dark, an indigo
18
+ band and chip). Each keeps its own shapes and band register (Proxy's facet
19
+ plane, Wirephreak's ticked LED rule). The Surreal definition block keeps its
20
+ indigo-black surface, now read from `--wirephreak-dark`.
21
+ - **The design guide and tests run on Gutterpress 0.11.20-alpha.3** (a
22
+ development dependency only: the published package does not depend on
23
+ Gutterpress). Its preview repeats a table header only where print does
24
+ (dimm-city/gutterpress#398). The tests drop core's new `data-name` block
25
+ stamp before comparing markup, as they already drop its source stamps, and
26
+ read a column's alignment from `data-align`, which core now writes in place
27
+ of markdown-it's inline `text-align`.
28
+
10
29
  ## [1.7.3] - 2026-10-15
11
30
 
12
31
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gp-dimm-city",
3
- "version": "1.7.3",
3
+ "version": "1.7.4",
4
4
  "description": "Dimm City design system for Gutterpress: the markdown-it macros (@skill, @specialty, @learning-path, @callout, …), print stylesheets, design tokens, fonts and page templates the Dimm City TTRPG books are set in.",
5
5
  "type": "module",
6
6
  "main": "plugin.js",
@@ -70,7 +70,7 @@
70
70
  "pack:check": "npm pack --dry-run"
71
71
  },
72
72
  "devDependencies": {
73
- "gutterpress": "0.11.17",
73
+ "gutterpress": "0.11.20-alpha.3",
74
74
  "markdown-it": "^14.1.0"
75
75
  },
76
76
  "peerDependencies": {
@@ -691,7 +691,7 @@
691
691
  violet bands on opposite inner edges), the headword leaning. Body copy stays
692
692
  upright and unrotated; only the label leans. */
693
693
  .dc-definition-surreal {
694
- --dc-definition-block-surface: var(--proxy-dark); /* indigo-black */
694
+ --dc-definition-block-surface: var(--wirephreak-dark); /* indigo-black */
695
695
  --dc-definition-block-accent: var(--brand-magenta);
696
696
  --dc-definition-block-accent-width: 0px;
697
697
  --dc-definition-block-rule-bottom: 0px;
@@ -38,7 +38,7 @@
38
38
  --spec-accent/-mid/-dark the triad, aliasing its own --<name>-accent/-mid/-dark
39
39
  --spec-band / --spec-on-band the title-band fill and the type on it: the
40
40
  bright signal colour, with whichever of ink or
41
- cream holds >= 4.5:1 on it (wirephreak uses the
41
+ cream holds >= 4.5:1 on it (proxy uses the
42
42
  deep magenta: cream on the bright one is 3.6:1)
43
43
  --spec-chip-bg / -fg / -edge the tier pill on the card tab. REQUIRED: the
44
44
  --spec-* tokens have no :root default, so a
@@ -237,25 +237,25 @@
237
237
  --dc-specialty-card-bg: var(--paper-aged);
238
238
  }
239
239
 
240
- /* ── Wirephreak — hacker, cyan, asymmetric cross-cuts ──────────────────── */
240
+ /* ── Wirephreak — hacker, electric indigo, asymmetric cross-cuts ───────── */
241
241
  .dc-specialty.wirephreak {
242
242
  --spec-accent: var(--wirephreak-accent);
243
243
  --spec-mid: var(--wirephreak-mid);
244
244
  --spec-dark: var(--wirephreak-dark);
245
- --spec-ink: var(--brand-magenta-deep); /* text-safe ink: >= 4.5:1 on cream (skill card, path shell) and light (intro) paper; on aged paper only where this specialty's card uses it (technosorcerer, gutterdruid, etherlock). ROLL THE DIE! and the like */
246
- /* TECH: deep-magenta band, cyan LED rule with ink ticks, inset LED rim. */
247
- --spec-band: var(--brand-magenta-deep);
245
+ --spec-ink: var(--wirephreak-mid); /* text-safe ink: >= 4.5:1 on cream (skill card, path shell) and light (intro) paper; on aged paper only where this specialty's card uses it (technosorcerer, gutterdruid, etherlock). ROLL THE DIE! and the like */
246
+ /* TECH: electric-indigo band, cyan LED rule with ink ticks, inset LED rim. */
247
+ --spec-band: var(--wirephreak-accent);
248
248
  --spec-on-band: var(--paper-cream);
249
- --spec-chip-bg: var(--paper-cream);
250
- --spec-chip-fg: var(--wirephreak-dark);
251
- --spec-chip-edge: var(--wirephreak-dark);
249
+ --spec-chip-bg: var(--wirephreak-accent);
250
+ --spec-chip-fg: var(--paper-cream);
251
+ --spec-chip-edge: var(--paper-cream);
252
252
  --dc-band-rule: var(--brand-cyan);
253
253
  --dc-band-rule-h: 5px;
254
254
  --dc-band-tick: var(--ink);
255
255
  --dc-band-tick-style: dotted;
256
256
  --dc-band-tick-w: 3px;
257
- --dc-band-rim: inset 0 2px 0 color-mix(in srgb, var(--paper-cream) 26%, var(--brand-magenta-deep));
258
- --dc-band-reg: inset 0 -2px 0 var(--brand-magenta); /* a second ink printed 2px off: a misregistered rule */
257
+ --dc-band-rim: inset 0 2px 0 color-mix(in srgb, var(--paper-cream) 22%, var(--wirephreak-accent));
258
+ --dc-band-reg: inset 0 -2px 0 var(--signal-indigo); /* a second ink printed 2px off: a misregistered rule */
259
259
  /* TECH, circuit jogs: two big right-angle steps on the diagonal corners. */
260
260
  --spec-edge-top: 0 0, calc(100% - 26px) 0, calc(100% - 26px) 10px, calc(100% - 13px) 10px, calc(100% - 13px) 20px, 100% 20px;
261
261
  --spec-edge-rest: 100% calc(100% - 10px), calc(100% - 10px) 100%, 22px 100%, 22px calc(100% - 6px), 11px calc(100% - 6px), 11px calc(100% - 12px), 0 calc(100% - 12px);
@@ -301,24 +301,24 @@
301
301
  --dc-specialty-card-bg: var(--paper-light);
302
302
  }
303
303
 
304
- /* ── Proxy — faith wired in, electric indigo, top-centre gate notch ──── */
304
+ /* ── Proxy — faith wired in, magenta, top-centre gate notch ──────────── */
305
305
  .dc-specialty.proxy {
306
306
  --spec-accent: var(--proxy-accent);
307
307
  --spec-mid: var(--proxy-mid);
308
308
  --spec-dark: var(--proxy-dark);
309
- --spec-ink: var(--proxy-mid); /* text-safe ink: >= 4.5:1 on cream (skill card, path shell) and light (intro) paper; on aged paper only where this specialty's card uses it (technosorcerer, gutterdruid, etherlock). ROLL THE DIE! and the like */
310
- /* TECH + MAGIC: electric-indigo band (its own hue; violet is the world's) with a faceted plane and a cyan LED rule. */
311
- --spec-band: var(--proxy-accent);
309
+ --spec-ink: var(--brand-magenta-deep); /* text-safe ink: >= 4.5:1 on cream (skill card, path shell) and light (intro) paper; on aged paper only where this specialty's card uses it (technosorcerer, gutterdruid, etherlock). ROLL THE DIE! and the like */
310
+ /* TECH + MAGIC: deep-magenta band (cream on the bright magenta is 3.6:1) with a faceted plane and a cyan LED rule. */
311
+ --spec-band: var(--brand-magenta-deep);
312
312
  --spec-on-band: var(--paper-cream);
313
- --spec-chip-bg: var(--proxy-accent);
314
- --spec-chip-fg: var(--paper-cream);
315
- --spec-chip-edge: var(--paper-cream);
313
+ --spec-chip-bg: var(--paper-cream);
314
+ --spec-chip-fg: var(--proxy-dark);
315
+ --spec-chip-edge: var(--proxy-dark);
316
316
  --dc-band-rule: var(--brand-cyan);
317
317
  --dc-band-rule-h: 4px;
318
- --dc-band-facet: color-mix(in srgb, var(--ink) 30%, var(--proxy-accent));
318
+ --dc-band-facet: color-mix(in srgb, var(--ink) 30%, var(--brand-magenta-deep));
319
319
  --dc-band-facet-width: 30%;
320
- --dc-band-rim: inset 0 2px 0 color-mix(in srgb, var(--paper-cream) 22%, var(--proxy-accent));
321
- --dc-band-reg: inset 0 -2px 0 var(--signal-indigo); /* a second ink printed 2px off: a misregistered rule */
320
+ --dc-band-rim: inset 0 2px 0 color-mix(in srgb, var(--paper-cream) 26%, var(--brand-magenta-deep));
321
+ --dc-band-reg: inset 0 -2px 0 var(--brand-magenta); /* a second ink printed 2px off: a misregistered rule */
322
322
  /* TECH + MAGIC: a shallow centre gate on top (the rune), a stair at one corner and a facet at the other. */
323
323
  --spec-edge-top: 0 0, calc(50% - 22px) 0, 50% 7px, calc(50% + 22px) 0, calc(100% - 14px) 0, 100% 14px;
324
324
  --spec-edge-rest: 100% calc(100% - 12px), calc(100% - 10px) calc(100% - 12px), calc(100% - 10px) calc(100% - 6px), calc(100% - 20px) calc(100% - 6px), calc(100% - 20px) 100%, 12px 100%, 0 calc(100% - 12px);
@@ -8,17 +8,17 @@
8
8
  ──────────────────────────────────────────────────────────────────────── */
9
9
 
10
10
  /* ── Specialty Accent Colors ──────────────────────────────────────────── */
11
- /* 4 brand-anchored (augmerc=cyan, wirephreak=magenta, proxy=indigo, etherlock=yellow),
11
+ /* 4 brand-anchored (augmerc=cyan, proxy=magenta, wirephreak=indigo, etherlock=yellow),
12
12
  2 crystal (dualist=aqua, generalist=slate), 1 fungi (gutterdruid=bioluminescent rot),
13
13
  3 bespoke creaturepunk hues (technosorcerer=burnt orange, streetwarden=toxic-civic hazard green,
14
14
  cybersurgeon=chrome). Streetwarden's #4db840 is high-vis civic hazard, distinct from the
15
15
  quieter lichen tone; gutterdruid is the alive-and-glowing spore. */
16
16
  --augmerc-accent: var(--brand-cyan); /* cyber-augmentation = brand neon-cyan */
17
- --proxy-accent: var(--signal-indigo); /* ritual + tech = electric indigo, its own hue (violet is the world's) */
17
+ --proxy-accent: var(--brand-magenta); /* ritual + tech = brand-signature magenta, the more purple of the two (swapped with wirephreak) */
18
18
  --streetwarden-accent: #4db840; /* toxic civic green — hazard, not park bench · TAC 171% (C70 M0 Y100 K0) */
19
19
  --gutterdruid-accent: var(--fungi-glow); /* bioluminescent spore — alley fungus at full flare */
20
20
  --cybersurgeon-accent: #a8b4b8; /* cool blue-gray chrome · TAC 79% (C34 M22 Y23 K0) */
21
- --wirephreak-accent: var(--brand-magenta); /* signal interference = brand-signature magenta */
21
+ --wirephreak-accent: var(--signal-indigo); /* signal interference = electric indigo, its own hue (violet is the world's) */
22
22
  --technosorcerer-accent: var(--orange); /* burnt-circuit orange */
23
23
  --etherlock-accent: var(--brand-yellow); /* spirit channeling = brand radiant gold */
24
24
  --dualist-accent: var(--crystal-aqua); /* refractive mineral split — two-path walker */
@@ -28,13 +28,13 @@
28
28
  Measured TAC (see the Ink & Text note in dc-palette.css), all <= 268%. Six
29
29
  were lifted off black to get there; each was over 270% in the build's
30
30
  CGATS21_CRPC1 conversion: technosorcerer #3d1a00 (278%), streetwarden #1a3d10
31
- (280%), gutterdruid #2a3408 (276%), proxy #150c4a (275%),
31
+ (280%), gutterdruid #2a3408 (276%), wirephreak (then proxy) #150c4a (275%),
32
32
  etherlock #3d3000 (272%), generalist #1c252d (272%). The hue and the
33
33
  light-type contrast (cream on any of them is >= 8:1) are unchanged. */
34
34
  --augmerc-dark: #003a40; /* deep teal-black — cold chrome under the skin · TAC 260% (C92 M59 Y58 K50) */
35
- --proxy-dark: #1e0f50; /* deep indigo-black · TAC 268% (C99 M100 Y30 K39) */
35
+ --proxy-dark: #8a1a90; /* deep magenta-violet · TAC 156% (C55 M100 Y1 K0) */
36
36
  --cybersurgeon-dark: #303840; /* cold clinical near-black · TAC 246% (C76 M65 Y55 K50) */
37
- --wirephreak-dark: #8a1a90; /* deep magenta-violet · TAC 156% (C55 M100 Y1 K0) */
37
+ --wirephreak-dark: #1e0f50; /* deep indigo-black · TAC 268% (C99 M100 Y30 K39) */
38
38
  --streetwarden-dark: #294c1f; /* rot-soaked forest dark · TAC 268% (C77 M44 Y100 K46) */
39
39
  --technosorcerer-dark: #4c290f; /* near-black scorch · TAC 268% (C44 M73 Y89 K62) */
40
40
  --gutterdruid-dark: #394017; /* swamp-rot dark — greenish, not brown · TAC 268% (C65 M52 Y97 K54) */
@@ -47,11 +47,11 @@
47
47
  dark, slightly shifted toward the dark hue. Used wherever a specialty
48
48
  needs a chrome/structural tone that isn't accent-glare or dark-mass. */
49
49
  --augmerc-mid: #006878; /* drowned signal teal · TAC 193% (C89 M46 Y43 K15) */
50
- --proxy-mid: #2f2290; /* ritual indigo midpoint · TAC 202% (C97 M100 Y4 K1) */
50
+ --proxy-mid: #9a1896; /* between brand-magenta and proxy-dark · TAC 146% (C46 M100 Y0 K0) */
51
51
  --cybersurgeon-mid: #606870; /* cool steel mid · TAC 176% (C64 M52 Y45 K16) */
52
52
  --streetwarden-mid: #347828; /* civic green mid, not chartreuse · TAC 227% (C80 M30 Y100 K17) */
53
53
  --gutterdruid-mid: #4d6020; /* olive-swamp lichen · TAC 240% (C66 M42 Y100 K32) */
54
- --wirephreak-mid: #9a1896; /* between brand-magenta and wirephreak-dark · TAC 146% (C46 M100 Y0 K0) */
54
+ --wirephreak-mid: #2f2290; /* signal indigo midpoint · TAC 202% (C97 M100 Y4 K1) */
55
55
  --technosorcerer-mid: #7a3008; /* burnt umber, between scorch-orange and dark · TAC 253% (C31 M84 Y100 K38) */
56
56
  --etherlock-mid: #8a6a00; /* tarnished antique gold · TAC 211% (C40 M51 Y100 K20) */
57
57
  --dualist-mid: #2a6878; /* drowned mineral aqua — between crystal-aqua and sapphire-trench · TAC 188% (C84 M48 Y42 K15) */
@@ -57,7 +57,7 @@
57
57
  --brand-cyan: #00bcd4; /* dimm.city neon-cyan, paper-contrast-tuned from web #00ffff · TAC 87% (C70 M1 Y16 K0) */
58
58
  --brand-yellow: #ffd700; /* dimm.city brand-yellow — survives press unchanged · TAC 114% (C1 M13 Y100 K0) */
59
59
  --brand-violet: #7030b8; /* dimm.city cyber-violet, SWOP-corrected from web #a020f0 — "the world" (lore, vibe, cabal, treasure); no specialty uses it · TAC 156% (C69 M87 Y0 K0) */
60
- --signal-indigo: #4430e0; /* electric indigo, a blue-violet clear of --brand-violet: the proxy's own hue. cream on it 6.5:1 · TAC 159% (C81 M78 Y0 K0) */
60
+ --signal-indigo: #4430e0; /* electric indigo, a blue-violet clear of --brand-violet: the wirephreak's own hue. cream on it 6.5:1 · TAC 159% (C81 M78 Y0 K0) */
61
61
 
62
62
  /* ── HUD Colors — digital neon chrome ────────────────────────────────── */
63
63
  --hud-blue: #1f6f94; /* teal-cyan mid HUD · TAC 167% (C87 M50 Y26 K4) */