@usetheo/ui 0.1.0-next.0 → 0.1.0-next.1
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 +14 -0
- package/README.md +116 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin-Atb0VKtr.d.ts +172 -0
- package/dist/slide/index.d.ts +212 -0
- package/dist/slide/index.js +714 -0
- package/dist/slide/index.js.map +1 -0
- package/dist/slide/plugins/emoji/index.d.ts +29 -0
- package/dist/slide/plugins/emoji/index.js +157 -0
- package/dist/slide/plugins/emoji/index.js.map +1 -0
- package/dist/slide/plugins/math/index.d.ts +13 -0
- package/dist/slide/plugins/math/index.js +145 -0
- package/dist/slide/plugins/math/index.js.map +1 -0
- package/dist/slide/plugins/mermaid/index.d.ts +55 -0
- package/dist/slide/plugins/mermaid/index.js +218 -0
- package/dist/slide/plugins/mermaid/index.js.map +1 -0
- package/dist/slide/plugins/shiki/index.d.ts +18 -0
- package/dist/slide/plugins/shiki/index.js +87 -0
- package/dist/slide/plugins/shiki/index.js.map +1 -0
- package/dist/slide/themes/default.css +256 -0
- package/dist/slide/themes/layouts.css +143 -0
- package/dist/slide/themes/violet-forge.css +256 -0
- package/dist/slide-deck/index.css +52 -0
- package/dist/slide-deck/index.css.map +1 -0
- package/dist/slide-deck/index.d.ts +377 -0
- package/dist/slide-deck/index.js +1797 -0
- package/dist/slide-deck/index.js.map +1 -0
- package/dist/whiteboard/index.d.ts +258 -0
- package/dist/whiteboard/index.js +738 -0
- package/dist/whiteboard/index.js.map +1 -0
- package/package.json +141 -9
- package/registry/r/agent-composer.json +4 -4
- package/registry/r/agent-editor.json +9 -9
- package/registry/r/agent-error-card.json +2 -2
- package/registry/r/agent-event.json +4 -4
- package/registry/r/agent-handoff.json +2 -2
- package/registry/r/agent-profile.json +2 -2
- package/registry/r/agent-starting-state.json +2 -2
- package/registry/r/agent-stream.json +9 -9
- package/registry/r/agent-streaming.json +2 -2
- package/registry/r/agent-timeline.json +4 -4
- package/registry/r/approval-card.json +4 -4
- package/registry/r/artifact-preview.json +2 -2
- package/registry/r/attachment-chip.json +4 -4
- package/registry/r/audit-log-entry.json +3 -3
- package/registry/r/auto-compact-notice.json +2 -2
- package/registry/r/avatar.json +2 -2
- package/registry/r/badge.json +2 -2
- package/registry/r/browser-controls.json +2 -2
- package/registry/r/build-log-stream.json +2 -2
- package/registry/r/button.json +2 -2
- package/registry/r/capability-indicator.json +3 -3
- package/registry/r/card.json +2 -2
- package/registry/r/chat-composer.json +3 -3
- package/registry/r/chat-message.json +3 -3
- package/registry/r/chat-thread.json +2 -2
- package/registry/r/checkbox.json +2 -2
- package/registry/r/command-palette.json +4 -4
- package/registry/r/context-card.json +3 -3
- package/registry/r/context-window-bar.json +2 -2
- package/registry/r/cost-meter.json +2 -2
- package/registry/r/created-files-card.json +3 -3
- package/registry/r/cron-job-card.json +2 -2
- package/registry/r/cron-jobs-list.json +3 -3
- package/registry/r/deployment-row.json +3 -3
- package/registry/r/dialog.json +2 -2
- package/registry/r/diff-viewer.json +2 -2
- package/registry/r/domain-config.json +6 -6
- package/registry/r/empty-state.json +3 -3
- package/registry/r/env-var-editor.json +5 -5
- package/registry/r/folder-context-card.json +3 -3
- package/registry/r/folder-selector.json +2 -2
- package/registry/r/form-field.json +2 -2
- package/registry/r/hook-config.json +2 -2
- package/registry/r/hook-event-log.json +2 -2
- package/registry/r/input.json +2 -2
- package/registry/r/intent-selector.json +3 -3
- package/registry/r/label.json +2 -2
- package/registry/r/lane-board.json +2 -2
- package/registry/r/login-split.json +2 -2
- package/registry/r/mcp-server-card.json +2 -2
- package/registry/r/mcp-server-list.json +3 -3
- package/registry/r/memory-editor.json +3 -3
- package/registry/r/mention-menu.json +3 -3
- package/registry/r/metrics-panel.json +2 -2
- package/registry/r/model-card.json +3 -3
- package/registry/r/model-selector.json +2 -2
- package/registry/r/permission-matrix.json +2 -2
- package/registry/r/permission-modal.json +4 -4
- package/registry/r/preview-env-card.json +5 -5
- package/registry/r/preview-panel.json +3 -3
- package/registry/r/progress-checklist.json +3 -3
- package/registry/r/project-card.json +5 -5
- package/registry/r/project-switcher.json +2 -2
- package/registry/r/quick-action-chips.json +3 -3
- package/registry/r/radio-group.json +2 -2
- package/registry/r/recent-folders-list.json +2 -2
- package/registry/r/rollback-ui.json +4 -4
- package/registry/r/rule-card.json +3 -3
- package/registry/r/rule-editor.json +10 -10
- package/registry/r/rule-types.json +1 -1
- package/registry/r/run-stats.json +2 -2
- package/registry/r/running-tasks-panel.json +2 -2
- package/registry/r/scroll-area.json +2 -2
- package/registry/r/select.json +2 -2
- package/registry/r/session-list-item.json +2 -2
- package/registry/r/session-timeline.json +2 -2
- package/registry/r/sheet.json +2 -2
- package/registry/r/sidebar.json +2 -2
- package/registry/r/skeleton.json +2 -2
- package/registry/r/skill-card.json +4 -4
- package/registry/r/skill-editor.json +10 -10
- package/registry/r/skills-list.json +3 -3
- package/registry/r/social-auth-row.json +3 -3
- package/registry/r/steps-rail.json +2 -2
- package/registry/r/sub-agent-dispatch.json +2 -2
- package/registry/r/switch.json +2 -2
- package/registry/r/system-prompt-editor.json +2 -2
- package/registry/r/tabs.json +2 -2
- package/registry/r/task-header.json +4 -4
- package/registry/r/task-plan.json +2 -2
- package/registry/r/terminal-panel.json +2 -2
- package/registry/r/textarea.json +2 -2
- package/registry/r/theme-provider.json +2 -2
- package/registry/r/theme-script.json +1 -1
- package/registry/r/theo-ui-provider.json +2 -2
- package/registry/r/toast.json +2 -2
- package/registry/r/token-usage-chart.json +2 -2
- package/registry/r/tool-call-card.json +3 -3
- package/registry/r/tool-call.json +2 -2
- package/registry/r/tool-result.json +2 -2
- package/registry/r/tools-list.json +3 -3
- package/registry/r/tooltip.json +2 -2
- package/registry/r/topnav.json +2 -2
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Slide primitive — `default` theme.
|
|
3
|
+
*
|
|
4
|
+
* Inherit-first design (mirrors the Whiteboard SVG using `currentColor`):
|
|
5
|
+
* the slide's foreground and background come from the parent. The consumer's
|
|
6
|
+
* surface (Tailwind classes, `<ThemeProvider>`, dashboard chrome) decides
|
|
7
|
+
* light/dark — the theme just provides typography + relative tints derived
|
|
8
|
+
* from `currentColor` via `color-mix()`.
|
|
9
|
+
*
|
|
10
|
+
* Result: the slide automatically follows the host's color scheme without
|
|
11
|
+
* needing a `colorScheme` prop or `prefers-color-scheme` media query.
|
|
12
|
+
*
|
|
13
|
+
* All selectors are scoped to `.theo-slide[data-theo-slide-theme="default"]`
|
|
14
|
+
* so themes coexist on the same page without bleed.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
@import "./layouts.css";
|
|
18
|
+
|
|
19
|
+
.theo-slide[data-theo-slide-theme="default"] {
|
|
20
|
+
--theo-slide-canvas-width: 1280px;
|
|
21
|
+
--theo-slide-canvas-height: 720px;
|
|
22
|
+
--theo-slide-padding: 64px;
|
|
23
|
+
--theo-slide-font-base: 28px;
|
|
24
|
+
--theo-slide-font-family: var(
|
|
25
|
+
--vf-font-family-sans,
|
|
26
|
+
system-ui,
|
|
27
|
+
-apple-system,
|
|
28
|
+
"Segoe UI",
|
|
29
|
+
sans-serif
|
|
30
|
+
);
|
|
31
|
+
--theo-slide-font-mono: var(--vf-font-family-mono, ui-monospace, "JetBrains Mono", monospace);
|
|
32
|
+
|
|
33
|
+
/* Derived tints — relative to the inherited `currentColor`. They lighten or
|
|
34
|
+
darken automatically depending on whether the parent's color is dark
|
|
35
|
+
(light surface) or light (dark surface). */
|
|
36
|
+
--theo-slide-color-muted: color-mix(in srgb, currentColor 60%, transparent);
|
|
37
|
+
--theo-slide-color-tint-strong: color-mix(in srgb, currentColor 12%, transparent);
|
|
38
|
+
--theo-slide-color-tint-weak: color-mix(in srgb, currentColor 6%, transparent);
|
|
39
|
+
--theo-slide-color-border: color-mix(in srgb, currentColor 20%, transparent);
|
|
40
|
+
|
|
41
|
+
color: inherit;
|
|
42
|
+
background: transparent;
|
|
43
|
+
font-family: var(--theo-slide-font-family);
|
|
44
|
+
font-size: var(--theo-slide-font-base);
|
|
45
|
+
line-height: 1.5;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.theo-slide[data-theo-slide-theme="default"] h1,
|
|
49
|
+
.theo-slide[data-theo-slide-theme="default"] h2,
|
|
50
|
+
.theo-slide[data-theo-slide-theme="default"] h3,
|
|
51
|
+
.theo-slide[data-theo-slide-theme="default"] h4,
|
|
52
|
+
.theo-slide[data-theo-slide-theme="default"] h5,
|
|
53
|
+
.theo-slide[data-theo-slide-theme="default"] h6 {
|
|
54
|
+
color: inherit;
|
|
55
|
+
line-height: 1.2;
|
|
56
|
+
margin: 0 0 0.5em 0;
|
|
57
|
+
font-weight: 600;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.theo-slide[data-theo-slide-theme="default"] h1 {
|
|
61
|
+
font-size: 1.8em;
|
|
62
|
+
}
|
|
63
|
+
.theo-slide[data-theo-slide-theme="default"] h2 {
|
|
64
|
+
font-size: 1.4em;
|
|
65
|
+
}
|
|
66
|
+
.theo-slide[data-theo-slide-theme="default"] h3 {
|
|
67
|
+
font-size: 1.2em;
|
|
68
|
+
}
|
|
69
|
+
.theo-slide[data-theo-slide-theme="default"] h4 {
|
|
70
|
+
font-size: 1.05em;
|
|
71
|
+
}
|
|
72
|
+
.theo-slide[data-theo-slide-theme="default"] h5 {
|
|
73
|
+
font-size: 1em;
|
|
74
|
+
}
|
|
75
|
+
.theo-slide[data-theo-slide-theme="default"] h6 {
|
|
76
|
+
font-size: 0.9em;
|
|
77
|
+
color: var(--theo-slide-color-muted);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.theo-slide[data-theo-slide-theme="default"] p {
|
|
81
|
+
margin: 0 0 0.75em 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.theo-slide[data-theo-slide-theme="default"] ul,
|
|
85
|
+
.theo-slide[data-theo-slide-theme="default"] ol {
|
|
86
|
+
margin: 0 0 0.75em 0;
|
|
87
|
+
padding-left: 1.5em;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.theo-slide[data-theo-slide-theme="default"] li {
|
|
91
|
+
margin: 0.25em 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.theo-slide[data-theo-slide-theme="default"] blockquote {
|
|
95
|
+
margin: 0 0 0.75em 0;
|
|
96
|
+
padding: 0.25em 0.75em;
|
|
97
|
+
border-left: 4px solid var(--theo-slide-color-border);
|
|
98
|
+
color: var(--theo-slide-color-muted);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.theo-slide[data-theo-slide-theme="default"] a {
|
|
102
|
+
color: currentColor;
|
|
103
|
+
text-decoration: underline;
|
|
104
|
+
text-underline-offset: 2px;
|
|
105
|
+
font-weight: 600;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.theo-slide[data-theo-slide-theme="default"] code {
|
|
109
|
+
font-family: var(--theo-slide-font-mono);
|
|
110
|
+
font-size: 0.9em;
|
|
111
|
+
padding: 0.1em 0.4em;
|
|
112
|
+
border-radius: 4px;
|
|
113
|
+
background: var(--theo-slide-color-tint-strong);
|
|
114
|
+
color: inherit;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.theo-slide[data-theo-slide-theme="default"] pre {
|
|
118
|
+
font-family: var(--theo-slide-font-mono);
|
|
119
|
+
background: var(--theo-slide-color-tint-strong);
|
|
120
|
+
color: inherit;
|
|
121
|
+
padding: 0.75em 1em;
|
|
122
|
+
border-radius: 8px;
|
|
123
|
+
overflow: auto;
|
|
124
|
+
font-size: 0.85em;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.theo-slide[data-theo-slide-theme="default"] pre code {
|
|
128
|
+
padding: 0;
|
|
129
|
+
background: transparent;
|
|
130
|
+
font-size: inherit;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.theo-slide[data-theo-slide-theme="default"] hr {
|
|
134
|
+
border: none;
|
|
135
|
+
border-top: 1px solid var(--theo-slide-color-border);
|
|
136
|
+
margin: 1em 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.theo-slide[data-theo-slide-theme="default"] table {
|
|
140
|
+
border-collapse: collapse;
|
|
141
|
+
margin: 0 0 0.75em 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.theo-slide[data-theo-slide-theme="default"] th,
|
|
145
|
+
.theo-slide[data-theo-slide-theme="default"] td {
|
|
146
|
+
border: 1px solid var(--theo-slide-color-border);
|
|
147
|
+
padding: 0.4em 0.75em;
|
|
148
|
+
text-align: left;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.theo-slide[data-theo-slide-theme="default"] thead th {
|
|
152
|
+
background: var(--theo-slide-color-tint-weak);
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.theo-slide[data-theo-slide-theme="default"] tbody tr:nth-child(even) td {
|
|
157
|
+
background: var(--theo-slide-color-tint-weak);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.theo-slide[data-theo-slide-theme="default"] img {
|
|
161
|
+
max-width: 100%;
|
|
162
|
+
height: auto;
|
|
163
|
+
border-radius: 6px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.theo-slide[data-theo-slide-theme="default"] em {
|
|
167
|
+
font-style: italic;
|
|
168
|
+
}
|
|
169
|
+
.theo-slide[data-theo-slide-theme="default"] strong {
|
|
170
|
+
font-weight: 600;
|
|
171
|
+
}
|
|
172
|
+
.theo-slide[data-theo-slide-theme="default"] del {
|
|
173
|
+
text-decoration: line-through;
|
|
174
|
+
color: var(--theo-slide-color-muted);
|
|
175
|
+
}
|
|
176
|
+
.theo-slide[data-theo-slide-theme="default"] kbd {
|
|
177
|
+
font-family: var(--theo-slide-font-mono);
|
|
178
|
+
font-size: 0.85em;
|
|
179
|
+
padding: 0.1em 0.4em;
|
|
180
|
+
border: 1px solid var(--theo-slide-color-border);
|
|
181
|
+
border-radius: 4px;
|
|
182
|
+
background: var(--theo-slide-color-tint-weak);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/* ─────────────────────────────────────────────────────────────────
|
|
186
|
+
* GFM alerts — `> [!NOTE]`, `> [!TIP]`, `> [!IMPORTANT]`,
|
|
187
|
+
* `> [!WARNING]`, `> [!CAUTION]`
|
|
188
|
+
* Pre-processed in mdast (alerts.ts) → <aside class="theo-slide-alert"
|
|
189
|
+
* data-theo-slide-alert-type="…"> rich-content plan T1.2.
|
|
190
|
+
* ───────────────────────────────────────────────────────────────── */
|
|
191
|
+
.theo-slide[data-theo-slide-theme="default"] aside.theo-slide-alert {
|
|
192
|
+
margin: 0 0 0.75em 0;
|
|
193
|
+
padding: 0.75em 1em;
|
|
194
|
+
border-left: 4px solid currentColor;
|
|
195
|
+
border-radius: 0.4em;
|
|
196
|
+
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
197
|
+
}
|
|
198
|
+
.theo-slide[data-theo-slide-theme="default"] aside.theo-slide-alert::before {
|
|
199
|
+
display: block;
|
|
200
|
+
margin-bottom: 0.35em;
|
|
201
|
+
font-weight: 600;
|
|
202
|
+
font-size: 0.9em;
|
|
203
|
+
letter-spacing: 0.05em;
|
|
204
|
+
text-transform: uppercase;
|
|
205
|
+
}
|
|
206
|
+
.theo-slide[data-theo-slide-theme="default"] aside.theo-slide-alert > :first-child {
|
|
207
|
+
margin-top: 0;
|
|
208
|
+
}
|
|
209
|
+
.theo-slide[data-theo-slide-theme="default"] aside.theo-slide-alert > :last-child {
|
|
210
|
+
margin-bottom: 0;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="note"] {
|
|
214
|
+
border-color: #3b82f6;
|
|
215
|
+
background: color-mix(in srgb, #3b82f6 10%, transparent);
|
|
216
|
+
}
|
|
217
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="note"]::before {
|
|
218
|
+
content: "ⓘ Note";
|
|
219
|
+
color: #3b82f6;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="tip"] {
|
|
223
|
+
border-color: #10b981;
|
|
224
|
+
background: color-mix(in srgb, #10b981 10%, transparent);
|
|
225
|
+
}
|
|
226
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="tip"]::before {
|
|
227
|
+
content: "✓ Tip";
|
|
228
|
+
color: #10b981;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="important"] {
|
|
232
|
+
border-color: #a855f7;
|
|
233
|
+
background: color-mix(in srgb, #a855f7 10%, transparent);
|
|
234
|
+
}
|
|
235
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="important"]::before {
|
|
236
|
+
content: "! Important";
|
|
237
|
+
color: #a855f7;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="warning"] {
|
|
241
|
+
border-color: #f59e0b;
|
|
242
|
+
background: color-mix(in srgb, #f59e0b 10%, transparent);
|
|
243
|
+
}
|
|
244
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="warning"]::before {
|
|
245
|
+
content: "⚠ Warning";
|
|
246
|
+
color: #f59e0b;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="caution"] {
|
|
250
|
+
border-color: #ef4444;
|
|
251
|
+
background: color-mix(in srgb, #ef4444 10%, transparent);
|
|
252
|
+
}
|
|
253
|
+
.theo-slide[data-theo-slide-theme="default"] aside[data-theo-slide-alert-type="caution"]::before {
|
|
254
|
+
content: "✗ Caution";
|
|
255
|
+
color: #ef4444;
|
|
256
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Slide layouts (rich-content plan T2.2).
|
|
3
|
+
*
|
|
4
|
+
* Selectors are scoped by `[data-theo-slide-layout]` on the outer `<section>`.
|
|
5
|
+
* Themes (`default`, `violet-forge`) @import this file so layouts work across
|
|
6
|
+
* the design system without duplication.
|
|
7
|
+
*
|
|
8
|
+
* Each layout uses CSS grid for placement. `default` is a no-op so existing
|
|
9
|
+
* slides remain pixel-identical. The 7 layouts cover the 80% case for tech
|
|
10
|
+
* presentations: title hero, dual columns, image-prose, code-output, chapter
|
|
11
|
+
* dividers. Custom layouts require consumer CSS overriding the data-attr
|
|
12
|
+
* selector.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/* Default — vertical flow (no grid). Preserves existing slide rendering. */
|
|
16
|
+
.theo-slide[data-theo-slide-layout="default"] {
|
|
17
|
+
/* no-op */
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Title — centered hero. Used for cover slides and section dividers. */
|
|
21
|
+
.theo-slide[data-theo-slide-layout="title"] {
|
|
22
|
+
display: grid;
|
|
23
|
+
place-items: center;
|
|
24
|
+
text-align: center;
|
|
25
|
+
}
|
|
26
|
+
.theo-slide[data-theo-slide-layout="title"] h1 {
|
|
27
|
+
font-size: 2.8em;
|
|
28
|
+
letter-spacing: -0.02em;
|
|
29
|
+
}
|
|
30
|
+
.theo-slide[data-theo-slide-layout="title"] h2 {
|
|
31
|
+
font-size: 1.6em;
|
|
32
|
+
font-weight: 500;
|
|
33
|
+
color: color-mix(in srgb, currentColor 70%, transparent);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Two-column — equal split. First child block goes left, rest stack right. */
|
|
37
|
+
.theo-slide[data-theo-slide-layout="two-column"] {
|
|
38
|
+
display: grid;
|
|
39
|
+
grid-template-columns: 1fr 1fr;
|
|
40
|
+
gap: 32px;
|
|
41
|
+
align-items: start;
|
|
42
|
+
}
|
|
43
|
+
.theo-slide[data-theo-slide-layout="two-column"] > * {
|
|
44
|
+
min-width: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Image-right — text left (1.5fr), image right (1fr). */
|
|
48
|
+
.theo-slide[data-theo-slide-layout="image-right"] {
|
|
49
|
+
display: grid;
|
|
50
|
+
grid-template-columns: 1.5fr 1fr;
|
|
51
|
+
gap: 32px;
|
|
52
|
+
align-items: center;
|
|
53
|
+
}
|
|
54
|
+
.theo-slide[data-theo-slide-layout="image-right"] img {
|
|
55
|
+
grid-column: 2;
|
|
56
|
+
max-width: 100%;
|
|
57
|
+
height: auto;
|
|
58
|
+
border-radius: 8px;
|
|
59
|
+
justify-self: end;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Image-left — mirror of image-right. */
|
|
63
|
+
.theo-slide[data-theo-slide-layout="image-left"] {
|
|
64
|
+
display: grid;
|
|
65
|
+
grid-template-columns: 1fr 1.5fr;
|
|
66
|
+
gap: 32px;
|
|
67
|
+
align-items: center;
|
|
68
|
+
}
|
|
69
|
+
.theo-slide[data-theo-slide-layout="image-left"] img {
|
|
70
|
+
grid-column: 1;
|
|
71
|
+
grid-row: 1;
|
|
72
|
+
max-width: 100%;
|
|
73
|
+
height: auto;
|
|
74
|
+
border-radius: 8px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Code-output — code block left (slightly wider), prose right. */
|
|
78
|
+
.theo-slide[data-theo-slide-layout="code-output"] {
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: 1.2fr 1fr;
|
|
81
|
+
gap: 24px;
|
|
82
|
+
align-items: start;
|
|
83
|
+
}
|
|
84
|
+
.theo-slide[data-theo-slide-layout="code-output"] pre {
|
|
85
|
+
margin: 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Section — full-bleed chapter divider with tinted backdrop. */
|
|
89
|
+
.theo-slide[data-theo-slide-layout="section"] {
|
|
90
|
+
display: grid;
|
|
91
|
+
place-items: center;
|
|
92
|
+
text-align: center;
|
|
93
|
+
background: color-mix(in srgb, currentColor 10%, transparent);
|
|
94
|
+
}
|
|
95
|
+
.theo-slide[data-theo-slide-layout="section"] h1 {
|
|
96
|
+
font-size: 3.6em;
|
|
97
|
+
letter-spacing: -0.03em;
|
|
98
|
+
margin: 0;
|
|
99
|
+
}
|
|
100
|
+
.theo-slide[data-theo-slide-layout="section"] p {
|
|
101
|
+
font-size: 1.1em;
|
|
102
|
+
color: color-mix(in srgb, currentColor 65%, transparent);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* ─────────────────────────────────────────────────────────────────
|
|
106
|
+
* Header / Footer / Pagination overlays (rich-content T5.1).
|
|
107
|
+
* Plain text divs absolute-positioned in the canvas. They don't push
|
|
108
|
+
* content; they sit ON TOP. Sized in slide units (28px base).
|
|
109
|
+
* ───────────────────────────────────────────────────────────────── */
|
|
110
|
+
.theo-slide .theo-slide-header {
|
|
111
|
+
position: absolute;
|
|
112
|
+
top: 16px;
|
|
113
|
+
left: 32px;
|
|
114
|
+
right: 32px;
|
|
115
|
+
font-size: 0.6em;
|
|
116
|
+
opacity: 0.7;
|
|
117
|
+
pointer-events: none;
|
|
118
|
+
white-space: nowrap;
|
|
119
|
+
overflow: hidden;
|
|
120
|
+
text-overflow: ellipsis;
|
|
121
|
+
}
|
|
122
|
+
.theo-slide .theo-slide-footer {
|
|
123
|
+
position: absolute;
|
|
124
|
+
bottom: 16px;
|
|
125
|
+
left: 32px;
|
|
126
|
+
right: 96px;
|
|
127
|
+
font-size: 0.6em;
|
|
128
|
+
opacity: 0.7;
|
|
129
|
+
text-align: center;
|
|
130
|
+
pointer-events: none;
|
|
131
|
+
white-space: nowrap;
|
|
132
|
+
overflow: hidden;
|
|
133
|
+
text-overflow: ellipsis;
|
|
134
|
+
}
|
|
135
|
+
.theo-slide .theo-slide-paginate {
|
|
136
|
+
position: absolute;
|
|
137
|
+
bottom: 16px;
|
|
138
|
+
right: 32px;
|
|
139
|
+
font-size: 0.55em;
|
|
140
|
+
opacity: 0.5;
|
|
141
|
+
font-variant-numeric: tabular-nums;
|
|
142
|
+
pointer-events: none;
|
|
143
|
+
}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Slide primitive — `violet-forge` theme.
|
|
3
|
+
*
|
|
4
|
+
* Branded variant: same inherit-first foundation as the `default` theme, but
|
|
5
|
+
* with a Violet Forge accent (links, code backgrounds, blockquote bar)
|
|
6
|
+
* blended with `currentColor` via `color-mix()`. The brand hue stays
|
|
7
|
+
* recognizable across light and dark surfaces because the accent is mixed
|
|
8
|
+
* with the inherited foreground.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
@import "./layouts.css";
|
|
12
|
+
|
|
13
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] {
|
|
14
|
+
--theo-slide-canvas-width: 1280px;
|
|
15
|
+
--theo-slide-canvas-height: 720px;
|
|
16
|
+
--theo-slide-padding: 64px;
|
|
17
|
+
--theo-slide-font-base: 28px;
|
|
18
|
+
--theo-slide-font-family: var(
|
|
19
|
+
--vf-font-family-sans,
|
|
20
|
+
system-ui,
|
|
21
|
+
-apple-system,
|
|
22
|
+
"Segoe UI",
|
|
23
|
+
sans-serif
|
|
24
|
+
);
|
|
25
|
+
--theo-slide-font-mono: var(--vf-font-family-mono, ui-monospace, "JetBrains Mono", monospace);
|
|
26
|
+
|
|
27
|
+
/* Violet accent — the brand hue. Used for relative mixing so it adapts
|
|
28
|
+
to light/dark surfaces (mixed with `currentColor`). */
|
|
29
|
+
--theo-slide-accent: #7c3aed;
|
|
30
|
+
|
|
31
|
+
/* Derived tints — relative to inherited `currentColor` so they auto-flip
|
|
32
|
+
when the parent surface flips. */
|
|
33
|
+
--theo-slide-color-muted: color-mix(in srgb, currentColor 60%, transparent);
|
|
34
|
+
--theo-slide-color-tint-strong: color-mix(in srgb, var(--theo-slide-accent) 15%, transparent);
|
|
35
|
+
--theo-slide-color-tint-weak: color-mix(in srgb, var(--theo-slide-accent) 7%, transparent);
|
|
36
|
+
--theo-slide-color-border: color-mix(in srgb, var(--theo-slide-accent) 30%, transparent);
|
|
37
|
+
--theo-slide-color-link: color-mix(in srgb, var(--theo-slide-accent) 70%, currentColor);
|
|
38
|
+
--theo-slide-color-blockquote-bar: color-mix(in srgb, var(--theo-slide-accent) 60%, currentColor);
|
|
39
|
+
|
|
40
|
+
color: inherit;
|
|
41
|
+
background: transparent;
|
|
42
|
+
font-family: var(--theo-slide-font-family);
|
|
43
|
+
font-size: var(--theo-slide-font-base);
|
|
44
|
+
line-height: 1.5;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h1,
|
|
48
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h2,
|
|
49
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h3,
|
|
50
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h4,
|
|
51
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h5,
|
|
52
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h6 {
|
|
53
|
+
color: inherit;
|
|
54
|
+
line-height: 1.2;
|
|
55
|
+
margin: 0 0 0.5em 0;
|
|
56
|
+
font-weight: 600;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h1 {
|
|
60
|
+
font-size: 1.8em;
|
|
61
|
+
letter-spacing: -0.02em;
|
|
62
|
+
}
|
|
63
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h2 {
|
|
64
|
+
font-size: 1.4em;
|
|
65
|
+
}
|
|
66
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h3 {
|
|
67
|
+
font-size: 1.2em;
|
|
68
|
+
}
|
|
69
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h4 {
|
|
70
|
+
font-size: 1.05em;
|
|
71
|
+
}
|
|
72
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h5 {
|
|
73
|
+
font-size: 1em;
|
|
74
|
+
}
|
|
75
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] h6 {
|
|
76
|
+
font-size: 0.9em;
|
|
77
|
+
color: var(--theo-slide-color-muted);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] p {
|
|
81
|
+
margin: 0 0 0.75em 0;
|
|
82
|
+
}
|
|
83
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] ul,
|
|
84
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] ol {
|
|
85
|
+
margin: 0 0 0.75em 0;
|
|
86
|
+
padding-left: 1.5em;
|
|
87
|
+
}
|
|
88
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] li {
|
|
89
|
+
margin: 0.25em 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] blockquote {
|
|
93
|
+
margin: 0 0 0.75em 0;
|
|
94
|
+
padding: 0.25em 0.75em;
|
|
95
|
+
border-left: 4px solid var(--theo-slide-color-blockquote-bar);
|
|
96
|
+
color: var(--theo-slide-color-muted);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] a {
|
|
100
|
+
color: var(--theo-slide-color-link);
|
|
101
|
+
text-decoration: underline;
|
|
102
|
+
text-underline-offset: 2px;
|
|
103
|
+
font-weight: 600;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] code {
|
|
107
|
+
font-family: var(--theo-slide-font-mono);
|
|
108
|
+
font-size: 0.9em;
|
|
109
|
+
padding: 0.1em 0.4em;
|
|
110
|
+
border-radius: 4px;
|
|
111
|
+
background: var(--theo-slide-color-tint-strong);
|
|
112
|
+
color: inherit;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] pre {
|
|
116
|
+
font-family: var(--theo-slide-font-mono);
|
|
117
|
+
background: var(--theo-slide-color-tint-strong);
|
|
118
|
+
color: inherit;
|
|
119
|
+
padding: 0.75em 1em;
|
|
120
|
+
border-radius: 8px;
|
|
121
|
+
overflow: auto;
|
|
122
|
+
font-size: 0.85em;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] pre code {
|
|
126
|
+
padding: 0;
|
|
127
|
+
background: transparent;
|
|
128
|
+
font-size: inherit;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] hr {
|
|
132
|
+
border: none;
|
|
133
|
+
border-top: 1px solid var(--theo-slide-color-border);
|
|
134
|
+
margin: 1em 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] table {
|
|
138
|
+
border-collapse: collapse;
|
|
139
|
+
margin: 0 0 0.75em 0;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] th,
|
|
143
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] td {
|
|
144
|
+
border: 1px solid var(--theo-slide-color-border);
|
|
145
|
+
padding: 0.4em 0.75em;
|
|
146
|
+
text-align: left;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] thead th {
|
|
150
|
+
background: var(--theo-slide-color-tint-weak);
|
|
151
|
+
font-weight: 600;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] tbody tr:nth-child(even) td {
|
|
155
|
+
background: var(--theo-slide-color-tint-weak);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] img {
|
|
159
|
+
max-width: 100%;
|
|
160
|
+
height: auto;
|
|
161
|
+
border-radius: 6px;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] em {
|
|
165
|
+
font-style: italic;
|
|
166
|
+
}
|
|
167
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] strong {
|
|
168
|
+
font-weight: 600;
|
|
169
|
+
}
|
|
170
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] del {
|
|
171
|
+
text-decoration: line-through;
|
|
172
|
+
color: var(--theo-slide-color-muted);
|
|
173
|
+
}
|
|
174
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] kbd {
|
|
175
|
+
font-family: var(--theo-slide-font-mono);
|
|
176
|
+
font-size: 0.85em;
|
|
177
|
+
padding: 0.1em 0.4em;
|
|
178
|
+
border: 1px solid var(--theo-slide-color-border);
|
|
179
|
+
border-radius: 4px;
|
|
180
|
+
background: var(--theo-slide-color-tint-weak);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* ─────────────────────────────────────────────────────────────────
|
|
184
|
+
* GFM alerts (rich-content T1.2) — Violet Forge palette.
|
|
185
|
+
* Same structure as `default`; only the accent colors differ
|
|
186
|
+
* so callouts feel native to the design system.
|
|
187
|
+
* ───────────────────────────────────────────────────────────────── */
|
|
188
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside.theo-slide-alert {
|
|
189
|
+
margin: 0 0 0.75em 0;
|
|
190
|
+
padding: 0.75em 1em;
|
|
191
|
+
border-left: 4px solid currentColor;
|
|
192
|
+
border-radius: 0.4em;
|
|
193
|
+
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
194
|
+
}
|
|
195
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside.theo-slide-alert::before {
|
|
196
|
+
display: block;
|
|
197
|
+
margin-bottom: 0.35em;
|
|
198
|
+
font-weight: 600;
|
|
199
|
+
font-size: 0.9em;
|
|
200
|
+
letter-spacing: 0.06em;
|
|
201
|
+
text-transform: uppercase;
|
|
202
|
+
}
|
|
203
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside.theo-slide-alert > :first-child {
|
|
204
|
+
margin-top: 0;
|
|
205
|
+
}
|
|
206
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside.theo-slide-alert > :last-child {
|
|
207
|
+
margin-bottom: 0;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="note"] {
|
|
211
|
+
border-color: #6366f1;
|
|
212
|
+
background: color-mix(in srgb, #6366f1 12%, transparent);
|
|
213
|
+
}
|
|
214
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="note"]::before {
|
|
215
|
+
content: "ⓘ Note";
|
|
216
|
+
color: #6366f1;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="tip"] {
|
|
220
|
+
border-color: #22d3ee;
|
|
221
|
+
background: color-mix(in srgb, #22d3ee 12%, transparent);
|
|
222
|
+
}
|
|
223
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="tip"]::before {
|
|
224
|
+
content: "✓ Tip";
|
|
225
|
+
color: #22d3ee;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="important"] {
|
|
229
|
+
border-color: #c084fc;
|
|
230
|
+
background: color-mix(in srgb, #c084fc 12%, transparent);
|
|
231
|
+
}
|
|
232
|
+
.theo-slide[data-theo-slide-theme="violet-forge"]
|
|
233
|
+
aside[data-theo-slide-alert-type="important"]::before {
|
|
234
|
+
content: "★ Important";
|
|
235
|
+
color: #c084fc;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="warning"] {
|
|
239
|
+
border-color: #facc15;
|
|
240
|
+
background: color-mix(in srgb, #facc15 12%, transparent);
|
|
241
|
+
}
|
|
242
|
+
.theo-slide[data-theo-slide-theme="violet-forge"]
|
|
243
|
+
aside[data-theo-slide-alert-type="warning"]::before {
|
|
244
|
+
content: "⚠ Warning";
|
|
245
|
+
color: #facc15;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.theo-slide[data-theo-slide-theme="violet-forge"] aside[data-theo-slide-alert-type="caution"] {
|
|
249
|
+
border-color: #f87171;
|
|
250
|
+
background: color-mix(in srgb, #f87171 12%, transparent);
|
|
251
|
+
}
|
|
252
|
+
.theo-slide[data-theo-slide-theme="violet-forge"]
|
|
253
|
+
aside[data-theo-slide-alert-type="caution"]::before {
|
|
254
|
+
content: "✗ Caution";
|
|
255
|
+
color: #f87171;
|
|
256
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* src/components/composites/slide-deck/transitions.css */
|
|
2
|
+
.theo-slide-deck-slide-frame {
|
|
3
|
+
--theo-slide-deck-transition-duration: 250ms;
|
|
4
|
+
position: absolute;
|
|
5
|
+
inset: 0;
|
|
6
|
+
}
|
|
7
|
+
.theo-slide-deck-slide-frame[data-theo-slide-deck-transition=fade] > [data-theo-slide-deck-slide-state=incoming] {
|
|
8
|
+
animation: theo-slide-deck-fade-in var(--theo-slide-deck-transition-duration) ease-out;
|
|
9
|
+
}
|
|
10
|
+
@keyframes theo-slide-deck-fade-in {
|
|
11
|
+
from {
|
|
12
|
+
opacity: 0;
|
|
13
|
+
}
|
|
14
|
+
to {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
.theo-slide-deck-slide-frame[data-theo-slide-deck-transition=slide][data-theo-slide-deck-direction=next] > [data-theo-slide-deck-slide-state=incoming] {
|
|
19
|
+
animation: theo-slide-deck-slide-in-right var(--theo-slide-deck-transition-duration) ease-out;
|
|
20
|
+
}
|
|
21
|
+
.theo-slide-deck-slide-frame[data-theo-slide-deck-transition=slide][data-theo-slide-deck-direction=prev] > [data-theo-slide-deck-slide-state=incoming] {
|
|
22
|
+
animation: theo-slide-deck-slide-in-left var(--theo-slide-deck-transition-duration) ease-out;
|
|
23
|
+
}
|
|
24
|
+
@keyframes theo-slide-deck-slide-in-right {
|
|
25
|
+
from {
|
|
26
|
+
transform: translateX(30%);
|
|
27
|
+
opacity: 0;
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
transform: translateX(0);
|
|
31
|
+
opacity: 1;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
@keyframes theo-slide-deck-slide-in-left {
|
|
35
|
+
from {
|
|
36
|
+
transform: translateX(-30%);
|
|
37
|
+
opacity: 0;
|
|
38
|
+
}
|
|
39
|
+
to {
|
|
40
|
+
transform: translateX(0);
|
|
41
|
+
opacity: 1;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
@media (prefers-reduced-motion: reduce) {
|
|
45
|
+
.theo-slide-deck-slide-frame,
|
|
46
|
+
.theo-slide-deck-slide-frame * {
|
|
47
|
+
animation-duration: 0ms !important;
|
|
48
|
+
animation-iteration-count: 1 !important;
|
|
49
|
+
transition-duration: 0ms !important;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/*# sourceMappingURL=index.css.map */
|