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,215 @@
|
|
|
1
|
+
@layer dc.components {
|
|
2
|
+
|
|
3
|
+
/* ── Image floats — use markdown-it-attrs: {.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
|
+
}
|