gp-dimm-city 1.7.0-alpha.7 → 1.7.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,45 @@ cut a version that has no `## [X.Y.Z]` heading below.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.7.2] - 2026-10-15
11
+
12
+ No package rule counts a book's rows or blocks any more: a threshold like
13
+ "four blocks or fewer" or "12 rows or more" only holds for the content it was
14
+ measured on, so it belongs in that book's own sheet.
15
+
16
+ ### Removed
17
+
18
+ - **The 1.7.1 long-choose-table rule** (`.dc-section-choose > table:has(> tbody
19
+ > tr:nth-child(12))`). Tables are kept whole again, as in 1.7.0. A book with a
20
+ table taller than the page under its heading lets that one split from its own
21
+ sheet, e.g. `.dc-flaws > table { break-inside: auto; }` for the Field Guide's
22
+ Flaw table.
23
+ - **The panel break rules that counted blocks** (`components/section.css`,
24
+ "Where a panel may break"): a panel of four blocks or fewer kept whole, and a
25
+ panel of five or more keeping its 2nd block with its 3rd and its last block
26
+ with the one above. A panel now splits where the page ends; its heading still
27
+ stays with the block under it, and text still keeps 3 orphans and 3 widows.
28
+ A book that wants the 1.7.1 behaviour copies the three rules into its own
29
+ sheet; the design guide does (`design-guide/styles/guide.css` §7).
30
+
31
+ ### Changed
32
+
33
+ - **A skill card's opening** is written `:first-child, :first-child + *`
34
+ instead of `:nth-child(-n+2)`. Same rule: the flavor line and the block
35
+ after it stay with what follows.
36
+
37
+ ## [1.7.1] - 2026-10-15
38
+
39
+ ### Fixed
40
+
41
+ - **A long table of choices splits between rows.** A table of 12 rows or more
42
+ in a `choose` section (`@flaws`, `@ideals`, `@section choose`) may now break
43
+ between rows; each row is a whole option and the header repeats. At the 10pt
44
+ floor the Field Guide's 19-row Flaw table no longer fit under its heading,
45
+ so the whole table jumped to the next page, left the opening page empty and
46
+ pushed the section's last two lines onto a third page. Shorter tables, and
47
+ tables outside `choose` sections, still stay whole.
48
+
10
49
  ## [1.7.0] - 2026-10-15
11
50
 
12
51
  A redesign pass by component family. A reader should know what kind of box they
@@ -18,9 +57,8 @@ the other roles are HUD blue for player rules and look-ups, cyan on ink for the
18
57
  Dream Master only, hazard yellow with ink for danger and choices, blood and rust
19
58
  for harm and cost, violet for the world, fungi green for the organic. The
20
59
  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.
60
+ rule, §V and §VI set a 10pt type floor, and §VII describes the new
61
+ components.
24
62
 
25
63
  A second pass, from review of 1.7.0-alpha.1, set a 10pt type floor for all
26
64
  text, took every word off the brick wall, tied shape to meaning and added a
@@ -75,15 +113,15 @@ little grit.
75
113
  words, replacing its chip); danger and enforcement are sign plates; lore and
76
114
  cabal long asymmetric slashes; fiction, backstory, cult and flaws torn;
77
115
  choices ticket notches; gear tags; magic facets; organic boxes wobble. The
78
- seven alerts, every section kind, block, choice card, faction, entry, table
116
+ eight alerts, every section kind, block, choice card, faction, entry, table
79
117
  and all ten specialties are re-cut to match, and every clipped edge is
80
118
  padded clear of its cut by 2pt or more.
81
119
  - **Folio and chapter chips** are fixed-height boxes with their type centred,
82
- on recto and verso. The chapter chip is a stamped coupon with a perforated
83
- edge, replacing the dashed outline.
120
+ on recto and verso. The chapter chip is a stamped coupon in the chapter's
121
+ colour, replacing the dashed outline.
84
122
 
