rikiki-deck 0.6.0 → 0.7.2
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/.claude/skills/rikiki-debug/SKILL.md +17 -7
- package/.claude/skills/rikiki-deck/SKILL.md +362 -77
- package/.claude/skills/rikiki-theme/SKILL.md +1 -1
- package/README.md +69 -50
- package/bin/lib/assemble.mjs +154 -0
- package/bin/lib/box-geometry.mjs +66 -0
- package/bin/lib/browser.mjs +302 -0
- package/bin/lib/check-api.d.ts +28 -0
- package/bin/lib/check-api.mjs +6 -0
- package/bin/lib/check-plugins.mjs +228 -0
- package/bin/lib/check.mjs +1347 -0
- package/bin/lib/cli-error.mjs +26 -0
- package/bin/lib/component-deps.mjs +69 -0
- package/bin/lib/diff.mjs +275 -0
- package/bin/lib/export-pdf.mjs +65 -0
- package/bin/lib/graph-hit.mjs +86 -0
- package/bin/lib/inline.mjs +137 -39
- package/bin/lib/narrative.mjs +77 -0
- package/bin/lib/prune-icons.mjs +104 -0
- package/bin/lib/render.mjs +195 -0
- package/bin/lib/scan-external.mjs +126 -0
- package/bin/lib/starter.mjs +27 -14
- package/bin/lib/visual.mjs +120 -0
- package/bin/rikiki.mjs +420 -35
- package/dist/annotation-marks.d.ts +60 -0
- package/dist/annotation-marks.js +1 -0
- package/dist/bar-segments.d.ts +28 -0
- package/dist/bar-segments.js +1 -0
- package/dist/browser-location.d.ts +3 -0
- package/dist/browser-location.js +1 -0
- package/dist/cards-syntax.d.ts +31 -0
- package/dist/cards-syntax.js +6 -0
- package/dist/{plugins/click-stages.d.ts → click-stages.d.ts} +1 -1
- package/dist/deck-agenda.d.ts +25 -0
- package/dist/deck-agenda.js +6 -0
- package/dist/deck-annotate.d.ts +108 -0
- package/dist/deck-annotate.js +18 -0
- package/dist/deck-bar.d.ts +32 -0
- package/dist/deck-bar.js +19 -0
- package/dist/deck-bento.d.ts +38 -0
- package/dist/deck-bento.js +4 -0
- package/dist/{molecules/deck-callout.d.ts → deck-callout.d.ts} +2 -0
- package/dist/deck-callout.js +1 -1
- package/dist/deck-cell.d.ts +19 -0
- package/dist/deck-cell.js +1 -0
- package/dist/deck-checklist.d.ts +20 -0
- package/dist/deck-checklist.js +1 -0
- package/dist/{layouts/deck-cover.d.ts → deck-cover.d.ts} +8 -0
- package/dist/deck-cover.js +9 -6
- package/dist/deck-csv.d.ts +38 -0
- package/dist/deck-csv.js +15 -0
- package/dist/deck-feature-cards.js +2 -2
- package/dist/deck-feature.d.ts +18 -0
- package/dist/deck-feature.js +2 -2
- package/dist/deck-figure.d.ts +26 -0
- package/dist/deck-figure.js +8 -0
- package/dist/deck-fit.d.ts +14 -0
- package/dist/deck-fit.js +1 -0
- package/dist/deck-flow.d.ts +41 -0
- package/dist/deck-flow.js +7 -0
- package/dist/deck-graph.d.ts +92 -0
- package/dist/deck-graph.js +25 -0
- package/dist/deck-grid.js +1 -1
- package/dist/deck-icon.d.ts +20 -0
- package/dist/deck-icon.js +1 -0
- package/dist/{atoms/deck-kicker.d.ts → deck-kicker.d.ts} +5 -0
- package/dist/deck-kicker.js +1 -1
- package/dist/deck-kpi-grid.d.ts +26 -0
- package/dist/deck-kpi-grid.js +4 -0
- package/dist/deck-link.d.ts +21 -0
- package/dist/deck-link.js +1 -0
- package/dist/{molecules/deck-md.d.ts → deck-md.d.ts} +3 -0
- package/dist/deck-md.js +8 -3
- package/dist/deck-mermaid.js +15 -3
- package/dist/deck-outline.d.ts +50 -0
- package/dist/deck-outline.js +1 -0
- package/dist/deck-overview.js +53 -39
- package/dist/deck-persona.d.ts +31 -0
- package/dist/deck-persona.js +6 -0
- package/dist/deck-photo.js +1 -1
- package/dist/deck-point.d.ts +22 -0
- package/dist/deck-point.js +1 -0
- package/dist/deck-presenter.js +120 -48
- package/dist/deck-pull.d.ts +13 -0
- package/dist/deck-pull.js +1 -0
- package/dist/{atoms/deck-punch.d.ts → deck-punch.d.ts} +6 -0
- package/dist/deck-punch.js +1 -1
- package/dist/deck-quote.d.ts +28 -0
- package/dist/deck-quote.js +6 -0
- package/dist/{runtime/deck-root.d.ts → deck-root.d.ts} +88 -8
- package/dist/deck-root.js +17 -13
- package/dist/deck-section.js +2 -2
- package/dist/deck-source.d.ts +12 -0
- package/dist/deck-source.js +2 -0
- package/dist/deck-split.d.ts +30 -0
- package/dist/deck-split.js +5 -3
- package/dist/{molecules/deck-stat.d.ts → deck-stat.d.ts} +2 -0
- package/dist/deck-stat.js +2 -2
- package/dist/{molecules/deck-step-list.d.ts → deck-step-list.d.ts} +8 -0
- package/dist/deck-step-list.js +4 -2
- package/dist/deck-table.d.ts +26 -0
- package/dist/deck-table.js +1 -0
- package/dist/deck-takeaway.d.ts +18 -0
- package/dist/deck-takeaway.js +2 -2
- package/dist/deck-timeline.d.ts +37 -0
- package/dist/deck-timeline.js +5 -0
- package/dist/deck-transition.js +3 -3
- package/dist/deck-versus.d.ts +18 -0
- package/dist/deck-versus.js +9 -0
- package/dist/deep-link.d.ts +29 -0
- package/dist/deep-link.js +1 -0
- package/dist/escape-html.d.ts +3 -0
- package/dist/escape-html.js +1 -0
- package/dist/fit-controller.d.ts +27 -0
- package/dist/fit-controller.js +1 -0
- package/dist/graph-layout.d.ts +35 -0
- package/dist/graph-layout.js +1 -0
- package/dist/grid-tracks.d.ts +17 -0
- package/dist/grid-tracks.js +1 -0
- package/dist/icon-set.d.ts +6 -0
- package/dist/icon-set.js +1 -0
- package/dist/index.d.ts +37 -31
- package/dist/index.js +95 -49
- package/dist/keymap.d.ts +40 -0
- package/dist/keymap.js +1 -0
- package/dist/mouse-nav.d.ts +12 -0
- package/dist/mouse-nav.js +1 -0
- package/dist/navigation.d.ts +25 -0
- package/dist/navigation.js +1 -0
- package/dist/parse-csv.d.ts +9 -0
- package/dist/parse-csv.js +3 -0
- package/dist/shared-styles.js +1 -1
- package/dist/shiki.d.ts +8 -0
- package/dist/signature.d.ts +2 -0
- package/dist/signature.js +1 -0
- package/dist/slide-fill.d.ts +8 -0
- package/dist/slide-fill.js +1 -0
- package/dist/standalone.js +301 -169
- package/dist/vendor/THIRD-PARTY-NOTICES.txt +4347 -0
- package/dist/vendor/inventory.json +3029 -0
- package/dist/vendor/lit.js +62 -2
- package/dist/vendor/mermaid.min.js +95 -95
- package/dist/vendor/shiki.js +1 -57
- package/dist/viewport.d.ts +42 -0
- package/dist/viewport.js +1 -0
- package/docs/llms/rikiki-reference.md +955 -64
- package/docs/llms/rikiki-workflow.md +536 -0
- package/llms.txt +39 -12
- package/package.json +33 -12
- package/themes/rikiki.css +173 -47
- package/themes/siliceum.css +171 -51
- package/dist/layouts/deck-feature.d.ts +0 -11
- package/dist/layouts/deck-split.d.ts +0 -18
- package/dist/layouts/deck-takeaway.d.ts +0 -11
- package/dist/plugins/shiki.d.ts +0 -8
- /package/dist/{runtime/color.d.ts → color.d.ts} +0 -0
- /package/dist/{atoms/deck-badge.d.ts → deck-badge.d.ts} +0 -0
- /package/dist/{molecules/deck-card.d.ts → deck-card.d.ts} +0 -0
- /package/dist/{atoms/deck-code-highlighter.d.ts → deck-code-highlighter.d.ts} +0 -0
- /package/dist/{atoms/deck-code.d.ts → deck-code.d.ts} +0 -0
- /package/dist/{layouts/deck-feature-cards.d.ts → deck-feature-cards.d.ts} +0 -0
- /package/dist/{molecules/deck-grid.d.ts → deck-grid.d.ts} +0 -0
- /package/dist/{runtime/deck-help.d.ts → deck-help.d.ts} +0 -0
- /package/dist/{molecules/deck-mermaid.d.ts → deck-mermaid.d.ts} +0 -0
- /package/dist/{molecules/deck-metric.d.ts → deck-metric.d.ts} +0 -0
- /package/dist/{runtime/deck-notes.d.ts → deck-notes.d.ts} +0 -0
- /package/dist/{runtime/deck-overview.d.ts → deck-overview.d.ts} +0 -0
- /package/dist/{layouts/deck-photo.d.ts → deck-photo.d.ts} +0 -0
- /package/dist/{runtime/deck-presenter.d.ts → deck-presenter.d.ts} +0 -0
- /package/dist/{layouts/deck-section.d.ts → deck-section.d.ts} +0 -0
- /package/dist/{molecules/deck-shortcut.d.ts → deck-shortcut.d.ts} +0 -0
- /package/dist/{molecules/deck-stack.d.ts → deck-stack.d.ts} +0 -0
- /package/dist/{molecules/deck-tier-list.d.ts → deck-tier-list.d.ts} +0 -0
- /package/dist/{runtime/deck-transition.d.ts → deck-transition.d.ts} +0 -0
package/themes/siliceum.css
CHANGED
|
@@ -31,21 +31,24 @@
|
|
|
31
31
|
|
|
32
32
|
--rik-palette-mango-700: #a87e00;
|
|
33
33
|
--rik-palette-mango-500: #F7CB44;
|
|
34
|
+
/* The -100 step is the status FILL, and a fill has to be seen: measured
|
|
35
|
+
against the page it must clear a CIE76 delta E of 10, which lands every
|
|
36
|
+
hue at an alpha of 0.18. Enforced by scripts/theme-contrast.test.mjs. */
|
|
34
37
|
--rik-palette-mango-200: rgba(247, 203, 68, 0.45);
|
|
35
38
|
--rik-palette-mango-100: rgba(247, 203, 68, 0.18);
|
|
36
39
|
--rik-palette-mango-50: rgba(247, 203, 68, 0.05);
|
|
37
40
|
|
|
38
41
|
--rik-palette-ember-500: #dc2626;
|
|
39
42
|
--rik-palette-ember-200: rgba(220, 38, 38, 0.45);
|
|
40
|
-
--rik-palette-ember-100: rgba(220, 38, 38, 0.
|
|
43
|
+
--rik-palette-ember-100: rgba(220, 38, 38, 0.18);
|
|
41
44
|
|
|
42
45
|
--rik-palette-helico-500: #16a34a;
|
|
43
46
|
--rik-palette-helico-200: rgba(22, 163, 74, 0.45);
|
|
44
|
-
--rik-palette-helico-100: rgba(22, 163, 74, 0.
|
|
47
|
+
--rik-palette-helico-100: rgba(22, 163, 74, 0.18);
|
|
45
48
|
|
|
46
49
|
--rik-palette-warm-500: #ea580c;
|
|
47
50
|
--rik-palette-warm-200: rgba(234, 88, 12, 0.40);
|
|
48
|
-
--rik-palette-warm-100: rgba(234, 88, 12, 0.
|
|
51
|
+
--rik-palette-warm-100: rgba(234, 88, 12, 0.18);
|
|
49
52
|
|
|
50
53
|
--rik-palette-orchid-500: #7c3aed;
|
|
51
54
|
--rik-palette-lime-500: #84cc16;
|
|
@@ -70,7 +73,8 @@
|
|
|
70
73
|
|
|
71
74
|
--rik-text-default: var(--rik-palette-ink-900);
|
|
72
75
|
--rik-text-default--muted: var(--rik-palette-ink-700);
|
|
73
|
-
|
|
76
|
+
/* Text-grade · ink-500 measured 4.35:1 on the page, under AA body text. */
|
|
77
|
+
--rik-text-default--faint: #727272;
|
|
74
78
|
--rik-text-inverse: #ffffff;
|
|
75
79
|
--rik-text-inverse--muted: rgba(255, 255, 255, 0.70);
|
|
76
80
|
--rik-text-inverse--faint: rgba(255, 255, 255, 0.55);
|
|
@@ -100,7 +104,7 @@
|
|
|
100
104
|
|
|
101
105
|
--rik-status-info: var(--rik-palette-mango-500);
|
|
102
106
|
--rik-status-info__text: var(--rik-palette-mango-700);
|
|
103
|
-
--rik-status-info__bg: var(--rik-palette-mango-
|
|
107
|
+
--rik-status-info__bg: var(--rik-palette-mango-100);
|
|
104
108
|
--rik-status-info__bg--mid: var(--rik-palette-mango-100);
|
|
105
109
|
--rik-status-info__bg--strong: rgba(247, 203, 68, 0.18);
|
|
106
110
|
--rik-status-info__border: var(--rik-palette-mango-200);
|
|
@@ -116,7 +120,8 @@
|
|
|
116
120
|
--rik-focus-ring--width: 2px;
|
|
117
121
|
--rik-focus-ring--offset: 2px;
|
|
118
122
|
|
|
119
|
-
|
|
123
|
+
/* accent--strong measured 3.56:1 on the page · under AA for body text. */
|
|
124
|
+
--rik-link: #916d00;
|
|
120
125
|
--rik-link--hover: var(--rik-accent);
|
|
121
126
|
--rik-link--visited: var(--rik-palette-orchid-500);
|
|
122
127
|
|
|
@@ -127,6 +132,23 @@
|
|
|
127
132
|
--rik-decor-lime: var(--rik-palette-lime-500);
|
|
128
133
|
--rik-decor-canary: var(--rik-palette-canary-500);
|
|
129
134
|
|
|
135
|
+
/* Default vertical distribution of a slide body · a per-slide `spread`
|
|
136
|
+
attribute overrides it. Density is usually a per-slide judgement, which is
|
|
137
|
+
why this is a theme default and not a deck-level attribute. */
|
|
138
|
+
|
|
139
|
+
/* Text-grade tone companions · the plain tones are surface/decoration colors
|
|
140
|
+
and several of them sit under WCAG AA on the page. Anything that renders
|
|
141
|
+
TEXT in a tone (deck-punch, deck-stat) must route here instead.
|
|
142
|
+
Measured, not eyeballed · src/shared/contrast.test.ts fails if a value
|
|
143
|
+
drifts under the large-text threshold. */
|
|
144
|
+
--rik-status-success__text: var(--rik-palette-helico-500);
|
|
145
|
+
--rik-status-warn__text: var(--rik-palette-warm-500);
|
|
146
|
+
--rik-status-danger__text: var(--rik-palette-ember-500);
|
|
147
|
+
--rik-accent__text: #ab8d2f;
|
|
148
|
+
--rik-decor-orchid__text: var(--rik-palette-orchid-500);
|
|
149
|
+
--rik-decor-lime__text: #67a011;
|
|
150
|
+
--rik-decor-canary__text: var(--rik-palette-canary-500);
|
|
151
|
+
|
|
130
152
|
--rik-elevation-1: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
131
153
|
--rik-elevation-2: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.04);
|
|
132
154
|
--rik-elevation-3: 0 2px 6px rgba(0, 0, 0, 0.06), 0 8px 20px rgba(0, 0, 0, 0.06);
|
|
@@ -162,16 +184,22 @@
|
|
|
162
184
|
--rik-text-3xl: 3.815rem;
|
|
163
185
|
--rik-text-4xl: 4.768rem;
|
|
164
186
|
|
|
165
|
-
|
|
166
|
-
|
|
187
|
+
/* Both of these used to sit under the legibility floor · the 8H rule puts
|
|
188
|
+
the smallest readable text at 1/50 of the screen height, which is 21.6px
|
|
189
|
+
on the 1080 canvas, and they resolved to 16.2px (1/66) and 20.3px (1/53).
|
|
190
|
+
A size nobody in the room can read is not a quiet tier, it is a tier that
|
|
191
|
+
is not there, and it was the size the micro-label tier lived at.
|
|
192
|
+
scripts/type-scale.test.mjs holds the floor now. */
|
|
193
|
+
--rik-font-size-xs: var(--rik-text-sm);
|
|
194
|
+
--rik-font-size-sm: var(--rik-text-sm);
|
|
167
195
|
/* Slide body sized for projection (≈32px on the 1080 canvas) · the headings
|
|
168
196
|
step up with it so the hierarchy (incl. markdown ## → h2) stays above body. */
|
|
169
197
|
--rik-font-size-body: var(--rik-text-base);
|
|
170
198
|
--rik-font-size-lead: var(--rik-text-md);
|
|
171
199
|
--rik-font-size-h2: var(--rik-text-md);
|
|
172
|
-
--rik-font-size-h1: var(--rik-text-
|
|
173
|
-
--rik-font-size-section: var(--rik-text-
|
|
174
|
-
--rik-font-size-display: var(--rik-text-
|
|
200
|
+
--rik-font-size-h1: var(--rik-text-2xl);
|
|
201
|
+
--rik-font-size-section: var(--rik-text-3xl);
|
|
202
|
+
--rik-font-size-display: var(--rik-text-2xl);
|
|
175
203
|
--rik-font-size-mono: 0.88rem;
|
|
176
204
|
--rik-font-size-mono-sm: var(--rik-text-xs);
|
|
177
205
|
|
|
@@ -211,6 +239,16 @@
|
|
|
211
239
|
--rik-slide-padding-x: 4rem;
|
|
212
240
|
--rik-title-block: 4.5rem;
|
|
213
241
|
|
|
242
|
+
/* Slide-title voice · the four values the two shipped themes disagreed on,
|
|
243
|
+
each of them written twice in a light-DOM rule the other theme copied and
|
|
244
|
+
edited. A theme carries VALUES; the rule that consumes them is written
|
|
245
|
+
once. scripts/theme-parity.test.mjs keeps the two files structurally
|
|
246
|
+
identical so the next divergence cannot be silent. */
|
|
247
|
+
--rik-title-weight: 700;
|
|
248
|
+
--rik-title-tracking: -0.018em;
|
|
249
|
+
--rik-title-leading: 1.15;
|
|
250
|
+
--rik-rule-weight: 2px;
|
|
251
|
+
|
|
214
252
|
--rik-code__bg: #0f0f10;
|
|
215
253
|
--rik-code__border: #232325;
|
|
216
254
|
--rik-code__text: #f4f4f5;
|
|
@@ -235,40 +273,53 @@
|
|
|
235
273
|
}
|
|
236
274
|
|
|
237
275
|
/* Minimal reset */
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
276
|
+
/* Scoped to the deck subtree · a host page that imports this theme to show an
|
|
277
|
+
embedded deck keeps its own box model and its own heading margins. */
|
|
278
|
+
deck-root, deck-root *, deck-root *::before, deck-root *::after { box-sizing: border-box; }
|
|
279
|
+
deck-root h1, deck-root h2, deck-root h3, deck-root h4, deck-root p,
|
|
280
|
+
deck-root ul, deck-root ol, deck-root li, deck-root blockquote, deck-root pre,
|
|
281
|
+
deck-root table, deck-root td, deck-root th, deck-root figure,
|
|
282
|
+
deck-root dl, deck-root dd { margin: 0; padding: 0; }
|
|
241
283
|
/* The rem baseline and the no-scroll reset are injected globally by deck-root
|
|
242
284
|
(theme-independent · see _injectGlobals). The theme only owns the page surface
|
|
243
285
|
and the type below. */
|
|
244
|
-
|
|
245
|
-
|
|
286
|
+
/* Page surface · only when the deck IS the page. An embedded deck must not
|
|
287
|
+
repaint the document around it. */
|
|
288
|
+
html:has(> body > deck-root), html:has(> body > deck-root) body {
|
|
289
|
+
background: var(--rik-surface-page);
|
|
290
|
+
}
|
|
291
|
+
html:has(> body > deck-root) body {
|
|
292
|
+
margin: 0;
|
|
293
|
+
font-family: var(--rik-font-sans);
|
|
294
|
+
color: var(--rik-text-default);
|
|
295
|
+
}
|
|
246
296
|
|
|
247
297
|
::selection { background: var(--rik-selection__bg); color: var(--rik-selection__text); }
|
|
248
298
|
|
|
249
299
|
/* Light-DOM helpers */
|
|
250
|
-
.accent
|
|
251
|
-
.accent-danger
|
|
252
|
-
.accent-warn
|
|
253
|
-
.accent-success
|
|
254
|
-
.accent-orchid
|
|
255
|
-
.accent-lime
|
|
256
|
-
|
|
257
|
-
.sub {
|
|
300
|
+
deck-root .accent { color: var(--rik-accent); } /* bright yellow · for slides on dark; on paper, use --rik-link */
|
|
301
|
+
deck-root .accent-danger { color: var(--rik-status-danger); }
|
|
302
|
+
deck-root .accent-warn { color: var(--rik-status-warn); }
|
|
303
|
+
deck-root .accent-success { color: var(--rik-status-success); }
|
|
304
|
+
deck-root .accent-orchid { color: var(--rik-decor-orchid); }
|
|
305
|
+
deck-root .accent-lime { color: var(--rik-decor-lime); }
|
|
306
|
+
|
|
307
|
+
deck-root .sub {
|
|
258
308
|
font-size: var(--rik-font-size-h2);
|
|
259
|
-
color: var(--rik-text-inverse--
|
|
309
|
+
color: var(--rik-text-inverse--muted);
|
|
260
310
|
line-height: 1.45;
|
|
261
311
|
max-width: 60ch;
|
|
262
312
|
}
|
|
263
|
-
.display {
|
|
313
|
+
deck-root .display {
|
|
314
|
+
font-family: var(--rik-font-display);
|
|
264
315
|
font-size: clamp(3rem, 7cqw, 5.5rem);
|
|
265
316
|
font-weight: 900;
|
|
266
317
|
line-height: 1.05;
|
|
267
318
|
letter-spacing: -0.03em;
|
|
268
319
|
}
|
|
269
|
-
.display.danger
|
|
270
|
-
.caption.on-dark
|
|
271
|
-
.lead {
|
|
320
|
+
deck-root .display.danger { color: var(--rik-status-danger); }
|
|
321
|
+
deck-root .caption.on-dark { color: var(--rik-text-inverse--muted); font-size: var(--rik-font-size-lead); }
|
|
322
|
+
deck-root .lead {
|
|
272
323
|
font-size: var(--rik-font-size-lead);
|
|
273
324
|
color: var(--rik-text-default--faint);
|
|
274
325
|
line-height: 1.5;
|
|
@@ -277,20 +328,21 @@ body { font-family: var(--rik-font-sans); color: var(--rik-text-default); }
|
|
|
277
328
|
|
|
278
329
|
deck-feature > h1,
|
|
279
330
|
deck-split > h1,
|
|
280
|
-
deck-feature-cards > h1 {
|
|
331
|
+
deck-root deck-feature-cards > h1 {
|
|
281
332
|
font-family: var(--rik-font-display);
|
|
282
333
|
font-size: var(--rik-font-size-h1);
|
|
283
|
-
font-weight:
|
|
334
|
+
font-weight: var(--rik-title-weight);
|
|
284
335
|
color: var(--rik-text-default);
|
|
285
|
-
letter-spacing: -
|
|
286
|
-
line-height:
|
|
336
|
+
letter-spacing: var(--rik-title-tracking);
|
|
337
|
+
line-height: var(--rik-title-leading);
|
|
287
338
|
margin-bottom: var(--rik-space-4);
|
|
288
339
|
padding-bottom: var(--rik-space-2);
|
|
289
|
-
border-bottom:
|
|
340
|
+
border-bottom: var(--rik-rule-weight) solid var(--rik-accent);
|
|
290
341
|
display: inline-block;
|
|
291
342
|
align-self: flex-start;
|
|
292
343
|
}
|
|
293
|
-
deck-cover > h1 {
|
|
344
|
+
deck-root deck-cover > h1 {
|
|
345
|
+
font-family: var(--rik-font-display);
|
|
294
346
|
font-size: clamp(3.6rem, 9cqw, 8.5rem);
|
|
295
347
|
font-weight: 900;
|
|
296
348
|
color: var(--rik-text-inverse);
|
|
@@ -298,7 +350,8 @@ deck-cover > h1 {
|
|
|
298
350
|
letter-spacing: -0.035em;
|
|
299
351
|
margin-bottom: var(--rik-space-4);
|
|
300
352
|
}
|
|
301
|
-
deck-section > h1 {
|
|
353
|
+
deck-root deck-section > h1 {
|
|
354
|
+
font-family: var(--rik-font-display);
|
|
302
355
|
font-size: var(--rik-font-size-section);
|
|
303
356
|
font-weight: 900;
|
|
304
357
|
color: var(--rik-accent);
|
|
@@ -307,16 +360,16 @@ deck-section > h1 {
|
|
|
307
360
|
max-width: 18ch;
|
|
308
361
|
text-align: center;
|
|
309
362
|
}
|
|
310
|
-
deck-section > h1 em {
|
|
311
|
-
color: var(--rik-text-inverse--
|
|
363
|
+
deck-root deck-section > h1 em {
|
|
364
|
+
color: var(--rik-text-inverse--muted);
|
|
312
365
|
font-style: normal;
|
|
313
366
|
font-weight: 700;
|
|
314
367
|
}
|
|
315
368
|
|
|
316
|
-
deck-cover > .sub, deck-cover > p.sub {
|
|
369
|
+
deck-root deck-cover > .sub, deck-root deck-cover > p.sub {
|
|
317
370
|
display: block;
|
|
318
371
|
font-size: var(--rik-font-size-h2);
|
|
319
|
-
color: var(--rik-text-inverse--
|
|
372
|
+
color: var(--rik-text-inverse--muted);
|
|
320
373
|
margin-bottom: var(--rik-space-6);
|
|
321
374
|
max-width: 60ch;
|
|
322
375
|
line-height: 1.45;
|
|
@@ -324,7 +377,7 @@ deck-cover > .sub, deck-cover > p.sub {
|
|
|
324
377
|
|
|
325
378
|
deck-feature > .lead,
|
|
326
379
|
deck-split > .lead,
|
|
327
|
-
deck-feature-cards > .lead {
|
|
380
|
+
deck-root deck-feature-cards > .lead {
|
|
328
381
|
display: block;
|
|
329
382
|
font-size: var(--rik-font-size-lead);
|
|
330
383
|
color: var(--rik-text-default--faint);
|
|
@@ -333,7 +386,7 @@ deck-feature-cards > .lead {
|
|
|
333
386
|
max-width: 75ch;
|
|
334
387
|
}
|
|
335
388
|
|
|
336
|
-
deck-feature code, deck-split code, deck-feature-cards code, deck-md code {
|
|
389
|
+
deck-root deck-feature code, deck-root deck-split code, deck-root deck-feature-cards code, deck-root deck-md code {
|
|
337
390
|
font-family: var(--rik-font-mono);
|
|
338
391
|
font-size: var(--rik-font-size-mono-sm);
|
|
339
392
|
background: var(--rik-surface-tint);
|
|
@@ -341,16 +394,16 @@ deck-feature code, deck-split code, deck-feature-cards code, deck-md code {
|
|
|
341
394
|
border-radius: var(--rik-radius-sm);
|
|
342
395
|
color: var(--rik-text-default);
|
|
343
396
|
}
|
|
344
|
-
deck-code code { all: unset; }
|
|
397
|
+
deck-root deck-code code { all: unset; }
|
|
345
398
|
|
|
346
|
-
.card-text {
|
|
399
|
+
deck-root .card-text {
|
|
347
400
|
font-size: var(--rik-font-size-body);
|
|
348
401
|
color: var(--rik-text-default--muted);
|
|
349
402
|
line-height: 1.55;
|
|
350
403
|
margin: 0;
|
|
351
404
|
}
|
|
352
405
|
|
|
353
|
-
table.dense {
|
|
406
|
+
deck-root table.dense {
|
|
354
407
|
width: 100%;
|
|
355
408
|
border-collapse: separate;
|
|
356
409
|
border-spacing: 0;
|
|
@@ -361,7 +414,7 @@ table.dense {
|
|
|
361
414
|
background: var(--rik-surface-raised--strong);
|
|
362
415
|
box-shadow: var(--rik-elevation-2);
|
|
363
416
|
}
|
|
364
|
-
table.dense th {
|
|
417
|
+
deck-root table.dense th {
|
|
365
418
|
text-align: left;
|
|
366
419
|
padding: 10px var(--rik-space-3);
|
|
367
420
|
color: var(--rik-text-default--faint);
|
|
@@ -372,13 +425,80 @@ table.dense th {
|
|
|
372
425
|
border-bottom: 1px solid var(--rik-border-default);
|
|
373
426
|
background: var(--rik-surface-sunken);
|
|
374
427
|
}
|
|
375
|
-
table.dense td {
|
|
428
|
+
deck-root table.dense td {
|
|
376
429
|
padding: 10px var(--rik-space-3);
|
|
377
430
|
border-bottom: 1px solid var(--rik-border-default);
|
|
378
431
|
color: var(--rik-text-default--muted);
|
|
379
432
|
line-height: 1.4;
|
|
380
433
|
}
|
|
381
|
-
table.dense tr:last-child td { border-bottom: none; }
|
|
382
|
-
table.dense td.ok
|
|
383
|
-
table.dense td.no
|
|
384
|
-
table.dense td.meh { color: var(--rik-status-warn); }
|
|
434
|
+
deck-root table.dense tr:last-child td { border-bottom: none; }
|
|
435
|
+
deck-root table.dense td.ok { color: var(--rik-status-success); font-weight: 700; }
|
|
436
|
+
deck-root table.dense td.no { color: var(--rik-status-danger); }
|
|
437
|
+
deck-root table.dense td.meh { color: var(--rik-status-warn); }
|
|
438
|
+
|
|
439
|
+
/* deck-table · the table stays in the author's light DOM, so its rules live
|
|
440
|
+
here rather than in a shadow root. Scoped to the deck subtree like every
|
|
441
|
+
other helper.
|
|
442
|
+
|
|
443
|
+
The look is the extras direction applied to data (docs/design/adr-002): the
|
|
444
|
+
header is told apart by weight and one rule, rows by hairlines, and nothing
|
|
445
|
+
is filled except the single row that matters. A pale tint reads as nothing at projection distance
|
|
446
|
+
(the raised surface sits at 1.10 contrast against the page), so emphasis is
|
|
447
|
+
the inverse surface · a dark band across the row. */
|
|
448
|
+
deck-root table[data-rik-table] {
|
|
449
|
+
width: 100%;
|
|
450
|
+
border-collapse: collapse;
|
|
451
|
+
font-variant-numeric: tabular-nums;
|
|
452
|
+
}
|
|
453
|
+
deck-root table[data-rik-table] thead th {
|
|
454
|
+
text-align: left;
|
|
455
|
+
font-weight: 700;
|
|
456
|
+
color: var(--rik-text-default--muted);
|
|
457
|
+
padding: 0 var(--rik-space-4) var(--rik-space-2);
|
|
458
|
+
border-bottom: 2px solid var(--rik-accent);
|
|
459
|
+
}
|
|
460
|
+
deck-root table[data-rik-table] tbody td {
|
|
461
|
+
padding: var(--rik-space-3) var(--rik-space-4);
|
|
462
|
+
border-bottom: 1px solid var(--rik-border-default);
|
|
463
|
+
color: var(--rik-text-default);
|
|
464
|
+
line-height: 1.35;
|
|
465
|
+
}
|
|
466
|
+
deck-root table[data-rik-table] tbody tr:last-child td { border-bottom: none; }
|
|
467
|
+
|
|
468
|
+
/* The emphasised row · one dark band, the only filled thing on the slide. */
|
|
469
|
+
deck-root table[data-rik-table] tr[data-mark] > td {
|
|
470
|
+
background: var(--deck-table-mark-bg, var(--rik-surface-inverse));
|
|
471
|
+
color: var(--deck-table-mark-color, var(--rik-text-inverse));
|
|
472
|
+
border-bottom-color: var(--deck-table-mark-bg, var(--rik-surface-inverse));
|
|
473
|
+
font-weight: 700;
|
|
474
|
+
}
|
|
475
|
+
deck-root table[data-rik-table] tr[data-mark] > td:first-child {
|
|
476
|
+
border-radius: var(--rik-radius-sm) 0 0 var(--rik-radius-sm);
|
|
477
|
+
}
|
|
478
|
+
deck-root table[data-rik-table] tr[data-mark] > td:last-child {
|
|
479
|
+
border-radius: 0 var(--rik-radius-sm) var(--rik-radius-sm) 0;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/* The emphasised column · colour and weight, never a second fill · two
|
|
483
|
+
overlapping tints is how a table stops having a hierarchy at all. */
|
|
484
|
+
deck-root table[data-rik-table] td[data-mark],
|
|
485
|
+
deck-root table[data-rik-table] th[data-mark] {
|
|
486
|
+
color: var(--deck-table-col-color, var(--rik-accent__text));
|
|
487
|
+
font-weight: 700;
|
|
488
|
+
}
|
|
489
|
+
deck-root table[data-rik-table] tr[data-mark] > td[data-mark] {
|
|
490
|
+
color: var(--deck-table-col-on-mark, var(--rik-accent));
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
deck-root table[data-rik-table] tr[data-pending] {
|
|
494
|
+
/* Hidden but still occupying its row · a table that grows makes the slide
|
|
495
|
+
jump under the audience. */
|
|
496
|
+
visibility: hidden;
|
|
497
|
+
}
|
|
498
|
+
@media print {
|
|
499
|
+
deck-root table[data-rik-table] tr[data-pending] { visibility: visible; }
|
|
500
|
+
deck-root table[data-rik-table] tr[data-mark] > td {
|
|
501
|
+
-webkit-print-color-adjust: exact;
|
|
502
|
+
print-color-adjust: exact;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
export declare class DeckFeature extends LitElement {
|
|
3
|
-
static styles: import("lit").CSSResult[];
|
|
4
|
-
eyebrow?: string;
|
|
5
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
-
}
|
|
7
|
-
declare global {
|
|
8
|
-
interface HTMLElementTagNameMap {
|
|
9
|
-
'deck-feature': DeckFeature;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
export type DeckSplitCols = '1-1' | '1-2' | '2-1' | '3';
|
|
3
|
-
export declare class DeckSplit extends LitElement {
|
|
4
|
-
static styles: import("lit").CSSResult[];
|
|
5
|
-
eyebrow?: string;
|
|
6
|
-
cols?: DeckSplitCols;
|
|
7
|
-
gap?: string;
|
|
8
|
-
colGap?: string;
|
|
9
|
-
/** Map '1'..'6' to var(--sp-N); fall through to raw values otherwise. */
|
|
10
|
-
private _resolveSp;
|
|
11
|
-
updated(): void;
|
|
12
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
13
|
-
}
|
|
14
|
-
declare global {
|
|
15
|
-
interface HTMLElementTagNameMap {
|
|
16
|
-
'deck-split': DeckSplit;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
2
|
-
export declare class DeckTakeaway extends LitElement {
|
|
3
|
-
static styles: import("lit").CSSResult[];
|
|
4
|
-
kicker?: string;
|
|
5
|
-
render(): import("lit-html").TemplateResult<1>;
|
|
6
|
-
}
|
|
7
|
-
declare global {
|
|
8
|
-
interface HTMLElementTagNameMap {
|
|
9
|
-
'deck-takeaway': DeckTakeaway;
|
|
10
|
-
}
|
|
11
|
-
}
|
package/dist/plugins/shiki.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
interface InstallOpts {
|
|
2
|
-
/** Shiki theme name (https://shiki.style/themes) · default 'one-dark-pro'. */
|
|
3
|
-
theme?: string;
|
|
4
|
-
/** Languages to preload · default ['ts', 'js', 'html', 'css', 'json']. */
|
|
5
|
-
langs?: string[];
|
|
6
|
-
}
|
|
7
|
-
export declare function installShiki(opts?: InstallOpts): Promise<void>;
|
|
8
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|