gp-dimm-city 1.0.0
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 +86 -0
- package/LICENSE +32 -0
- package/README.md +165 -0
- package/components.yaml +832 -0
- package/fonts/lixdu/LICENSE.txt +34 -0
- package/fonts/lixdu/lixdu.woff +0 -0
- package/fonts/titillium-web/OFL.txt +93 -0
- package/fonts/titillium-web/titillium-web-400-italic.ttf +0 -0
- package/fonts/titillium-web/titillium-web-400.ttf +0 -0
- package/fonts/titillium-web/titillium-web-600-italic.ttf +0 -0
- package/fonts/titillium-web/titillium-web-600.ttf +0 -0
- package/fonts/titillium-web/titillium-web-700-italic.ttf +0 -0
- package/fonts/titillium-web/titillium-web-700.ttf +0 -0
- package/fonts/tomorrow/OFL.txt +93 -0
- package/fonts/tomorrow/tomorrow-400-italic.ttf +0 -0
- package/fonts/tomorrow/tomorrow-400.ttf +0 -0
- package/fonts/tomorrow/tomorrow-500-italic.ttf +0 -0
- package/fonts/tomorrow/tomorrow-500.ttf +0 -0
- package/fonts/tomorrow/tomorrow-700-italic.ttf +0 -0
- package/fonts/tomorrow/tomorrow-700.ttf +0 -0
- package/images/brick-bg-01.png +0 -0
- package/package.json +78 -0
- package/plugin.js +2131 -0
- package/snippets/alert.md +2 -0
- package/snippets/block.md +5 -0
- package/snippets/callout.md +5 -0
- package/snippets/card.md +11 -0
- package/snippets/chapter-start-page.md +11 -0
- package/snippets/credits-page.md +13 -0
- package/snippets/definition.md +7 -0
- package/snippets/dm-note.md +5 -0
- package/snippets/gear.md +9 -0
- package/snippets/learning-path.md +10 -0
- package/snippets/lede.md +5 -0
- package/snippets/outcome.md +8 -0
- package/snippets/procedure.md +7 -0
- package/snippets/sidebar.md +7 -0
- package/snippets/skill.md +9 -0
- package/snippets/specialty-art.md +5 -0
- package/snippets/specialty-card.md +5 -0
- package/snippets/specialty.md +11 -0
- package/snippets/toc-page.md +15 -0
- package/styles/components/callouts.css +227 -0
- package/styles/components/cards.css +487 -0
- package/styles/components/chrome.css +483 -0
- package/styles/components/data.css +1026 -0
- package/styles/components/images.css +215 -0
- package/styles/components/section.css +1074 -0
- package/styles/components/specialty-identity.css +315 -0
- package/styles/components/specialty.css +273 -0
- package/styles/dc-component-defaults.css +214 -0
- package/styles/dc-core.css +268 -0
- package/styles/dc-fonts.css +107 -0
- package/styles/dc-identity.css +66 -0
- package/styles/dc-native.css +330 -0
- package/styles/dc-palette.css +198 -0
- package/styles/page-rules.css +207 -0
- package/styles/page-templates.css +636 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/* =============================================================================
|
|
2
|
+
PAGE-RULES.CSS — Paged Media declarations and named-page wiring
|
|
3
|
+
=============================================================================
|
|
4
|
+
|
|
5
|
+
── ARCHITECTURAL CONTRACT ────────────────────────────────────────────────
|
|
6
|
+
OWNS:
|
|
7
|
+
- All @page declarations (default, :left / :right, named pages)
|
|
8
|
+
- @page margin box CONTENT (the folio and chapter chips)
|
|
9
|
+
- Named-page wiring (`.page.page-toc { page: front-matter }`, etc.)
|
|
10
|
+
|
|
11
|
+
MUST NOT CONTAIN:
|
|
12
|
+
- Content layout rules (.page.* { columns: N }) — EXCLUSIVELY in
|
|
13
|
+
page-templates.css
|
|
14
|
+
- Component styles (→ components/*.css)
|
|
15
|
+
- :root token definitions (→ dc-component-defaults.css)
|
|
16
|
+
- div.chapter scaffolding (→ the consuming book's own sheet)
|
|
17
|
+
- @media screen rules (print-only project)
|
|
18
|
+
- Margin-box VISUAL CHROME (background/border/padding on the folio and
|
|
19
|
+
chapter chips) — that lives in dc-native.css, the last entry in
|
|
20
|
+
package.json `gutterpress.styles`, unlayered so it wins the cascade.
|
|
21
|
+
This file declares only the chip CONTENT (`content:` + color), which is
|
|
22
|
+
engine-agnostic standard CSS.
|
|
23
|
+
|
|
24
|
+
── ONE BLOCK PER NAMED PAGE ──────────────────────────────────────────────
|
|
25
|
+
A page NAME outranks `:left` / `:right` — CSS Paged Media orders the page
|
|
26
|
+
selector's components name-first, and Chromium implements it. MEASURED on
|
|
27
|
+
a 4-page fixture (6x9in, `@page :left` / `:right` declaring corner footers):
|
|
28
|
+
- `@page quiet { @bottom-*: content: none }` printed NO footer on both a
|
|
29
|
+
verso and a recto page, beating the `:left` / `:right` content;
|
|
30
|
+
- `@page full { margin: 0 }` placed text at x=0.0pt on a verso page where
|
|
31
|
+
`@page :left` asks for a 0.625in left margin — a higher-specificity
|
|
32
|
+
`margin` shorthand wins per-longhand over a weaker rule's `margin-left`.
|
|
33
|
+
So every named template below needs exactly ONE block. A `name:left` twin
|
|
34
|
+
that merely repeats it is dead weight, and one that repeats `content: none`
|
|
35
|
+
silently OUTRANKS dc-native.css's own `@page <name>` overrides —
|
|
36
|
+
that is how the brick margin band was being suppressed on chapter-start
|
|
37
|
+
pages. The two `citizen-file` twins are the exception that proves the rule:
|
|
38
|
+
the running head sits in the OUTER top corner, a different margin box per
|
|
39
|
+
side.
|
|
40
|
+
|
|
41
|
+
AGENT RULE: "Is this an @page block or a named-page wiring rule?" — if NO,
|
|
42
|
+
use another file.
|
|
43
|
+
──────────────────────────────────────────────────────────────────────── */
|
|
44
|
+
|
|
45
|
+
@layer dc.pages {
|
|
46
|
+
|
|
47
|
+
/* ---------------------------------------------------------------------------
|
|
48
|
+
Default page template — Letter+bleed for DTRPG (8.625 x 11.25)
|
|
49
|
+
--------------------------------------------------------------------------- */
|
|
50
|
+
|
|
51
|
+
/* `size` stays a literal on purpose. Chromium resolves var() in @page margins
|
|
52
|
+
— measured: `@page :left { margin-left: var(--om) }` put text at exactly
|
|
53
|
+
0.625in on a verso page — so the margins below name their tokens. The trim
|
|
54
|
+
SIZE is the one value where a var() that failed to resolve would silently
|
|
55
|
+
produce a differently-sized book, and it is duplicated by --page-width /
|
|
56
|
+
--page-height in dc-palette.css: change both together. */
|
|
57
|
+
@page {
|
|
58
|
+
size: 8.625in 11.25in;
|
|
59
|
+
margin: var(--page-margin) var(--outer-margin) 0.75in;
|
|
60
|
+
background-color: var(--bg);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Body footers: folio on the OUTER corner, chapter chip on the inner one.
|
|
64
|
+
`string(guideSection, first)` is published by the `div.chapter[data-ch]`
|
|
65
|
+
rule at the bottom of THIS file — the only producer of the C.N value. */
|
|
66
|
+
@page :left {
|
|
67
|
+
margin-right: var(--binding-margin);
|
|
68
|
+
margin-left: var(--outer-margin);
|
|
69
|
+
|
|
70
|
+
@bottom-left { content: "P." counter(page); }
|
|
71
|
+
@bottom-right { content: "C." string(guideSection, first); }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@page :right {
|
|
75
|
+
margin-left: var(--binding-margin);
|
|
76
|
+
margin-right: var(--outer-margin);
|
|
77
|
+
|
|
78
|
+
@bottom-left { content: "C." string(guideSection, first); }
|
|
79
|
+
@bottom-right { content: "P." counter(page); }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* ---------------------------------------------------------------------------
|
|
83
|
+
Front matter — no folio, no chapter chip. Constitution: front matter is
|
|
84
|
+
unnumbered. (dc-native.css additionally zeroes this template's side
|
|
85
|
+
and bottom margins for the full-bleed masthead composite.)
|
|
86
|
+
--------------------------------------------------------------------------- */
|
|
87
|
+
|
|
88
|
+
@page front-matter {
|
|
89
|
+
@bottom-left { content: none; }
|
|
90
|
+
@bottom-right { content: none; }
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.page.page-intro,
|
|
94
|
+
.page.page-toc,
|
|
95
|
+
.page.page-credits {
|
|
96
|
+
page: front-matter;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* ---------------------------------------------------------------------------
|
|
100
|
+
Chapter start — footers suppressed; the chevron banner IS the visual
|
|
101
|
+
identity. dc-native.css refills the two bottom boxes with the brick
|
|
102
|
+
band so the margin band stays continuous.
|
|
103
|
+
--------------------------------------------------------------------------- */
|
|
104
|
+
|
|
105
|
+
@page chapter-start {
|
|
106
|
+
@bottom-left { content: none; }
|
|
107
|
+
@bottom-right { content: none; }
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.dc-chapter-start {
|
|
111
|
+
page: chapter-start;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ---------------------------------------------------------------------------
|
|
115
|
+
Full — zero margins, no footers. `.dc-full-page`'s full-bleed geometry lives
|
|
116
|
+
in page-templates.css; its named-page assignment is here (alongside the
|
|
117
|
+
`@specialty-art` plate's) since wiring belongs with its @page block.
|
|
118
|
+
--------------------------------------------------------------------------- */
|
|
119
|
+
|
|
120
|
+
@page full {
|
|
121
|
+
margin: 0;
|
|
122
|
+
|
|
123
|
+
@bottom-left { content: none; }
|
|
124
|
+
@bottom-right { content: none; }
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.dc-specialty-art { page: full; }
|
|
128
|
+
.dc-full-page { page: full; }
|
|
129
|
+
|
|
130
|
+
/* ---------------------------------------------------------------------------
|
|
131
|
+
Clean — footer suppression on demand. Wired via `.pmd-suppress-footer`;
|
|
132
|
+
no page in either book currently opts in.
|
|
133
|
+
--------------------------------------------------------------------------- */
|
|
134
|
+
|
|
135
|
+
@page clean {
|
|
136
|
+
@bottom-left { content: none; }
|
|
137
|
+
@bottom-right { content: none; }
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.dc-suppress-footer {
|
|
141
|
+
page: clean;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* ---------------------------------------------------------------------------
|
|
145
|
+
Citizen File — amber running header in the OUTER top corner, so this is the
|
|
146
|
+
one template that genuinely needs a per-side block. The bottom margin boxes
|
|
147
|
+
are left alone, so these pages keep the body footers.
|
|
148
|
+
--------------------------------------------------------------------------- */
|
|
149
|
+
|
|
150
|
+
@page citizen-file:right {
|
|
151
|
+
@top-right {
|
|
152
|
+
content: "Citizen File";
|
|
153
|
+
color: var(--amber);
|
|
154
|
+
font-family: var(--font-display);
|
|
155
|
+
letter-spacing: 0.1em;
|
|
156
|
+
font-size: 0.8em;
|
|
157
|
+
padding-top: 0.1in;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@page citizen-file:left {
|
|
162
|
+
@top-left {
|
|
163
|
+
content: "Citizen File";
|
|
164
|
+
color: var(--amber);
|
|
165
|
+
font-family: var(--font-display);
|
|
166
|
+
letter-spacing: 0.1em;
|
|
167
|
+
font-size: 0.8em;
|
|
168
|
+
padding-top: 0.1in;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.page.dc-citizen-file-page {
|
|
173
|
+
page: citizen-file;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* ── Chapter Footer Labels ──────────────────────────────────────────────────
|
|
177
|
+
The GCPM string mechanism: this rule publishes each chapter's number under
|
|
178
|
+
the name `guideSection`, and the `string(guideSection, first)` calls in
|
|
179
|
+
page-rules.css's @page :left / :right margin boxes read it back, so the C.N
|
|
180
|
+
footer propagates across every page of the chapter. This is the ONLY
|
|
181
|
+
producer — every book that wants C.N footers needs @chapter wrappers
|
|
182
|
+
carrying ch="N".
|
|
183
|
+
|
|
184
|
+
Verified end to end: a `build --format pdf` of this guide produces footers
|
|
185
|
+
C.1 x58, C.2 x57, C.3 x36, C.4 x5, C.5 x6, C.6 x4, matching chapter sizes.
|
|
186
|
+
|
|
187
|
+
Use attr(data-ch) rather than a bare string literal — the value has to come
|
|
188
|
+
from the document, and data-ch is what the @chapter directive writes.
|
|
189
|
+
|
|
190
|
+
IMPORTANT authoring note: write `ch="N"` (NOT `data-ch="N"`) in the @chapter
|
|
191
|
+
directive. The marker plugin prepends "data-" to every key that is not
|
|
192
|
+
id/class/template/region, so:
|
|
193
|
+
@chapter ... ch="1" → <div class="chapter ..." data-ch="1"> ✓
|
|
194
|
+
@chapter ... data-ch="1" → <div class="chapter ..." data-data-ch="1"> ✗
|
|
195
|
+
|
|
196
|
+
One rule covers every chapter, in every book that loads this stylesheet. A
|
|
197
|
+
chapter split across several source files needs the @chapter marker repeated
|
|
198
|
+
in each file (the marker plugin renders one file at a time and drains its
|
|
199
|
+
frame stack at EOF, so a wrapper cannot span files); the resulting sibling
|
|
200
|
+
div.chapter elements all carry the same data-ch and resolve to the same
|
|
201
|
+
footer value.
|
|
202
|
+
─────────────────────────────────────────────────────────────────────────── */
|
|
203
|
+
div.chapter[data-ch] {
|
|
204
|
+
string-set: guideSection attr(data-ch);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
}
|