starmark 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1564 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ --bg: #0f1117;
4
+ --surface: #171a22;
5
+ --border: #2a3040;
6
+ --text: #e8ecf4;
7
+ --muted: #9aa4b8;
8
+ --accent: #6ea8ff;
9
+ --accent-hover: #8cbcff;
10
+ --colon-block: #8cbcff;
11
+ --code: #7ee787;
12
+ --blockquote: #8cbcff;
13
+ --list: #c5ced9;
14
+ --md: #7ee787;
15
+ --mdx: #56d364;
16
+ --page-gradient: radial-gradient(circle at top, #1a2030 0%, var(--bg) 55%);
17
+ --font-mono:
18
+ "SF Mono",
19
+ ui-monospace,
20
+ "Cascadia Code",
21
+ "Source Code Pro",
22
+ Menlo,
23
+ Monaco,
24
+ Consolas,
25
+ monospace;
26
+ font-family:
27
+ "SF Pro Text",
28
+ -apple-system,
29
+ BlinkMacSystemFont,
30
+ "Segoe UI",
31
+ sans-serif;
32
+ }
33
+
34
+ * {
35
+ box-sizing: border-box;
36
+ }
37
+
38
+ body {
39
+ margin: 0;
40
+ min-height: 100vh;
41
+ background: var(--bg);
42
+ color: var(--text);
43
+ }
44
+
45
+ body::before {
46
+ content: "";
47
+ position: fixed;
48
+ inset: 0;
49
+ z-index: -1;
50
+ background: var(--page-gradient);
51
+ pointer-events: none;
52
+ }
53
+
54
+ .top-bar {
55
+ position: sticky;
56
+ top: 0;
57
+ z-index: 10;
58
+ display: flex;
59
+ justify-content: center;
60
+ padding: 0.85rem 0;
61
+ border-bottom: 1px solid rgb(255 255 255 / 8%);
62
+ background: var(--page-gradient);
63
+ background-attachment: fixed;
64
+ box-shadow: 0 4px 16px -4px rgb(0 0 0 / 28%);
65
+ }
66
+
67
+ .top-bar-inner {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: space-between;
71
+ width: 90%;
72
+ max-width: 1200px;
73
+ }
74
+
75
+ .top-bar-title {
76
+ margin: 0;
77
+ font-size: 1.25rem;
78
+ font-weight: 600;
79
+ letter-spacing: -0.03em;
80
+ }
81
+
82
+ .top-bar-btn {
83
+ padding: 0.45rem 0.85rem;
84
+ font-size: 0.9rem;
85
+ }
86
+
87
+ .container {
88
+ width: 90%;
89
+ max-width: 1200px;
90
+ margin: 0 auto;
91
+ padding: 1.5rem 0 4rem;
92
+ }
93
+
94
+ .projects-dialog {
95
+ width: min(520px, calc(100vw - 2rem));
96
+ max-height: calc(100vh - 2rem);
97
+ padding: 0;
98
+ border: 1px solid var(--border);
99
+ border-radius: 14px;
100
+ background: var(--surface);
101
+ color: var(--text);
102
+ overflow: auto;
103
+ }
104
+
105
+ .projects-dialog::backdrop {
106
+ background: rgb(0 0 0 / 55%);
107
+ }
108
+
109
+ .dialog-header {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: space-between;
113
+ gap: 1rem;
114
+ padding: 1.1rem 1.25rem 0;
115
+ }
116
+
117
+ .dialog-header h2 {
118
+ margin: 0;
119
+ font-size: 1.15rem;
120
+ }
121
+
122
+ .dialog-close {
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ width: 2rem;
127
+ height: 2rem;
128
+ padding: 0;
129
+ border: none;
130
+ border-radius: 8px;
131
+ background: transparent;
132
+ color: var(--muted);
133
+ font-size: 1.4rem;
134
+ line-height: 1;
135
+ }
136
+
137
+ .dialog-close:hover:not(:disabled) {
138
+ background: color-mix(in srgb, var(--border) 60%, transparent);
139
+ border-color: transparent;
140
+ color: var(--text);
141
+ }
142
+
143
+ .projects {
144
+ margin: 0 1.25rem 1.25rem;
145
+ }
146
+
147
+ .projects-heading {
148
+ margin: 0 0 0.65rem;
149
+ font-size: 0.85rem;
150
+ font-weight: 600;
151
+ color: var(--muted);
152
+ text-transform: uppercase;
153
+ letter-spacing: 0.04em;
154
+ }
155
+
156
+ .project-list {
157
+ list-style: none;
158
+ margin: 0;
159
+ padding: 0;
160
+ border: 1px solid var(--border);
161
+ border-radius: 12px;
162
+ overflow: hidden;
163
+ }
164
+
165
+ .project-list li + li {
166
+ border-top: 1px solid var(--border);
167
+ }
168
+
169
+ .project-item {
170
+ display: grid;
171
+ gap: 0.2rem;
172
+ width: 100%;
173
+ padding: 0.85rem 1rem;
174
+ border: none;
175
+ border-radius: 0;
176
+ background: var(--surface);
177
+ text-align: left;
178
+ }
179
+
180
+ .project-item:hover:not(:disabled) {
181
+ background: color-mix(in srgb, var(--accent) 10%, var(--surface));
182
+ }
183
+
184
+ .project-name {
185
+ font-weight: 600;
186
+ }
187
+
188
+ .project-path {
189
+ color: var(--muted);
190
+ font-size: 0.85rem;
191
+ white-space: nowrap;
192
+ overflow: hidden;
193
+ text-overflow: ellipsis;
194
+ }
195
+
196
+ .picker {
197
+ margin: 0.75rem 1.25rem 1.25rem;
198
+ padding: 1.25rem;
199
+ border: 1px solid var(--border);
200
+ border-radius: 12px;
201
+ background: color-mix(in srgb, var(--bg) 92%, white 8%);
202
+ }
203
+
204
+ .picker label {
205
+ display: block;
206
+ margin-bottom: 0.65rem;
207
+ font-size: 0.9rem;
208
+ color: var(--muted);
209
+ }
210
+
211
+ .picker-row {
212
+ display: grid;
213
+ grid-template-columns: 1fr auto auto;
214
+ gap: 0.65rem;
215
+ }
216
+
217
+ input[type="text"],
218
+ input[type="search"] {
219
+ width: 100%;
220
+ padding: 0.75rem 0.85rem;
221
+ border: 1px solid var(--border);
222
+ border-radius: 8px;
223
+ background: var(--bg);
224
+ color: var(--text);
225
+ font: inherit;
226
+ }
227
+
228
+ button {
229
+ padding: 0.75rem 1rem;
230
+ border: 1px solid var(--border);
231
+ border-radius: 8px;
232
+ background: var(--surface);
233
+ color: var(--text);
234
+ font: inherit;
235
+ cursor: pointer;
236
+ }
237
+
238
+ button:hover:not(:disabled) {
239
+ border-color: var(--accent);
240
+ }
241
+
242
+ button.primary {
243
+ background: var(--accent);
244
+ border-color: var(--accent);
245
+ color: #08111f;
246
+ font-weight: 600;
247
+ }
248
+
249
+ button.primary:hover:not(:disabled) {
250
+ background: var(--accent-hover);
251
+ border-color: var(--accent-hover);
252
+ }
253
+
254
+ button:disabled {
255
+ opacity: 0.55;
256
+ cursor: not-allowed;
257
+ }
258
+
259
+ .scan-info {
260
+ margin: 0.85rem 0 0;
261
+ font-size: 0.9rem;
262
+ color: var(--muted);
263
+ }
264
+
265
+ .results {
266
+ margin-top: 0;
267
+ }
268
+
269
+ .results-header {
270
+ display: flex;
271
+ align-items: baseline;
272
+ justify-content: space-between;
273
+ gap: 1rem;
274
+ padding: 0.75rem 0;
275
+ margin-bottom: 0.75rem;
276
+ }
277
+
278
+ .results-header h2 {
279
+ margin: 0;
280
+ font-size: 1.1rem;
281
+ }
282
+
283
+ .results-header-actions {
284
+ display: flex;
285
+ align-items: center;
286
+ gap: 0.5rem;
287
+ }
288
+
289
+ .results-icon-btn {
290
+ display: flex;
291
+ align-items: center;
292
+ justify-content: center;
293
+ width: 2rem;
294
+ height: 2rem;
295
+ padding: 0;
296
+ border: 1px solid transparent;
297
+ border-radius: 8px;
298
+ background: transparent;
299
+ color: var(--muted);
300
+ }
301
+
302
+ .results-icon-btn:hover:not(:disabled) {
303
+ border-color: var(--border);
304
+ background: color-mix(in srgb, var(--accent) 10%, var(--surface));
305
+ color: var(--accent);
306
+ }
307
+
308
+ .results-icon-btn svg {
309
+ display: block;
310
+ flex-shrink: 0;
311
+ }
312
+
313
+ .file-count {
314
+ color: var(--muted);
315
+ font-size: 0.9rem;
316
+ }
317
+
318
+ .search-box {
319
+ margin-bottom: 0.75rem;
320
+ }
321
+
322
+ .empty-state {
323
+ margin: 0;
324
+ padding: 1.25rem;
325
+ border: 1px dashed var(--border);
326
+ border-radius: 10px;
327
+ color: var(--muted);
328
+ }
329
+
330
+ .file-list,
331
+ .file-tree {
332
+ list-style: none;
333
+ margin: 0;
334
+ padding: 0;
335
+ border: 1px solid var(--border);
336
+ border-radius: 12px;
337
+ overflow: hidden;
338
+ --tree-indent: 1.15rem;
339
+ --tree-count-num-width: 3ch;
340
+ --tree-count-col-width: calc(1rem + 0.2rem + var(--tree-count-num-width));
341
+ --tree-actions-col-width: 11rem;
342
+ --tree-badge-width: 8rem;
343
+ }
344
+
345
+ .file-tree > .tree-folder > details > summary {
346
+ border-top: none;
347
+ }
348
+
349
+ .tree-folder details {
350
+ display: block;
351
+ }
352
+
353
+ .tree-folder-header {
354
+ display: grid;
355
+ grid-template-columns:
356
+ minmax(0, 1fr)
357
+ var(--tree-count-col-width)
358
+ var(--tree-count-col-width)
359
+ var(--tree-actions-col-width);
360
+ align-items: center;
361
+ gap: 0.65rem;
362
+ padding: 0.75rem 1rem;
363
+ border-top: 1px solid var(--border);
364
+ background: var(--surface);
365
+ cursor: pointer;
366
+ list-style: none;
367
+ }
368
+
369
+ .tree-folder-main,
370
+ .tree-file-main {
371
+ display: flex;
372
+ align-items: center;
373
+ gap: 0.65rem;
374
+ min-width: 0;
375
+ padding-left: calc(1rem + var(--depth, 0) * var(--tree-indent));
376
+ }
377
+
378
+ .tree-folder-prefix {
379
+ display: flex;
380
+ align-items: center;
381
+ gap: 0.65rem;
382
+ min-width: 0;
383
+ flex-shrink: 0;
384
+ }
385
+
386
+ .tree-folder-header:hover {
387
+ background: color-mix(in srgb, var(--accent) 8%, var(--surface));
388
+ }
389
+
390
+ .tree-folder-header::-webkit-details-marker {
391
+ display: none;
392
+ }
393
+
394
+ .tree-folder-chevron {
395
+ width: 0.45rem;
396
+ height: 0.45rem;
397
+ border-right: 2px solid var(--muted);
398
+ border-bottom: 2px solid var(--muted);
399
+ transform: rotate(-45deg);
400
+ transition: transform 0.15s ease;
401
+ flex-shrink: 0;
402
+ }
403
+
404
+ details[open] > .tree-folder-header .tree-folder-chevron {
405
+ transform: rotate(45deg);
406
+ }
407
+
408
+ .tree-folder-name,
409
+ .tree-file .file-name {
410
+ min-width: 0;
411
+ flex: 1;
412
+ font-weight: 600;
413
+ white-space: nowrap;
414
+ overflow: hidden;
415
+ text-overflow: ellipsis;
416
+ }
417
+
418
+ .tree-folder-count-col {
419
+ display: inline-flex;
420
+ align-items: center;
421
+ justify-content: flex-end;
422
+ gap: 0.2rem;
423
+ color: var(--muted);
424
+ font-size: 0.8rem;
425
+ }
426
+
427
+ .tree-folder-count-col svg {
428
+ display: block;
429
+ flex-shrink: 0;
430
+ }
431
+
432
+ .tree-folder-count-col.is-empty {
433
+ opacity: 0.2;
434
+ }
435
+
436
+ .tree-folder-count-value {
437
+ display: block;
438
+ width: var(--tree-count-num-width);
439
+ font-family: var(--font-mono);
440
+ font-variant-numeric: tabular-nums;
441
+ text-align: right;
442
+ }
443
+
444
+ .tree-folder-header .file-actions,
445
+ .tree-file .file-actions {
446
+ margin-left: 0;
447
+ justify-self: end;
448
+ }
449
+
450
+ .tree-children {
451
+ list-style: none;
452
+ margin: 0;
453
+ padding: 0;
454
+ }
455
+
456
+ .tree-file {
457
+ display: grid;
458
+ grid-template-columns:
459
+ minmax(0, 1fr)
460
+ var(--tree-count-col-width)
461
+ var(--tree-count-col-width)
462
+ var(--tree-actions-col-width);
463
+ align-items: center;
464
+ gap: 0.65rem;
465
+ padding: 0.65rem 1rem;
466
+ border-top: 1px solid var(--border);
467
+ background: color-mix(in srgb, var(--surface) 92%, var(--bg) 8%);
468
+ cursor: pointer;
469
+ }
470
+
471
+ .tree-file:hover {
472
+ background: color-mix(in srgb, var(--accent) 8%, var(--surface));
473
+ }
474
+
475
+ .file-list li {
476
+ display: grid;
477
+ grid-template-columns: auto 1fr auto;
478
+ gap: 0.85rem;
479
+ align-items: center;
480
+ padding: 0.85rem 1rem;
481
+ border-top: 1px solid var(--border);
482
+ background: var(--surface);
483
+ }
484
+
485
+ .badges {
486
+ display: flex;
487
+ flex-direction: column;
488
+ gap: 0.35rem;
489
+ }
490
+
491
+ .file-list li:first-child {
492
+ border-top: none;
493
+ }
494
+
495
+ .badge {
496
+ display: inline-flex;
497
+ align-items: center;
498
+ gap: 0.3rem;
499
+ min-width: 2.75rem;
500
+ padding: 0.15rem 0.45rem;
501
+ border-radius: 999px;
502
+ font-size: 0.75rem;
503
+ font-weight: 700;
504
+ text-align: center;
505
+ text-transform: uppercase;
506
+ }
507
+
508
+ .badge svg {
509
+ display: block;
510
+ flex-shrink: 0;
511
+ }
512
+
513
+ .file-tree .badge {
514
+ box-sizing: border-box;
515
+ width: var(--tree-badge-width);
516
+ min-width: var(--tree-badge-width);
517
+ justify-content: center;
518
+ white-space: nowrap;
519
+ }
520
+
521
+ .badge.md {
522
+ background: color-mix(in srgb, var(--md) 18%, transparent);
523
+ color: var(--md);
524
+ }
525
+
526
+ .badge.mdx {
527
+ background: color-mix(in srgb, var(--mdx) 18%, transparent);
528
+ color: var(--mdx);
529
+ }
530
+
531
+ .badge.source.content {
532
+ background: color-mix(in srgb, #79c0ff 18%, transparent);
533
+ color: #79c0ff;
534
+ }
535
+
536
+ .badge.source.pages {
537
+ background: color-mix(in srgb, #79c0ff 18%, transparent);
538
+ color: #79c0ff;
539
+ }
540
+
541
+ .badge.source.project {
542
+ background: color-mix(in srgb, var(--muted) 18%, transparent);
543
+ color: var(--muted);
544
+ }
545
+
546
+ .badge.folder {
547
+ background: color-mix(in srgb, #79c0ff 18%, transparent);
548
+ color: #79c0ff;
549
+ }
550
+
551
+ .badge.page {
552
+ background: color-mix(in srgb, #f2cc60 18%, transparent);
553
+ color: #f2cc60;
554
+ }
555
+
556
+ .file-meta {
557
+ min-width: 0;
558
+ }
559
+
560
+ .file-name {
561
+ font-weight: 600;
562
+ }
563
+
564
+ .file-path {
565
+ margin-top: 0.15rem;
566
+ color: var(--muted);
567
+ font-size: 0.85rem;
568
+ white-space: nowrap;
569
+ overflow: hidden;
570
+ text-overflow: ellipsis;
571
+ }
572
+
573
+ .error {
574
+ margin-top: 0.85rem;
575
+ color: #ff8b8b;
576
+ font-size: 0.9rem;
577
+ }
578
+
579
+ .file-actions {
580
+ display: flex;
581
+ align-items: center;
582
+ gap: 0.25rem;
583
+ margin-left: auto;
584
+ flex-shrink: 0;
585
+ }
586
+
587
+ .tree-action-btn,
588
+ .edit-btn {
589
+ display: flex;
590
+ align-items: center;
591
+ justify-content: center;
592
+ width: 2rem;
593
+ height: 2rem;
594
+ padding: 0;
595
+ border: 1px solid transparent;
596
+ border-radius: 8px;
597
+ background: transparent;
598
+ color: var(--muted);
599
+ }
600
+
601
+ .tree-action-btn:hover:not(:disabled),
602
+ .edit-btn:hover:not(:disabled) {
603
+ border-color: var(--border);
604
+ background: color-mix(in srgb, var(--accent) 10%, var(--surface));
605
+ color: var(--accent);
606
+ }
607
+
608
+ .tree-folder-header .tree-action-btn {
609
+ cursor: pointer;
610
+ }
611
+
612
+ .tree-action-btn svg,
613
+ .edit-btn svg {
614
+ display: block;
615
+ flex-shrink: 0;
616
+ }
617
+
618
+ .tree-action-btn.move-btn:disabled,
619
+ .edit-btn.move-btn:disabled {
620
+ opacity: 0.35;
621
+ cursor: not-allowed;
622
+ }
623
+
624
+ .tree-action-btn.delete-btn:hover:not(:disabled),
625
+ .edit-btn.delete-btn:hover:not(:disabled) {
626
+ border-color: color-mix(in srgb, #ff8b8b 45%, var(--border));
627
+ background: color-mix(in srgb, #ff8b8b 12%, var(--surface));
628
+ color: #ff8b8b;
629
+ }
630
+
631
+ .edit-view {
632
+ margin-top: 0;
633
+ }
634
+
635
+ .edit-sticky-bar {
636
+ position: sticky;
637
+ top: var(--top-bar-height, 3.6rem);
638
+ z-index: 9;
639
+ margin-bottom: 0.75rem;
640
+ background: var(--bg);
641
+ }
642
+
643
+ .edit-header {
644
+ display: flex;
645
+ align-items: flex-start;
646
+ gap: 1rem;
647
+ padding: 0.75rem 0 0;
648
+ }
649
+
650
+ .edit-toolbar {
651
+ display: flex;
652
+ align-items: center;
653
+ gap: 0.5rem;
654
+ padding: 0.5rem 0;
655
+ border-bottom: 1px solid var(--border);
656
+ }
657
+
658
+ .toolbar-group {
659
+ display: flex;
660
+ align-items: center;
661
+ gap: 0.25rem;
662
+ }
663
+
664
+ .toolbar-separator {
665
+ width: 1px;
666
+ height: 1.25rem;
667
+ background: var(--border);
668
+ flex-shrink: 0;
669
+ }
670
+
671
+ .toolbar-btn {
672
+ display: inline-flex;
673
+ align-items: center;
674
+ justify-content: center;
675
+ width: 2rem;
676
+ height: 2rem;
677
+ padding: 0;
678
+ border: 1px solid transparent;
679
+ border-radius: 8px;
680
+ background: transparent;
681
+ color: var(--muted);
682
+ }
683
+
684
+ .toolbar-btn svg {
685
+ display: block;
686
+ flex-shrink: 0;
687
+ }
688
+
689
+ .toolbar-btn:hover:not(:disabled) {
690
+ border-color: var(--border);
691
+ background: color-mix(in srgb, var(--accent) 10%, var(--surface));
692
+ color: var(--accent);
693
+ }
694
+
695
+ .edit-back-btn {
696
+ display: inline-flex;
697
+ align-items: center;
698
+ gap: 0.35rem;
699
+ padding: 0.45rem 0.75rem;
700
+ font-size: 0.9rem;
701
+ flex-shrink: 0;
702
+ }
703
+
704
+ .edit-back-btn svg {
705
+ display: block;
706
+ flex-shrink: 0;
707
+ }
708
+
709
+ .edit-file-info {
710
+ min-width: 0;
711
+ flex: 1;
712
+ }
713
+
714
+ .edit-save-btn {
715
+ flex-shrink: 0;
716
+ align-self: center;
717
+ padding: 0.45rem 0.9rem;
718
+ font-size: 0.9rem;
719
+ }
720
+
721
+ .edit-save-btn.is-error {
722
+ background: color-mix(in srgb, #c0392b 18%, var(--surface));
723
+ border-color: #c0392b;
724
+ color: #c0392b;
725
+ }
726
+
727
+ .edit-file-name {
728
+ margin: 0;
729
+ font-size: 1.1rem;
730
+ font-weight: 600;
731
+ }
732
+
733
+ .edit-file-path {
734
+ margin: 0.2rem 0 0;
735
+ color: var(--muted);
736
+ font-size: 0.85rem;
737
+ white-space: nowrap;
738
+ overflow: hidden;
739
+ text-overflow: ellipsis;
740
+ }
741
+
742
+ .frontmatter-panel {
743
+ margin-bottom: 0.75rem;
744
+ border: 1px solid var(--border);
745
+ border-radius: 12px;
746
+ background: var(--surface);
747
+ overflow: hidden;
748
+ }
749
+
750
+ .frontmatter-panel-header {
751
+ display: flex;
752
+ align-items: center;
753
+ gap: 0.65rem;
754
+ padding: 0.65rem 1rem;
755
+ cursor: pointer;
756
+ list-style: none;
757
+ font-size: 0.9rem;
758
+ font-weight: 600;
759
+ color: var(--muted);
760
+ user-select: none;
761
+ }
762
+
763
+ .frontmatter-panel-header:hover {
764
+ background: color-mix(in srgb, var(--accent) 8%, var(--surface));
765
+ color: var(--text);
766
+ }
767
+
768
+ .frontmatter-panel-header::-webkit-details-marker {
769
+ display: none;
770
+ }
771
+
772
+ .frontmatter-panel-header::before {
773
+ content: "";
774
+ width: 0.45rem;
775
+ height: 0.45rem;
776
+ border-right: 2px solid var(--muted);
777
+ border-bottom: 2px solid var(--muted);
778
+ transform: rotate(-45deg);
779
+ transition: transform 0.15s ease;
780
+ flex-shrink: 0;
781
+ }
782
+
783
+ .frontmatter-panel[open] > .frontmatter-panel-header::before {
784
+ transform: rotate(45deg);
785
+ }
786
+
787
+ .frontmatter-editor {
788
+ border-top: 1px solid var(--border);
789
+ }
790
+
791
+ .frontmatter-form {
792
+ padding: 0.85rem 1rem 1rem;
793
+ }
794
+
795
+ .frontmatter-form-error {
796
+ margin-bottom: 0.75rem;
797
+ padding: 0.65rem 0.75rem;
798
+ border: 1px solid color-mix(in srgb, #ff8b8b 45%, var(--border));
799
+ border-radius: 8px;
800
+ background: color-mix(in srgb, #ff8b8b 10%, var(--surface));
801
+ color: #ffb4b4;
802
+ font-size: 0.85rem;
803
+ line-height: 1.45;
804
+ }
805
+
806
+ .frontmatter-content,
807
+ .frontmatter-key-input,
808
+ .frontmatter-value-input,
809
+ .frontmatter-type-select {
810
+ box-sizing: border-box;
811
+ width: 100%;
812
+ margin: 0;
813
+ padding: 0.55rem 0.65rem;
814
+ border: 1px solid var(--border);
815
+ border-radius: 8px;
816
+ background: var(--bg);
817
+ color: var(--text);
818
+ font: inherit;
819
+ font-size: 0.85rem;
820
+ line-height: 1.4;
821
+ outline: none;
822
+ }
823
+
824
+ .frontmatter-content {
825
+ display: block;
826
+ min-height: 8rem;
827
+ font-family: var(--font-mono);
828
+ resize: vertical;
829
+ }
830
+
831
+ .frontmatter-content:focus,
832
+ .frontmatter-key-input:focus,
833
+ .frontmatter-value-input:focus,
834
+ .frontmatter-type-select:focus {
835
+ border-color: var(--accent);
836
+ background: color-mix(in srgb, var(--accent) 4%, var(--bg));
837
+ }
838
+
839
+ .frontmatter-field,
840
+ .frontmatter-array-entry {
841
+ margin-bottom: 0.5rem;
842
+ }
843
+
844
+ .frontmatter-row,
845
+ .frontmatter-array-item {
846
+ display: grid;
847
+ grid-template-columns: minmax(7rem, 0.9fr) 6.5rem minmax(0, 1.6fr) 2rem;
848
+ gap: 0.5rem;
849
+ align-items: start;
850
+ }
851
+
852
+ .frontmatter-row--compact,
853
+ .frontmatter-array-item.frontmatter-row--compact {
854
+ grid-template-columns: minmax(7rem, 0.9fr) 6.5rem 2rem;
855
+ }
856
+
857
+ .frontmatter-array-item {
858
+ grid-template-columns: 1rem 6.5rem minmax(0, 1.6fr) 2rem;
859
+ }
860
+
861
+ .frontmatter-array-item.frontmatter-row--compact {
862
+ grid-template-columns: 1rem 6.5rem 2rem;
863
+ }
864
+
865
+ .frontmatter-children {
866
+ margin-top: 0.35rem;
867
+ margin-left: 0.75rem;
868
+ padding-left: 0.85rem;
869
+ border-left: 2px solid color-mix(in srgb, var(--accent) 25%, var(--border));
870
+ }
871
+
872
+ .frontmatter-array-marker {
873
+ display: flex;
874
+ align-items: center;
875
+ justify-content: center;
876
+ height: 2.15rem;
877
+ color: var(--muted);
878
+ font-weight: 600;
879
+ }
880
+
881
+ .frontmatter-value-host {
882
+ min-width: 0;
883
+ }
884
+
885
+ .frontmatter-scalar {
886
+ width: 100%;
887
+ }
888
+
889
+ .frontmatter-boolean-label {
890
+ display: inline-flex;
891
+ align-items: center;
892
+ gap: 0.45rem;
893
+ min-height: 2.15rem;
894
+ color: var(--muted);
895
+ font-size: 0.85rem;
896
+ }
897
+
898
+ .frontmatter-boolean-input {
899
+ width: 1rem;
900
+ height: 1rem;
901
+ margin: 0;
902
+ accent-color: var(--accent);
903
+ }
904
+
905
+ .frontmatter-nested,
906
+ .frontmatter-array {
907
+ padding-top: 0.15rem;
908
+ }
909
+
910
+ .frontmatter-empty {
911
+ margin: 0 0 0.5rem;
912
+ color: var(--muted);
913
+ font-size: 0.82rem;
914
+ font-style: italic;
915
+ }
916
+
917
+ .frontmatter-form-footer {
918
+ margin-top: 0.35rem;
919
+ }
920
+
921
+ .frontmatter-add-btn {
922
+ display: inline-flex;
923
+ align-items: center;
924
+ gap: 0.35rem;
925
+ padding: 0.45rem 0.7rem;
926
+ border: 1px dashed color-mix(in srgb, var(--accent) 35%, var(--border));
927
+ border-radius: 8px;
928
+ background: transparent;
929
+ color: var(--muted);
930
+ font-size: 0.82rem;
931
+ }
932
+
933
+ .frontmatter-add-btn:hover:not(:disabled) {
934
+ border-color: var(--accent);
935
+ color: var(--accent);
936
+ background: color-mix(in srgb, var(--accent) 8%, var(--surface));
937
+ }
938
+
939
+ .frontmatter-add-btn svg {
940
+ display: block;
941
+ flex-shrink: 0;
942
+ }
943
+
944
+ .frontmatter-remove-btn {
945
+ display: inline-flex;
946
+ align-items: center;
947
+ justify-content: center;
948
+ width: 2rem;
949
+ height: 2.15rem;
950
+ padding: 0;
951
+ border: 1px solid transparent;
952
+ border-radius: 8px;
953
+ background: transparent;
954
+ color: var(--muted);
955
+ }
956
+
957
+ .frontmatter-remove-btn:hover:not(:disabled) {
958
+ border-color: color-mix(in srgb, #ff8b8b 45%, var(--border));
959
+ background: color-mix(in srgb, #ff8b8b 12%, var(--surface));
960
+ color: #ff8b8b;
961
+ }
962
+
963
+ .frontmatter-remove-btn svg {
964
+ display: block;
965
+ flex-shrink: 0;
966
+ }
967
+
968
+ .markdown-editor {
969
+ min-height: calc(100vh - 12rem);
970
+ padding: 1.25rem;
971
+ border: 1px solid var(--border);
972
+ border-radius: 12px;
973
+ background: var(--surface);
974
+ font-family: var(--font-mono);
975
+ font-size: 1rem;
976
+ line-height: 1.6;
977
+ word-break: break-word;
978
+ outline: none;
979
+ }
980
+
981
+ .markdown-editor > p,
982
+ .markdown-editor > h1,
983
+ .markdown-editor > h2,
984
+ .markdown-editor > h3,
985
+ .markdown-editor > h4,
986
+ .markdown-editor > h5,
987
+ .markdown-editor > h6 {
988
+ margin: 0;
989
+ white-space: pre-wrap;
990
+ }
991
+
992
+ .markdown-editor > h1:not(:first-child),
993
+ .markdown-editor > h2:not(:first-child),
994
+ .markdown-editor > h3:not(:first-child),
995
+ .markdown-editor > h4:not(:first-child),
996
+ .markdown-editor > h5:not(:first-child),
997
+ .markdown-editor > h6:not(:first-child) {
998
+ margin-top: 0.65em;
999
+ }
1000
+
1001
+ .markdown-editor > h1 {
1002
+ font-size: 1.75rem;
1003
+ font-weight: 700;
1004
+ letter-spacing: -0.02em;
1005
+ }
1006
+
1007
+ .markdown-editor > h2 {
1008
+ font-size: 1.45rem;
1009
+ font-weight: 600;
1010
+ letter-spacing: -0.02em;
1011
+ }
1012
+
1013
+ .markdown-editor > h3 {
1014
+ font-size: 1.2rem;
1015
+ font-weight: 600;
1016
+ }
1017
+
1018
+ .markdown-editor > h4 {
1019
+ font-size: 1.05rem;
1020
+ font-weight: 600;
1021
+ }
1022
+
1023
+ .markdown-editor > h5 {
1024
+ font-size: 0.95rem;
1025
+ font-weight: 600;
1026
+ color: var(--muted);
1027
+ }
1028
+
1029
+ .markdown-editor > h6 {
1030
+ font-size: 0.85rem;
1031
+ font-weight: 600;
1032
+ color: var(--muted);
1033
+ text-transform: uppercase;
1034
+ letter-spacing: 0.04em;
1035
+ }
1036
+
1037
+ .markdown-editor > .is-code-block {
1038
+ color: var(--code);
1039
+ }
1040
+
1041
+ .markdown-editor > .is-blockquote {
1042
+ color: var(--blockquote);
1043
+ }
1044
+
1045
+ .markdown-editor > .is-list {
1046
+ color: var(--list);
1047
+ }
1048
+
1049
+ .markdown-editor > .is-colon-block-start,
1050
+ .markdown-editor > .is-colon-block-end {
1051
+ color: var(--colon-color);
1052
+ padding-left: 0.65rem;
1053
+ border-left: var(--colon-border-width, 3px) solid var(--colon-accent);
1054
+ background: color-mix(in srgb, var(--colon-accent) var(--colon-bg-strength, 14%), transparent);
1055
+ }
1056
+
1057
+ .markdown-editor > .is-colon-inline {
1058
+ color: var(--colon-color, var(--colon-block));
1059
+ }
1060
+
1061
+ .markdown-editor > .is-colon-inline.colon-depth-1 {
1062
+ --colon-color: color-mix(in srgb, var(--colon-block) 42%, var(--text));
1063
+ }
1064
+
1065
+ .markdown-editor > .is-colon-inline.colon-depth-2 {
1066
+ --colon-color: color-mix(in srgb, var(--colon-block) 58%, var(--text));
1067
+ }
1068
+
1069
+ .markdown-editor > .is-colon-block-start.colon-depth-3,
1070
+ .markdown-editor > .is-colon-block-end.colon-depth-3 {
1071
+ --colon-color: #79aef0;
1072
+ --colon-accent: #4d86dc;
1073
+ --colon-border-width: 3px;
1074
+ --colon-bg-strength: 12%;
1075
+ }
1076
+
1077
+ .markdown-editor > .is-colon-block-start.colon-depth-4,
1078
+ .markdown-editor > .is-colon-block-end.colon-depth-4 {
1079
+ --colon-color: #b8d8ff;
1080
+ --colon-accent: #79b4ff;
1081
+ --colon-border-width: 4px;
1082
+ --colon-bg-strength: 20%;
1083
+ }
1084
+
1085
+ .markdown-editor > .is-colon-block-start.colon-depth-5,
1086
+ .markdown-editor > .is-colon-block-end.colon-depth-5 {
1087
+ --colon-color: #d2e8ff;
1088
+ --colon-accent: #96c8ff;
1089
+ --colon-border-width: 5px;
1090
+ --colon-bg-strength: 28%;
1091
+ }
1092
+
1093
+ .markdown-editor > .is-colon-block-start.colon-depth-6,
1094
+ .markdown-editor > .is-colon-block-end.colon-depth-6 {
1095
+ --colon-color: #edf5ff;
1096
+ --colon-accent: #b8daff;
1097
+ --colon-border-width: 6px;
1098
+ --colon-bg-strength: 36%;
1099
+ }
1100
+
1101
+ .markdown-editor:focus {
1102
+ border-color: var(--accent);
1103
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
1104
+ }
1105
+
1106
+ .markdown-editor.is-empty::before {
1107
+ content: "Start writing…";
1108
+ color: var(--muted);
1109
+ pointer-events: none;
1110
+ }
1111
+
1112
+ .editor-image-preview {
1113
+ display: inline-block;
1114
+ vertical-align: middle;
1115
+ width: 0;
1116
+ height: 1em;
1117
+ margin-left: 0.35em;
1118
+ position: relative;
1119
+ cursor: zoom-in;
1120
+ }
1121
+
1122
+ .editor-image-preview::after {
1123
+ content: "";
1124
+ position: absolute;
1125
+ left: 0;
1126
+ top: 50%;
1127
+ transform: translateY(-50%);
1128
+ width: 2.5rem;
1129
+ height: 1.875rem;
1130
+ border-radius: 4px;
1131
+ border: 1px solid var(--border);
1132
+ background-color: color-mix(in srgb, var(--border) 30%, transparent);
1133
+ background-image: var(--editor-image-url);
1134
+ background-size: cover;
1135
+ background-position: center;
1136
+ box-shadow: 0 1px 4px rgb(0 0 0 / 25%);
1137
+ transition:
1138
+ transform 0.15s ease,
1139
+ box-shadow 0.15s ease;
1140
+ }
1141
+
1142
+ .editor-image-preview:hover::after,
1143
+ .editor-image-preview:focus-visible::after {
1144
+ transform: translateY(-50%) scale(1.08);
1145
+ box-shadow: 0 2px 8px rgb(0 0 0 / 35%);
1146
+ }
1147
+
1148
+ .image-lightbox {
1149
+ position: relative;
1150
+ width: min(920px, calc(100vw - 2rem));
1151
+ max-height: calc(100vh - 2rem);
1152
+ padding: 0;
1153
+ border: 1px solid var(--border);
1154
+ border-radius: 14px;
1155
+ background: var(--surface);
1156
+ color: var(--text);
1157
+ overflow: hidden;
1158
+ }
1159
+
1160
+ .image-lightbox::backdrop {
1161
+ background: rgb(0 0 0 / 72%);
1162
+ }
1163
+
1164
+ .image-lightbox-close {
1165
+ position: absolute;
1166
+ top: 0.65rem;
1167
+ right: 0.65rem;
1168
+ z-index: 1;
1169
+ border-radius: 999px;
1170
+ background: rgb(0 0 0 / 45%);
1171
+ color: #fff;
1172
+ }
1173
+
1174
+ .image-lightbox-close:hover {
1175
+ background: rgb(0 0 0 / 62%);
1176
+ }
1177
+
1178
+ .image-lightbox-figure {
1179
+ margin: 0;
1180
+ display: grid;
1181
+ gap: 0.75rem;
1182
+ padding: 1rem;
1183
+ }
1184
+
1185
+ .image-lightbox-img {
1186
+ display: block;
1187
+ width: 100%;
1188
+ max-height: calc(100vh - 8rem);
1189
+ object-fit: contain;
1190
+ border-radius: 8px;
1191
+ background: var(--bg);
1192
+ }
1193
+
1194
+ .image-lightbox-caption {
1195
+ margin: 0;
1196
+ padding: 0 0.25rem;
1197
+ color: var(--muted);
1198
+ font-size: 0.9rem;
1199
+ text-align: center;
1200
+ }
1201
+
1202
+ .image-lightbox-caption[hidden] {
1203
+ display: none;
1204
+ }
1205
+
1206
+ .link-dialog {
1207
+ width: min(420px, calc(100vw - 2rem));
1208
+ padding: 0;
1209
+ border: 1px solid var(--border);
1210
+ border-radius: 14px;
1211
+ background: var(--surface);
1212
+ color: var(--text);
1213
+ }
1214
+
1215
+ .link-dialog::backdrop {
1216
+ background: rgb(0 0 0 / 55%);
1217
+ }
1218
+
1219
+ .link-form {
1220
+ margin: 0.75rem 1.25rem 1.25rem;
1221
+ display: grid;
1222
+ gap: 0.85rem;
1223
+ }
1224
+
1225
+ .link-field label {
1226
+ display: block;
1227
+ margin-bottom: 0.4rem;
1228
+ font-size: 0.9rem;
1229
+ color: var(--muted);
1230
+ }
1231
+
1232
+ .link-form-actions {
1233
+ display: flex;
1234
+ justify-content: flex-end;
1235
+ margin-top: 0.15rem;
1236
+ }
1237
+
1238
+ .new-item-dialog {
1239
+ width: min(420px, calc(100vw - 2rem));
1240
+ padding: 0;
1241
+ border: 1px solid var(--border);
1242
+ border-radius: 14px;
1243
+ background: var(--surface);
1244
+ color: var(--text);
1245
+ }
1246
+
1247
+ .new-item-dialog::backdrop {
1248
+ background: rgb(0 0 0 / 55%);
1249
+ }
1250
+
1251
+ .new-item-form {
1252
+ margin: 0.75rem 1.25rem 1.25rem;
1253
+ display: grid;
1254
+ gap: 0.85rem;
1255
+ }
1256
+
1257
+ .new-item-field label {
1258
+ display: block;
1259
+ margin-bottom: 0.4rem;
1260
+ font-size: 0.9rem;
1261
+ color: var(--muted);
1262
+ }
1263
+
1264
+ .new-item-hint {
1265
+ margin: 0.45rem 0 0;
1266
+ font-size: 0.85rem;
1267
+ color: var(--muted);
1268
+ }
1269
+
1270
+ .new-item-error {
1271
+ margin: 0.45rem 0 0;
1272
+ font-size: 0.85rem;
1273
+ color: #ff8b8b;
1274
+ }
1275
+
1276
+ .new-item-error[hidden] {
1277
+ display: none;
1278
+ }
1279
+
1280
+ .new-item-form-actions {
1281
+ display: flex;
1282
+ justify-content: flex-end;
1283
+ margin-top: 0.15rem;
1284
+ }
1285
+
1286
+ .confirm-dialog {
1287
+ width: min(420px, calc(100vw - 2rem));
1288
+ padding: 0;
1289
+ border: 1px solid var(--border);
1290
+ border-radius: 14px;
1291
+ background: var(--surface);
1292
+ color: var(--text);
1293
+ }
1294
+
1295
+ .confirm-dialog::backdrop {
1296
+ background: rgb(0 0 0 / 55%);
1297
+ }
1298
+
1299
+ .confirm-dialog-body {
1300
+ margin: 0.75rem 1.25rem 1.25rem;
1301
+ display: grid;
1302
+ gap: 0.85rem;
1303
+ }
1304
+
1305
+ .confirm-delete-message {
1306
+ margin: 0;
1307
+ line-height: 1.5;
1308
+ }
1309
+
1310
+ .confirm-delete-error {
1311
+ margin: 0;
1312
+ font-size: 0.85rem;
1313
+ color: #ff8b8b;
1314
+ }
1315
+
1316
+ .confirm-delete-error[hidden] {
1317
+ display: none;
1318
+ }
1319
+
1320
+ .confirm-dialog-actions {
1321
+ display: flex;
1322
+ justify-content: flex-end;
1323
+ gap: 0.5rem;
1324
+ margin-top: 0.15rem;
1325
+ }
1326
+
1327
+ button.destructive {
1328
+ background: #c93c3c;
1329
+ border-color: #c93c3c;
1330
+ color: #fff;
1331
+ font-weight: 600;
1332
+ }
1333
+
1334
+ button.destructive:hover:not(:disabled) {
1335
+ background: #e05252;
1336
+ border-color: #e05252;
1337
+ }
1338
+
1339
+ .media-dialog {
1340
+ width: min(960px, calc(100vw - 2rem));
1341
+ max-height: calc(100vh - 2rem);
1342
+ padding: 0;
1343
+ border: 1px solid var(--border);
1344
+ border-radius: 14px;
1345
+ background: var(--surface);
1346
+ color: var(--text);
1347
+ overflow: auto;
1348
+ }
1349
+
1350
+ .media-dialog::backdrop {
1351
+ background: rgb(0 0 0 / 55%);
1352
+ }
1353
+
1354
+ .media-browser {
1355
+ margin: 0.75rem 1.25rem 1.25rem;
1356
+ }
1357
+
1358
+ .image-form {
1359
+ margin: 0.75rem 1.25rem 1.25rem;
1360
+ display: grid;
1361
+ gap: 0.85rem;
1362
+ }
1363
+
1364
+ .image-selected-name {
1365
+ margin: 0;
1366
+ font-size: 0.9rem;
1367
+ color: var(--muted);
1368
+ word-break: break-all;
1369
+ }
1370
+
1371
+ .image-checkbox-field {
1372
+ display: inline-flex;
1373
+ align-items: center;
1374
+ gap: 0.5rem;
1375
+ font-size: 0.95rem;
1376
+ color: var(--text);
1377
+ cursor: pointer;
1378
+ }
1379
+
1380
+ .image-checkbox-field input {
1381
+ width: 1rem;
1382
+ height: 1rem;
1383
+ margin: 0;
1384
+ accent-color: var(--accent);
1385
+ }
1386
+
1387
+ .image-form-actions {
1388
+ justify-content: space-between;
1389
+ }
1390
+
1391
+ .media-toolbar {
1392
+ display: flex;
1393
+ align-items: center;
1394
+ gap: 0.75rem;
1395
+ margin-bottom: 0.85rem;
1396
+ }
1397
+
1398
+ .media-search {
1399
+ margin-bottom: 0.85rem;
1400
+ }
1401
+
1402
+ .media-search-input {
1403
+ padding: 0.55rem 0.75rem;
1404
+ font-size: 0.9rem;
1405
+ }
1406
+
1407
+ .media-up-btn {
1408
+ display: inline-flex;
1409
+ align-items: center;
1410
+ gap: 0.35rem;
1411
+ padding: 0.45rem 0.75rem;
1412
+ font-size: 0.9rem;
1413
+ flex-shrink: 0;
1414
+ }
1415
+
1416
+ .media-breadcrumb {
1417
+ display: flex;
1418
+ flex-wrap: wrap;
1419
+ align-items: center;
1420
+ gap: 0.25rem;
1421
+ min-width: 0;
1422
+ font-size: 0.9rem;
1423
+ color: var(--muted);
1424
+ }
1425
+
1426
+ .media-breadcrumb button {
1427
+ padding: 0.2rem 0.35rem;
1428
+ border: none;
1429
+ background: transparent;
1430
+ color: var(--accent);
1431
+ font: inherit;
1432
+ font-size: 0.9rem;
1433
+ }
1434
+
1435
+ .media-breadcrumb button:hover:not(:disabled) {
1436
+ text-decoration: underline;
1437
+ }
1438
+
1439
+ .media-breadcrumb-separator {
1440
+ color: var(--muted);
1441
+ }
1442
+
1443
+ .media-status {
1444
+ margin: 0 0 0.85rem;
1445
+ font-size: 0.9rem;
1446
+ color: var(--muted);
1447
+ }
1448
+
1449
+ .media-status.is-error {
1450
+ color: #ff8f8f;
1451
+ }
1452
+
1453
+ .media-up-btn svg {
1454
+ display: block;
1455
+ }
1456
+
1457
+ .media-grid {
1458
+ display: grid;
1459
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
1460
+ gap: 0.75rem;
1461
+ min-height: min(480px, 55vh);
1462
+ align-content: start;
1463
+ align-items: start;
1464
+ }
1465
+
1466
+ .media-item-btn {
1467
+ display: flex;
1468
+ flex-direction: column;
1469
+ gap: 0.45rem;
1470
+ min-width: 0;
1471
+ padding: 0.45rem;
1472
+ border: 1px solid var(--border);
1473
+ border-radius: 10px;
1474
+ background: color-mix(in srgb, var(--bg) 92%, white 8%);
1475
+ color: var(--text);
1476
+ text-align: center;
1477
+ font: inherit;
1478
+ }
1479
+
1480
+ .media-item-btn:hover:not(:disabled) {
1481
+ border-color: var(--accent);
1482
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
1483
+ }
1484
+
1485
+ .media-item-preview {
1486
+ aspect-ratio: 1 / 1;
1487
+ width: 100%;
1488
+ border-radius: 6px;
1489
+ background: var(--bg);
1490
+ }
1491
+
1492
+ .media-folder-preview {
1493
+ display: flex;
1494
+ align-items: center;
1495
+ justify-content: center;
1496
+ color: var(--accent);
1497
+ }
1498
+
1499
+ .media-folder-preview svg {
1500
+ display: block;
1501
+ width: 2.75rem;
1502
+ height: 2.75rem;
1503
+ }
1504
+
1505
+ .media-image-preview {
1506
+ object-fit: cover;
1507
+ }
1508
+
1509
+ .media-add-btn {
1510
+ cursor: pointer;
1511
+ border-style: dashed;
1512
+ color: var(--muted);
1513
+ }
1514
+
1515
+ .media-upload-input {
1516
+ position: absolute;
1517
+ width: 1px;
1518
+ height: 1px;
1519
+ padding: 0;
1520
+ margin: -1px;
1521
+ overflow: hidden;
1522
+ clip: rect(0, 0, 0, 0);
1523
+ white-space: nowrap;
1524
+ border: 0;
1525
+ }
1526
+
1527
+ .media-add-preview {
1528
+ display: flex;
1529
+ align-items: center;
1530
+ justify-content: center;
1531
+ color: inherit;
1532
+ }
1533
+
1534
+ .media-add-preview svg {
1535
+ display: block;
1536
+ width: 2.75rem;
1537
+ height: 2.75rem;
1538
+ }
1539
+
1540
+ .media-add-btn:hover:not(:has(.media-upload-input:disabled)) {
1541
+ border-color: var(--accent);
1542
+ color: var(--accent);
1543
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
1544
+ }
1545
+
1546
+ .media-add-btn:has(.media-upload-input:disabled) {
1547
+ opacity: 0.6;
1548
+ cursor: wait;
1549
+ }
1550
+
1551
+ .media-item-name {
1552
+ font-size: 0.78rem;
1553
+ color: var(--muted);
1554
+ text-align: center;
1555
+ white-space: nowrap;
1556
+ overflow: hidden;
1557
+ text-overflow: ellipsis;
1558
+ }
1559
+
1560
+ @media (max-width: 640px) {
1561
+ .picker-row {
1562
+ grid-template-columns: 1fr;
1563
+ }
1564
+ }