85
- - **Alerts: seven registers, seven silhouettes.** Each has its own fill value,
86
- edge and label, and bodies are upright (only vibe and origin stay italic).
123
+ - **Alerts: eight registers, eight silhouettes.** Each has its own fill value,
124
+ edge and label. Bodies are italic, as before; the example's is upright.
87
125
  - note: the calm HUD-blue panel with a blue rail, as before.
88
126
  - warning: a light cream hazard sign: a yellow and black stripe rail, an ink
89
127
  frame and a yellow caution-tape label. It signals consequence.
@@ -93,6 +131,7 @@ little grit.
93
131
  rail: the world's voice, not a slab.
94
132
  - origin: warm paper, a rust rail, a dog-eared corner and a crimson rubber-stamp
95
133
  label: second-person backstory.
134
+ - location: the origin's document in map teal: a place written up.
96
135
  - visit: a fungi-green signpost with a map-pin label: a place.
97
136
  - example: a cyan rail with a taped-on label.
98
137
  New tokens `--dc-alert-frame`, `-label-bg` and `-label-pad` carry the frame
@@ -107,7 +146,7 @@ little grit.
107
146
  Master's alone), with a strip of its own when it has no heading. `choose` is a
108
147
  printed form, not a panel: a paper sheet a hair lighter than cream, an ink
109
148
  edge, no bar or cut corners, an ink title over a double rule, heavy ink tick
110
- boxes, dotted write-in rules and a yellow *Your choice* stamp. The title bar is
149
+ boxes, dotted write-in rules and a yellow *Choose* stamp. The title bar is
111
150
  one rule reading new tokens (`--dc-section-bar-mix` / `-bar-tone` / `-bar-fg` /
112
151
  `-bar-rule` / `-bar-rule-sub`, and `--dc-section-flag`); each kind sets them
113
152
  instead of repainting the bar, and so does the catalog. A block's band reads
@@ -201,9 +240,8 @@ little grit.
201
240
  - **New neutrals.** `--paper-form` (the `choose` sheet) and `--paper-zine` (the
202
241
  fiction excerpt and shard sheets).
203
242
  - **Ink coverage under 280%.** Measured through the build's own PDF/X
204
- conversion: `--ink` is `#1e1d1c` (278%, was 284%), the text black that still
205
- prints as 100% K; `--ink-dark` is `#2f2622` (266%) and is the solid ink for
206
- heavy fills, frames and borders. `--deep-rust`, `--fungi-rot` and six
243
+ conversion: `--ink` is `#1e1d1c` (278%, was 284%) and `--ink-dark` is
244
+ `#2f2622` (266%, was 271%). `--deep-rust`, `--fungi-rot` and six
207
245
  specialty darks are lifted to 268% or less. Every palette and identity token
208
246
  carries its measured CMYK and TAC. No raw `#000`/`#fff` remains in a
209
247
  `color-mix()`.
@@ -260,16 +298,19 @@ little grit.
260
298
  - Heading slips keep with what follows, prose sheets take orphans and widows
261
299
  of 3, and `###`/`####` slips hang offset (`--dc-page-slip-gap`,
262
300
  `-slip-offset`, `--dc-heading-gap`).
