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.
Files changed (58) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/LICENSE +32 -0
  3. package/README.md +165 -0
  4. package/components.yaml +832 -0
  5. package/fonts/lixdu/LICENSE.txt +34 -0
  6. package/fonts/lixdu/lixdu.woff +0 -0
  7. package/fonts/titillium-web/OFL.txt +93 -0
  8. package/fonts/titillium-web/titillium-web-400-italic.ttf +0 -0
  9. package/fonts/titillium-web/titillium-web-400.ttf +0 -0
  10. package/fonts/titillium-web/titillium-web-600-italic.ttf +0 -0
  11. package/fonts/titillium-web/titillium-web-600.ttf +0 -0
  12. package/fonts/titillium-web/titillium-web-700-italic.ttf +0 -0
  13. package/fonts/titillium-web/titillium-web-700.ttf +0 -0
  14. package/fonts/tomorrow/OFL.txt +93 -0
  15. package/fonts/tomorrow/tomorrow-400-italic.ttf +0 -0
  16. package/fonts/tomorrow/tomorrow-400.ttf +0 -0
  17. package/fonts/tomorrow/tomorrow-500-italic.ttf +0 -0
  18. package/fonts/tomorrow/tomorrow-500.ttf +0 -0
  19. package/fonts/tomorrow/tomorrow-700-italic.ttf +0 -0
  20. package/fonts/tomorrow/tomorrow-700.ttf +0 -0
  21. package/images/brick-bg-01.png +0 -0
  22. package/package.json +78 -0
  23. package/plugin.js +2131 -0
  24. package/snippets/alert.md +2 -0
  25. package/snippets/block.md +5 -0
  26. package/snippets/callout.md +5 -0
  27. package/snippets/card.md +11 -0
  28. package/snippets/chapter-start-page.md +11 -0
  29. package/snippets/credits-page.md +13 -0
  30. package/snippets/definition.md +7 -0
  31. package/snippets/dm-note.md +5 -0
  32. package/snippets/gear.md +9 -0
  33. package/snippets/learning-path.md +10 -0
  34. package/snippets/lede.md +5 -0
  35. package/snippets/outcome.md +8 -0
  36. package/snippets/procedure.md +7 -0
  37. package/snippets/sidebar.md +7 -0
  38. package/snippets/skill.md +9 -0
  39. package/snippets/specialty-art.md +5 -0
  40. package/snippets/specialty-card.md +5 -0
  41. package/snippets/specialty.md +11 -0
  42. package/snippets/toc-page.md +15 -0
  43. package/styles/components/callouts.css +227 -0
  44. package/styles/components/cards.css +487 -0
  45. package/styles/components/chrome.css +483 -0
  46. package/styles/components/data.css +1026 -0
  47. package/styles/components/images.css +215 -0
  48. package/styles/components/section.css +1074 -0
  49. package/styles/components/specialty-identity.css +315 -0
  50. package/styles/components/specialty.css +273 -0
  51. package/styles/dc-component-defaults.css +214 -0
  52. package/styles/dc-core.css +268 -0
  53. package/styles/dc-fonts.css +107 -0
  54. package/styles/dc-identity.css +66 -0
  55. package/styles/dc-native.css +330 -0
  56. package/styles/dc-palette.css +198 -0
  57. package/styles/page-rules.css +207 -0
  58. 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
+ }