gp-dimm-city 1.6.3 → 1.7.0-alpha.2

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,241 @@ cut a version that has no `## [X.Y.Z]` heading below.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.7.0] - 2026-10-15
11
+
12
+ A redesign pass by component family. A reader should know what kind of box they
13
+ are looking at from its silhouette, fill value and colour before reading a word,
14
+ and every variant is told apart in grayscale as well as in colour (value, edge
15
+ and label, never hue alone). Magenta is display punch only (chevrons, spray
16
+ titles, pull quotes, `ROLL THE DIE!`, the VAR chip, the default panel accent);
17
+ the other roles are HUD blue for player rules and look-ups, cyan on ink for the
18
+ Dream Master only, hazard yellow with ink for danger and choices, blood and rust
19
+ for harm and cost, violet for the world, fungi green for the organic. The
20
+ constitution is revised to match: §II adds the colour roles and the grayscale
21
+ rule, §V and §VI set a 10pt type floor, §VII describes the
22
+ new components, and §IX narrows the Pass 6/7/8 bans to specialty cards and
23
+ reading surfaces.
24
+
25
+ A second pass, from review of 1.7.0-alpha.1, set a 10pt type floor for all
26
+ text, took every word off the brick wall, tied shape to meaning and added a
27
+ little grit.
28
+
29
+ ### Added
30
+
31
+ - **`@page specialty-catalog`**: the specialty catalog is a designed two-page
32
+ spread. It opens on a left page; the title, the lede and four cards fill the
33
+ left page and six the right, in aligned rows of equal height. Each card is a
34
+ poster: portrait on top in an ink mat cut to its specialty's silhouette,
35
+ name, tagline, pitch and an index chip. Snippet *Specialty Catalog Page*.
36
+ - **`@definition lucid` and `@definition surreal`**: the two roll states drawn
37
+ as opposites. Lucid is a light, machined, upright sheet in a blue frame;
38
+ Surreal is an inverted violet-black sheet with a skewed torn edge,
39
+ off-register inks and a leaning headword.
40
+ - **No text on the wall.** On wall pages free-standing text gets a substrate
41
+ with no markup: a `#` title is an accent banner, `##` a pasted paper slip
42
+ (accent rail, dashed foot, tape), `###` a plain slip, `####` and below a
43
+ label slip, and loose paragraphs, lists and quotes share one paper sheet per
44
+ run. A bare `@section` is a paper sheet; flavor lines and the spec tweak sit
45
+ on paper strips; the Citizen File running head is an amber tab. Tokens
46
+ `--dc-page-slip-*`, `--dc-page-sheet-pad`, `--dc-page-title-ink`,
47
+ `--dc-flavor-bg`.
48
+ - **Grit**, vector and opaque, on edges and labels only: chipped corners,
49
+ tape strips, misregistered second-ink rules (`--dc-band-reg` on the tech
50
+ specialties), worn stamp rings, torn feet, a staple on the procedure plate.
51
+ - **`--dc-accent-ink`**: the text-safe ink of the component you are in. Every
52
+ alert, section kind, block, card, faction, entry, table and specialty sets
53
+ it; chapter accents flow through.
54
+
55
+ ### Changed
56
+
57
+ - **Type floor: 10pt for all text**, chips, tabs, tier pills, AP chips,
58
+ badges, stamps, folio and chapter chips, stickers and labels included. New
59
+ token `--fs-floor` (10pt); `--fs-h6` is the floor (was 9pt). Chrome that
60
+ grew was refitted so nothing wraps or clips; a five-step sticker chain may
61
+ now wrap to two rows.
62
+ - **ROLL THE DIE! takes the colour of its component** (deep magenta in a
63
+ magenta panel, blood in a blood box, the specialty's ink on a skill card).
64
+ `--dc-roll-the-die-color` is replaced by `--dc-accent-ink`.
65
+ - **Fiction is a cavity.** `@fiction-excerpt` is an aged page sunk into a
66
+ ragged hole in the wall: a dark torn rim, a hard shadow down the top and
67
+ left, a lit lip at the bottom and right, deeper on a chapter opener. New
68
+ tokens `--dc-fiction-depth`, `-depth-bg`, `-cavity`, `-lip`, `-rim`,
69
+ `-hole`; `--dc-fiction-lift` and `-lift-bg` are removed.
70
+ - **Shape carries meaning.** Player rules and look-ups are machined chamfers;
71
+ Dream-Master-only boxes are file folders (the `dm` section's tab carries the
72
+ words, replacing its chip); danger and enforcement are sign plates; lore and
73
+ cabal long asymmetric slashes; fiction, backstory, cult and flaws torn;
74
+ choices ticket notches; gear tags; magic facets; organic boxes wobble. The
75
+ seven alerts, every section kind, block, choice card, faction, entry, table
76
+ and all ten specialties are re-cut to match, and every clipped edge is
77
+ padded clear of its cut by 2pt or more.
78
+ - **Folio and chapter chips** are fixed-height boxes with their type centred,
79
+ on recto and verso. The chapter chip is a stamped coupon with a perforated
80
+ edge, replacing the dashed outline.
81
+
82
+ - **Alerts: seven registers, seven silhouettes.** Each has its own fill value,
83
+ edge and label, and bodies are upright (only vibe and origin stay italic).
84
+ - note: the calm HUD-blue panel with a blue rail, as before.
85
+ - warning: a light cream hazard sign: a yellow and black stripe rail, an ink
86
+ frame and a yellow caution-tape label. It signals consequence.
87
+ - dm: an ink slab with a cyan rail and a cyan chip. It signals the Dream Master
88
+ only.
89
+ - vibe: a barely violet flat sheet in one dashed violet edge, italic, with no
90
+ rail: the world's voice, not a slab.
91
+ - origin: warm paper, a rust rail, a dog-eared corner and a crimson rubber-stamp
92
+ label: second-person backstory.
93
+ - visit: a fungi-green signpost with a map-pin label: a place.
94
+ - example: a dashed cyan rail with a taped-on label.
95
+ New tokens `--dc-alert-frame`, `-label-bg` and `-label-pad` carry the frame
96
+ and label chrome. The hazard rail, the dog-ear fold, the spray stencil line and
97
+ the NPC card foot are drawn in vector (dashed borders and clip-path), because
98
+ gradients are dropped or rasterised in PDF/X. The DM and visit bodies are
99
+ semibold (reversed type).
100
+ - **Section kinds read from their bar and sheet.** Panel keeps the solid accent
101
+ bar on cream (magenta by default, the only kind a chapter re-themes); reference
102
+ a pale HUD band; lore a deep violet bar over a lilac sheet; dm an ink bar with a
103
+ cyan rule, a cyan rail and a Dream Master chip (cyan on ink is now the Dream
104
+ Master's alone), with a strip of its own when it has no heading. `choose` is a
105
+ printed form, not a panel: a paper sheet a hair lighter than cream, a dashed ink
106
+ edge, no bar or cut corners, an ink title over a double rule, heavy ink tick
107
+ boxes, dotted write-in rules and a yellow *Your choice* stamp. The title bar is
108
+ one rule reading new tokens (`--dc-section-bar-mix` / `-bar-tone` / `-bar-fg` /
109
+ `-bar-rule` / `-bar-rule-sub`, and `--dc-section-flag`); each kind sets them
110
+ instead of repainting the bar, and so does the catalog. A block's band reads
111
+ `--dc-block-title-rule` and `--dc-block-tag`.
112
+ - **Blocks: three registers.** `@block panel` stays HUD blue; `slate` is an ink
113
+ body under a blood band with a stamped *Binding* tag (not magenta, not the
114
+ Dream Master's cyan); `shard` is light zine paper with a torn foot and a taupe
115
+ label strip, no accent hue.
116
+ - **Choice cards say which choice they are.** A Flaw is blood with a cracked edge,
117
+ an Ideal HUD blue with a steady tablet shape, a Dream violet with a rising edge,
118
+ each with a one-word chip and a kind-tinted quote. The kind sets
119
+ `--dc-choice-accent`, `-surface`, `-tint` and `-kind`, and a card inside them
120
+ reads them (the choice chrome is scoped to `@flaws`/`@ideals`/`@dreams`, so a
121
+ gear entry or a faction keeps the plain card).
122
+ The card name is the first `####`; the docs and snippets say `####` throughout.
123
+ - **Factions have their own silhouettes.** Megacorp a hard blue rectangle with a
124
+ cyan-edged band, cabal violet with long corner cuts, cult blood and torn, enforcer
125
+ an octagon with a hazard-stripe band and a yellow name label. The bands are
126
+ vector (solid inset shadows; the enforcer's tape is a skewed dashed border), not
127
+ gradients. New tokens `--dc-faction-surface`, `-band` (a box-shadow list),
128
+ `-band-height`, `-pad-bottom`, `-badge-shape`, `-title`, `-title-bg` and
129
+ `-title-pad`.
130
+ - **A creature's stat line is a chip.** The first line of an `@npc-stat`'s primary
131
+ stat paragraph is set 12pt bold, cream on the block's colour (`::first-line`, no
132
+ markup); the rest falls under it as a small-caps tag.
133
+ - **Entry cards differ by silhouette, surface and badge.** Gear is a hang tag
134
+ (a paper card in a heavy ink frame, an eyelet, a rust rail), an augment a spec
135
+ chip (a stepped notch, a cyan rule), treasure a gem (an octagon cut, a facet), a
136
+ vehicle an industrial plate (a dotted seam of rivets, a yellow badge), a drug a
137
+ prescription label (the one rounded shape, an *Rx · Drug* pill). Every mark is a
138
+ solid fill, border or clip, so it prints as vector in PDF/X (no gradients). New
139
+ tokens `--dc-entry-radius`, `-ornament`, `-orn-inset`, `-orn-bg`, `-orn-border`,
140
+ `-orn-clip`, `-orn-z`, `-frame` and `-badge-bg`, `-badge-fg`, `-badge-shape`,
141
+ `-badge-radius`. Chips and tags never hyphenate. Field labels share one chip: effects are a solid teal frame
142
+ with a +, side effects a dashed blood frame with a – (`--dc-field-edge-width`,
143
+ `-edge-style`).
144
+ - **Catalog entries are kept whole.** An entry never splits across a column or a
145
+ page (the catalog itself still splits between entries), and its title bar is a
146
+ ledger band with an INVENTORY chip instead of an accent bar.
147
+ - **Procedure is off the wall.** `@procedure` is an instruction plate: a cream
148
+ sheet with an ink frame and a hard shadow, a solid HUD-blue number strip, step
149
+ text in ink and dashed dividers (`--dc-steps-accent`, `--dc-steps-surface`).
150
+ - **At-a-glance has a hierarchy.** The tile is a reversed label band over a large
151
+ value, with an ink frame and a hard shadow (`--dc-at-a-glance-accent`, `-value`).
152
+ The outcome ladder's chip column is `max(130px, 26%)` (`--dc-outcome-key-col`)
153
+ so long band names wrap cleanly.
154
+ - **Definition is a dictionary page,** not a tinted note: cream, a heavy rule over
155
+ it, the term set first as a blue headword; the shape is `none` by default.
156
+ - **The lede is the opening statement.** Upright semibold ink type at 13pt on a
157
+ light panel (lighter than the wall) with a heavy accent rail and an ink foot rule
158
+ (`--dc-intro-color`, `-size`, `-weight`, `-style`, `-rail`, `-rule`). Flavor is a
159
+ rail and no box, in ink-dark. Contents and credits ledes keep body size.
160
+ - **NPC flavor lines** are a ruled line, not a box.
161
+ - **Chrome.** `.dc-tag` is an inline chip with a hard edge and an ink hairline
162
+ (`--dc-tag-bg`, `-fg`, `-border`); `.dc-tape` is masking tape with torn ends and
163
+ ink edges (`--dc-tape-shape`); `.dc-spray` is a stencil tag with a stepped edge
164
+ and a dashed stencil line (`--dc-spray-stencil`) against the chevron's deep
165
+ banner; the spec tweak fits one line; the NPC sidebar is a contact card with a
166
+ blue ID band and a dashed strip foot.
167
+ - **Specialties are told apart.** The title bands (path banner and specialty-intro
168
+ title) are each specialty's own signal colour with its own register: an LED rim
169
+ and a rule of LED dots on the tech specialties, a facet plane on the magic ones, a
170
+ hazard-tape rule on Streetwarden, a torn bottom edge on Proxy and Gutterdruid, all
171
+ drawn as solid fills, dotted/dashed borders and clip-paths (no gradient, so they
172
+ survive PDF/X). New tokens `--dc-band-rule`, `-rule-h`, `-tick`, `-tick-style`,
173
+ `-tick-w`, `-rule-skew`, `-rule-bleed`, `-facet`, `-facet-width`,
174
+ `-facet-clip` and `-rim`, and `--dc-path-code-*`, `--dc-path-chip-*`,
175
+ `--dc-path-note-rail`. A path with no subtitle is the band alone.
176
+ - **The tier pill is the specialty's own.** `--dc-tier-bg`, `-fg` and `-edge`,
177
+ set per specialty, replace the bronze, gold and silver by position (the
178
+ `--tier-*` tokens are gone).
179
+ - **AP chips differ in grayscale.** Free is an unlit LED, a grey lens with a hollow
180
+ lamp and an ink edge (it was the same blood red as increased), reduced is pale
181
+ blue with a drawn down triangle, increased blood with a drawn up triangle (CSS
182
+ shapes, not font glyphs), VAR deep magenta (cream on the bright one was 4.06:1),
183
+ special amber with cream type.
184
+ - **Technosorcerer and Generalist leave violet.** Violet is the world's colour
185
+ (lore, vibe, cabal, treasure), so the Technosorcerer is now electric indigo
186
+ (`--signal-indigo`) and the Generalist cool slate (`--crystal-slate`), with new
187
+ mid and dark tones. Proxy's band is a shade lighter so ink on it holds 4.5:1.
188
+ - **New neutrals.** `--paper-form` (the `choose` sheet) and `--paper-zine` (the
189
+ fiction excerpt and shard sheets).
190
+
191
+ ### Fixed
192
+
193
+ - The learning-path title band lines up with the path frame's top-right cut
194
+ for every specialty: it spans the frame and is cut from the same point list,
195
+ where it stopped 12px short.
196
+ - The design guide's heading specimens sit on paper, not on brick.
197
+ - Footer chips no longer touch content: body pages have a 1in bottom margin
198
+ and the folio and chapter chips sit 0.125in below the text. The chapter
199
+ chip takes the chapter's colour (named pages `dc-chip-<hue>`) and lost a
200
+ stray notch.
201
+ - The `dm` section's folder tab stays with its box when the section splits
202
+ across a page; it had left cyan type on grey paper.
203
+ - The page-level wall-text rules skip components (`[class*="dc-"]`), so a
204
+ `@procedure`, `@lede` or `@toc` placed straight on a page keeps its look.
205
+ - Reversed type is semibold: slate and Surreal bodies, skill-tab names. Cream
206
+ on the default magenta bar is 4.7:1 (`--dc-section-bar-mix` 90%); outcome
207
+ band names are at least 4.5:1.
208
+ - Flaw, Ideal and Dream cards differ in grayscale (edge style, fill value,
209
+ silhouette depth); `reference`, `lore`, `panel` and `dm` title bars differ
210
+ in treatment, not only colour.
211
+ - A wrapped learning-path sticker chain never ends a line on its arrow.
212
+ - Heading slips keep with what follows, prose sheets take orphans and widows
213
+ of 3, and `###`/`####` slips hang offset (`--dc-page-slip-gap`,
214
+ `-slip-offset`, `--dc-heading-gap`).
215
+ - `--dc-accent-ink` is documented and tested as a per-component context
216
+ token, the one exception to the token convention.
217
+ - Tests guard the 10pt floor, the context-token allow-list, page-level
218
+ components and the Lucid/Surreal variants.
219
+
220
+ - **Contrast and type.** The special AP chip (ink on amber, 3.5:1), the tier pills
221
+ (accent fails 4.5:1 for 9px type on Augmerc and Proxy), the learning-path
222
+ subtitle (ink-smoke on `--paper-stain`, 3.4:1), the Augmerc title band (cream on
223
+ bright magenta, 3.6:1) now pass 4.5:1, and the NPC flavor line is a ruled line on the paper instead of italic on a grey box. The DM alert
224
+ body is upright instead of 9pt italic.
225
+ - **A chapter no longer repaints the alerts.** The Dream Mastery chapter's override
226
+ turned every alert grey-brown and rust in Part 2; the alert identity now survives
227
+ re-theming. Its DM panel heading was ink on ink (an empty-looking bar) and is
228
+ readable.
229
+ - **Names stay on one line where they can.** An NPC name in a two-column run,
230
+ a catalog entry name and TECHNOSORCERER on its specialty card no longer wrap
231
+ mid-name or orphan a letter.
232
+ - **Empty strips are gone.** A learning path with no subtitle or stickers is the
233
+ band alone, not a band over an empty well.
234
+ - **The design guide's choice-card snippets work.** They wrote `### Name`, which
235
+ core does not turn into the card heading (only the first `####` is); they now
236
+ write `####`. The Part 2 Fodder description sat between the quote and the stat
237
+ lines and was set as a stat line; it is now inside the quote.
238
+ - **README example.** The author-override example set `--dc-alert-accent`, a token
239
+ that does not exist; it now sets `--dc-section-accent` on `.dc-section-panel`.
240
+
241
+ ### Removed
242
+
243
+ - **The highlight skill-card variant** (`#### Name | Tier | highlight`, `@skill {.dc-highlight}`) is gone, and the guide no longer describes a capstone skill: the game has none. A third `|` part in a skill heading is ignored.
244
+
10
245
  ## [1.6.3] - 2026-10-12
11
246
 
12
247
  Content and markers by default, overrides when wanted: the defaults now do more,
package/README.md CHANGED
@@ -76,8 +76,11 @@ package renders and prints; `docs/macros.md` is the full inventory and
76
76
 
77
77
  The named components are also words on `@section` (`@npc-stat` is
78
78
  `@section npc`, `@fiction-excerpt` is `@section fiction`); either spelling
79
- renders the same. `reference`, `lore`, `dm` and `choose` are words only: panels
80
- that say what kind of text they hold. Write the content and the marker that says
79
+ renders the same. `reference`, `lore`, `dm` and `choose` are words only: boxes
80
+ that say what kind of text they hold, each by its own bar, sheet and silhouette
81
+ (`choose` is a form, not a panel). Every variant, in every family, is told apart
82
+ in colour and in grayscale, so a chapter re-tunes a panel's accent but never
83
+ repaints an alert, a faction or a choice card. Write the content and the marker that says
81
84
  what it is: the defaults set how it looks and where it breaks (sections split
82
85
  across pages, a catalog too, and a creature and a callout stay whole). A page
83
86
  or chapter word draws no box of its own: it re-tunes the sections inside it. To
@@ -209,7 +212,7 @@ the package on every update. Reset the component's public tokens on a context
209
212
  selector instead:
210
213
 
211
214
  ```css
212
- .chapter-05 .dc-alert { --dc-alert-accent: var(--hud-blue); }
215
+ .chapter-05 .dc-section-panel { --dc-section-accent: var(--hud-blue); }
213
216
  ```
214
217
 
215
218
  The tokens each component exposes are listed under `tokens:` in