sdocs-dev 1.3.0 → 1.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.
@@ -1,478 +0,0 @@
1
- /* ═══════════════════════════════════════════════════
2
- RENDERED MARKDOWN
3
- ═══════════════════════════════════════════════════ */
4
- :is(#rendered, #write) {
5
- padding: 40px 48px 60px;
6
- max-width: 760px;
7
- margin: 0 auto;
8
-
9
- --md-bg: #FFFFFF;
10
- --md-font-family: 'Inter', system-ui, sans-serif;
11
- --md-base-size: 16px;
12
- --md-line-height: 1.75;
13
- --md-color: #1C1917;
14
- --md-h-font-family: inherit;
15
- --md-h-scale: 1;
16
- --md-h-margin-bottom: 0.4em;
17
- --md-h-color: var(--md-color);
18
- --md-h1-size: 2.1em;
19
- --md-h1-color: var(--md-h-color);
20
- --md-h1-margin: 0 0 0.3em;
21
- --md-h1-weight: 700;
22
- --md-h2-size: 1.55em;
23
- --md-h2-color: var(--md-h-color);
24
- --md-h2-margin: 1.4em 0 0.3em;
25
- --md-h2-weight: 600;
26
- --md-h3-size: 1.2em;
27
- --md-h3-color: var(--md-h-color);
28
- --md-h3-margin: 1.2em 0 0.3em;
29
- --md-h3-weight: 600;
30
- --md-h4-size: 1.0em;
31
- --md-h4-color: var(--md-h-color);
32
- --md-h4-margin: 1.0em 0 0.25em;
33
- --md-h4-weight: 600;
34
- --md-p-color: var(--md-color);
35
- --md-list-color: var(--md-p-color);
36
- --md-list-spacing: 0.3em;
37
- --md-list-indent: 1.6em;
38
- --md-p-line-height: var(--md-line-height);
39
- --md-p-margin: 0 0 1.1em;
40
- --md-link-color: #2563EB;
41
- --md-link-decoration: underline;
42
- --md-code-bg: #F4F1ED;
43
- --md-code-color: #6B21A8;
44
- --md-code-padding: 0.15em 0.45em;
45
- --md-code-radius: 4px;
46
- --md-code-font: 'JetBrains Mono', 'Fira Mono', monospace;
47
- --md-pre-bg: #F4F1ED;
48
- --md-pre-padding: 1.1em 1.25em;
49
- --md-bq-border: 3px solid #2563EB;
50
- --md-bq-size: 1em;
51
- --md-bq-color: #6B6560;
52
- --md-bq-padding: 0.5em 1em;
53
- --md-bq-margin: 1.2em 0;
54
-
55
- font-family: var(--md-font-family);
56
- font-size: var(--md-base-size);
57
- color: var(--md-color);
58
- line-height: var(--md-line-height);
59
- background-color: var(--md-bg);
60
- }
61
- :is(#rendered, #write) h1 {
62
- font-family: var(--md-h-font-family);
63
- font-size: calc(var(--md-h1-size) * var(--md-h-scale));
64
- color: var(--md-h1-color);
65
- margin: var(--md-h1-margin);
66
- font-weight: var(--md-h1-weight);
67
- letter-spacing: -0.02em;
68
- line-height: 1.2;
69
- }
70
- :is(#rendered, #write) h2 {
71
- font-family: var(--md-h-font-family);
72
- font-size: calc(var(--md-h2-size) * var(--md-h-scale));
73
- color: var(--md-h2-color);
74
- margin: var(--md-h2-margin);
75
- font-weight: var(--md-h2-weight);
76
- letter-spacing: -0.015em;
77
- line-height: 1.3;
78
- padding-bottom: 0.3em;
79
- border-bottom: 1px solid var(--md-h2-border);
80
- }
81
- :is(#rendered, #write) h3 {
82
- font-family: var(--md-h-font-family);
83
- font-size: calc(var(--md-h3-size) * var(--md-h-scale));
84
- color: var(--md-h3-color);
85
- margin: var(--md-h3-margin);
86
- font-weight: var(--md-h3-weight);
87
- letter-spacing: -0.01em;
88
- line-height: 1.4;
89
- }
90
- :is(#rendered, #write) h4 {
91
- font-family: var(--md-h-font-family);
92
- font-size: calc(var(--md-h4-size) * var(--md-h-scale));
93
- color: var(--md-h4-color);
94
- margin: var(--md-h4-margin);
95
- font-weight: var(--md-h4-weight);
96
- line-height: 1.5;
97
- }
98
- :is(#rendered, #write) p {
99
- color: var(--md-p-color);
100
- line-height: var(--md-p-line-height);
101
- margin: var(--md-p-margin);
102
- }
103
- :is(#rendered, #write) a {
104
- color: var(--md-link-color);
105
- text-decoration: var(--md-link-decoration);
106
- text-underline-offset: 2px;
107
- cursor: pointer;
108
- }
109
- :is(#rendered, #write) a:hover { opacity: .8; }
110
-
111
- /* ── Collapsible heading sections ── */
112
- #rendered .md-section > h2,
113
- #rendered .md-section > h3,
114
- #rendered .md-section > h4 {
115
- cursor: pointer;
116
- }
117
- #rendered .section-toggle {
118
- display: inline-flex;
119
- align-items: center;
120
- justify-content: center;
121
- width: 16px;
122
- height: 16px;
123
- color: var(--text-3);
124
- cursor: pointer;
125
- margin-right: 4px;
126
- vertical-align: middle;
127
- transition: transform .18s cubic-bezier(.4,0,.2,1), color .12s;
128
- transform: rotate(0deg);
129
- }
130
- #rendered .section-toggle.open {
131
- transform: rotate(90deg);
132
- }
133
- #rendered .section-toggle:hover,
134
- #rendered h1:hover > .section-toggle,
135
- #rendered .md-section > h2:hover > .section-toggle,
136
- #rendered .md-section > h3:hover > .section-toggle,
137
- #rendered .md-section > h4:hover > .section-toggle,
138
- #rendered > h1:hover ~ .md-section .section-toggle,
139
- #rendered .md-section > h2:hover ~ .md-section-body .section-toggle,
140
- #rendered .md-section > h3:hover ~ .md-section-body .section-toggle,
141
- #rendered .md-section > h4:hover ~ .md-section-body .section-toggle {
142
- color: var(--text-2);
143
- }
144
- #rendered .md-section-body:not(.open):not(:has(.md-section-body.open)) > :not(.md-section) {
145
- display: none;
146
- }
147
- #rendered .md-section-body:not(.open):not(:has(.md-section-body.open)):has(> :not(.md-section)):has(> .md-section)::before {
148
- content: "\2026";
149
- display: block;
150
- opacity: 1;
151
- font-weight: bold;
152
- padding-left: calc(1.2em + 20px);
153
- font-size: 1rem;
154
- color: var(--text-3);
155
- padding-bottom: 10px;
156
- line-height: 0.1;
157
- }
158
- #rendered .md-section-body:not(.open):has(.md-section-body.open) > :not(.md-section) {
159
- opacity: 0.55;
160
- padding-left: calc(1.2em + 20px);
161
- }
162
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) {
163
- padding-left: 1.2em;
164
- }
165
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h2,
166
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h3,
167
- #rendered .md-section-body:not(.open) > .md-section:not(:has(> .md-section-body.open)) > h4 {
168
- margin-top: 0.15em;
169
- margin-bottom: 0.1em;
170
- padding-bottom: 0;
171
- border-bottom: none;
172
- opacity: 0.55;
173
- }
174
-
175
- /* ── Header anchor links ── */
176
- #rendered h1, #rendered h2, #rendered h3, #rendered h4 { position: relative; }
177
- #rendered .header-anchor {
178
- display: inline-flex;
179
- align-items: center;
180
- margin-left: 6px;
181
- opacity: 0.5;
182
- transition: opacity 0.15s;
183
- color: var(--md-link-color, #2563eb);
184
- cursor: pointer;
185
- vertical-align: middle;
186
- }
187
- #rendered .header-anchor:hover { opacity: 1; }
188
- #rendered .header-copy-btn {
189
- display: inline-flex;
190
- align-items: center;
191
- margin-left: 4px;
192
- opacity: 0.5;
193
- transition: opacity 0.15s;
194
- color: var(--md-link-color, #2563eb);
195
- cursor: pointer;
196
- vertical-align: middle;
197
- background: none;
198
- border: none;
199
- padding: 0;
200
- font: inherit;
201
- line-height: 1;
202
- }
203
- #rendered .header-copy-btn:hover { opacity: 1; }
204
-
205
- /* ── Scroll padding for anchor jumps ── */
206
- #content-area { scroll-padding-top: 24px; }
207
-
208
- :is(#rendered, #write) code {
209
- background: var(--md-code-bg);
210
- color: var(--md-code-color);
211
- padding: var(--md-code-padding);
212
- border-radius: var(--md-code-radius);
213
- font-family: var(--md-code-font);
214
- font-size: 0.85em;
215
- overflow-wrap: anywhere;
216
- }
217
- #rendered .pre-wrapper {
218
- position: relative;
219
- margin: 1.2em 0;
220
- }
221
- :is(#rendered, #write) pre {
222
- background: var(--md-pre-bg);
223
- padding: var(--md-pre-padding);
224
- border-radius: var(--radius-md);
225
- overflow-x: auto;
226
- overscroll-behavior-x: contain;
227
- white-space: pre;
228
- word-wrap: normal;
229
- margin: 1.2em 0;
230
- border: 1px solid var(--md-pre-border);
231
- }
232
- #rendered pre {
233
- padding-top: 26px;
234
- margin: 0;
235
- }
236
- #rendered .pre-wrapper .copy-btn {
237
- position: absolute;
238
- top: 6px;
239
- right: 6px;
240
- background: var(--md-pre-bg);
241
- border: 1px solid var(--md-copy-btn-border);
242
- border-radius: 4px;
243
- padding: 3px 5px;
244
- cursor: pointer;
245
- opacity: 0.7;
246
- transition: opacity 0.15s;
247
- color: var(--md-code-color, #6B21A8);
248
- font-size: 12px;
249
- line-height: 1;
250
- display: flex;
251
- align-items: center;
252
- gap: 3px;
253
- z-index: 1;
254
- }
255
- #rendered .pre-wrapper .copy-btn:hover { opacity: 1; background: var(--md-copy-btn-hover); }
256
- :is(#rendered, #write) pre code {
257
- background: none;
258
- padding: 0;
259
- color: var(--md-code-color);
260
- font-family: var(--md-code-font);
261
- font-size: 0.88em;
262
- overflow: visible;
263
- white-space: pre;
264
- word-break: normal;
265
- }
266
- /* ── Charts ── */
267
- .sdoc-chart {
268
- margin: 1.2em 0;
269
- padding: 16px;
270
- border-radius: var(--radius, 8px);
271
- background: var(--md-chart-bg, var(--md-block-bg, #F5F2EE));
272
- max-width: 100%;
273
- position: relative;
274
- }
275
- .sdoc-chart canvas { max-height: 400px; }
276
- .sdoc-chart-error { outline: 2px dashed #ef4444; }
277
-
278
- /* Chart menu */
279
- .chart-menu-btn {
280
- position: absolute; top: 6px; right: 6px;
281
- background: var(--md-chart-bg, var(--md-block-bg, #F5F2EE));
282
- border: 1px solid var(--md-copy-btn-border, rgba(0,0,0,0.1));
283
- border-radius: 4px;
284
- padding: 3px 5px;
285
- cursor: pointer; opacity: 0.7;
286
- transition: opacity .15s;
287
- color: var(--md-chart-text, var(--text-3, #999));
288
- font-size: 12px; line-height: 1;
289
- display: flex; align-items: center; justify-content: center;
290
- z-index: 2;
291
- }
292
- .chart-menu-btn:hover { opacity: 1; background: var(--md-copy-btn-hover, rgba(0,0,0,0.05)); }
293
-
294
- .chart-menu {
295
- display: none; position: absolute; top: 36px; right: 8px;
296
- min-width: 160px; width: max-content; background: var(--bg-surface, #fff);
297
- border: 1px solid var(--border, #e0dcd7);
298
- border-radius: var(--radius, 8px);
299
- box-shadow: 0 4px 16px rgba(0,0,0,0.12);
300
- padding: 6px 0; z-index: 10; font-size: 13px; color: var(--text, #333);
301
- }
302
- .chart-menu.open { display: block; }
303
-
304
- .chart-menu-item {
305
- display: block; width: 100%; padding: 6px 14px;
306
- border: none; background: none; text-align: left;
307
- cursor: pointer; font-size: 13px; color: var(--text, #333);
308
- }
309
- .chart-menu-item:hover { background: var(--bg-hover, #f5f3f0); }
310
-
311
- .chart-menu-sep { height: 1px; background: var(--border, #e0dcd7); margin: 4px 0; }
312
-
313
- .chart-menu-toggle {
314
- display: flex; align-items: center; gap: 6px;
315
- padding: 5px 14px; cursor: pointer; font-size: 13px; color: var(--text-2, #666);
316
- }
317
- .chart-menu-toggle:hover { background: var(--bg-hover, #f5f3f0); }
318
- .chart-menu-toggle input { margin: 0; }
319
-
320
- .chart-menu-types { display: flex; gap: 3px; padding: 4px 10px; flex-wrap: wrap; }
321
- .chart-type-btn {
322
- padding: 3px 10px; border: 1px solid var(--border, #e0dcd7);
323
- background: none; border-radius: var(--radius-sm, 4px);
324
- font-size: 11px; cursor: pointer; color: var(--text-2, #666);
325
- white-space: nowrap;
326
- }
327
- .chart-type-btn:hover { background: var(--bg-hover, #f5f3f0); }
328
- .chart-type-btn.active {
329
- background: var(--bg-input, #fff); color: var(--text, #333);
330
- border-color: var(--border-strong, #c0bbb5); box-shadow: 0 1px 2px rgba(0,0,0,0.06);
331
- }
332
-
333
- .chart-menu-input {
334
- display: block; width: calc(100% - 28px); margin: 4px 14px;
335
- padding: 4px 8px; border: 1px solid var(--border, #e0dcd7);
336
- border-radius: var(--radius-sm, 4px); font-size: 12px;
337
- background: var(--bg-input, #fff); color: var(--text, #333);
338
- }
339
- .chart-menu-input:focus { outline: none; border-color: var(--accent, #3b82f6); }
340
-
341
- :is(#rendered, #write) blockquote {
342
- border-left: var(--md-bq-border);
343
- font-size: var(--md-bq-size);
344
- color: var(--md-bq-color);
345
- padding: var(--md-bq-padding);
346
- margin: var(--md-bq-margin);
347
- background: var(--md-bq-bg);
348
- border-radius: 0 var(--radius) var(--radius) 0;
349
- }
350
- :is(#rendered, #write) blockquote p { margin: 0; color: inherit; }
351
- :is(#rendered, #write) ul, :is(#rendered, #write) ol {
352
- padding-left: var(--md-list-indent);
353
- margin: 0.5em 0 1.1em;
354
- }
355
- :is(#rendered, #write) li { margin-bottom: var(--md-list-spacing); color: var(--md-list-color); }
356
- :is(#rendered, #write) li::marker { color: var(--md-list-color); }
357
- :is(#rendered, #write) hr {
358
- border: none;
359
- border-top: 1px solid var(--md-hr-border);
360
- margin: 2em 0;
361
- }
362
- :is(#rendered, #write) table {
363
- border-collapse: collapse;
364
- width: 100%;
365
- margin: 1.2em 0;
366
- font-size: 0.92em;
367
- }
368
- :is(#rendered, #write) th, :is(#rendered, #write) td {
369
- border: 1px solid var(--md-table-border);
370
- padding: 7px 12px;
371
- text-align: left;
372
- }
373
- :is(#rendered, #write) th {
374
- background: var(--md-table-header-bg);
375
- font-weight: 600;
376
- color: var(--text);
377
- }
378
- :is(#rendered, #write) tr:nth-child(even) td { background: var(--md-table-even-bg); }
379
- :is(#rendered, #write) img { max-width: 100%; border-radius: var(--radius-md); }
380
-
381
- /* ── File-info card (shown when front matter has `file:`) ─────────── */
382
- /* Inherits the block cascade: --md-fic-bg / --md-fic-text fall back to
383
- --md-block-bg / --md-block-text so the card blends in with code blocks,
384
- blockquotes, and charts. Override per-doc via `styles.fileinfo` in YAML. */
385
- #file-info-card[hidden] { display: none; }
386
- #file-info-card {
387
- --fic-bg: var(--md-fic-bg, var(--md-block-bg, var(--bg)));
388
- --fic-text: var(--md-fic-text, var(--md-block-text, var(--text)));
389
- --fic-muted: color-mix(in srgb, var(--fic-text) 60%, transparent);
390
- --fic-border: color-mix(in srgb, var(--fic-text) 15%, transparent);
391
- --fic-hover: color-mix(in srgb, var(--fic-text) 8%, transparent);
392
-
393
- max-width: 680px;
394
- margin: 24px auto 0;
395
- padding: 10px 16px;
396
- background: var(--fic-bg);
397
- border: 1px solid var(--fic-border);
398
- border-radius: var(--radius-md);
399
- box-shadow: var(--shadow-sm);
400
- font-family: var(--font-ui);
401
- font-size: 13px;
402
- color: var(--fic-text);
403
- display: flex;
404
- flex-direction: column;
405
- gap: 6px;
406
- }
407
- #file-info-card .fic-rows { display: flex; flex-direction: column; gap: 4px; }
408
- #file-info-card .fic-row {
409
- display: flex;
410
- align-items: center;
411
- gap: 8px;
412
- padding: 2px 0;
413
- border-radius: var(--radius-sm);
414
- }
415
- #file-info-card .fic-label {
416
- color: var(--fic-muted);
417
- font-size: 11px;
418
- font-weight: 600;
419
- text-transform: uppercase;
420
- letter-spacing: 0.04em;
421
- min-width: 52px;
422
- }
423
- #file-info-card .fic-value {
424
- flex: 1;
425
- min-width: 0;
426
- font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
427
- font-size: 12.5px;
428
- color: var(--fic-text);
429
- overflow-wrap: anywhere;
430
- word-break: break-word;
431
- }
432
- #file-info-card .fic-local-pill {
433
- font-size: 10px;
434
- font-weight: 600;
435
- text-transform: uppercase;
436
- letter-spacing: 0.04em;
437
- color: var(--fic-muted);
438
- background: var(--fic-hover);
439
- border: 1px solid var(--fic-border);
440
- border-radius: 999px;
441
- padding: 2px 7px;
442
- }
443
- #file-info-card .fic-copy,
444
- #file-info-card .fic-action {
445
- display: inline-flex;
446
- align-items: center;
447
- gap: 6px;
448
- background: transparent;
449
- border: 1px solid var(--fic-border);
450
- color: var(--fic-text);
451
- border-radius: var(--radius-sm);
452
- padding: 4px 8px;
453
- font-family: var(--font-ui);
454
- font-size: 12px;
455
- cursor: pointer;
456
- transition: background .1s, border-color .1s, color .1s;
457
- }
458
- #file-info-card .fic-copy { padding: 3px 6px; }
459
- #file-info-card .fic-copy:hover,
460
- #file-info-card .fic-action:hover {
461
- background: var(--fic-hover);
462
- color: var(--fic-text);
463
- }
464
- #file-info-card .fic-footer {
465
- display: flex;
466
- align-items: center;
467
- gap: 10px;
468
- margin-top: 2px;
469
- }
470
- #file-info-card .fic-privacy-note {
471
- margin-left: auto;
472
- display: inline-flex;
473
- align-items: center;
474
- gap: 6px;
475
- font-size: 11px;
476
- color: var(--fic-muted);
477
- }
478
- #file-info-card .fic-privacy-note[hidden] { display: none; }
@@ -1,116 +0,0 @@
1
- @font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('/public/fonts/inter-400.woff2') format('woff2'); }
2
- @font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('/public/fonts/inter-500.woff2') format('woff2'); }
3
- @font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('/public/fonts/inter-600.woff2') format('woff2'); }
4
-
5
- :root {
6
- --bg: #F7F5F2;
7
- --bg-surface: #F1EDE8;
8
- --bg-panel: #EDE8E2;
9
- --bg-panel-deep: #E7E2DB;
10
- --bg-input: #FFFFFF;
11
- --bg-hover: #E8E3DD;
12
- --bg-active: #E2DDD6;
13
-
14
- --border: #D4CFC9;
15
- --border-subtle: #DDD9D3;
16
- --border-strong: #C5BFB8;
17
-
18
- --text: #1C1917;
19
- --text-2: #57534E;
20
- --text-3: #A8A29E;
21
- --text-inv: #FAFAF9;
22
-
23
- --accent: #2563EB;
24
- --accent-light: #EEF2FF;
25
- --accent-text: #1D4ED8;
26
-
27
- --radius-sm: 4px;
28
- --radius: 6px;
29
- --radius-md: 8px;
30
- --radius-lg: 10px;
31
-
32
- --shadow-sm: 0 1px 2px rgba(28,25,23,.06);
33
- --shadow: 0 2px 6px rgba(28,25,23,.08), 0 1px 2px rgba(28,25,23,.04);
34
- --shadow-md: 0 4px 12px rgba(28,25,23,.10), 0 2px 4px rgba(28,25,23,.06);
35
-
36
- --font-ui: 'Inter', system-ui, -apple-system, sans-serif;
37
-
38
- --md-h2-border: #EDE8E2;
39
- --md-toc-border: #E7E2DB;
40
- --md-pre-border: #E7E2DB;
41
- --md-bq-bg: #F7F5F2;
42
- --md-hr-border: #EDE8E2;
43
- --md-table-border: #E2DDD6;
44
- --md-table-header-bg: #F4F1ED;
45
- --md-table-even-bg: #FAFAF8;
46
- --md-copy-btn-border: rgba(0,0,0,0.12);
47
- --md-copy-btn-hover: rgba(0,0,0,0.05);
48
- }
49
-
50
- /* ═══════════════════════════════════════════════════
51
- DARK THEME
52
- ═══════════════════════════════════════════════════ */
53
- html[data-theme="dark"] {
54
- --bg: #1C1A17;
55
- --bg-surface: #252320;
56
- --bg-panel: #211F1D;
57
- --bg-panel-deep: #1A1816;
58
- --bg-input: #2C2926;
59
- --bg-hover: #32302C;
60
- --bg-active: #3A3733;
61
-
62
- --border: #3D3935;
63
- --border-subtle: #332F2B;
64
- --border-strong: #4A453F;
65
-
66
- --text: #E7E5E2;
67
- --text-2: #A8A29E;
68
- --text-3: #6B6560;
69
- --text-inv: #1C1917;
70
-
71
- --accent: #3B82F6;
72
- --accent-light: #1E293B;
73
- --accent-text: #60A5FA;
74
-
75
- --shadow-sm: 0 1px 2px rgba(0,0,0,.20);
76
- --shadow: 0 2px 6px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.15);
77
- --shadow-md: 0 4px 12px rgba(0,0,0,.35), 0 2px 4px rgba(0,0,0,.20);
78
-
79
- --md-h2-border: #3D3935;
80
- --md-toc-border: #3D3935;
81
- --md-pre-border: #3D3935;
82
- --md-bq-bg: #252320;
83
- --md-hr-border: #3D3935;
84
- --md-table-border: #3D3935;
85
- --md-table-header-bg: #2C2926;
86
- --md-table-even-bg: #242220;
87
- --md-copy-btn-border: rgba(255,255,255,0.12);
88
- --md-copy-btn-hover: rgba(255,255,255,0.06);
89
- }
90
- html[data-theme="dark"] :is(#rendered, #write) {
91
- --md-bg: #2c2a26;
92
- --md-color: #e7e5e2;
93
- --md-code-bg: #1a1816;
94
- --md-code-color: #b8a99a;
95
- --md-pre-bg: #1a1816;
96
- --md-link-color: #60a5fa;
97
- --md-bq-color: #a8a29e;
98
- }
99
- html[data-theme="dark"] .control-row select {
100
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B6560' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
101
- }
102
-
103
- /* Theme transitions */
104
- body,
105
- #left,
106
- #right,
107
- #export-panel,
108
- #statusbar,
109
- #left-toolbar,
110
- #right-header,
111
- #export-panel-header,
112
- .panel-header,
113
- .sub-header,
114
- #raw {
115
- transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
116
- }
@@ -1,128 +0,0 @@
1
- /* ═══════════════════════════════════════════════════
2
- WRITE MODE
3
- ═══════════════════════════════════════════════════ */
4
-
5
- /* ── Write div ── */
6
- #write {
7
- display: none;
8
- outline: none;
9
- min-height: 100%;
10
- cursor: text;
11
- }
12
- #write:empty::before {
13
- content: 'Start typing\2026';
14
- color: var(--text-3);
15
- pointer-events: none;
16
- }
17
-
18
- /* ── Write toolbar ── */
19
- #write-toolbar {
20
- display: none;
21
- align-items: center;
22
- gap: 2px;
23
- height: 0;
24
- opacity: 0;
25
- padding: 0 12px;
26
- background: var(--bg);
27
- border-bottom: 1px solid transparent;
28
- flex-shrink: 0;
29
- overflow: hidden;
30
- transition: height .3s cubic-bezier(.4,0,.2,1),
31
- opacity .22s ease,
32
- border-color .3s ease,
33
- padding .3s cubic-bezier(.4,0,.2,1);
34
- }
35
- body.write-mode #write-toolbar {
36
- position: relative;
37
- display: flex;
38
- justify-content: center;
39
- height: 34px;
40
- opacity: 1;
41
- border-bottom-color: var(--border-subtle);
42
- padding: 0 12px;
43
- overflow-x: auto;
44
- overflow-y: hidden;
45
- -webkit-overflow-scrolling: touch;
46
- scrollbar-width: none;
47
- }
48
- body.write-mode #write-toolbar::-webkit-scrollbar {
49
- display: none;
50
- }
51
-
52
- .write-tb-btn {
53
- position: relative;
54
- display: inline-flex;
55
- align-items: center;
56
- justify-content: center;
57
- min-width: 28px;
58
- width: 28px;
59
- height: 26px;
60
- flex-shrink: 0;
61
- border: none;
62
- background: none;
63
- color: var(--text-2);
64
- cursor: pointer;
65
- border-radius: var(--radius-sm);
66
- padding: 0;
67
- font-size: 12px;
68
- font-family: var(--font-ui);
69
- font-weight: 600;
70
- transition: color .12s, background .12s;
71
- }
72
- .write-tb-btn:hover {
73
- color: var(--text);
74
- background: var(--bg-hover);
75
- }
76
- .write-tb-btn.active {
77
- color: var(--text);
78
- background: var(--bg-input);
79
- box-shadow: var(--shadow-sm);
80
- }
81
- .write-tb-btn code {
82
- font-size: 11px;
83
- font-family: 'JetBrains Mono', monospace;
84
- background: none;
85
- padding: 0;
86
- color: inherit;
87
- }
88
-
89
- .write-tb-sep {
90
- width: 1px;
91
- height: 16px;
92
- background: var(--border);
93
- margin: 6px 0;
94
- flex-shrink: 0;
95
- }
96
-
97
- /* ── Tooltips ── */
98
- .write-tb-btn[data-tip]::after {
99
- content: attr(data-tip);
100
- position: absolute;
101
- bottom: calc(100% + 6px);
102
- left: 50%;
103
- transform: translateX(-50%);
104
- padding: 3px 8px;
105
- background: var(--text);
106
- color: var(--bg);
107
- font-size: 11px;
108
- font-weight: 500;
109
- white-space: nowrap;
110
- border-radius: 4px;
111
- pointer-events: none;
112
- opacity: 0;
113
- transition: opacity .15s ease;
114
- }
115
- .write-tb-btn[data-tip]:hover::after {
116
- opacity: 1;
117
- }
118
-
119
- /* ── Visibility rules ── */
120
- body.write-mode #write {
121
- display: block;
122
- }
123
- body.write-mode #rendered {
124
- display: none;
125
- }
126
- body.write-mode #raw {
127
- display: none;
128
- }