@sullux/markdown-docs 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/theme.css ADDED
@@ -0,0 +1,719 @@
1
+ :root {
2
+ --bg-page: var(--theme-light-bg, #ffffff);
3
+ --text-primary: #0f172a;
4
+ --text-muted: #64748b;
5
+ --border-color: #e2e8f0;
6
+ --accent-color: var(--theme-light-accent, #2563eb);
7
+ --accent-hover: #1d4ed8;
8
+ --code-bg: var(--theme-light-code-bg, #f8fafc);
9
+ --code-text: var(--theme-light-code-text, #0f172a);
10
+ --code-inline-bg: #f1f5f9;
11
+ --code-inline-color: #0f172a;
12
+ --callout-bg: #eff6ff;
13
+ --hl-kw: #cf222e;
14
+ --hl-str: #0a3069;
15
+ --hl-num: #0550ae;
16
+ --hl-cmt: #6e7781;
17
+ --hl-id: #8250df;
18
+ --hl-punc: #24292f;
19
+ }
20
+
21
+ @media (prefers-color-scheme: dark) {
22
+ :root:not([data-theme="light"]) {
23
+ --bg-page: var(--theme-dark-bg, #121316);
24
+ --text-primary: #f3f4f6;
25
+ --text-muted: #a1a1aa;
26
+ --border-color: #22242a;
27
+ --accent-color: var(--theme-dark-accent, #3b82f6);
28
+ --accent-hover: #60a5fa;
29
+ --code-bg: var(--theme-dark-code-bg, #0a0b0e);
30
+ --code-text: var(--theme-dark-code-text, #f3f4f6);
31
+ --code-inline-bg: #1e2028;
32
+ --code-inline-color: #f3f4f6;
33
+ --callout-bg: #1e3a8a;
34
+ --hl-kw: #ff7b72;
35
+ --hl-str: #a5d6ff;
36
+ --hl-num: #79c0ff;
37
+ --hl-cmt: #8b949e;
38
+ --hl-id: #d2a8ff;
39
+ --hl-punc: #c9d1d9;
40
+ }
41
+ }
42
+
43
+ [data-theme="dark"] {
44
+ --bg-page: var(--theme-dark-bg, #121316);
45
+ --text-primary: #f3f4f6;
46
+ --text-muted: #a1a1aa;
47
+ --border-color: #22242a;
48
+ --accent-color: var(--theme-dark-accent, #3b82f6);
49
+ --accent-hover: #60a5fa;
50
+ --code-bg: var(--theme-dark-code-bg, #0a0b0e);
51
+ --code-text: var(--theme-dark-code-text, #f3f4f6);
52
+ --code-inline-bg: #1e2028;
53
+ --code-inline-color: #f3f4f6;
54
+ --callout-bg: #1e3a8a;
55
+ --hl-kw: #ff7b72;
56
+ --hl-str: #a5d6ff;
57
+ --hl-num: #79c0ff;
58
+ --hl-cmt: #8b949e;
59
+ --hl-id: #d2a8ff;
60
+ --hl-punc: #c9d1d9;
61
+ }
62
+
63
+ [data-theme="light"] {
64
+ --bg-page: var(--theme-light-bg, #ffffff);
65
+ --text-primary: #0f172a;
66
+ --text-muted: #64748b;
67
+ --border-color: #e2e8f0;
68
+ --accent-color: var(--theme-light-accent, #2563eb);
69
+ --accent-hover: #1d4ed8;
70
+ --code-bg: var(--theme-light-code-bg, #f8fafc);
71
+ --code-text: var(--theme-light-code-text, #0f172a);
72
+ --code-inline-bg: #f1f5f9;
73
+ --code-inline-color: #0f172a;
74
+ --callout-bg: #eff6ff;
75
+ --hl-kw: #cf222e;
76
+ --hl-str: #0a3069;
77
+ --hl-num: #0550ae;
78
+ --hl-cmt: #6e7781;
79
+ --hl-id: #8250df;
80
+ --hl-punc: #24292f;
81
+ }
82
+
83
+ * {
84
+ box-sizing: border-box;
85
+ margin: 0;
86
+ padding: 0;
87
+ scrollbar-width: thin;
88
+ scrollbar-color: var(--border-color) transparent;
89
+ }
90
+
91
+ ::-webkit-scrollbar {
92
+ width: 5px;
93
+ height: 5px;
94
+ }
95
+
96
+ ::-webkit-scrollbar-track {
97
+ background: transparent;
98
+ }
99
+
100
+ ::-webkit-scrollbar-thumb {
101
+ background: var(--border-color);
102
+ border-radius: 3px;
103
+ }
104
+
105
+ ::-webkit-scrollbar-thumb:hover {
106
+ background: var(--text-muted);
107
+ }
108
+
109
+ body {
110
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
111
+ color: var(--text-primary);
112
+ background: var(--bg-page);
113
+ line-height: 1.7;
114
+ min-height: 100vh;
115
+ }
116
+
117
+ .top-header {
118
+ height: 60px;
119
+ border-bottom: 1px solid var(--border-color);
120
+ background: var(--bg-page);
121
+ display: grid;
122
+ grid-template-columns: 270px 1fr auto;
123
+ align-items: center;
124
+ padding: 0 1.5rem;
125
+ position: sticky;
126
+ top: 0;
127
+ z-index: 100;
128
+ max-width: 1480px;
129
+ margin: 0 auto;
130
+ width: 100%;
131
+ gap: 1rem;
132
+ }
133
+
134
+ .header-left {
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 0.75rem;
138
+ }
139
+
140
+ .header-brand {
141
+ font-size: 1.1rem;
142
+ font-weight: 700;
143
+ color: var(--text-primary);
144
+ text-decoration: none;
145
+ display: flex;
146
+ align-items: center;
147
+ gap: 0.6rem;
148
+ white-space: nowrap;
149
+ }
150
+
151
+ .brand-logo {
152
+ height: 38px;
153
+ width: auto;
154
+ max-width: 220px;
155
+ object-fit: contain;
156
+ display: inline-block;
157
+ }
158
+
159
+ .logo-light {
160
+ display: inline-block;
161
+ }
162
+
163
+ .logo-dark {
164
+ display: none;
165
+ }
166
+
167
+ @media (prefers-color-scheme: dark) {
168
+ :root:not([data-theme="light"]) .logo-light {
169
+ display: none !important;
170
+ }
171
+ :root:not([data-theme="light"]) .logo-dark {
172
+ display: inline-block !important;
173
+ }
174
+ }
175
+
176
+ [data-theme="dark"] .logo-light {
177
+ display: none !important;
178
+ }
179
+
180
+ [data-theme="dark"] .logo-dark {
181
+ display: inline-block !important;
182
+ }
183
+
184
+ [data-theme="light"] .logo-light {
185
+ display: inline-block !important;
186
+ }
187
+
188
+ [data-theme="light"] .logo-dark {
189
+ display: none !important;
190
+ }
191
+
192
+ .header-center {
193
+ display: flex;
194
+ justify-content: center;
195
+ width: 100%;
196
+ }
197
+
198
+ .header-right {
199
+ display: flex;
200
+ justify-content: flex-end;
201
+ align-items: center;
202
+ gap: 0.75rem;
203
+ }
204
+
205
+ .header-links {
206
+ display: flex;
207
+ align-items: center;
208
+ gap: 0.85rem;
209
+ }
210
+
211
+ .header-link {
212
+ font-size: 0.88rem;
213
+ font-weight: 500;
214
+ color: var(--text-muted);
215
+ text-decoration: none;
216
+ transition: color 0.15s ease;
217
+ white-space: nowrap;
218
+ }
219
+
220
+ .header-link:hover {
221
+ color: var(--text-primary);
222
+ }
223
+
224
+ .header-btn {
225
+ background: none;
226
+ border: 1px solid var(--border-color);
227
+ padding: 0.4rem;
228
+ border-radius: 6px;
229
+ color: var(--text-primary);
230
+ cursor: pointer;
231
+ display: flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ transition: all 0.15s ease;
235
+ }
236
+
237
+ .header-btn:hover {
238
+ border-color: var(--text-muted);
239
+ }
240
+
241
+ .hamburger-btn,
242
+ .page-index-btn {
243
+ display: none;
244
+ }
245
+
246
+ .search-box {
247
+ position: relative;
248
+ width: 100%;
249
+ max-width: 500px;
250
+ }
251
+
252
+ .search-input {
253
+ width: 100%;
254
+ padding: 0.45rem 0.85rem;
255
+ border: 1px solid var(--border-color);
256
+ border-radius: 8px;
257
+ background: var(--bg-page);
258
+ color: var(--text-primary);
259
+ font-size: 0.88rem;
260
+ outline: none;
261
+ }
262
+
263
+ .search-input:focus {
264
+ border-color: var(--accent-color);
265
+ }
266
+
267
+ .search-results {
268
+ position: absolute;
269
+ top: 100%;
270
+ left: 0;
271
+ right: 0;
272
+ background: var(--bg-page);
273
+ border: 1px solid var(--border-color);
274
+ border-radius: 8px;
275
+ max-height: 280px;
276
+ overflow-y: auto;
277
+ z-index: 200;
278
+ margin-top: 0.4rem;
279
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
280
+ display: none;
281
+ }
282
+
283
+ .search-item {
284
+ padding: 0.6rem 0.8rem;
285
+ text-decoration: none;
286
+ color: var(--text-primary);
287
+ display: block;
288
+ border-bottom: 1px solid var(--border-color);
289
+ font-size: 0.88rem;
290
+ }
291
+
292
+ .search-item:hover {
293
+ color: var(--accent-color);
294
+ }
295
+
296
+ .app-container {
297
+ display: flex;
298
+ max-width: 1480px;
299
+ margin: 0 auto;
300
+ min-height: calc(100vh - 60px);
301
+ }
302
+
303
+ .app-sidebar {
304
+ width: 270px;
305
+ shrink: 0;
306
+ border-right: 1px solid var(--border-color);
307
+ padding: 1.5rem 1rem;
308
+ position: sticky;
309
+ top: 60px;
310
+ height: calc(100vh - 60px);
311
+ overflow-y: auto;
312
+ overflow-x: hidden;
313
+ background: var(--bg-page);
314
+ }
315
+
316
+ .nav-section-title {
317
+ font-size: 0.72rem;
318
+ font-weight: 700;
319
+ text-transform: uppercase;
320
+ letter-spacing: 0.06em;
321
+ color: var(--text-muted);
322
+ margin-top: 1.25rem;
323
+ margin-bottom: 0.4rem;
324
+ padding-left: 0.5rem;
325
+ }
326
+
327
+ .nav-list {
328
+ list-style: none;
329
+ }
330
+
331
+ .nav-item {
332
+ margin-bottom: 0.2rem;
333
+ }
334
+
335
+ .nav-link {
336
+ display: block;
337
+ padding: 0.4rem 0.65rem;
338
+ color: var(--text-muted);
339
+ text-decoration: none;
340
+ font-size: 0.9rem;
341
+ font-weight: 500;
342
+ border-left: 2px solid transparent;
343
+ transition: all 0.15s ease;
344
+ overflow-wrap: break-word;
345
+ word-break: break-word;
346
+ white-space: normal;
347
+ line-height: 1.35;
348
+ }
349
+
350
+ .nav-link:hover {
351
+ color: var(--text-primary);
352
+ }
353
+
354
+ .nav-link.active {
355
+ color: var(--accent-color);
356
+ font-weight: 600;
357
+ border-left-color: var(--accent-color);
358
+ }
359
+
360
+ .nav-sub {
361
+ list-style: none;
362
+ padding-left: 0.75rem;
363
+ margin-top: 0.2rem;
364
+ border-left: 1px solid var(--border-color);
365
+ margin-left: 0.5rem;
366
+ }
367
+
368
+ .app-main {
369
+ flex: 1;
370
+ min-width: 0;
371
+ max-width: 840px;
372
+ padding: 2.5rem 3.5rem;
373
+ margin: 0 auto;
374
+ }
375
+
376
+ h1, h2, h3, h4, h5, h6 {
377
+ scroll-margin-top: 80px;
378
+ font-weight: 600;
379
+ margin-top: 1.5rem;
380
+ margin-bottom: 0.5rem;
381
+ color: var(--text-primary);
382
+ }
383
+
384
+ h1 {
385
+ font-size: 2.25rem;
386
+ font-weight: 800;
387
+ margin-bottom: 1.5rem;
388
+ line-height: 1.25;
389
+ letter-spacing: -0.03em;
390
+ margin-top: 0;
391
+ }
392
+
393
+ h2 {
394
+ font-size: 1.5rem;
395
+ font-weight: 700;
396
+ margin-top: 2.25rem;
397
+ margin-bottom: 1rem;
398
+ line-height: 1.3;
399
+ }
400
+
401
+ h3 {
402
+ font-size: 1.2rem;
403
+ font-weight: 600;
404
+ margin-top: 1.75rem;
405
+ margin-bottom: 0.75rem;
406
+ line-height: 1.4;
407
+ }
408
+
409
+ p {
410
+ margin-bottom: 1.25rem;
411
+ font-size: 1rem;
412
+ color: var(--text-primary);
413
+ line-height: 1.7;
414
+ }
415
+
416
+ a {
417
+ color: var(--accent-color);
418
+ text-decoration: none;
419
+ font-weight: 500;
420
+ }
421
+
422
+ a:hover {
423
+ text-decoration: underline;
424
+ color: var(--accent-hover);
425
+ }
426
+
427
+ ul, ol {
428
+ margin-bottom: 1.25rem;
429
+ padding-left: 1.75rem;
430
+ }
431
+
432
+ li {
433
+ margin-bottom: 0.4rem;
434
+ line-height: 1.6;
435
+ }
436
+
437
+ code {
438
+ background: var(--code-inline-bg);
439
+ color: var(--code-inline-color);
440
+ padding: 0.2rem 0.4rem;
441
+ border-radius: 5px;
442
+ font-size: 0.88em;
443
+ font-family: ui-monospace, monospace;
444
+ }
445
+
446
+ pre {
447
+ background: var(--code-bg);
448
+ color: var(--code-text);
449
+ padding: 1.25rem;
450
+ border-radius: 8px;
451
+ overflow-x: auto;
452
+ margin: 1.5rem 0;
453
+ font-family: ui-monospace, monospace;
454
+ font-size: 0.9rem;
455
+ line-height: 1.6;
456
+ border: 1px solid var(--border-color);
457
+ }
458
+
459
+ pre code {
460
+ background: none;
461
+ color: inherit;
462
+ padding: 0;
463
+ border: none;
464
+ font-size: inherit;
465
+ }
466
+
467
+ table {
468
+ width: 100%;
469
+ border-collapse: separate;
470
+ border-spacing: 0;
471
+ margin: 1.5rem 0;
472
+ border-radius: 8px;
473
+ border: 1px solid var(--border-color);
474
+ overflow: hidden;
475
+ }
476
+
477
+ th, td {
478
+ padding: 0.75rem 1rem;
479
+ text-align: left;
480
+ border-bottom: 1px solid var(--border-color);
481
+ font-size: 0.95rem;
482
+ }
483
+
484
+ th {
485
+ background: var(--bg-page);
486
+ font-weight: 600;
487
+ font-size: 0.85rem;
488
+ text-transform: uppercase;
489
+ letter-spacing: 0.05em;
490
+ color: var(--text-muted);
491
+ }
492
+
493
+ .callout {
494
+ border-left: 4px solid var(--accent-color);
495
+ background: var(--callout-bg);
496
+ padding: 1.25rem;
497
+ margin: 1.5rem 0;
498
+ border-radius: 0 8px 8px 0;
499
+ }
500
+
501
+ .callout-title {
502
+ font-weight: 700;
503
+ margin-bottom: 0.5rem;
504
+ text-transform: uppercase;
505
+ font-size: 0.8rem;
506
+ letter-spacing: 0.05em;
507
+ color: var(--accent-color);
508
+ }
509
+
510
+ .app-toc {
511
+ width: 250px;
512
+ shrink: 0;
513
+ padding: 1.5rem 1rem;
514
+ position: sticky;
515
+ top: 60px;
516
+ height: calc(100vh - 60px);
517
+ overflow-y: auto;
518
+ overflow-x: hidden;
519
+ display: flex;
520
+ flex-direction: column;
521
+ background: var(--bg-page);
522
+ }
523
+
524
+ .toc-title {
525
+ font-size: 0.72rem;
526
+ font-weight: 700;
527
+ text-transform: uppercase;
528
+ letter-spacing: 0.06em;
529
+ color: var(--text-muted);
530
+ margin-bottom: 0.75rem;
531
+ }
532
+
533
+ .toc-list {
534
+ list-style: none;
535
+ margin-bottom: 2rem;
536
+ border-left: 1px solid var(--border-color);
537
+ }
538
+
539
+ .toc-item {
540
+ margin-bottom: 0.25rem;
541
+ }
542
+
543
+ .toc-item.level-3 {
544
+ padding-left: 0.75rem;
545
+ }
546
+
547
+ .toc-link {
548
+ display: block;
549
+ padding: 0.2rem 0.75rem;
550
+ color: var(--text-muted);
551
+ font-size: 0.85rem;
552
+ text-decoration: none;
553
+ border-left: 2px solid transparent;
554
+ margin-left: -1px;
555
+ transition: all 0.15s ease;
556
+ overflow-wrap: break-word;
557
+ word-break: break-word;
558
+ white-space: normal;
559
+ line-height: 1.35;
560
+ }
561
+
562
+ .toc-link:hover {
563
+ color: var(--text-primary);
564
+ border-left-color: var(--text-muted);
565
+ }
566
+
567
+ .theme-picker {
568
+ margin-top: auto;
569
+ padding-top: 1rem;
570
+ border-top: 1px solid var(--border-color);
571
+ display: flex;
572
+ gap: 0.25rem;
573
+ background: var(--bg-page);
574
+ border-radius: 8px;
575
+ padding: 0.25rem;
576
+ border: 1px solid var(--border-color);
577
+ }
578
+
579
+ .theme-opt {
580
+ flex: 1;
581
+ background: none;
582
+ border: none;
583
+ padding: 0.4rem;
584
+ border-radius: 6px;
585
+ color: var(--text-muted);
586
+ cursor: pointer;
587
+ display: flex;
588
+ align-items: center;
589
+ justify-content: center;
590
+ transition: all 0.15s ease;
591
+ }
592
+
593
+ .theme-opt:hover {
594
+ color: var(--text-primary);
595
+ }
596
+
597
+ .theme-opt.active {
598
+ background: var(--border-color);
599
+ color: var(--accent-color);
600
+ }
601
+
602
+ .drawer-header {
603
+ display: none;
604
+ align-items: center;
605
+ justify-content: space-between;
606
+ margin-bottom: 1.25rem;
607
+ padding-bottom: 0.75rem;
608
+ border-bottom: 1px solid var(--border-color);
609
+ }
610
+
611
+ .drawer-title {
612
+ font-weight: 700;
613
+ font-size: 0.95rem;
614
+ }
615
+
616
+ .drawer-close {
617
+ background: none;
618
+ border: none;
619
+ color: var(--text-muted);
620
+ cursor: pointer;
621
+ display: flex;
622
+ align-items: center;
623
+ justify-content: center;
624
+ }
625
+
626
+ .drawer-backdrop {
627
+ position: fixed;
628
+ inset: 0;
629
+ background: rgba(0, 0, 0, 0.5);
630
+ z-index: 250;
631
+ opacity: 0;
632
+ pointer-events: none;
633
+ transition: opacity 0.25s ease;
634
+ }
635
+
636
+ .drawer-backdrop.open {
637
+ opacity: 1;
638
+ pointer-events: auto;
639
+ }
640
+
641
+ .hl-kw {
642
+ color: var(--hl-kw);
643
+ font-weight: bold;
644
+ }
645
+
646
+ .hl-str {
647
+ color: var(--hl-str);
648
+ }
649
+
650
+ .hl-num {
651
+ color: var(--hl-num);
652
+ }
653
+
654
+ .hl-cmt {
655
+ color: var(--hl-cmt);
656
+ font-style: italic;
657
+ }
658
+
659
+ .hl-id {
660
+ color: var(--hl-id);
661
+ }
662
+
663
+ .hl-punc {
664
+ color: var(--hl-punc);
665
+ }
666
+
667
+ @media (max-width: 1100px) {
668
+ .top-header {
669
+ grid-template-columns: auto 1fr auto;
670
+ gap: 1rem;
671
+ }
672
+ .header-links {
673
+ display: none;
674
+ }
675
+ .page-index-btn {
676
+ display: flex;
677
+ }
678
+ .app-toc {
679
+ position: fixed;
680
+ top: 0;
681
+ right: 0;
682
+ height: 100vh;
683
+ z-index: 300;
684
+ box-shadow: -10px 0 30px rgba(0, 0, 0, 0.2);
685
+ transform: translateX(100%);
686
+ transition: transform 0.25s ease;
687
+ }
688
+ .app-toc.open {
689
+ transform: translateX(0);
690
+ }
691
+ .app-toc .drawer-header {
692
+ display: flex;
693
+ }
694
+ }
695
+
696
+ @media (max-width: 768px) {
697
+ .hamburger-btn {
698
+ display: flex;
699
+ }
700
+ .app-sidebar {
701
+ position: fixed;
702
+ top: 0;
703
+ left: 0;
704
+ height: 100vh;
705
+ z-index: 300;
706
+ box-shadow: 10px 0 30px rgba(0, 0, 0, 0.2);
707
+ transform: translateX(-100%);
708
+ transition: transform 0.25s ease;
709
+ }
710
+ .app-sidebar.open {
711
+ transform: translateX(0);
712
+ }
713
+ .app-sidebar .drawer-header {
714
+ display: flex;
715
+ }
716
+ .app-main {
717
+ padding: 1.5rem 1rem;
718
+ }
719
+ }