gp-dimm-city 1.6.2-alpha.2 → 1.6.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
@@ -42,12 +42,16 @@ cut a version that has no `## [X.Y.Z]` heading below.
42
42
  Chromium keeps the orphans and drops the widows when a paragraph is too short
43
43
  to satisfy both, so the body's 2 + 2 let a three-line paragraph split 2 + 1;
44
44
  with 3 it moves whole. Cards still split by default.
45
- - **The last panel of a page or chapter clips its shadow overhang.**
46
- `.dc-section-panel:last-child` clips its block overflow
47
- (`overflow-y: clip; overflow-clip-margin: calc(var(--dc-section-edge) + 3px)`),
48
- the same fix as a specialty's last learning path. A panel that ends in the
49
- last pixels of a page, such as a `@section reference .dc-snug` pulled back
50
- to fit, no longer opens a page holding only its bottom rule.
45
+ - **A panel's bottom edge is paint, not layout, so it cannot open a page.**
46
+ Since 1.4.1 the `::before` surface and `::after` shadow layers extended below
47
+ the box by `--dc-section-edge` (a negative `bottom`). That extension is
48
+ positioned content, and when a panel ended in the last pixels of a page, such
49
+ as a `@section reference .dc-snug` pulled back to fit, Chromium fragmented it
50
+ onto a page of its own holding only the panel's bottom rule: on a book's last
51
+ chapter, the page DriveThruRPG needs fully blank. The layers are now exactly
52
+ the box, and the edge and the shadow's 3px hang below it as `box-shadow`
53
+ copies pushed down by `--dc-section-edge`, with the clip-path reaching down
54
+ to match, so a panel looks as before and opens no page.
51
55
  - Comments in the plugin, stylesheets, catalog, snippets and docs that described
52
56
  removed code, files or behaviour are gone or rewritten. No declaration or
53
57
  behaviour changed with them.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gp-dimm-city",
3
- "version": "1.6.2-alpha.2",
3
+ "version": "1.6.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",
@@ -33,8 +33,9 @@
33
33
  padding: a section that ends flush at a page foot
34
34
  has no padding left to spill onto the next page.
35
35
  Mechanism: padding-bottom shrinks by the edge, the
36
- ::before/::after layers extend below the box by it,
37
- and margin-bottom grows by it. `.dc-avoid-split`
36
+ ::before/::after layers paint it below the box (as
37
+ box-shadow, never as layout), and margin-bottom
38
+ grows by it. `.dc-avoid-split`
38
39
  and every box that paints its own surface keep it
39
40
  at 0px.
40
41
  A variant or template owns its chrome by setting these on its own rule. */
@@ -106,11 +107,16 @@
106
107
  .dc-section-panel::before {
107
108
  content: var(--dc-section-surface);
108
109
  position: absolute;
109
- inset: 0 0 calc(-1 * var(--dc-section-edge)) 0;
110
- /* Rail as an inset shadow, not a hard-stop gradient (see .dc-intro). */
110
+ inset: 0;
111
+ /* Rail as an inset shadow, not a hard-stop gradient (see .dc-intro). The two
112
+ outset shadows are the hanging edge: cream pushed down by the edge and
113
+ right by the rail, over the rail colour pushed down by the edge. */
111
114
  background: var(--dc-section-bg);
112
- box-shadow: inset var(--dc-section-rail) 0 0 var(--dc-section-accent);
113
- clip-path: polygon(0 0, calc(100% - var(--dc-section-clip)) 0, 100% var(--dc-section-clip), 100% 100%, 0 100%);
115
+ box-shadow:
116
+ inset var(--dc-section-rail) 0 0 var(--dc-section-accent),
117
+ var(--dc-section-rail) var(--dc-section-edge) 0 0 var(--dc-section-bg),
118
+ 0 var(--dc-section-edge) 0 0 var(--dc-section-accent);
119
+ clip-path: polygon(0 0, calc(100% - var(--dc-section-clip)) 0, 100% var(--dc-section-clip), 100% calc(100% + var(--dc-section-edge)), 0 calc(100% + var(--dc-section-edge)));
114
120
  z-index: -1;
115
121
  }
116
122
 
@@ -125,23 +131,18 @@
125
131
  top: 3px;
126
132
  left: 3px;
127
133
  right: -3px;
128
- bottom: calc(-3px - var(--dc-section-edge));
134
+ bottom: 0;
129
135
  background: var(--ink-dark);
130
- clip-path: polygon(0 0, calc(100% - var(--dc-section-clip)) 0, 100% var(--dc-section-clip), 100% 100%, 0 100%);
136
+ box-shadow: 0 calc(3px + var(--dc-section-edge)) 0 0 var(--ink-dark);
137
+ clip-path: polygon(0 0, calc(100% - var(--dc-section-clip)) 0, 100% var(--dc-section-clip), 100% calc(100% + 3px + var(--dc-section-edge)), 0 calc(100% + 3px + var(--dc-section-edge)));
131
138
  z-index: -2;
132
139
  pointer-events: none;
133
140
  }
134
141
 
135
- /* The edge and the shadow hang below the box (the edge, then 3px). They are
136
- paint, but when the last panel of a page or chapter ends in the last pixels
137
- of a page, that overhang alone makes Chromium open a page for its bottom
138
- rule. Clipping the block overflow with a margin as deep as the overhang
139
- still paints both and takes them out of fragmentation. Only the last panel:
140
- anywhere else the next box absorbs the overhang. */
141
- .dc-section-panel:last-child {
142
- overflow-y: clip;
143
- overflow-clip-margin: calc(var(--dc-section-edge) + 3px);
144
- }
142
+ /* The edge hangs as paint, never as layout: the layers are exactly the box and
143
+ the edge is box-shadow copies pushed down. A layer with a negative `bottom`
144
+ is positioned content, and when its panel ends at a page foot Chromium
145
+ fragments that overhang onto a page holding only the bottom rule. */
145
146
 
146
147
  /* ── flat — the panel's rail on a plain host ─────────────────────────────────
147
148
  No clipped corner, no ::before/::after layers: the box paints its own