263
- - `--dc-accent-ink` is documented and tested as a per-component context
264
- token, the one exception to the token convention.
265
- - Tests guard the 10pt floor, the context-token allow-list, page-level
266
- components and the Lucid/Surreal variants.
301
+ - Tests guard the 10pt floor, page-level components, the Lucid/Surreal
302
+ variants, opaque paint and repeating gradients.
303
+ - The tape divider's crimson dashes print in PDF/X: they were a repeating
304
+ gradient, which PDF/X drops, and are now an ordinary gradient tiled every
305
+ 10px (#41).
306
+ - A learning-path banner contains its slanted band rule, so the overhang no
307
+ longer widens the page and a book builds without `allowShrink`.
267
308
 
268
309
  - **Contrast and type.** The special AP chip (ink on amber, 3.5:1), the tier pills
269
- (accent fails 4.5:1 for 9px type on Augmerc and Proxy), the learning-path
270
- subtitle (ink-smoke on `--paper-stain`, 3.4:1), the Augmerc title band (cream on
271
- 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
272
- body is upright instead of 9pt italic.
310
+ (the accent failed 4.5:1 for 9px type on the magenta and orange bands), the learning-path
311
+ subtitle (ink-smoke on `--paper-stain`, 3.4:1), the magenta title band (cream on
312
+ bright magenta, 3.6:1; now the Wirephreak's) 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
313
+ body is set at the 10pt floor instead of 9pt.
273
314
  - **A chapter no longer repaints the alerts.** The Dream Mastery chapter's override
274
315
  turned every alert grey-brown and rust in Part 2; the alert identity now survives
275
316
  re-theming. Its DM panel heading was ink on ink (an empty-looking bar) and is
package/components.yaml CHANGED
@@ -1019,7 +1019,7 @@ components:
1019
1019
  emits: div.section.dc-section-panel.dc-section-choose
1020
1020
  css: [styles/components/section.css]
1021
1021
  tokens: [--dc-section-bg, --dc-section-accent, --dc-section-tab, --dc-section-tab-bg, --dc-section-tab-fg]
1022
- notes: "A printed, stamped form, not a panel: a paper sheet a hair lighter than cream (--paper-form), recessed (sunk into the wall: a cast shadow along its top, a light lip on its bottom and right) in an ink edge cut like a ticket (a V punched in each side, a perforated foot), no bar and no drop shadow, an ink title over a double rule, dotted write-in rules under table rows, a heavy ink tick box before each list item and a hazard-yellow 'Your choice' stamp (drawn even when there is no heading). The chapter's accent colours only the double rule. @flaws, @ideals and @dreams are runs of @card inside a choose section with their own class."
1022
+ notes: "A printed, stamped form, not a panel: a paper sheet a hair lighter than cream (--paper-form), recessed (sunk into the wall: a cast shadow along its top, a light lip on its bottom and right) in an ink edge cut like a ticket (a V punched in each side, a perforated foot), no bar and no drop shadow, an ink title over a double rule, dotted write-in rules under table rows, a heavy ink tick box before each list item and a hazard-yellow 'Choose' stamp (drawn even when there is no heading). The chapter's accent colours only the double rule. @flaws, @ideals and @dreams are runs of @card inside a choose section with their own class."
1023
1023
 
1024
1024
  - name: faction
1025
1025
  status: live
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gp-dimm-city",
3
- "version": "1.7.0-alpha.7",
3
+ "version": "1.7.2",
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",
@@ -289,7 +289,8 @@
289
289
  /* A card never opens with just its tab and a line or two at a page foot: its
290
290
  first two blocks (the flavor line and a possibly one-line ability) stay with
291
291
  the first two lines of what follows, or the card moves to the next page. */
292
- .dc-skill-card .dc-card-inner > :nth-child(-n+2) {
292
+ .dc-skill-card .dc-card-inner > :first-child,
293
+ .dc-skill-card .dc-card-inner > :first-child + * {
293
294
  break-after: avoid;
294
295
  }
295
296
 
@@ -147,36 +147,14 @@ div[class="section"] {
147
147
  }
148
148
 
149
149
  /* ── Where a panel may break ────────────────────────────────────────────────
150
- A panel is a heading bar and a few blocks. Left alone it splits wherever the
151
- page ends, and the split leaves a heading bar with one line under it at a
152
- page foot, or a two-line tail alone at the top of the next page (the stubs a
153
- reader notices first). Three rules keep the splits clean; none needs a class,
154
- and `.dc-avoid-split` / `--dc-section-break-inside` still win (a book's own
155
- token, a class on the panel).
156
-
157
- 1. A SHORT panel stays whole. Four blocks or fewer (the heading bar counts)
158
- is a third of a page at most, so it moves to the next page rather than
159
- splitting 3 + 1. One with a column run or a table in it is left alone: it
160
- is the tall kind, and keeping it whole leaves the page before it empty.
161
- 2. A LONG panel (five blocks or more) never opens with its heading and a single
162
- block: the second block stays with the third (the heading bar already stays
163
- with the second), so a panel does not start at a page foot with a bar and
164
- one line.
165
- 3. A long panel never ends with one block alone: its last block stays with the
166
- block above it, so a continuation is never a lone paragraph. (Not for a
167
- heading: `break-after: avoid` on headings is core's.)
150
+ A panel splits wherever the page ends; its heading bar stays with the block
151
+ under it (`break-after: avoid` on headings is core's). Which panels a book
152
+ keeps whole depends on how long its panels are, so that is the book's call:
153
+ `.dc-avoid-split` on one panel, or `--dc-section-break-inside: avoid` from
154
+ the book's own sheet.
168
155
  Text in a panel or a callout keeps 3 orphans and 3 widows (the body's are 2): at 2
169
156
  Chromium still splits a three-line paragraph 2 + 1, and the one-line tail opens
170
157
  the next page. At 3 a paragraph of five lines or fewer moves whole. */
171
- .dc-section-panel:not(:has(> :nth-child(5), > .gp-columns, > table)) {
172
- --dc-section-break-inside: avoid;
173
- }
174
- .dc-section-panel:has(> :nth-child(5)) > :nth-child(2) {
175
- break-after: avoid;
176
- }
177
- .dc-section-panel:has(> :nth-child(5)) > :last-child:not(h2, h3, h4) {
178
- break-before: avoid;
179
- }
180
158
  .dc-section-panel :is(p, li),
181
159
  .dc-alert :is(p, li) {
182
160
  orphans: 3;
@@ -381,7 +359,7 @@ h3 + .dc-section-panel {
381
359
  reference look it up, a PALE bar all four, small HUD blue
382
360
  lore the world, not the rules top left + bottom right, long violet, lilac sheet
383
361
  dm behind the screen top right + bottom left ink bar, cyan rule and rail, DM chip
384
- choose a form to fill in: NO bar, lightest sheet, sunk in an ink edge, yellow "Your choice" stamp
362
+ choose a form to fill in: NO bar, lightest sheet, sunk in an ink edge, yellow "Choose" stamp
385
363
  catalog a run of entries (entries.css) both top
386
364
  npc-stat a creature (below) both right
387
365
  citizen-walkthrough (below) top left
@@ -596,7 +574,7 @@ h3 + .dc-section-panel {
596
574
  Not a panel: a printed form, stamped. A paper sheet barely lighter than the
597
575
  panel's cream (`--paper-form`), no solid bar, no chamfers, sunk into the wall
598
576
  (see "Recessed kinds"). An ink edge, a title that is only ink on paper over
599
- a double rule in the chapter's accent, a hazard-yellow "Your choice" stamp, a
577
+ a double rule in the chapter's accent, a hazard-yellow "Choose" stamp, a
600
578
  dotted write-in rule under every row and a heavy ink tick box in front of
601
579
  every option. The accent stays the chapter's: it colours the rule only. */
602
580
  .dc-section-choose {
@@ -604,7 +582,7 @@ h3 + .dc-section-panel {
604
582
  --dc-section-shadow: none;
605
583
  --dc-section-edge: 0px;
606
584
  --dc-section-bg: var(--paper-form);
607
- --dc-section-tab: "Your choice";
585
+ --dc-section-tab: "Choose";
608
586
  --dc-section-tab-bg: var(--brand-yellow);
609
587
  --dc-section-tab-fg: var(--ink);
610
588
  --dc-section-bar-mix: 0%;
@@ -644,7 +622,7 @@ h3 + .dc-section-panel {
644
622
  }
645
623
  /* No heading: the sheet carries the stamp itself, floated to its right corner. */
646
624
  .dc-section-choose:not(:has(> :is(h2, h3):first-child))::before {
647
- content: "Your choice";
625
+ content: "Choose";
648
626
  position: static;
649
627
  float: right;
650
628
  inset: auto;