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
package/components.yaml
ADDED
|
@@ -0,0 +1,832 @@
|
|
|
1
|
+
# Dimm City component catalog — the machine-readable ground truth for the
|
|
2
|
+
# component library that gp-dimm-city ships.
|
|
3
|
+
#
|
|
4
|
+
# WHAT THIS IS
|
|
5
|
+
# One entry per component: what an author writes, what lands in the HTML,
|
|
6
|
+
# which custom properties are public, how it fragments, and which stylesheet
|
|
7
|
+
# owns it. The Dimm City Design Guide (a book in the dc-op-manual repo)
|
|
8
|
+
# explains and demonstrates the components; this file is the catalog of
|
|
9
|
+
# record. It is the file package.json declares as `gutterpress.components` —
|
|
10
|
+
# Gutterpress only checks that the file exists, so the schema below is this
|
|
11
|
+
# package's own. Paths are relative to the package root.
|
|
12
|
+
#
|
|
13
|
+
# FIELDS
|
|
14
|
+
# name (kebab, unique) · status · origin (plugin | author | core — who puts
|
|
15
|
+
# the class in the DOM) · recipe · emits (DOM strings, one or a list) · css
|
|
16
|
+
# (package-relative paths; required for live/unused, and at least one must
|
|
17
|
+
# style one of the entry's classes) · tokens (must be declared under
|
|
18
|
+
# styles/) · breaks (documentation; omitted where the component has no
|
|
19
|
+
# fragmentation rule of its own — variants inherit their parent's) · usage
|
|
20
|
+
# (literal strings that mark a use of a component with no marker or class:
|
|
21
|
+
# `ROLL THE DIE!`, `| highlight`, `variant=panel`, …) · unstyled (emitted
|
|
22
|
+
# classes acknowledged to have no CSS) · notes.
|
|
23
|
+
#
|
|
24
|
+
# Status meanings (measured against the Dimm City books that consume this
|
|
25
|
+
# package — the Field Guide, the Design Guide, SysOps):
|
|
26
|
+
# live at least one class styled; used at least once in a book;
|
|
27
|
+
# plugin-origin entries must actually be emitted/parsed
|
|
28
|
+
# unused styled or emitted, but used by no book
|
|
29
|
+
# retired no class styled, none emitted, none used (a retired marker
|
|
30
|
+
# may still be parsed as a no-op stripper)
|
|
31
|
+
# unimplemented no class styled, none emitted — documented or authored,
|
|
32
|
+
# never built.
|
|
33
|
+
#
|
|
34
|
+
# THE RULE
|
|
35
|
+
# Give every component an honest status, and every new macro or `.dc-*`
|
|
36
|
+
# class an entry. Nothing checks this file automatically beyond its `css:`
|
|
37
|
+
# paths existing (test/package.test.js), so keep it accurate by hand.
|
|
38
|
+
#
|
|
39
|
+
# Order: plugin macros, plugin-emitted internals, author classes, unused,
|
|
40
|
+
# retired, unimplemented.
|
|
41
|
+
|
|
42
|
+
components:
|
|
43
|
+
# ── Plugin macros and alerts ───────────────────────────────────────────
|
|
44
|
+
- name: alert
|
|
45
|
+
status: live
|
|
46
|
+
origin: plugin
|
|
47
|
+
recipe: "> [!NOTE] | > [!WARNING] | > [!DM] | > [!VIBE] | > [!ORIGIN] | > [!VISIT] | > [!GEAR] (GFM-style blockquote; the label is added automatically)"
|
|
48
|
+
emits:
|
|
49
|
+
- div.dc-alert.dc-note > span.dc-alert-label
|
|
50
|
+
- div.dc-alert.dc-note.warning > span.dc-alert-label
|
|
51
|
+
- div.dc-alert.dc-dm-note > span.dc-alert-label
|
|
52
|
+
- div.dc-alert.dc-vibe-callout > span.dc-alert-label
|
|
53
|
+
- div.dc-alert.dc-origin-callout > span.dc-alert-label
|
|
54
|
+
- div.dc-alert.dc-visit-callout > span.dc-alert-label
|
|
55
|
+
- div.dc-alert.dc-gear-callout > span.dc-alert-label
|
|
56
|
+
css: [styles/components/callouts.css, styles/dc-native.css]
|
|
57
|
+
tokens:
|
|
58
|
+
- --dc-alert-bg
|
|
59
|
+
- --dc-alert-border
|
|
60
|
+
- --dc-alert-fg
|
|
61
|
+
- --dc-alert-label-color
|
|
62
|
+
- --dc-alert-border-width
|
|
63
|
+
- --dc-alert-label-size
|
|
64
|
+
- --dc-alert-body-size
|
|
65
|
+
- --dc-alert-label-weight
|
|
66
|
+
- --dc-alert-label-spacing
|
|
67
|
+
- --dc-alert-label-margin
|
|
68
|
+
- --dc-alert-margin-top
|
|
69
|
+
breaks: "break-inside: avoid, relaxed to auto inside .gp-columns-2/-3 (dc-native.css)"
|
|
70
|
+
notes: "`warning` is an unprefixed modifier on .dc-note. The blockquote form is single-block; use @callout for multi-paragraph bodies."
|
|
71
|
+
|
|
72
|
+
- name: callout
|
|
73
|
+
status: live
|
|
74
|
+
origin: plugin
|
|
75
|
+
recipe: "@callout variant=note|warning|dm|vibe|origin|visit|gear label=\"…\" … @end-callout"
|
|
76
|
+
emits:
|
|
77
|
+
- div.dc-alert.dc-note > span.dc-alert-label
|
|
78
|
+
- div.dc-alert.dc-note.warning
|
|
79
|
+
- div.dc-alert.dc-dm-note
|
|
80
|
+
- div.dc-alert.dc-vibe-callout
|
|
81
|
+
- div.dc-alert.dc-origin-callout
|
|
82
|
+
- div.dc-alert.dc-visit-callout
|
|
83
|
+
- div.dc-alert.dc-gear-callout
|
|
84
|
+
css: styles/components/callouts.css
|
|
85
|
+
breaks: "as alert"
|
|
86
|
+
notes: "Same DOM and tokens as alert; the macro form allows multiple paragraphs and a custom label."
|
|
87
|
+
|
|
88
|
+
- name: dm-note
|
|
89
|
+
status: live
|
|
90
|
+
origin: plugin
|
|
91
|
+
recipe: "@dm-note label=\"…\" … @end-dm-note"
|
|
92
|
+
emits: div.dc-alert.dc-dm-note > span.dc-alert-label
|
|
93
|
+
css: [styles/components/callouts.css, styles/dc-native.css]
|
|
94
|
+
breaks: "as alert; first child glued to the box start (dc-native.css)"
|
|
95
|
+
notes: "Sugar for @callout variant=dm. Used by the design guide only."
|
|
96
|
+
|
|
97
|
+
- name: flavor
|
|
98
|
+
status: live
|
|
99
|
+
origin: plugin
|
|
100
|
+
recipe: "> [!FLAVOR]"
|
|
101
|
+
emits: [div.dc-flavor, "p.dc-flavor (the > blockquote inside a @skill card)"]
|
|
102
|
+
css: styles/components/chrome.css
|
|
103
|
+
tokens: [--dc-flavor-accent, --dc-flavor-accent-width, --dc-flavor-color]
|
|
104
|
+
breaks: none
|
|
105
|
+
|
|
106
|
+
- name: pullquote
|
|
107
|
+
status: live
|
|
108
|
+
origin: plugin
|
|
109
|
+
recipe: "> [!PULLQUOTE]"
|
|
110
|
+
emits: div.dc-pullquote.dc-flush
|
|
111
|
+
css: styles/components/data.css
|
|
112
|
+
tokens: [--dc-pullquote-accent, --dc-pullquote-accent-soft, --dc-pullquote-bg]
|
|
113
|
+
breaks: "break-inside: avoid"
|
|
114
|
+
|
|
115
|
+
- name: sidebar
|
|
116
|
+
status: live
|
|
117
|
+
origin: plugin
|
|
118
|
+
recipe: "@sidebar [.inset] … @end-sidebar (also authored as raw <div class=\"dc-sidebar\"> around an NPC human-callout)"
|
|
119
|
+
emits: div.dc-sidebar
|
|
120
|
+
css: [styles/components/images.css, styles/page-templates.css]
|
|
121
|
+
tokens:
|
|
122
|
+
- --dc-sidebar-surface
|
|
123
|
+
- --dc-sidebar-border
|
|
124
|
+
- --dc-sidebar-accent
|
|
125
|
+
- --dc-sidebar-inset-column
|
|
126
|
+
- --dc-sidebar-inset-gutter
|
|
127
|
+
- --dc-sidebar-callout-accent
|
|
128
|
+
- --dc-sidebar-callout-bg
|
|
129
|
+
breaks: "break-inside: avoid"
|
|
130
|
+
notes: "`.inset` is an unprefixed modifier read by .page.page-sidebar > .dc-sidebar.inset (page-templates.css). Design guide only."
|
|
131
|
+
|
|
132
|
+
- name: sidebar-box
|
|
133
|
+
status: live
|
|
134
|
+
origin: plugin
|
|
135
|
+
recipe: "@sidebar-box … @end-sidebar-box"
|
|
136
|
+
emits: div.dc-prose-panel.dc-sidebar-box
|
|
137
|
+
css: styles/components/data.css
|
|
138
|
+
tokens: [--dc-sidebar-box-surface, --dc-sidebar-box-border, --dc-sidebar-box-accent, --dc-sidebar-box-rail]
|
|
139
|
+
breaks: "break-inside: avoid (via .dc-prose-panel)"
|
|
140
|
+
notes: "Design guide only."
|
|
141
|
+
|
|
142
|
+
- name: definition
|
|
143
|
+
status: live
|
|
144
|
+
origin: plugin
|
|
145
|
+
recipe: "@definition … @end-definition"
|
|
146
|
+
emits: div.dc-prose-panel.dc-definition-block
|
|
147
|
+
css: styles/components/data.css
|
|
148
|
+
tokens: [--dc-definition-block-surface, --dc-definition-block-accent, --dc-definition-block-accent-width]
|
|
149
|
+
breaks: "break-inside: avoid (via .dc-prose-panel)"
|
|
150
|
+
notes: "04-components.md marks the macro as superseded by markdown definition lists; both books still use it."
|
|
151
|
+
|
|
152
|
+
- name: procedure
|
|
153
|
+
status: live
|
|
154
|
+
origin: plugin
|
|
155
|
+
recipe: "@procedure … 1. step … @end-procedure"
|
|
156
|
+
emits: ol.dc-steps > li > span.dc-step-no
|
|
157
|
+
css: styles/components/data.css
|
|
158
|
+
breaks: "break-inside: avoid"
|
|
159
|
+
|
|
160
|
+
- name: block
|
|
161
|
+
status: live
|
|
162
|
+
origin: plugin
|
|
163
|
+
recipe: "@block .dc-panel|.dc-slate|.dc-shard|.dc-codex label=\"Title\" … @end-block"
|
|
164
|
+
emits: div.dc-block > div.dc-block-title
|
|
165
|
+
css: styles/components/section.css
|
|
166
|
+
tokens: [--dc-block-bg, --dc-block-fg, --dc-block-accent, --dc-block-title-bg, --dc-block-title-fg]
|
|
167
|
+
breaks: "break-inside: avoid"
|
|
168
|
+
notes: "The variant class is author-supplied (see block-variants; also accepted as variant=panel). Design guide only."
|
|
169
|
+
|
|
170
|
+
- name: block-variants
|
|
171
|
+
status: live
|
|
172
|
+
origin: author
|
|
173
|
+
recipe: "@block .dc-panel | .dc-slate | .dc-shard | .dc-codex"
|
|
174
|
+
emits: div.dc-block.dc-panel|.dc-slate|.dc-shard|.dc-codex
|
|
175
|
+
css: styles/components/section.css
|
|
176
|
+
usage: [variant=panel, variant=slate, variant=shard, variant=codex]
|
|
177
|
+
notes: "Four clip-path/surface treatments on .dc-block; the class is passed through from the marker, or built by the plugin from variant=x (a concatenation the check's plugin scan cannot see — hence origin: author and the usage literals)."
|
|
178
|
+
|
|
179
|
+
- name: card
|
|
180
|
+
status: live
|
|
181
|
+
origin: plugin
|
|
182
|
+
recipe: "@card [.dc-flaws|.dc-ideals|.dc-dreams] / #### Heading / > pull quote / body / > footer … @end-card"
|
|
183
|
+
emits:
|
|
184
|
+
- div.dc-card > div.dc-card-heading + div.dc-card-pull + div.dc-card-body
|
|
185
|
+
- div.dc-card-body > blockquote.dc-card-footer (the last body blockquote, dc#44)
|
|
186
|
+
css: styles/components/section.css
|
|
187
|
+
breaks: "break-inside: avoid"
|
|
188
|
+
|
|
189
|
+
- name: card-variants
|
|
190
|
+
status: live
|
|
191
|
+
origin: author
|
|
192
|
+
recipe: "@card .dc-flaws | .dc-ideals | .dc-dreams"
|
|
193
|
+
emits: div.dc-card.dc-flaws|.dc-ideals|.dc-dreams
|
|
194
|
+
css: styles/components/section.css
|
|
195
|
+
notes: "Citizen-file card accents; the class is passed through from the marker."
|
|
196
|
+
|
|
197
|
+
- name: gear
|
|
198
|
+
status: live
|
|
199
|
+
origin: plugin
|
|
200
|
+
recipe: "@gear … @end-gear"
|
|
201
|
+
emits: div.dc-card.dc-gear
|
|
202
|
+
css: styles/components/section.css
|
|
203
|
+
unstyled: [dc-gear]
|
|
204
|
+
breaks: "break-inside: avoid (via .dc-card)"
|
|
205
|
+
notes: "Renders as a plain .dc-card: nothing has ever styled .dc-gear (the only rules are inside the GEAR ENTRY tombstone comment in data.css). Reviving the treatment is a design decision — see that comment. Design guide only."
|
|
206
|
+
|
|
207
|
+
- name: lede
|
|
208
|
+
status: live
|
|
209
|
+
origin: plugin
|
|
210
|
+
recipe: "@lede … @end-lede"
|
|
211
|
+
emits: div.dc-intro
|
|
212
|
+
css: [styles/components/chrome.css, styles/components/section.css, styles/page-templates.css]
|
|
213
|
+
tokens: [--dc-intro-bg, --dc-intro-accent]
|
|
214
|
+
breaks: "break-after: avoid inside .dc-card-grid"
|
|
215
|
+
notes: "The same .dc-intro is emitted for a learning path's subtitle and authored raw on the contents page."
|
|
216
|
+
|
|
217
|
+
- name: tape
|
|
218
|
+
status: live
|
|
219
|
+
origin: plugin
|
|
220
|
+
recipe: "@tape label=\"…\" (also authored as raw <div class=\"dc-tape dc-flush\">…</div>)"
|
|
221
|
+
emits: div.dc-tape
|
|
222
|
+
css: styles/components/chrome.css
|
|
223
|
+
tokens: [--dc-tape-bg, --dc-tape-border, --dc-tape-color]
|
|
224
|
+
breaks: "break-inside: avoid"
|
|
225
|
+
|
|
226
|
+
- name: toc
|
|
227
|
+
status: live
|
|
228
|
+
origin: plugin
|
|
229
|
+
recipe: "@toc … @end-toc (also authored as raw <div class=\"dc-toc\">)"
|
|
230
|
+
emits: div.dc-toc
|
|
231
|
+
css: [styles/components/data.css, styles/page-templates.css]
|
|
232
|
+
breaks: "list items break-inside: avoid"
|
|
233
|
+
|
|
234
|
+
- name: glossary
|
|
235
|
+
status: live
|
|
236
|
+
origin: plugin
|
|
237
|
+
recipe: "@glossary … @end-glossary (the macro is used by neither book; the raw <div class=\"dc-terms\"> wrapper is)"
|
|
238
|
+
emits: div.dc-terms
|
|
239
|
+
css: styles/components/images.css
|
|
240
|
+
breaks: "break-inside: avoid"
|
|
241
|
+
notes: "CSS styles the children as .dc-terms .dc-item (see glossary-item); the docs and gallery author .dc-terms-item instead (see glossary-item-authored)."
|
|
242
|
+
|
|
243
|
+
- name: outcome
|
|
244
|
+
status: live
|
|
245
|
+
origin: plugin
|
|
246
|
+
recipe: "@outcome [flush] / 20 | Crit | text … @end-outcome, or a | Roll | Outcome | table inside a skill card"
|
|
247
|
+
emits:
|
|
248
|
+
- div.dc-outcomes[.dc-flush] > div.dc-outcomes-label
|
|
249
|
+
- div.dc-outcome-row.crit|hit|mixed|miss|fail > span.dc-outcome-key.tier-* > span.dc-outcome-name + span.dc-outcome-roll
|
|
250
|
+
- span.dc-outcome-text
|
|
251
|
+
css: styles/components/data.css
|
|
252
|
+
tokens:
|
|
253
|
+
- --dc-outcomes-surface
|
|
254
|
+
- --dc-outcomes-border
|
|
255
|
+
- --dc-outcomes-inner-border
|
|
256
|
+
- --dc-outcomes-divider
|
|
257
|
+
- --dc-outcomes-label-bg
|
|
258
|
+
- --dc-outcomes-label-color
|
|
259
|
+
- --dc-outcome-key-color
|
|
260
|
+
- --dc-outcome-name-color
|
|
261
|
+
- --dc-outcome-name-opacity
|
|
262
|
+
usage: ["| Roll | Outcome"]
|
|
263
|
+
breaks: "break-inside: avoid; the skill-table form adds data-break-inside=avoid only when the parent card allows splitting"
|
|
264
|
+
|
|
265
|
+
- name: specialty
|
|
266
|
+
status: live
|
|
267
|
+
origin: plugin
|
|
268
|
+
recipe: "@specialty .augmerc|.proxy|.streetwarden|.gutterdruid|.cybersurgeon|.wirephreak|.technosorcerer|.etherlock|.dualist|.generalist … @end-specialty"
|
|
269
|
+
emits: div.dc-specialty.<name>
|
|
270
|
+
css:
|
|
271
|
+
- styles/components/specialty-identity.css
|
|
272
|
+
- styles/components/specialty.css
|
|
273
|
+
- styles/components/cards.css
|
|
274
|
+
- styles/components/data.css
|
|
275
|
+
- styles/components/section.css
|
|
276
|
+
- styles/page-templates.css
|
|
277
|
+
tokens:
|
|
278
|
+
- --spec-accent
|
|
279
|
+
- --spec-mid
|
|
280
|
+
- --spec-dark
|
|
281
|
+
- --dc-skill-tab-shape
|
|
282
|
+
- --dc-skill-body-shape
|
|
283
|
+
- --dc-path-title-shape
|
|
284
|
+
- --dc-path-shell-clip
|
|
285
|
+
- --dc-specialty-card-shell-shape
|
|
286
|
+
- --dc-specialty-intro-title-shape
|
|
287
|
+
- --dc-specialty-intro-clip
|
|
288
|
+
breaks: "none on the wrapper; children carry their own"
|
|
289
|
+
notes: "Parent-selector model: every card, path and intro inside inherits shape and colour from .dc-specialty.<name>. Auto-closes any open path or skill."
|
|
290
|
+
|
|
291
|
+
- name: specialty-intro
|
|
292
|
+
status: live
|
|
293
|
+
origin: plugin
|
|
294
|
+
recipe: "@specialty-intro … @end-specialty-intro"
|
|
295
|
+
emits: div.dc-specialty-intro
|
|
296
|
+
css: [styles/components/specialty.css, styles/components/specialty-identity.css]
|
|
297
|
+
tokens: [--dc-specialty-intro-bg, --dc-specialty-intro-title-bg, --dc-specialty-intro-title-color]
|
|
298
|
+
breaks: "break-inside: avoid; first h2 break-after: avoid"
|
|
299
|
+
|
|
300
|
+
- name: specialty-art
|
|
301
|
+
status: live
|
|
302
|
+
origin: plugin
|
|
303
|
+
recipe: "@specialty-art … @end-specialty-art"
|
|
304
|
+
emits: div.dc-specialty-art
|
|
305
|
+
css: [styles/components/chrome.css, styles/page-rules.css]
|
|
306
|
+
breaks: "break-before: page; page: full"
|
|
307
|
+
|
|
308
|
+
- name: specialty-card
|
|
309
|
+
status: live
|
|
310
|
+
origin: plugin
|
|
311
|
+
recipe: "@specialty-card … @end-specialty-card (data-position=odd|even alternates per card)"
|
|
312
|
+
emits: div.dc-specialty-card
|
|
313
|
+
css:
|
|
314
|
+
- styles/components/specialty.css
|
|
315
|
+
- styles/components/specialty-identity.css
|
|
316
|
+
- styles/components/section.css
|
|
317
|
+
- styles/page-templates.css
|
|
318
|
+
tokens:
|
|
319
|
+
- --dc-specialty-card-bg
|
|
320
|
+
- --dc-specialty-card-border
|
|
321
|
+
- --dc-specialty-card-accent
|
|
322
|
+
- --dc-specialty-card-fg
|
|
323
|
+
- --dc-specialty-card-media-height
|
|
324
|
+
- --dc-specialty-card-media-width
|
|
325
|
+
- --dc-specialty-card-title-align
|
|
326
|
+
- --dc-specialty-card-band-height
|
|
327
|
+
- --dc-specialty-card-shadow
|
|
328
|
+
- --dc-specialty-card-title-color
|
|
329
|
+
breaks: "break-inside: avoid"
|
|
330
|
+
|
|
331
|
+
- name: learning-path
|
|
332
|
+
status: live
|
|
333
|
+
origin: plugin
|
|
334
|
+
recipe: "@learning-path / ### Title / > subtitle / - Skill A / - Skill B … @end-learning-path"
|
|
335
|
+
emits:
|
|
336
|
+
- div.dc-learning-path.dc-path-block > div.dc-path-shell > h2.dc-spray > span.dc-path-sticker
|
|
337
|
+
- div.dc-path-shell > div.dc-intro
|
|
338
|
+
- div.dc-stickers > span.dc-sticker > span.dc-sticker-ref
|
|
339
|
+
- span.dc-arrow (between stickers)
|
|
340
|
+
css: [styles/components/data.css, styles/components/chrome.css, styles/components/specialty-identity.css]
|
|
341
|
+
tokens:
|
|
342
|
+
- --dc-path-title-bg
|
|
343
|
+
- --dc-path-title-color
|
|
344
|
+
- --dc-path-accent
|
|
345
|
+
- --dc-path-shell-padding-top
|
|
346
|
+
- --dc-path-shell-padding-bottom
|
|
347
|
+
- --dc-arrow-color
|
|
348
|
+
breaks: "break-before/after: auto on the block; the h2 stays with what follows"
|
|
349
|
+
|
|
350
|
+
- name: skill
|
|
351
|
+
status: live
|
|
352
|
+
origin: plugin
|
|
353
|
+
recipe: "@skill [id=…] [{.dc-allow-split}] [{.dc-two-col}] / #### Name | Tier / > flavor / 1. **N AP** *Ability:* text / ##### Sub-header … @end-skill (alias @end-skills)"
|
|
354
|
+
emits:
|
|
355
|
+
- div.dc-skill-card[name][data-break-inside=avoid] > div.dc-card-tab > span.dc-tab-title + span.dc-tab-tier
|
|
356
|
+
- div.dc-card-body > div.dc-card-inner > p.dc-flavor + div.dc-sub-header
|
|
357
|
+
- div.dc-ability > span.dc-ap + p.dc-ability-text
|
|
358
|
+
css: [styles/components/cards.css, styles/components/data.css, styles/components/specialty-identity.css, styles/dc-native.css]
|
|
359
|
+
tokens:
|
|
360
|
+
- --dc-card-accent
|
|
361
|
+
- --dc-card-surface
|
|
362
|
+
- --dc-card-tab-bg
|
|
363
|
+
- --dc-card-tab-title-color
|
|
364
|
+
- --dc-card-body-mark
|
|
365
|
+
- --dc-card-gap
|
|
366
|
+
- --dc-card-tab-shadow
|
|
367
|
+
breaks: "data-break-inside=avoid by default; {.dc-allow-split} opts into splitting (see allow-split); tab break-after: avoid; last two abilities glued"
|
|
368
|
+
notes: "A ##### Outcomes sub-header is swallowed (the outcomes block carries its own label)."
|
|
369
|
+
|
|
370
|
+
- name: skill-highlight
|
|
371
|
+
status: live
|
|
372
|
+
origin: plugin
|
|
373
|
+
recipe: "#### Name | Tier | highlight (inside @skill)"
|
|
374
|
+
emits: [div.dc-card-tab.dc-highlight, div.dc-card-body.dc-highlight-body]
|
|
375
|
+
css: styles/components/cards.css
|
|
376
|
+
usage: ["| highlight"]
|
|
377
|
+
breaks: "as skill"
|
|
378
|
+
notes: "Also reachable as @skill {.dc-highlight}, which puts the class on the card root instead of the tab."
|
|
379
|
+
|
|
380
|
+
- name: skill-card-continuation
|
|
381
|
+
status: live
|
|
382
|
+
origin: plugin
|
|
383
|
+
recipe: "@continue (inside an open @skill card; closes it and opens a '{name} ▸' continuation card)"
|
|
384
|
+
emits: div.dc-skill-card.dc-skill-card-cont > div.dc-card-tab.dc-card-tab-cont
|
|
385
|
+
css: styles/components/cards.css
|
|
386
|
+
breaks: "as skill; honours the parent card's .dc-allow-split"
|
|
387
|
+
notes: "A bare @continue outside a skill is core's section continuation; the usage count includes both."
|
|
388
|
+
|
|
389
|
+
- name: ap-chip
|
|
390
|
+
status: live
|
|
391
|
+
origin: plugin
|
|
392
|
+
recipe: "1. **N AP** *Ability:* text (inside @skill; 0 AP → .free, ranges/X → .variable; also authored as raw <span class=\"dc-ap\">)"
|
|
393
|
+
emits: span.dc-ap[.free|.variable]
|
|
394
|
+
css: [styles/components/cards.css, styles/components/specialty-identity.css]
|
|
395
|
+
tokens: [--dc-ap-bg, --dc-ap-fg, --dc-ap-border]
|
|
396
|
+
usage: [" AP**"]
|
|
397
|
+
breaks: none
|
|
398
|
+
notes: "Modifier drift outside the check's dc- scope: the plugin emits `variable` but the CSS styles `.dc-ap.var`; `.standard/.reduced/.increased/.special` (specialty-identity.css) are never emitted, only authored raw in the gallery."
|
|
399
|
+
|
|
400
|
+
- name: distance-tags
|
|
401
|
+
status: unused
|
|
402
|
+
origin: plugin
|
|
403
|
+
recipe: "| Distance | AP | table inside a skill card"
|
|
404
|
+
emits: div.dc-sub-header + div.dc-distance-tags > span.dc-dist-tag > span.dc-dist-ap + span.dc-dist-name
|
|
405
|
+
css: styles/components/data.css
|
|
406
|
+
tokens: [--dc-dist-tag-surface, --dc-dist-tag-border, --dc-dist-ap-color, --dc-dist-name-color]
|
|
407
|
+
usage: ["| Distance | AP |"]
|
|
408
|
+
breaks: none
|
|
409
|
+
notes: "Emission path exists and is styled; no skill in either book writes a
|
|
410
|
+
Distance/AP table. The usage literal carries the AP column deliberately: the
|
|
411
|
+
plugin only transforms a Distance table that sits inside a skill card, and
|
|
412
|
+
field-guide chapter-05's Schraphose damage table is a four-column Distance
|
|
413
|
+
table in body prose. A bare '| Distance |' literal counted that as a use."
|
|
414
|
+
|
|
415
|
+
- name: roll-the-die
|
|
416
|
+
status: live
|
|
417
|
+
origin: plugin
|
|
418
|
+
recipe: "ROLL THE DIE! (automatic on the canonical text in markdown prose; code spans and raw HTML are left alone)"
|
|
419
|
+
emits: span.dc-roll-the-die
|
|
420
|
+
css: styles/components/cards.css
|
|
421
|
+
tokens: [--dc-roll-the-die-color, --dc-roll-the-die-border]
|
|
422
|
+
usage: ["ROLL THE DIE!"]
|
|
423
|
+
breaks: none
|
|
424
|
+
|
|
425
|
+
- name: img-wrapper
|
|
426
|
+
status: live
|
|
427
|
+
origin: plugin
|
|
428
|
+
recipe: " (automatic on any image-only paragraph)"
|
|
429
|
+
emits: p.dc-img-wrapper
|
|
430
|
+
css: [styles/components/data.css, styles/dc-native.css]
|
|
431
|
+
usage: ["!["]
|
|
432
|
+
breaks: "break-inside: avoid"
|
|
433
|
+
|
|
434
|
+
- name: flush
|
|
435
|
+
status: live
|
|
436
|
+
origin: plugin
|
|
437
|
+
recipe: "@outcome flush, > [!PULLQUOTE], or .dc-flush on raw .dc-tape / .dc-stat / .dc-stickers"
|
|
438
|
+
emits: .dc-flush (edge-to-edge modifier)
|
|
439
|
+
css: [styles/components/chrome.css, styles/components/data.css]
|
|
440
|
+
breaks: none
|
|
441
|
+
|
|
442
|
+
# ── Author classes on core markers, attrs and raw HTML ────────────────
|
|
443
|
+
- name: column-panel
|
|
444
|
+
status: live
|
|
445
|
+
origin: author
|
|
446
|
+
recipe: "@section .gp-columns-2 .dc-column-panel"
|
|
447
|
+
emits: div.section.dc-column-panel
|
|
448
|
+
css: styles/components/section.css
|
|
449
|
+
breaks: "first heading glued to its first paragraph"
|
|
450
|
+
|
|
451
|
+
- name: tabbed
|
|
452
|
+
status: live
|
|
453
|
+
origin: author
|
|
454
|
+
recipe: "@section .dc-tabbed"
|
|
455
|
+
emits: div.section.dc-tabbed
|
|
456
|
+
css: styles/components/section.css
|
|
457
|
+
tokens: [--dc-section-tab-indent, --dc-section-tab-overlap]
|
|
458
|
+
breaks: "first heading break-after: avoid"
|
|
459
|
+
|
|
460
|
+
- name: card-grid
|
|
461
|
+
status: live
|
|
462
|
+
origin: author
|
|
463
|
+
recipe: "@section .dc-card-grid"
|
|
464
|
+
emits: div.section.dc-card-grid
|
|
465
|
+
css: [styles/components/section.css, styles/page-templates.css]
|
|
466
|
+
breaks: "break-inside: auto on the grid; each specialty card avoid"
|
|
467
|
+
|
|
468
|
+
- name: citizen-walkthrough
|
|
469
|
+
status: live
|
|
470
|
+
origin: author
|
|
471
|
+
recipe: "@section .dc-citizen-walkthrough [.gp-columns-2]"
|
|
472
|
+
emits: div.section.dc-citizen-walkthrough
|
|
473
|
+
css: [styles/components/section.css, styles/dc-native.css]
|
|
474
|
+
notes: "KNOWN DRIFT (2026-09-01 audit, T2): 04-components.md tells authors to override --section-accent / --section-bg at the chapter id; no CSS declares either name. The chassis reads --dc-section-accent / --dc-section-bg (see section). Unprefixed names are outside the check's token scan, so this stays a note until the chapter is corrected."
|
|
475
|
+
|
|
476
|
+
- name: citizen-file-page
|
|
477
|
+
status: live
|
|
478
|
+
origin: author
|
|
479
|
+
recipe: "@page .dc-citizen-file-page"
|
|
480
|
+
emits: div.page.dc-citizen-file-page
|
|
481
|
+
css: styles/page-rules.css
|
|
482
|
+
breaks: "page: citizen-file"
|
|
483
|
+
|
|
484
|
+
- name: fiction-excerpt
|
|
485
|
+
status: live
|
|
486
|
+
origin: author
|
|
487
|
+
recipe: "@section .dc-fiction-excerpt"
|
|
488
|
+
emits: div.section.dc-fiction-excerpt
|
|
489
|
+
css: [styles/components/section.css]
|
|
490
|
+
tokens:
|
|
491
|
+
- --dc-fiction-bg
|
|
492
|
+
- --dc-fiction-line-height
|
|
493
|
+
- --dc-fiction-art-float
|
|
494
|
+
- --dc-fiction-art-width
|
|
495
|
+
- --dc-fiction-art-outline
|
|
496
|
+
- --dc-fiction-art-shadow
|
|
497
|
+
breaks: "orphans/widows 3 on paragraphs"
|
|
498
|
+
|
|
499
|
+
- name: npc-stat
|
|
500
|
+
status: live
|
|
501
|
+
origin: author
|
|
502
|
+
recipe: "@section .dc-npc-stat"
|
|
503
|
+
emits: div.section.dc-npc-stat
|
|
504
|
+
css: [styles/components/section.css]
|
|
505
|
+
tokens:
|
|
506
|
+
- --dc-npc-stat-primary
|
|
507
|
+
- --dc-npc-stat-secondary
|
|
508
|
+
- --dc-npc-stat-label-color
|
|
509
|
+
- --dc-npc-stat-rule
|
|
510
|
+
- --dc-npc-stat-rule-width
|
|
511
|
+
|
|
512
|
+
- name: chapter-start
|
|
513
|
+
status: live
|
|
514
|
+
origin: author
|
|
515
|
+
recipe: "@page .page-chapter-start .dc-chapter-start"
|
|
516
|
+
emits: div.page.dc-chapter-start
|
|
517
|
+
css: [styles/page-rules.css, styles/page-templates.css]
|
|
518
|
+
breaks: "page: chapter-start"
|
|
519
|
+
|
|
520
|
+
- name: credits
|
|
521
|
+
status: live
|
|
522
|
+
origin: author
|
|
523
|
+
recipe: "@page .page-credits .dc-credits"
|
|
524
|
+
emits: div.page.dc-credits
|
|
525
|
+
css: [styles/page-templates.css, styles/dc-native.css]
|
|
526
|
+
notes: "Styled in page-templates.css and dc-native.css — carried in from the books in 1.0.0."
|
|
527
|
+
|
|
528
|
+
- name: colophon-grid
|
|
529
|
+
status: live
|
|
530
|
+
origin: author
|
|
531
|
+
recipe: "raw <div class=\"dc-colophon-grid\"> on the credits page"
|
|
532
|
+
emits: div.dc-colophon-grid
|
|
533
|
+
css: styles/page-templates.css
|
|
534
|
+
|
|
535
|
+
- name: chevron
|
|
536
|
+
status: live
|
|
537
|
+
origin: author
|
|
538
|
+
recipe: "# Title {.dc-chevron} (the chapter-opener h1 gets the same treatment structurally)"
|
|
539
|
+
emits: h1.dc-chevron
|
|
540
|
+
css: [styles/components/chrome.css, styles/dc-native.css, styles/page-templates.css]
|
|
541
|
+
tokens: [--dc-chevron-bg, --dc-chevron-color, --dc-chevron-font-size]
|
|
542
|
+
|
|
543
|
+
- name: spray
|
|
544
|
+
status: live
|
|
545
|
+
origin: author
|
|
546
|
+
recipe: "## Title {.dc-spray} (also emitted by @learning-path for its title)"
|
|
547
|
+
emits: h2.dc-spray
|
|
548
|
+
css: [styles/components/chrome.css, styles/components/data.css]
|
|
549
|
+
tokens: [--dc-spray-bg, --dc-spray-color]
|
|
550
|
+
breaks: "as a path-shell title: break-before avoid on the element after it"
|
|
551
|
+
|
|
552
|
+
- name: spec-tweak
|
|
553
|
+
status: live
|
|
554
|
+
origin: author
|
|
555
|
+
recipe: "### Title {.dc-spec-tweak [.dc-no-top]}"
|
|
556
|
+
emits: h3.dc-spec-tweak[.dc-no-top]
|
|
557
|
+
css: styles/components/chrome.css
|
|
558
|
+
|
|
559
|
+
- name: classtag
|
|
560
|
+
status: live
|
|
561
|
+
origin: author
|
|
562
|
+
recipe: "raw <span class=\"dc-classtag <specialty>\">"
|
|
563
|
+
emits: span.dc-classtag.<specialty>
|
|
564
|
+
css: styles/components/chrome.css
|
|
565
|
+
tokens: [--dc-classtag-color]
|
|
566
|
+
|
|
567
|
+
- name: tag
|
|
568
|
+
status: live
|
|
569
|
+
origin: author
|
|
570
|
+
recipe: "raw <span class=\"dc-tag\">"
|
|
571
|
+
emits: span.dc-tag
|
|
572
|
+
css: styles/components/chrome.css
|
|
573
|
+
|
|
574
|
+
- name: human-callout
|
|
575
|
+
status: live
|
|
576
|
+
origin: author
|
|
577
|
+
recipe: "raw <div class=\"dc-sidebar\"><div class=\"dc-human-callout\">… (NPC sidebar)"
|
|
578
|
+
emits: div.dc-human-callout
|
|
579
|
+
css: styles/components/images.css
|
|
580
|
+
breaks: "break-inside: avoid"
|
|
581
|
+
|
|
582
|
+
- name: at-a-glance-cards
|
|
583
|
+
status: live
|
|
584
|
+
origin: author
|
|
585
|
+
recipe: "raw <div class=\"dc-at-a-glance-cards\"> > <div class=\"dc-at-a-glance-card\">"
|
|
586
|
+
emits: div.dc-at-a-glance-cards > div.dc-at-a-glance-card
|
|
587
|
+
css: styles/components/data.css
|
|
588
|
+
|
|
589
|
+
- name: stat-block
|
|
590
|
+
status: live
|
|
591
|
+
origin: author
|
|
592
|
+
recipe: "raw <div class=\"dc-stat [dc-flush]\"> with .dc-stat-head, .dc-stat-grid cells and .dc-stat-line"
|
|
593
|
+
emits:
|
|
594
|
+
- div.dc-stat > div.dc-stat-head > span.dc-stat-name + span.dc-stat-class
|
|
595
|
+
- div.dc-stat-grid > div.dc-stat-cell > span.dc-stat-cell-key + span.dc-stat-cell-val
|
|
596
|
+
- div.dc-stat-line
|
|
597
|
+
css: styles/components/data.css
|
|
598
|
+
breaks: "break-inside: avoid"
|
|
599
|
+
|
|
600
|
+
- name: allow-split
|
|
601
|
+
status: live
|
|
602
|
+
origin: author
|
|
603
|
+
recipe: "@skill {.dc-allow-split} or @section .dc-allow-split"
|
|
604
|
+
emits: .dc-allow-split (on the skill card or section it is written on)
|
|
605
|
+
css: styles/components/section.css
|
|
606
|
+
breaks: "break-inside: auto — opts a section or skill card out of the default avoid"
|
|
607
|
+
notes: "The plugin reads this class (to drop data-break-inside=avoid) but never adds it."
|
|
608
|
+
|
|
609
|
+
- name: two-col
|
|
610
|
+
status: live
|
|
611
|
+
origin: author
|
|
612
|
+
recipe: "@skill {.dc-two-col}"
|
|
613
|
+
emits: div.dc-skill-card.dc-two-col
|
|
614
|
+
css: styles/components/cards.css
|
|
615
|
+
breaks: "list items and paragraphs break-inside: avoid within the columns"
|
|
616
|
+
|
|
617
|
+
# ── Core-owned structure whose public tokens this library declares ─────
|
|
618
|
+
- name: section
|
|
619
|
+
status: live
|
|
620
|
+
origin: core
|
|
621
|
+
recipe: "@section (bare; core markers.js emits the wrapper)"
|
|
622
|
+
emits: div.section
|
|
623
|
+
css: styles/components/section.css
|
|
624
|
+
tokens: [--dc-section-bg, --dc-section-accent]
|
|
625
|
+
breaks: "break-inside: avoid (core MARKER_CSS)"
|
|
626
|
+
notes: "The panel chrome is opt-out; .dc-plain is the escape."
|
|
627
|
+
|
|
628
|
+
- name: chapter-opener
|
|
629
|
+
status: live
|
|
630
|
+
origin: core
|
|
631
|
+
recipe: "@chapter C.01 / @page intro / @section / # Title (markup-driven; core injects .chapter-opener)"
|
|
632
|
+
emits: div.page[data-page=intro][data-chapter-label] > div.section > h1
|
|
633
|
+
css: [styles/components/chrome.css, styles/dc-palette.css]
|
|
634
|
+
tokens:
|
|
635
|
+
- --dc-chapter-opener-bg
|
|
636
|
+
- --dc-chapter-opener-accent
|
|
637
|
+
- --dc-chapter-opener-shadow
|
|
638
|
+
- --dc-chapter-opener-clip-tail
|
|
639
|
+
- --dc-chapter-opener-pad-top
|
|
640
|
+
- --dc-chapter-opener-pad-side
|
|
641
|
+
- --dc-chapter-opener-pad-right
|
|
642
|
+
notes: "There is no @chapter-opener macro."
|
|
643
|
+
|
|
644
|
+
# ── Author classes currently unused by the books ──────────────────────────────
|
|
645
|
+
- name: plain
|
|
646
|
+
status: unused
|
|
647
|
+
origin: author
|
|
648
|
+
recipe: "@section .dc-plain"
|
|
649
|
+
emits: div.section.dc-plain
|
|
650
|
+
css: styles/components/section.css
|
|
651
|
+
notes: "The section-chrome escape hatch (dc#39)."
|
|
652
|
+
|
|
653
|
+
- name: full-page
|
|
654
|
+
status: unused
|
|
655
|
+
origin: author
|
|
656
|
+
recipe: "@page .dc-full-page"
|
|
657
|
+
emits: div.page.dc-full-page
|
|
658
|
+
css: [styles/page-templates.css, styles/page-rules.css, styles/dc-native.css]
|
|
659
|
+
breaks: "break-before: page; page: full"
|
|
660
|
+
notes: "Documented in 05-page-templates.md; every occurrence in the guide is inside a fenced example."
|
|
661
|
+
|
|
662
|
+
- name: suppress-footer
|
|
663
|
+
status: unused
|
|
664
|
+
origin: author
|
|
665
|
+
recipe: "@page .dc-suppress-footer"
|
|
666
|
+
emits: div.page.dc-suppress-footer
|
|
667
|
+
css: styles/page-rules.css
|
|
668
|
+
breaks: "page: clean"
|
|
669
|
+
|
|
670
|
+
- name: cover-page
|
|
671
|
+
status: unused
|
|
672
|
+
origin: author
|
|
673
|
+
recipe: "raw <div class=\"dc-cover-page dc-cover-layout\"> composite"
|
|
674
|
+
emits:
|
|
675
|
+
- div.dc-cover-page.dc-cover-layout > div.dc-cover-bg + div.dc-cover-num + h1.dc-cover-bigword + p.dc-cover-strap
|
|
676
|
+
- div.dc-cover-body + div.dc-cover-meta-row
|
|
677
|
+
css: styles/components/data.css
|
|
678
|
+
tokens: [--dc-cover-meta-border]
|
|
679
|
+
notes: "Documented in 05-page-templates.md inside a fenced example only."
|
|
680
|
+
|
|
681
|
+
- name: toc-rows
|
|
682
|
+
status: unused
|
|
683
|
+
origin: author
|
|
684
|
+
recipe: "raw <div class=\"dc-toc-row\"> > .dc-toc-no + .dc-toc-title + .dc-toc-page inside .dc-toc"
|
|
685
|
+
emits: div.dc-toc-row > span.dc-toc-no + span.dc-toc-title + span.dc-toc-page
|
|
686
|
+
css: styles/components/data.css
|
|
687
|
+
notes: "Both books' contents pages use a plain list inside .dc-toc."
|
|
688
|
+
|
|
689
|
+
- name: img-float
|
|
690
|
+
status: unused
|
|
691
|
+
origin: author
|
|
692
|
+
recipe: "{.dc-img-float-left|.dc-img-float-right}"
|
|
693
|
+
emits: img.dc-img-float-left|.dc-img-float-right
|
|
694
|
+
css: styles/components/images.css
|
|
695
|
+
notes: "Documented in 06-layout.md and 07-markdown-reference.md; no live use."
|
|
696
|
+
|
|
697
|
+
- name: portrait
|
|
698
|
+
status: unused
|
|
699
|
+
origin: author
|
|
700
|
+
recipe: "raw <div class=\"dc-portrait\"><img></div>"
|
|
701
|
+
emits: div.dc-portrait > img
|
|
702
|
+
css: styles/components/chrome.css
|
|
703
|
+
tokens: [--dc-portrait-border, --dc-portrait-surface]
|
|
704
|
+
|
|
705
|
+
- name: dashed-rule
|
|
706
|
+
status: unused
|
|
707
|
+
origin: author
|
|
708
|
+
recipe: "raw <hr class=\"dc-dashed-rule\">"
|
|
709
|
+
emits: hr.dc-dashed-rule
|
|
710
|
+
css: styles/components/chrome.css
|
|
711
|
+
|
|
712
|
+
- name: margin-sm
|
|
713
|
+
status: unused
|
|
714
|
+
origin: author
|
|
715
|
+
recipe: ".dc-margin-sm modifier (e.g. on .dc-tape)"
|
|
716
|
+
emits: .dc-margin-sm
|
|
717
|
+
css: styles/components/chrome.css
|
|
718
|
+
|
|
719
|
+
- name: path-subtitle
|
|
720
|
+
status: unused
|
|
721
|
+
origin: author
|
|
722
|
+
recipe: "raw <div class=\"dc-path-subtitle\">"
|
|
723
|
+
emits: div.dc-path-subtitle
|
|
724
|
+
css: styles/components/chrome.css
|
|
725
|
+
notes: "@learning-path emits .dc-intro for its subtitle, not this."
|
|
726
|
+
|
|
727
|
+
- name: outcome-table
|
|
728
|
+
status: unused
|
|
729
|
+
origin: author
|
|
730
|
+
recipe: "(none — no macro or markdown path emits it)"
|
|
731
|
+
emits: .dc-outcome-table
|
|
732
|
+
css: styles/components/cards.css
|
|
733
|
+
notes: "A column-span rule inside .dc-two-col; the plugin emits .dc-outcomes."
|
|
734
|
+
|
|
735
|
+
- name: roll-badges
|
|
736
|
+
status: unused
|
|
737
|
+
origin: author
|
|
738
|
+
recipe: "(none — no current authoring path)"
|
|
739
|
+
emits: [span.dc-roll-lucid, span.dc-roll-surreal]
|
|
740
|
+
css: styles/components/data.css
|
|
741
|
+
tokens: [--dc-roll-lucid-color, --dc-roll-surreal-color]
|
|
742
|
+
|
|
743
|
+
- name: sidebar-box-divider
|
|
744
|
+
status: unused
|
|
745
|
+
origin: author
|
|
746
|
+
recipe: "raw <hr class=\"dc-sidebar-box-divider\"> inside a sidebar-box"
|
|
747
|
+
emits: hr.dc-sidebar-box-divider
|
|
748
|
+
css: styles/components/data.css
|
|
749
|
+
|
|
750
|
+
- name: glossary-item
|
|
751
|
+
status: unused
|
|
752
|
+
origin: author
|
|
753
|
+
recipe: "raw <div class=\"dc-item\"> inside .dc-terms"
|
|
754
|
+
emits: div.dc-item
|
|
755
|
+
css: styles/components/images.css
|
|
756
|
+
breaks: "break-inside: avoid"
|
|
757
|
+
notes: "The class the CSS styles; the docs and gallery author .dc-terms-item instead (see glossary-item-authored)."
|
|
758
|
+
|
|
759
|
+
- name: callout-generic
|
|
760
|
+
status: unused
|
|
761
|
+
origin: author
|
|
762
|
+
recipe: "(none — no macro or markdown path emits it)"
|
|
763
|
+
emits: .dc-callout
|
|
764
|
+
css: styles/dc-native.css
|
|
765
|
+
notes: "One stale first-child glue rule in the engine sheet; the alert family emits .dc-alert. Adjacency rules for it were removed 2026-06-21 (chrome.css)."
|
|
766
|
+
|
|
767
|
+
# ── Retired: no CSS, no emission, no use (tombstone comments only) ─────
|
|
768
|
+
- name: roll-table
|
|
769
|
+
status: retired
|
|
770
|
+
origin: plugin
|
|
771
|
+
recipe: "@roll-table … @end-roll-table / @options-table … @end-options-table"
|
|
772
|
+
emits: []
|
|
773
|
+
notes: "Removed in plugin 17.3.0; the markers are still parsed and stripped as no-ops. Use @outcome or a plain table."
|
|
774
|
+
|
|
775
|
+
- name: rules-definition
|
|
776
|
+
status: retired
|
|
777
|
+
origin: author
|
|
778
|
+
recipe: "@section .dc-rules-definition"
|
|
779
|
+
emits: div.section.dc-rules-definition
|
|
780
|
+
notes: "Deleted 2026-09-02 (section.css, cards.css tombstones): 0 uses, 0 emissions."
|
|
781
|
+
|
|
782
|
+
- name: stamp
|
|
783
|
+
status: retired
|
|
784
|
+
origin: author
|
|
785
|
+
recipe: "raw .dc-stamp / .dc-classified"
|
|
786
|
+
emits: [.dc-stamp, .dc-classified]
|
|
787
|
+
notes: "Removed 2026-05-24 (chrome.css tombstone). Revive as @section .dc-stamp, not raw HTML."
|
|
788
|
+
|
|
789
|
+
- name: chapter-opener-no
|
|
790
|
+
status: retired
|
|
791
|
+
origin: plugin
|
|
792
|
+
recipe: "@chapter-opener"
|
|
793
|
+
emits: .dc-chapter-opener-no
|
|
794
|
+
notes: "The @chapter-opener macro and its badge class were retired when the composite became markup-driven (chrome.css tombstone)."
|
|
795
|
+
|
|
796
|
+
- name: art-placement
|
|
797
|
+
status: retired
|
|
798
|
+
origin: author
|
|
799
|
+
recipe: "@page .dc-art-top / .dc-art-bottom"
|
|
800
|
+
emits: [.dc-art-top, .dc-art-bottom]
|
|
801
|
+
notes: "Deleted 2026-09-02 (page-templates.css, images.css tombstones)."
|
|
802
|
+
|
|
803
|
+
- name: class-entry
|
|
804
|
+
status: retired
|
|
805
|
+
origin: plugin
|
|
806
|
+
recipe: "@class-entry … @end-class-entry"
|
|
807
|
+
emits: div.section.dc-class-entry > .dc-content-col + .dc-tag-row
|
|
808
|
+
notes: "Retired 2026-05-24 (images.css tombstone); the marker is no longer recognised and passes through as text."
|
|
809
|
+
|
|
810
|
+
- name: gear-entry
|
|
811
|
+
status: retired
|
|
812
|
+
origin: author
|
|
813
|
+
recipe: "raw .dc-gear-entry markup / @section .dc-gear-list"
|
|
814
|
+
emits: [.dc-gear-entry, div.section.dc-gear-list]
|
|
815
|
+
notes: "Removed 2026-08-21 (data.css GEAR ENTRY tombstone); neither could ever match what @gear emits."
|
|
816
|
+
|
|
817
|
+
# ── Unimplemented: documented or authored, never built ────────────────
|
|
818
|
+
- name: skill-card-continuation-marker
|
|
819
|
+
status: unimplemented
|
|
820
|
+
origin: plugin
|
|
821
|
+
recipe: "(described in 04-components.md, 09-component-gallery.md and docs/components-and-palette-reference.md as automatic ▸ / ◂ markers on split skill cards)"
|
|
822
|
+
emits: [.dc-card-cont-marker, .dc-card-fwd-marker]
|
|
823
|
+
notes: "Nothing ever emitted these; they needed a runtime script hook gutterpress does not have (cards.css comment, removed 2026-07-25). The docs describing them are stale."
|
|
824
|
+
|
|
825
|
+
- name: glossary-item-authored
|
|
826
|
+
status: unimplemented
|
|
827
|
+
origin: author
|
|
828
|
+
recipe: "raw <div class=\"dc-terms-item\"> inside .dc-terms (as the docs and gallery write it)"
|
|
829
|
+
emits: div.dc-terms-item
|
|
830
|
+
notes: "No CSS has ever styled .dc-terms-item — images.css styles .dc-terms .dc-item. The gallery specimen renders unstyled. Resolve by renaming one side; a separate decision."
|
|
831
|
+
|
|
832
|
+
# Classes a book uses that are not components.
|