konpeki 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/AGENTS.md +21 -28
  2. package/AUTHORING.md +68 -229
  3. package/CONTRIBUTING.md +10 -23
  4. package/README.md +96 -87
  5. package/SETUP.md +50 -114
  6. package/docs/development.md +43 -248
  7. package/docs/workflow.md +6 -108
  8. package/html/README.md +140 -0
  9. package/html/browser.ts +103 -0
  10. package/html/document.ts +38 -0
  11. package/html/floor.ts +34 -0
  12. package/html/index.html +5 -0
  13. package/html/inspect.ts +313 -0
  14. package/html/preview.css +62 -0
  15. package/html/preview.tsx +463 -0
  16. package/html/review-hints.ts +63 -0
  17. package/html/server.ts +99 -0
  18. package/html/source.ts +104 -0
  19. package/html/starter.ts +6 -0
  20. package/html/theme-authoring.md +176 -0
  21. package/html/theme.md +61 -0
  22. package/index.html +9 -9
  23. package/package.json +21 -35
  24. package/plugin.json +1 -1
  25. package/public/og.png +0 -0
  26. package/runtime/browser-B-29TH1a.mjs +595 -0
  27. package/runtime/floor-Cmk7G3pU.mjs +41 -0
  28. package/runtime/konpeki.mjs +90 -1410
  29. package/runtime/server-BAqC_5WD.mjs +2 -0
  30. package/runtime/server-DfRpfcY9.mjs +205 -0
  31. package/runtime/source-B_Ui9tMp.mjs +141 -0
  32. package/runtime/source-CZQq9GUO.mjs +2 -0
  33. package/skills/konpeki/SKILL.md +88 -172
  34. package/skills/konpeki/assets/blank.html +17 -0
  35. package/skills/konpeki/floor.md +76 -0
  36. package/skills/konpeki/references/cover.md +27 -0
  37. package/skills/konpeki/references/long-document.md +40 -0
  38. package/skills/konpeki/references/one-pager.md +27 -0
  39. package/skills/konpeki/references/patterns.md +118 -0
  40. package/skills/konpeki/references/resume.md +28 -0
  41. package/skills/konpeki/references/slides.md +28 -0
  42. package/skills/konpeki/scripts/ensure-runtime.mjs +10 -31
  43. package/skills/konpeki/scripts/prepare-document.mjs +25 -14
  44. package/src/components/PageBoard.tsx +156 -0
  45. package/src/lib/alignment.ts +21 -0
  46. package/src/lib/page-board.ts +25 -0
  47. package/src/lib/review-position.ts +19 -0
  48. package/src/styles/base.css +4 -6
  49. package/src/styles/feedback.css +97 -61
  50. package/src/styles/shell.css +95 -323
  51. package/theme-base.css +90 -0
  52. package/theme.css +56 -0
  53. package/vite.config.ts +2 -5
  54. package/composition/README.md +0 -156
  55. package/composition/compile.ts +0 -227
  56. package/composition/document.ts +0 -600
  57. package/composition/schema.json +0 -3001
  58. package/composition/schema.ts +0 -437
  59. package/composition/theme-tokens.ts +0 -16
  60. package/composition/types.ts +0 -269
  61. package/composition/validate.ts +0 -226
  62. package/composition/vector.ts +0 -143
  63. package/composition/visualizations.ts +0 -319
  64. package/design/README.md +0 -17
  65. package/design/palettes/README.md +0 -14
  66. package/design/palettes/base.ts +0 -14
  67. package/design/palettes/candidates.ts +0 -19
  68. package/design/palettes/index.ts +0 -78
  69. package/design/review/color-theme.md +0 -44
  70. package/design/review/layout.md +0 -16
  71. package/design/review/text.md +0 -18
  72. package/design/review/typography.md +0 -15
  73. package/design/review/visuals.md +0 -31
  74. package/design/semantic-patterns.md +0 -43
  75. package/design/themes/README.md +0 -40
  76. package/design/themes/index.ts +0 -24
  77. package/design/visual-languages/technical-product.md +0 -17
  78. package/design/visual-review.md +0 -88
  79. package/lib/assets.d.ts +0 -8
  80. package/lib/charts.ts +0 -18
  81. package/lib/contrast.ts +0 -16
  82. package/lib/layouts.ts +0 -50
  83. package/lib/slide.tsx +0 -42
  84. package/lib/taste.ts +0 -17
  85. package/lib/text.tsx +0 -89
  86. package/lib/typeface.ts +0 -44
  87. package/scripts/migrate-react-page.ts +0 -120
  88. package/skills/konpeki/assets/blank.json +0 -23
  89. package/slides/README.md +0 -153
  90. package/slides/architecture/PROMPT.md +0 -31
  91. package/slides/architecture/index.tsx +0 -102
  92. package/slides/article-brief/PROMPT.md +0 -35
  93. package/slides/article-brief/index.tsx +0 -71
  94. package/slides/bar-chart/PROMPT.md +0 -39
  95. package/slides/bar-chart/index.tsx +0 -97
  96. package/slides/comparison/PROMPT.md +0 -29
  97. package/slides/comparison/index.tsx +0 -95
  98. package/slides/decision-memo/PROMPT.md +0 -34
  99. package/slides/decision-memo/index.tsx +0 -85
  100. package/slides/delivery-plan/PROMPT.md +0 -45
  101. package/slides/delivery-plan/index.tsx +0 -105
  102. package/slides/experiment/PROMPT.md +0 -44
  103. package/slides/experiment/index.tsx +0 -127
  104. package/slides/incident-workflow/PROMPT.md +0 -57
  105. package/slides/incident-workflow/index.tsx +0 -78
  106. package/slides/introducing-konpeki/PROMPT.md +0 -40
  107. package/slides/introducing-konpeki/README.md +0 -76
  108. package/slides/introducing-konpeki/SOURCE.md +0 -26
  109. package/slides/introducing-konpeki/author.ts +0 -165
  110. package/slides/introducing-konpeki/composition.json +0 -3270
  111. package/slides/line-chart/PROMPT.md +0 -40
  112. package/slides/line-chart/index.tsx +0 -72
  113. package/slides/migration/PROMPT.md +0 -38
  114. package/slides/migration/index.tsx +0 -89
  115. package/slides/og-images/PROMPT.md +0 -21
  116. package/slides/og-images/index.tsx +0 -76
  117. package/slides/product-introduction/PROMPT.md +0 -24
  118. package/slides/product-introduction/index.tsx +0 -105
  119. package/slides/research-brief/PROMPT.md +0 -40
  120. package/slides/research-brief/index.tsx +0 -104
  121. package/slides/results-explanation/PROMPT.md +0 -32
  122. package/slides/results-explanation/index.tsx +0 -96
  123. package/slides/retrospective/PROMPT.md +0 -43
  124. package/slides/retrospective/index.tsx +0 -105
  125. package/slides/sankey/PROMPT.md +0 -11
  126. package/slides/sankey/index.tsx +0 -93
  127. package/slides/teaching/PROMPT.md +0 -45
  128. package/slides/teaching/index.tsx +0 -124
  129. package/slides/vertical-bar-charts/PROMPT.md +0 -13
  130. package/slides/vertical-bar-charts/index.tsx +0 -97
  131. package/src/app/App.tsx +0 -820
  132. package/src/components/BuildOrb.tsx +0 -40
  133. package/src/components/Canvas.tsx +0 -1185
  134. package/src/components/DiagramTypeIcon.tsx +0 -78
  135. package/src/components/InspectorPanel.tsx +0 -773
  136. package/src/components/LeftPanel.tsx +0 -120
  137. package/src/components/PageSizePicker.tsx +0 -30
  138. package/src/components/Presentation.tsx +0 -105
  139. package/src/components/RevisionNotes.tsx +0 -56
  140. package/src/components/RightPanel.tsx +0 -201
  141. package/src/components/VectorOverflowWarning.tsx +0 -46
  142. package/src/components/WorkspaceChrome.tsx +0 -288
  143. package/src/components/ui.tsx +0 -53
  144. package/src/lib/examples/react-page-migration.json +0 -1295
  145. package/src/lib/examples.ts +0 -42
  146. package/src/lib/export-png.ts +0 -104
  147. package/src/lib/file-session.ts +0 -87
  148. package/src/lib/history.ts +0 -53
  149. package/src/lib/model.ts +0 -188
  150. package/src/lib/page-size.ts +0 -24
  151. package/src/lib/presentation.ts +0 -17
  152. package/src/lib/review.ts +0 -26
  153. package/src/lib/storage.ts +0 -71
  154. package/src/lib/theme.ts +0 -25
  155. package/src/lib/use-file-session.ts +0 -227
  156. package/src/main.tsx +0 -29
  157. package/src/styles/canvas.css +0 -299
  158. package/src/styles/chrome.css +0 -384
  159. package/src/styles/component-previews.css +0 -386
  160. package/src/styles/left-panel.css +0 -166
  161. package/src/styles/presentation.css +0 -72
  162. package/src/styles/right-panel.css +0 -1215
