gp-dimm-city 1.8.0 → 1.8.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/CHANGELOG.md CHANGED
@@ -7,6 +7,19 @@ cut a version that has no `## [X.Y.Z]` heading below.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.8.1] - 2026-10-16
11
+
12
+ ### Fixed
13
+
14
+ - **The page clip guard is scoped in one selector.** `.page` clips its
15
+ horizontal overflow (a guard against Chromium's whole-document
16
+ shrink-to-fit) except on a page holding pinned or bleed art. That exception
17
+ was a second rule resetting `overflow-x: visible`, which Gutterpress's
18
+ `printsafe/page-containment` check cannot see, so every build warned. The
19
+ guard is now `.page:not(:has(.gp-bleed, .gp-pin, .gp-behind,
20
+ .dc-specialty-art, .dc-full-page))`: the same pages clip, and the warning is
21
+ gone.
22
+
10
23
  ## [1.8.0] - 2026-10-16
11
24
 
12
25
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gp-dimm-city",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
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",
@@ -59,37 +59,34 @@
59
59
  content sections. */
60
60
  .page {
61
61
  break-before: page;
62
- /* Native-print shrink-to-fit guard. Chromium's print path scales the
63
- ENTIRE document down when any box or text ink extends past the page
64
- content box — and full-bleed components (masthead, art utilities) plus
65
- stray text overflow do exactly that. Native print clips *painting* at
66
- the content box anyway, so clipping scrollable overflow at the .page
67
- wrapper (same edge, no padding) is visually identical there while
68
- removing the shrink trigger entirely.
69
-
70
- Core hard-errors on real shrink triggers (engine.width.overflow), but
71
- not on every one: dropping `overflow-x: clip` shrinks the whole document
72
- by 0.44% on a 33-page probe and lifts a flush pin off the paper edge.
73
- Re-measure before removing it.
74
-
75
- The guard clips OUT-OF-FLOW descendants too, so on a page carrying
76
- pinned or bleed art it would cut exactly the thing that art exists to
77
- do — reach the page edge. It is scoped away from those pages below, as
78
- core's printsafe rule prescribes. Ordinary text pages keep it. */
79
- overflow-x: clip;
80
62
  }
81
63
 
82
- /* The exception the guard above is scoped around: a page holding pinned or
83
- bleed art must not clip it. `.gp-behind` is included because it is pinned
84
- art by another name (a `.gp-pin` that paints under the text). The two
85
- full-sheet plates are bleed art too: `.dc-specialty-art` and
86
- `.dc-full-page` are sheet-wide on their zero-margin full-bleed page while the
87
- `.page` around them keeps the body column's width, so the guard would cut
88
- them off at the column edge, leaving a strip of bare wall down the outside
89
- of the plate. */
90
- .page:is(:has(.gp-bleed), :has(.gp-pin), :has(.gp-behind),
91
- :has(.dc-specialty-art), :has(.dc-full-page)) {
92
- overflow-x: visible;
64
+ /* Native-print shrink-to-fit guard. Chromium's print path scales the
65
+ ENTIRE document down when any box or text ink extends past the page
66
+ content box — and full-bleed components (masthead, art utilities) plus
67
+ stray text overflow do exactly that. Native print clips *painting* at
68
+ the content box anyway, so clipping scrollable overflow at the .page
69
+ wrapper (same edge, no padding) is visually identical there while
70
+ removing the shrink trigger entirely.
71
+
72
+ Core hard-errors on real shrink triggers (engine.width.overflow), but
73
+ not on every one: dropping `overflow-x: clip` shrinks the whole document
74
+ by 0.44% on a 33-page probe and lifts a flush pin off the paper edge.
75
+ Re-measure before removing it.
76
+
77
+ The guard clips OUT-OF-FLOW descendants too, so on a page carrying
78
+ pinned or bleed art it would cut exactly the thing that art exists to
79
+ do — reach the page edge. So it applies only to a page with none: the
80
+ scope is in this one selector, the form core's printsafe rule reads
81
+ (an override in a second rule hid the scope from it). `.gp-behind` is
82
+ pinned art by another name (a `.gp-pin` that paints under the text).
83
+ The two full-sheet plates are bleed art too: `.dc-specialty-art` and
84
+ `.dc-full-page` are sheet-wide on their zero-margin full-bleed page while
85
+ the `.page` around them keeps the body column's width, so the guard
86
+ would cut them off at the column edge, leaving a strip of bare wall down
87
+ the outside of the plate. */
88
+ .page:not(:has(.gp-bleed, .gp-pin, .gp-behind, .dc-specialty-art, .dc-full-page)) {
89
+ overflow-x: clip;
93
90
  }
94
91
 
95
92
  /* ── FULL-PAGE GEOMETRY ────────────────────────────────────────────────────── */