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,215 @@
1
+ @layer dc.components {
2
+
3
+ /* ── Image floats — use markdown-it-attrs: ![Alt](img){.dc-img-float-right} ── */
4
+ .dc-img-float-right,
5
+ .dc-img-float-left {
6
+ width: 44%;
7
+ max-width: 44%;
8
+ display: block;
9
+ }
10
+
11
+ .dc-img-float-right {
12
+ float: right;
13
+ margin: 0 0 0.15in 0.2in;
14
+ }
15
+
16
+ .dc-img-float-left {
17
+ float: left;
18
+ margin: 0 0.2in 0.15in 0;
19
+ }
20
+
21
+ /* Token defaults for .dc-sidebar (--dc-sidebar-surface/-border/-accent) are
22
+ declared in :root in dc-component-defaults.css. The .inset variant below overrides
23
+ --dc-sidebar-surface the same way any other component variant does. */
24
+ .dc-sidebar {
25
+ padding: 14px 18px;
26
+ float: right;
27
+ clear: right;
28
+ /* prevent stacking into adjacent floats */
29
+ shape-outside: margin-box;
30
+ /* body text wraps cleanly around margin-box */
31
+ width: var(--sidebar-width);
32
+ margin: 0 0 0.15in 0.2in;
33
+ background: var(--dc-sidebar-surface);
34
+ border: 1.5px solid var(--dc-sidebar-border);
35
+ font-size: var(--fs-body-sm);
36
+ line-height: var(--lh-normal);
37
+ position: relative;
38
+ z-index: 2;
39
+ break-inside: avoid;
40
+ }
41
+
42
+ /* Inset variant — panel CHROME only. The full-height rail geometry (absolute
43
+ positioning, width, the page's reserved column) belongs to the
44
+ `.page.page-sidebar` template in page-templates.css: a rail is meaningless
45
+ without a page that reserved room for it, and scoping it there means a
46
+ stray `@sidebar .inset` on an ordinary page stays a readable floated
47
+ sidebar instead of painting over the body text. */
48
+ .dc-sidebar.inset {
49
+ --dc-sidebar-surface: transparent;
50
+
51
+ border-left: none;
52
+ }
53
+
54
+ /* Hides empty .dc-sidebar wrappers. */
55
+ .dc-sidebar:empty {
56
+ display: none;
57
+ }
58
+
59
+ /* Sidebar paragraph spacing. */
60
+ .dc-sidebar p {
61
+ margin: 0 0 0.1in 0;
62
+ }
63
+
64
+ /* Sidebar h3 — LIVE in chapter-01.md sidebar blocks. */
65
+ .dc-sidebar h3 {
66
+ margin: 0.12in 0 0.06in;
67
+ font-size: 1em;
68
+ letter-spacing: 0.04em;
69
+ }
70
+
71
+ .dc-sidebar.inset h3:first-child {
72
+ margin-top: 0.05in;
73
+ margin-bottom: 0.1in;
74
+ padding-bottom: 0.06in;
75
+ border-bottom: 1px solid var(--dc-sidebar-accent);
76
+ font-size: 1.05em;
77
+ }
78
+
79
+ .dc-sidebar.inset p {
80
+ margin-bottom: 0.09in;
81
+ line-height: var(--lh-normal);
82
+ }
83
+
84
+ .dc-sidebar.inset hr {
85
+ margin: 0.12in 0;
86
+ border-color: var(--dc-sidebar-accent);
87
+ }
88
+
89
+ .dc-sidebar.inset hr+p {
90
+ padding-top: 0.1in;
91
+ font-size: var(--fs-body-sm);
92
+ font-weight: var(--fw-bold);
93
+ letter-spacing: 0.06em;
94
+ color: var(--hud-blue);
95
+ }
96
+
97
+ .dc-sidebar.inset hr~p {
98
+ background: var(--dc-sidebar-callout-bg);
99
+ border-left: 3px solid var(--dc-sidebar-callout-accent);
100
+ margin-left: -0.1in;
101
+ margin-right: -0.1in;
102
+ padding: 0.06in 0.1in;
103
+ }
104
+
105
+ .dc-sidebar.inset>p:last-child {
106
+ margin-top: 0.1in;
107
+ margin-bottom: 0;
108
+ padding-top: 0.08in;
109
+ border-top: 1px solid var(--dc-sidebar-accent);
110
+ font-family: var(--font-display);
111
+ font-size: 0.95em;
112
+ letter-spacing: 0.05em;
113
+ text-align: center;
114
+ color: var(--dc-sidebar-accent);
115
+ }
116
+
117
+ .dc-human-callout {
118
+ background: var(--paper-cream);
119
+ border: 2px solid var(--ink);
120
+ padding: 8pt 9pt;
121
+ margin-top: 11pt;
122
+ break-inside: avoid;
123
+ }
124
+
125
+ /* .section.dc-class-entry + .dc-content-col + .dc-tag-row were removed
126
+ 2026-05-24 — the @class-entry macro had no live consumers and its parser
127
+ had a multi-block bug. They were parked in an unloaded css/deprecated.css,
128
+ which has since been deleted; the dc-op-manual repo's history (`dc-design-guide/css/deprecated.css`)
129
+ has the rules. */
130
+
131
+ .dc-terms {
132
+ break-inside: avoid;
133
+ }
134
+
135
+ .dc-terms .dc-item {
136
+ --card-border-color: transparent;
137
+ break-inside: avoid;
138
+ }
139
+
140
+ /* term label accent color */
141
+ .dc-terms .dc-item strong {
142
+ color: var(--crimson);
143
+ }
144
+
145
+ /* term paragraph spacing */
146
+ .dc-terms .dc-item p {
147
+ padding-block: var(--space-sm);
148
+ }
149
+
150
+ /* first term paragraph — border-bottom separator, no top padding */
151
+ .dc-terms .dc-item p:first-of-type {
152
+ padding-block: 0;
153
+ border-bottom: 1px var(--hud-blue) solid;
154
+ }
155
+
156
+ /* Tables: universal default look lives in dc-core.css under the <table>,
157
+ <th>, <td>, tr:nth-child(...) selectors. Authors write plain markdown
158
+ tables; no class required. No per-element class attribute syntax in MD
159
+ files (constitution). If a future table needs to look DIFFERENT, wrap
160
+ it in @section .dc-some-variant so the section class is the styling
161
+ handle, not the table itself. */
162
+
163
+ /* .dc-art-bottom is an art-placement print utility owned by
164
+ page-templates.css (see its ARCHITECTURAL CONTRACT header). The stale
165
+ absolute-positioned copy that used to live here unioned with that rule
166
+ and produced an incoherent box model — no rule belongs here. */
167
+
168
+ /* Column ornament on core's two-column primitive. `columns`/`column-gap` are
169
+ core's (`GUTTERPRESS_CSS`, `.gp-columns-2`); this only paints the hairline
170
+ between the columns. It keys on the COUNT class, not the panel variant
171
+ below, because every two-column container in the book gets the rule —
172
+ `@block .gp-columns-2` and `@page … .gp-columns-2` included, neither of
173
+ which is a `.section`. */
174
+ .gp-columns-2 {
175
+ column-rule: 1pt solid var(--border-hairline);
176
+ }
177
+
178
+
179
+ /* ═══════════════════════════════════════════════════════════════════════════
180
+ SECTION CONTAINER — DC prose content card
181
+ ═══════════════════════════════════════════════════════════════════════════
182
+ .section is created by Gutterpress's @section markers (markers.js).
183
+
184
+ Base rule styles ALL sections as accent-strip cards sitting on the page
185
+ surface. Layout variants override with their own treatment. No :not()
186
+ chains — variant classes always win the cascade.
187
+
188
+ Token API:
189
+ --dc-section-bg → panel background surface
190
+ --dc-section-accent → left strip / top border accent color */
191
+
192
+ /* Float-containment DEFAULT — display at ZERO specificity on purpose.
193
+ flow-root makes the card a block formatting context so it CONTAINS floated
194
+ children (.dc-sidebar, .fg-art-inline, fiction-excerpt art — all
195
+ float:right). Without it a section whose trailing content is a float
196
+ collapses to the height of its in-flow content only, and the float spills
197
+ onto the bare wall below. Worst case seen: a section holding only a
198
+ .dc-sidebar collapsed to 23px while the sidebar ran 855px past it, so the
199
+ NEXT section painted over the sidebar's text (ch-03 "Dice Etiquette" vs
200
+ "Lucid and Surreal Rolls").
201
+ Safe w.r.t. margin collapsing: .section's non-zero vertical padding
202
+ already blocks parent/child margin collapse, so flow-root changes no
203
+ spacing for any variant that keeps that padding.
204
+ `:where()` keeps this a default, not a mandate: theme CSS loads after
205
+ core at equal specificity, so a class-strength `.section { display }`
206
+ silently beat core's layout vocabulary — measured: `.gp-grid-2` on a
207
+ `@section` computed flow-root (silent no-op) while the same class on a
208
+ `@page` worked. Zero specificity lets .gp-grid-* / .gp-columns-* own
209
+ `display`, exactly as core declares its own page-root display
210
+ (markers.js: `:where(.page, .spread) { display: flow-root }`). */
211
+ :where(.section) {
212
+ display: flow-root;
213
+ }
214
+
215
+ }