@@ -1,386 +0,0 @@
1
- .illustration {
2
- width: 100%;
3
- flex: 1;
4
- min-height: 0;
5
- }
6
-
7
- .chart-preview {
8
- display: flex;
9
- flex: 1;
10
- min-height: 0;
11
- gap: 1cqw;
12
- margin-top: 1cqw;
13
- }
14
-
15
- .chart-preview.legend-top,
16
- .chart-preview.legend-bottom {
17
- flex-direction: column;
18
- }
19
-
20
- .chart-preview.legend-top .chart-legend {
21
- order: -1;
22
- }
23
-
24
- .chart-preview.legend-right {
25
- flex-direction: row;
26
- }
27
-
28
- .chart-preview.legend-right .chart-legend {
29
- flex-direction: column;
30
- justify-content: center;
31
- }
32
-
33
- .chart-legend {
34
- display: flex;
35
- flex: none;
36
- gap: 0.7cqw;
37
- min-height: 0.7cqw;
38
- color: var(--slide-muted);
39
- font-size: 0.9cqw;
40
- }
41
-
42
- .chart-legend span {
43
- display: flex;
44
- align-items: center;
45
- gap: 0.35cqw;
46
- }
47
-
48
- .chart-legend i {
49
- display: block;
50
- width: 1.8cqw;
51
- height: 0.45cqw;
52
- }
53
-
54
- .legend-accent {
55
- background: var(--component-accent);
56
- }
57
-
58
- .legend-context {
59
- background: var(--component-context);
60
- }
61
-
62
- .chart-axis {
63
- stroke: var(--slide-muted);
64
- fill: none;
65
- stroke-width: 2;
66
- }
67
-
68
- .chart-accent {
69
- fill: var(--component-accent);
70
- }
71
-
72
- .chart-context {
73
- fill: var(--component-context);
74
- }
75
-
76
- .chart-tertiary {
77
- fill: color-mix(in srgb, var(--component-accent) 45%, var(--component-context));
78
- }
79
-
80
- .chart-line {
81
- stroke: var(--component-accent);
82
- fill: none;
83
- stroke-width: 5;
84
- }
85
-
86
- .node-primary {
87
- fill: var(--slide-bg);
88
- font-size: 20px;
89
- }
90
-
91
- .diagram-canvas-icon {
92
- width: 100%;
93
- height: 100%;
94
- flex: 1;
95
- min-height: 0;
96
- margin-top: 1cqw;
97
- color: var(--component-context);
98
- stroke-width: 0.7;
99
- }
100
-
101
- .diagram-canvas-icon .filled {
102
- fill: var(--component-context);
103
- }
104
-
105
- .topology-preview .chart-axis {
106
- stroke: var(--component-accent);
107
- stroke-width: 0.8%;
108
- }
109
-
110
- .topology-arrowhead {
111
- fill: var(--component-accent);
112
- }
113
-
114
- .topology-node {
115
- fill: var(--slide-bg);
116
- stroke: var(--component-accent);
117
- stroke-width: 0.55%;
118
- }
119
-
120
- .topology-line {
121
- fill: none;
122
- }
123
-
124
- .topology-icon {
125
- fill: none;
126
- stroke: var(--component-accent);
127
- stroke-linejoin: round;
128
- stroke-width: 0.8%;
129
- }
130
-
131
- .topology-node-label {
132
- fill: var(--slide-ink);
133
- font-size: 28px;
134
- font-weight: 600;
135
- }
136
-
137
- .topology-edge-label {
138
- fill: var(--slide-muted);
139
- font-size: 22px;
140
- paint-order: stroke;
141
- stroke: var(--slide-bg);
142
- stroke-width: 3px;
143
- stroke-linejoin: round;
144
- }
145
-
146
- .topology-preview .color-ink {
147
- stroke: var(--slide-ink);
148
- }
149
-
150
- .topology-preview .color-muted {
151
- stroke: var(--slide-muted);
152
- }
153
-
154
- .topology-preview .fill-solid.color-accent,
155
- .topology-preview .style-filled.color-accent {
156
- fill: var(--component-accent);
157
- }
158
-
159
- .topology-preview .fill-solid.color-ink,
160
- .topology-preview .style-filled.color-ink {
161
- fill: var(--slide-ink);
162
- }
163
-
164
- .topology-preview .fill-solid.color-muted,
165
- .topology-preview .style-filled.color-muted {
166
- fill: var(--slide-muted);
167
- }
168
-
169
- .topology-preview .fill-wash {
170
- fill: color-mix(in srgb, var(--component-accent) 14%, var(--slide-bg));
171
- }
172
-
173
- .node-text {
174
- fill: var(--slide-ink);
175
- font-size: 20px;
176
- }
177
-
178
- .text-layout-preview {
179
- display: grid;
180
- flex: 1;
181
- min-height: 0;
182
- gap: 1.1cqw;
183
- margin-top: 1.4cqw;
184
- }
185
-
186
- .text-layout-preview i {
187
- display: grid;
188
- align-content: start;
189
- gap: 0.7cqw;
190
- min-width: 0;
191
- min-height: 0;
192
- padding: 1cqw;
193
- border: 0;
194
- background: transparent;
195
- }
196
-
197
- .text-layout-preview b {
198
- display: block;
199
- width: 88%;
200
- height: 0.5cqw;
201
- background: var(--component-context);
202
- }
203
-
204
- .text-layout-preview b:nth-child(2) {
205
- width: 72%;
206
- }
207
-
208
- .text-layout-preview b:nth-child(3) {
209
- width: 54%;
210
- }
211
-
212
- .text-layout-preview:not(.logic-none) i {
213
- border: 1px solid var(--component-context);
214
- }
215
-
216
- .text-layout-preview.logic-parallel {
217
- grid-template-columns: repeat(3, 1fr);
218
- }
219
-
220
- .text-layout-preview.logic-progressive {
221
- grid-template-columns: repeat(4, 1fr);
222
- align-items: end;
223
- }
224
-
225
- .text-layout-preview.logic-progressive i:nth-child(1) { height: 38%; }
226
- .text-layout-preview.logic-progressive i:nth-child(2) { height: 58%; }
227
- .text-layout-preview.logic-progressive i:nth-child(3) { height: 78%; }
228
- .text-layout-preview.logic-progressive i:nth-child(4) { height: 100%; }
229
-
230
- .text-layout-preview.logic-cyclical {
231
- position: relative;
232
- display: block;
233
- }
234
-
235
- .text-layout-preview.logic-cyclical::after {
236
- position: absolute;
237
- inset: 27% 34%;
238
- border: 0.45cqw solid var(--component-accent);
239
- border-radius: 50%;
240
- content: "";
241
- }
242
-
243
- .text-layout-preview.logic-cyclical i {
244
- position: absolute;
245
- width: 34%;
246
- height: 38%;
247
- }
248
-
249
- .text-layout-preview.logic-cyclical i:nth-child(1) { top: 0; left: 0; }
250
- .text-layout-preview.logic-cyclical i:nth-child(2) { top: 0; right: 0; }
251
- .text-layout-preview.logic-cyclical i:nth-child(3) { right: 0; bottom: 0; }
252
- .text-layout-preview.logic-cyclical i:nth-child(4) { bottom: 0; left: 0; }
253
-
254
- .text-layout-preview.logic-general-to-specific,
255
- .text-layout-preview.logic-hierarchical {
256
- grid-template: repeat(2, 1fr) / repeat(3, 1fr);
257
- }
258
-
259
- .text-layout-preview.logic-general-to-specific i:first-child {
260
- grid-column: 1 / -1;
261
- }
262
-
263
- .text-layout-preview.logic-hierarchical i:first-child {
264
- grid-column: 2;
265
- }
266
-
267
- .text-layout-preview.logic-hierarchical i:nth-child(n + 2) {
268
- grid-row: 2;
269
- }
270
-
271
- .image-preview {
272
- margin-top: 1cqw;
273
- }
274
-
275
- .image-mountain {
276
- fill: var(--slide-bg);
277
- opacity: 0.72;
278
- }
279
-
280
- .fit-contain .image-preview {
281
- padding: 1.4cqw;
282
- }
283
-
284
- .table-preview {
285
- display: grid;
286
- grid-template-columns: repeat(3, minmax(0, 1fr));
287
- flex: 1;
288
- min-height: 0;
289
- margin-top: 1.2cqw;
290
- }
291
-
292
- .table-preview i {
293
- min-width: 0;
294
- min-height: 0;
295
- }
296
-
297
- .table-preview i::after {
298
- display: block;
299
- width: 62%;
300
- height: 0.45cqw;
301
- margin: 1.1cqw;
302
- background: var(--component-context);
303
- content: "";
304
- }
305
-
306
- .table-preview .table-header {
307
- border-bottom: 2px solid var(--component-context);
308
- }
309
-
310
- .table-preview .table-header::after {
311
- width: 72%;
312
- background: var(--component-context);
313
- }
314
-
315
- .table-style-top-header-bottom {
316
- border-block: 1px solid var(--component-context);
317
- }
318
-
319
- .table-style-row-rules i {
320
- border-bottom: 1px solid var(--component-context);
321
- }
322
-
323
- .table-style-full-grid {
324
- border-top: 1px solid var(--component-context);
325
- border-left: 1px solid var(--component-context);
326
- }
327
-
328
- .table-style-full-grid i {
329
- border-right: 1px solid var(--component-context);
330
- border-bottom: 1px solid var(--component-context);
331
- }
332
-
333
- .table-density-standard i::after {
334
- height: 0.65cqw;
335
- margin-block: 0.7cqw;
336
- }
337
-
338
- .topology-indicator {
339
- align-self: flex-start;
340
- margin-top: 0.65cqw;
341
- padding: 0.3cqw 0.55cqw;
342
- background: var(--slide-wash);
343
- color: var(--slide-muted);
344
- font-size: 1.15cqw;
345
- line-height: 1.2;
346
- }
347
-
348
- .layout-two-column,
349
- .layout-three-column,
350
- .layout-four-column {
351
- grid-auto-flow: column;
352
- grid-auto-columns: 1fr;
353
- }
354
-
355
- .layout-two-plus-two {
356
- grid-template-columns: repeat(2, 1fr);
357
- grid-template-rows: repeat(2, 1fr);
358
- }
359
-
360
- .layout-one-plus-three.orientation-horizontal,
361
- .layout-three-plus-one.orientation-horizontal {
362
- grid-template: repeat(3, 1fr) / repeat(2, 1fr);
363
- }
364
-
365
- .layout-one-plus-three.orientation-horizontal i:first-child,
366
- .layout-three-plus-one.orientation-horizontal i:last-child {
367
- grid-row: 1 / -1;
368
- }
369
-
370
- .layout-three-plus-one.orientation-horizontal i:last-child {
371
- grid-column: 2;
372
- }
373
-
374
- .layout-one-plus-three.orientation-vertical,
375
- .layout-three-plus-one.orientation-vertical {
376
- grid-template: repeat(2, 1fr) / repeat(3, 1fr);
377
- }
378
-
379
- .layout-one-plus-three.orientation-vertical i:first-child,
380
- .layout-three-plus-one.orientation-vertical i:last-child {
381
- grid-column: 1 / -1;
382
- }
383
-
384
- .layout-three-plus-one.orientation-vertical i:last-child {
385
- grid-row: 2;
386
- }
@@ -1,166 +0,0 @@
1
- .left-notes {
2
- flex: 1;
3
- min-height: 0;
4
- overflow-y: auto;
5
- }
6
- .revision-notes { padding: 18px 16px; }
7
- .revision-note-submit {
8
- display: flex;
9
- align-items: center;
10
- justify-content: space-between;
11
- gap: 12px;
12
- }
13
- .revision-note-count,
14
- .revision-note-scope {
15
- color: var(--ui-muted);
16
- font-size: 11px;
17
- line-height: 1.5;
18
- }
19
- .revision-note-count { margin: 20px 0 8px; }
20
- .revision-notes label { font-size: 12px; }
21
- .revision-note-scope {
22
- margin: 6px 0 8px;
23
- padding: 6px 8px;
24
- border-radius: 6px;
25
- background: var(--ui-selected);
26
- color: #31596d;
27
- overflow-wrap: anywhere;
28
- }
29
- .revision-notes textarea { width: 100%; resize: vertical; min-height: 72px; font-size: 12px; line-height: 1.5; }
30
- .revision-notes textarea { border-color: transparent; border-radius: 6px; background: #f4f4f5; }
31
- .revision-notes textarea:hover { border-color: #d4d4d8; }
32
- .revision-note-submit { margin-top: 8px; justify-content: flex-end; }
33
- .revision-note-submit button { min-height: 40px; white-space: nowrap; font-size: 12px; }
34
- .revision-note-list { list-style: none; margin: 0; padding: 0; }
35
- .revision-note-list li { padding: 12px 0; border-top: 1px solid var(--ui-border); }
36
- .revision-note-target { display: flex; align-items: baseline; gap: 8px; width: 100%; min-height: 40px; padding: 6px 0; border: 0; background: none; text-align: left; font-size: 11px; overflow-wrap: anywhere; }
37
- .revision-note-target > span { color: var(--ui-muted); }
38
- .revision-note-list p { font-size: 12px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
39
- .revision-note-remove { display: inline-flex; align-items: center; min-height: 40px; border: 0; padding: 6px 0; background: none; color: var(--ui-muted); font-size: 11px; }
40
- .revision-note-error { color: #a02020; font-size: 12px; }
41
-
42
- .slide-list {
43
- flex: 1;
44
- min-height: 0;
45
- overflow-y: auto;
46
- padding: 12px 10px 16px;
47
- scrollbar-width: thin;
48
- scrollbar-color: #d4d4d8 transparent;
49
- scrollbar-gutter: stable;
50
- }
51
-
52
- .slide-thumbnail-item {
53
- position: relative;
54
- }
55
-
56
- .slide-thumbnail {
57
- display: grid;
58
- width: 100%;
59
- gap: 9px;
60
- padding: 8px;
61
- border-color: transparent;
62
- font-size: 12px;
63
- text-align: left;
64
- }
65
-
66
- .slide-thumbnail.selected,
67
- .slide-thumbnail.selected:hover {
68
- border-color: color-mix(in srgb, var(--accent) 45%, white);
69
- background: var(--ui-selected);
70
- }
71
-
72
- .slide-thumbnail:focus-visible {
73
- outline-offset: -3px;
74
- }
75
-
76
- .slide-thumbnail:focus:not(:focus-visible) {
77
- outline: none;
78
- }
79
-
80
- .slide-thumbnail > span:last-child {
81
- padding-right: 30px;
82
- }
83
-
84
- .remove-slide {
85
- position: absolute;
86
- right: 2px;
87
- bottom: 0;
88
- width: 40px;
89
- height: 40px;
90
- padding: 0;
91
- border-color: transparent;
92
- border-radius: 5px;
93
- background: transparent;
94
- color: var(--ui-muted);
95
- }
96
-
97
- .remove-slide:hover:not(:disabled) {
98
- border-color: transparent;
99
- background: #ffe9e9;
100
- color: #9d2020;
101
- }
102
-
103
- .add-slide {
104
- display: flex;
105
- align-items: center;
106
- justify-content: center;
107
- width: 100%;
108
- min-height: 40px;
109
- margin-top: 8px;
110
- border-style: dashed;
111
- color: var(--ui-muted);
112
- font-size: 12px;
113
- }
114
-
115
- .add-slide > span {
116
- font-size: 22px;
117
- line-height: 1;
118
- }
119
-
120
- .slide-thumbnail-canvas {
121
- position: relative;
122
- display: block;
123
- width: 100%;
124
- aspect-ratio: 16 / 9;
125
- overflow: hidden;
126
- border: 1px solid #d7d7d7;
127
- background: white;
128
- }
129
-
130
- .slide-thumbnail-canvas.night {
131
- background: #202429;
132
- }
133
-
134
- .thumbnail-component {
135
- position: absolute;
136
- display: block;
137
- background: #aeb4b8;
138
- opacity: 0.8;
139
- }
140
-
141
- .thumbnail-component.kind-text-block.role-title,
142
- .thumbnail-component.kind-text-block.role-footnote {
143
- border-top: 1px solid #8f969b;
144
- background: transparent;
145
- }
146
-
147
- .thumbnail-component.kind-chart {
148
- background: var(--accent);
149
- opacity: 0.55;
150
- }
151
-
152
- .thumbnail-component.kind-image,
153
- .thumbnail-component.kind-diagram,
154
- .thumbnail-component.kind-table {
155
- border: 1px solid var(--accent);
156
- background: color-mix(in srgb, var(--accent) 18%, transparent);
157
- }
158
-
159
- .thumbnail-page-number {
160
- position: absolute;
161
- right: 5.8%;
162
- bottom: 3%;
163
- color: #74797d;
164
- font-size: 5px;
165
- line-height: 1;
166
- }
@@ -1,72 +0,0 @@
1
- .presentation {
2
- position: fixed;
3
- inset: 0;
4
- z-index: 80;
5
- overflow: hidden;
6
- background: #111;
7
- color: white;
8
- }
9
-
10
- .presentation-stage {
11
- padding: 40px 48px 84px;
12
- }
13
-
14
- .presentation-stage .slide-wrap {
15
- width: min(calc(100vw - 96px), calc((100vh - 124px) * var(--page-ratio)));
16
- max-width: none;
17
- }
18
-
19
- .presentation-stage .canvas {
20
- outline-color: #333;
21
- box-shadow: 0 16px 60px #0009;
22
- }
23
-
24
- .presentation-controls {
25
- position: fixed;
26
- bottom: 18px;
27
- left: 50%;
28
- z-index: 82;
29
- display: flex;
30
- align-items: center;
31
- gap: 8px;
32
- min-height: 48px;
33
- padding: 6px;
34
- border: 1px solid #ffffff24;
35
- border-radius: 12px;
36
- background: #222e;
37
- box-shadow: 0 8px 28px #0008;
38
- transform: translateX(-50%);
39
- }
40
-
41
- .presentation-controls button {
42
- min-width: 42px;
43
- height: 36px;
44
- border-color: #ffffff26;
45
- background: #333;
46
- color: white;
47
- }
48
-
49
- .presentation-controls button:hover:not(:disabled) {
50
- border-color: #ffffff55;
51
- background: #444;
52
- }
53
-
54
- .presentation-controls button:disabled {
55
- color: #777;
56
- }
57
-
58
- .presentation-controls span {
59
- min-width: 58px;
60
- color: #ddd;
61
- font-size: 12px;
62
- text-align: center;
63
- }
64
-
65
- @media (max-width: 900px) {
66
- .presentation-stage {
67
- padding-inline: 20px;
68
- }
69
- .presentation-stage .slide-wrap {
70
- width: min(calc(100vw - 40px), calc((100vh - 124px) * var(--page-ratio)));
71
- }
72
- }