markopress 0.0.7 → 0.0.9

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 (135) hide show
  1. package/dist/build/index.d.ts +1 -0
  2. package/dist/build/index.js +1 -1
  3. package/dist/cli/index.js +1 -1
  4. package/dist/config/loader.js +1 -1
  5. package/dist/config/types.d.ts +15 -3
  6. package/dist/config/validation.d.ts +47 -15
  7. package/dist/config/validation.js +1 -1
  8. package/dist/dev/index.js +1 -1
  9. package/dist/markdown/tag-validator.js +1 -1
  10. package/dist/preview/index.js +1 -1
  11. package/package.json +1 -1
  12. package/src/theme/default/layouts/default.marko +4 -2
  13. package/src/theme/default/styles.css +22 -0
  14. package/templates/catch-all-handler.js.template +30 -13
  15. package/templates/layout.marko.template +1 -1
  16. package/dist/build/index.d.ts.map +0 -1
  17. package/dist/build/index.js.map +0 -1
  18. package/dist/build/security.test.d.ts +0 -6
  19. package/dist/build/security.test.d.ts.map +0 -1
  20. package/dist/build/security.test.js +0 -1
  21. package/dist/build/security.test.js.map +0 -1
  22. package/dist/build/types.d.ts.map +0 -1
  23. package/dist/build/types.js.map +0 -1
  24. package/dist/build/vite-config.test.d.ts +0 -2
  25. package/dist/build/vite-config.test.d.ts.map +0 -1
  26. package/dist/build/vite-config.test.js +0 -1
  27. package/dist/build/vite-config.test.js.map +0 -1
  28. package/dist/build/vite-markdown-plugin.d.ts.map +0 -1
  29. package/dist/build/vite-markdown-plugin.js.map +0 -1
  30. package/dist/build/vite-markdown-plugin.test.d.ts +0 -2
  31. package/dist/build/vite-markdown-plugin.test.d.ts.map +0 -1
  32. package/dist/build/vite-markdown-plugin.test.js +0 -1
  33. package/dist/build/vite-markdown-plugin.test.js.map +0 -1
  34. package/dist/cli/index.d.ts.map +0 -1
  35. package/dist/cli/index.js.map +0 -1
  36. package/dist/config/app-root.d.ts.map +0 -1
  37. package/dist/config/app-root.js.map +0 -1
  38. package/dist/config/app-root.test.d.ts +0 -2
  39. package/dist/config/app-root.test.d.ts.map +0 -1
  40. package/dist/config/app-root.test.js +0 -1
  41. package/dist/config/app-root.test.js.map +0 -1
  42. package/dist/config/index.d.ts.map +0 -1
  43. package/dist/config/index.js.map +0 -1
  44. package/dist/config/loader.d.ts.map +0 -1
  45. package/dist/config/loader.js.map +0 -1
  46. package/dist/config/loader.test.d.ts +0 -2
  47. package/dist/config/loader.test.d.ts.map +0 -1
  48. package/dist/config/loader.test.js +0 -1
  49. package/dist/config/loader.test.js.map +0 -1
  50. package/dist/config/types.d.ts.map +0 -1
  51. package/dist/config/types.js.map +0 -1
  52. package/dist/config/validation.d.ts.map +0 -1
  53. package/dist/config/validation.js.map +0 -1
  54. package/dist/content/index.d.ts.map +0 -1
  55. package/dist/content/index.js.map +0 -1
  56. package/dist/content/registry.d.ts.map +0 -1
  57. package/dist/content/registry.js.map +0 -1
  58. package/dist/content/types.d.ts.map +0 -1
  59. package/dist/content/types.js.map +0 -1
  60. package/dist/dev/index.d.ts.map +0 -1
  61. package/dist/dev/index.js.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/index.js.map +0 -1
  64. package/dist/markdown/code.d.ts.map +0 -1
  65. package/dist/markdown/code.js.map +0 -1
  66. package/dist/markdown/containers.d.ts.map +0 -1
  67. package/dist/markdown/containers.js.map +0 -1
  68. package/dist/markdown/includes.d.ts.map +0 -1
  69. package/dist/markdown/includes.js.map +0 -1
  70. package/dist/markdown/index.d.ts.map +0 -1
  71. package/dist/markdown/index.js.map +0 -1
  72. package/dist/markdown/loader.d.ts.map +0 -1
  73. package/dist/markdown/loader.js.map +0 -1
  74. package/dist/markdown/preserve-tags.d.ts.map +0 -1
  75. package/dist/markdown/preserve-tags.js.map +0 -1
  76. package/dist/markdown/renderer.d.ts.map +0 -1
  77. package/dist/markdown/renderer.js.map +0 -1
  78. package/dist/markdown/tag-validator.d.ts.map +0 -1
  79. package/dist/markdown/tag-validator.js.map +0 -1
  80. package/dist/markdown/types.d.ts.map +0 -1
  81. package/dist/markdown/types.js.map +0 -1
  82. package/dist/plugin/compat.d.ts.map +0 -1
  83. package/dist/plugin/compat.js.map +0 -1
  84. package/dist/plugin/context.d.ts.map +0 -1
  85. package/dist/plugin/context.js.map +0 -1
  86. package/dist/plugin/index.d.ts.map +0 -1
  87. package/dist/plugin/index.js.map +0 -1
  88. package/dist/plugin/manager.d.ts.map +0 -1
  89. package/dist/plugin/manager.js.map +0 -1
  90. package/dist/plugin/types.d.ts.map +0 -1
  91. package/dist/plugin/types.js.map +0 -1
  92. package/dist/plugins/blog-index/index.d.ts.map +0 -1
  93. package/dist/plugins/blog-index/index.js.map +0 -1
  94. package/dist/plugins/sidenav/index.d.ts.map +0 -1
  95. package/dist/plugins/sidenav/index.js.map +0 -1
  96. package/dist/plugins/toc/index.d.ts.map +0 -1
  97. package/dist/plugins/toc/index.js.map +0 -1
  98. package/dist/preview/index.d.ts.map +0 -1
  99. package/dist/preview/index.js.map +0 -1
  100. package/dist/theme/default/build/generate-all.d.ts +0 -9
  101. package/dist/theme/default/build/generate-all.d.ts.map +0 -1
  102. package/dist/theme/default/build/generate-all.js +0 -1
  103. package/dist/theme/default/build/generate-all.js.map +0 -1
  104. package/dist/theme/default/build/generate-css.d.ts +0 -19
  105. package/dist/theme/default/build/generate-css.d.ts.map +0 -1
  106. package/dist/theme/default/build/generate-css.js +0 -1
  107. package/dist/theme/default/build/generate-css.js.map +0 -1
  108. package/dist/theme/default/build/index.d.ts +0 -5
  109. package/dist/theme/default/build/index.d.ts.map +0 -1
  110. package/dist/theme/default/build/index.js +0 -1
  111. package/dist/theme/default/build/index.js.map +0 -1
  112. package/dist/theme/default/design-systems/default.d.ts.map +0 -1
  113. package/dist/theme/default/design-systems/default.js.map +0 -1
  114. package/dist/theme/default/design-systems/docusaurus.d.ts.map +0 -1
  115. package/dist/theme/default/design-systems/docusaurus.js.map +0 -1
  116. package/dist/theme/default/design-systems/index.d.ts.map +0 -1
  117. package/dist/theme/default/design-systems/index.js.map +0 -1
  118. package/dist/theme/default/design-systems/rspress.d.ts.map +0 -1
  119. package/dist/theme/default/design-systems/rspress.js.map +0 -1
  120. package/dist/theme/default/design-systems/types.d.ts.map +0 -1
  121. package/dist/theme/default/design-systems/types.js.map +0 -1
  122. package/dist/theme/default/design-systems/vitepress.d.ts.map +0 -1
  123. package/dist/theme/default/design-systems/vitepress.js.map +0 -1
  124. package/dist/theme/default/index.d.ts.map +0 -1
  125. package/dist/theme/default/index.js.map +0 -1
  126. package/dist/theme/default/theme.d.ts.map +0 -1
  127. package/dist/theme/default/theme.js.map +0 -1
  128. package/dist/theme/index.d.ts.map +0 -1
  129. package/dist/theme/index.js.map +0 -1
  130. package/dist/theme/loader.d.ts.map +0 -1
  131. package/dist/theme/loader.js.map +0 -1
  132. package/dist/theme/types.d.ts.map +0 -1
  133. package/dist/theme/types.js.map +0 -1
  134. package/src/theme/default/styles/main.css +0 -249
  135. package/src/theme/default/styles-base.css +0 -757
@@ -1,757 +0,0 @@
1
- /* ============================================
2
- RESET & BASE STYLES
3
- ============================================ */
4
-
5
- *,
6
- *::before,
7
- *::after {
8
- box-sizing: border-box;
9
- margin: 0;
10
- padding: 0;
11
- }
12
-
13
- html {
14
- font-size: 16px;
15
- scroll-behavior: smooth;
16
- -webkit-font-smoothing: antialiased;
17
- -moz-osx-font-smoothing: grayscale;
18
- }
19
-
20
- body {
21
- font-family: var(--font-sans);
22
- font-size: var(--font-size-base);
23
- line-height: var(--leading-normal);
24
- color: var(--text-1);
25
- background-color: var(--bg-default);
26
- transition: background-color var(--transition-base), color var(--transition-base);
27
- }
28
-
29
- /* Focus visible for accessibility - Updated to use primary-2 (Indigo) */
30
- *:focus-visible {
31
- outline: 2px solid var(--color-primary-2, #3a5ccc);
32
- outline-offset: 2px;
33
- }
34
-
35
- /* Links */
36
- a {
37
- color: var(--color-primary-3);
38
- text-decoration: none;
39
- transition: color var(--transition-fast);
40
- }
41
-
42
- a:hover {
43
- color: var(--color-primary-1);
44
- }
45
-
46
- /* External link indicator */
47
- a[href*='://']::after {
48
- content: '↗';
49
- margin-left: 4px;
50
- font-size: 0.8em;
51
- opacity: 0.6;
52
- transition: opacity var(--transition-fast);
53
- }
54
-
55
- a[href*='://']:hover::after {
56
- opacity: 1;
57
- }
58
-
59
- /* Skip to content (accessibility) */
60
- .skip-to-content {
61
- position: absolute;
62
- top: -40px;
63
- left: 0;
64
- padding: var(--space-sm) var(--space-md);
65
- background: var(--color-primary-3);
66
- color: var(--text-inverse);
67
- text-decoration: none;
68
- z-index: 9999;
69
- }
70
-
71
- .skip-to-content:focus {
72
- top: 0;
73
- }
74
-
75
- /* ============================================
76
- LAYOUT COMPONENTS
77
- ============================================ */
78
-
79
- .app-container {
80
- min-height: 100vh;
81
- display: flex;
82
- flex-direction: column;
83
- }
84
-
85
- .background-pattern {
86
- position: fixed;
87
- top: 0;
88
- left: 0;
89
- right: 0;
90
- bottom: 0;
91
- opacity: 0.03;
92
- background-image: radial-gradient(var(--text-1) 1px, transparent 1px);
93
- background-size: 24px 24px;
94
- pointer-events: none;
95
- z-index: -1;
96
- }
97
-
98
- .layout-container {
99
- display: flex;
100
- flex: 1;
101
- margin-top: var(--navbar-height);
102
- }
103
-
104
- /* Main wrapper - contains sidebar and content */
105
- .main-wrapper {
106
- display: flex;
107
- flex: 1;
108
- margin-top: var(--navbar-height, 64px);
109
- min-height: calc(100vh - var(--navbar-height, 64px));
110
- }
111
-
112
- /* ============================================
113
- NAVBAR
114
- ============================================ */
115
-
116
- .navbar {
117
- position: fixed;
118
- top: 0;
119
- left: 0;
120
- right: 0;
121
- height: var(--navbar-height);
122
- background: var(--bg-default);
123
- border-bottom: 1px solid var(--border-default);
124
- z-index: 50;
125
- transition: background-color var(--transition-base), border-color var(--transition-base);
126
- }
127
-
128
- .navbar-container {
129
- max-width: var(--container-max-width);
130
- margin: 0 auto;
131
- height: 100%;
132
- padding: 0 var(--space-lg);
133
- display: flex;
134
- align-items: center;
135
- justify-content: space-between;
136
- gap: var(--space-lg);
137
- }
138
-
139
- .navbar-brand {
140
- display: flex;
141
- align-items: center;
142
- gap: var(--space-sm);
143
- font-weight: var(--font-weight-semibold);
144
- font-size: var(--font-size-lg);
145
- color: var(--text-1);
146
- }
147
-
148
- .navbar-logo {
149
- width: 32px;
150
- height: 32px;
151
- }
152
-
153
- .navbar-title {
154
- white-space: nowrap;
155
- }
156
-
157
- .navbar-nav {
158
- display: none;
159
- gap: var(--space-md);
160
- align-items: center;
161
- }
162
-
163
- .nav-link {
164
- color: var(--text-2);
165
- padding: var(--space-xs, 0.25rem) var(--space-sm, 0.5rem);
166
- border-radius: var(--radius-sm, 4px);
167
- transition: all var(--transition-fast, 150ms);
168
- font-size: var(--font-size-sm, 0.875rem);
169
- font-weight: var(--font-weight-medium, 500);
170
- }
171
-
172
- .nav-link:hover {
173
- color: var(--color-primary-3, #3b82f6);
174
- background: var(--bg-soft, rgba(0, 0, 0, 0.05));
175
- }
176
-
177
- .nav-link.active {
178
- color: var(--color-primary-3, #3b82f6);
179
- background: var(--color-primary-soft, rgba(59, 130, 246, 0.1));
180
- }
181
-
182
- @media (min-width: 768px) {
183
- .navbar-nav {
184
- display: flex;
185
- }
186
- }
187
-
188
- .navbar-actions {
189
- display: flex;
190
- align-items: center;
191
- gap: var(--space-sm);
192
- }
193
-
194
- .btn-icon {
195
- display: inline-flex;
196
- align-items: center;
197
- justify-content: center;
198
- width: 40px;
199
- height: 40px;
200
- padding: 0;
201
- border: none;
202
- background: transparent;
203
- color: var(--text-2);
204
- cursor: pointer;
205
- border-radius: var(--radius-md);
206
- transition: background-color var(--transition-fast), color var(--transition-fast);
207
- }
208
-
209
- .btn-icon:hover {
210
- background: var(--bg-soft);
211
- color: var(--text-1);
212
- }
213
-
214
- .mobile-menu-toggle {
215
- display: flex;
216
- }
217
-
218
- @media (min-width: 768px) {
219
- .mobile-menu-toggle {
220
- display: none;
221
- }
222
- }
223
-
224
- .navbar-mobile-menu {
225
- display: flex;
226
- flex-direction: column;
227
- padding: var(--space-md);
228
- background: var(--bg-default);
229
- border-top: 1px solid var(--border-default);
230
- }
231
-
232
- @media (min-width: 768px) {
233
- .navbar-mobile-menu {
234
- display: none;
235
- }
236
- }
237
-
238
- /* ============================================
239
- SIDEBAR
240
- ============================================ */
241
-
242
- .sidebar {
243
- width: var(--sidebar-width, 280px);
244
- background: var(--sidebar-background, var(--bg-alt));
245
- border-right: 1px solid var(--sidebar-border, var(--border-default));
246
- overflow-y: auto;
247
- overflow-x: hidden;
248
- transition: transform var(--transition-base);
249
- flex-shrink: 0;
250
- padding: var(--sidebar-padding, var(--space-xl) var(--space-md));
251
- }
252
-
253
- @media (max-width: 1024px) {
254
- .sidebar {
255
- position: fixed;
256
- top: var(--navbar-height, 64px);
257
- left: 0;
258
- bottom: 0;
259
- z-index: 40;
260
- transform: translateX(-100%);
261
- }
262
-
263
- .sidebar:not(.collapsed) {
264
- transform: translateX(0);
265
- box-shadow: var(--shadow-xl);
266
- }
267
- }
268
-
269
- .sidebar.collapsed {
270
- transform: translateX(-100%);
271
- }
272
-
273
- .sidebar-container {
274
- padding: var(--sidebar-padding, var(--space-lg));
275
- }
276
-
277
- .sidebar-nav {
278
- display: flex;
279
- flex-direction: column;
280
- gap: var(--sidebar-item-gap, var(--space-xs, 0.25rem));
281
- padding: var(--sidebar-padding, var(--space-md, 1rem));
282
- }
283
-
284
- .sidebar-link {
285
- display: block;
286
- padding: var(--sidebar-item-padding, var(--space-sm, 0.5rem) var(--space-md, 1rem));
287
- color: var(--text-2, #6b7280);
288
- text-decoration: none;
289
- border-radius: var(--sidebar-item-border-radius, var(--radius-md, 6px));
290
- transition: all var(--transition-fast, 150ms);
291
- font-size: var(--sidebar-item-font-size, var(--font-size-sm, 0.875rem));
292
- font-weight: var(--sidebar-item-font-weight, 400);
293
- line-height: var(--sidebar-item-height, 1.4);
294
- height: var(--sidebar-item-height, auto);
295
- }
296
-
297
- .sidebar-link:hover {
298
- color: var(--text-1, #1f2937);
299
- background: var(--sidebar-hover-background, var(--bg-soft, rgba(0, 0, 0, 0.05)));
300
- }
301
-
302
- .sidebar-link.active {
303
- color: var(--color-primary-1, #3b82f6);
304
- background: var(--sidebar-active-background, var(--color-primary-soft, rgba(59, 130, 246, 0.1)));
305
- font-weight: var(--sidebar-item-font-weight, var(--font-weight-semibold, 600));
306
- border-left: var(--sidebar-active-border, none);
307
- }
308
-
309
- .sidebar-toggle-btn {
310
- display: flex;
311
- align-items: center;
312
- justify-content: center;
313
- width: 32px;
314
- height: 32px;
315
- margin-bottom: var(--space-md);
316
- padding: 0;
317
- border: 1px solid var(--border-default);
318
- background: var(--bg-default);
319
- color: var(--text-2);
320
- cursor: pointer;
321
- border-radius: var(--radius-md);
322
- transition: all var(--transition-fast);
323
- }
324
-
325
- .sidebar-toggle-btn:hover {
326
- border-color: var(--color-primary-3);
327
- color: var(--color-primary-3);
328
- }
329
-
330
- /* ============================================
331
- MAIN CONTENT
332
- ============================================ */
333
-
334
- .main-content {
335
- flex: 1;
336
- min-width: 0;
337
- padding: var(--space-xl) var(--space-lg);
338
- max-width: 100%;
339
- }
340
-
341
- @media (min-width: 1024px) {
342
- .main-content {
343
- max-width: var(--content-max-width, 1200px);
344
- margin: 0 auto;
345
- }
346
- }
347
-
348
- @media (max-width: 768px) {
349
- .main-content {
350
- padding: var(--space-lg) var(--space-md);
351
- }
352
- }
353
-
354
- /* Container */
355
- .container {
356
- max-width: var(--content-max-width);
357
- margin: 0 auto;
358
- }
359
-
360
- /* H2 dividers (VitePress-inspired) */
361
- .main-content h2 {
362
- margin: 48px 0 16px;
363
- border-top: 1px solid var(--border-divider);
364
- padding-top: 24px;
365
- }
366
-
367
- /* Breadcrumbs */
368
- .breadcrumbs {
369
- display: flex;
370
- flex-wrap: wrap;
371
- gap: var(--space-xs);
372
- margin-bottom: var(--space-lg);
373
- font-size: var(--font-size-sm);
374
- color: var(--text-2);
375
- }
376
-
377
- .breadcrumb-item {
378
- display: flex;
379
- align-items: center;
380
- gap: var(--space-xs);
381
- }
382
-
383
- .breadcrumb-item:not(:last-child)::after {
384
- content: '/';
385
- opacity: 0.5;
386
- }
387
-
388
- .breadcrumb-link {
389
- color: var(--text-2);
390
- }
391
-
392
- .breadcrumb-link:hover {
393
- color: var(--color-primary-3);
394
- }
395
-
396
- .breadcrumb-current {
397
- color: var(--text-1);
398
- font-weight: var(--font-weight-medium);
399
- }
400
-
401
- /* Prev/Next Navigation */
402
- .page-nav {
403
- display: grid;
404
- grid-template-columns: 1fr 1fr;
405
- gap: var(--space-md);
406
- margin-top: var(--space-3xl);
407
- padding-top: var(--space-xl);
408
- border-top: 1px solid var(--border-default);
409
- }
410
-
411
- .page-nav-prev,
412
- .page-nav-next {
413
- display: flex;
414
- flex-direction: column;
415
- gap: var(--space-xs);
416
- padding: var(--space-md);
417
- background: var(--bg-alt);
418
- border: 1px solid var(--border-default);
419
- border-radius: var(--radius-lg);
420
- text-decoration: none;
421
- color: var(--text-1);
422
- transition: all var(--transition-fast);
423
- }
424
-
425
- .page-nav-prev:hover,
426
- .page-nav-next:hover {
427
- border-color: var(--color-primary-3);
428
- background: var(--bg-soft);
429
- }
430
-
431
- .page-nav-prev {
432
- grid-column: 1;
433
- text-align: left;
434
- }
435
-
436
- .page-nav-next {
437
- grid-column: 2;
438
- text-align: right;
439
- }
440
-
441
- .page-nav-label {
442
- font-size: var(--font-size-xs);
443
- font-weight: var(--font-weight-semibold);
444
- text-transform: uppercase;
445
- color: var(--text-2);
446
- }
447
-
448
- .page-nav-title {
449
- font-size: var(--font-size-base);
450
- font-weight: var(--font-weight-medium);
451
- }
452
-
453
- /* ============================================
454
- TABLE OF CONTENTS
455
- ============================================ */
456
-
457
- .toc-aside {
458
- display: none;
459
- position: fixed;
460
- top: calc(var(--navbar-height) + var(--space-xl));
461
- right: var(--space-lg);
462
- width: var(--toc-width);
463
- max-height: calc(100vh - var(--navbar-height) - var(--space-2xl));
464
- overflow-y: auto;
465
- }
466
-
467
- @media (min-width: 1440px) {
468
- .toc-aside {
469
- display: block;
470
- }
471
- }
472
-
473
- .toc-container {
474
- padding: var(--space-md);
475
- background: var(--bg-alt);
476
- border: 1px solid var(--border-default);
477
- border-radius: var(--radius-lg);
478
- }
479
-
480
- .toc-title {
481
- font-size: var(--font-size-sm);
482
- font-weight: var(--font-weight-semibold);
483
- margin-bottom: var(--space-md);
484
- color: var(--text-2);
485
- text-transform: uppercase;
486
- }
487
-
488
- /* ============================================
489
- FOOTER
490
- ============================================ */
491
-
492
- .footer {
493
- padding: var(--space-3xl) var(--space-lg);
494
- background: var(--bg-alt);
495
- border-top: 1px solid var(--border-default);
496
- margin-top: auto;
497
- }
498
-
499
- .footer-content {
500
- max-width: var(--container-max-width);
501
- margin: 0 auto;
502
- text-align: center;
503
- color: var(--text-2);
504
- font-size: var(--font-size-sm);
505
- }
506
-
507
- /* ============================================
508
- CUSTOM CONTAINERS
509
- ============================================ */
510
-
511
- .custom-container {
512
- margin: var(--space-lg) 0;
513
- padding: var(--space-md) var(--space-lg);
514
- border-left: 4px solid;
515
- border-radius: var(--radius-md);
516
- background: var(--bg-alt);
517
- }
518
-
519
- .custom-container.tip {
520
- border-color: var(--c-success);
521
- background: rgba(16, 185, 129, 0.05);
522
- }
523
-
524
- .custom-container.warning {
525
- border-color: var(--c-warning);
526
- background: rgba(245, 158, 11, 0.05);
527
- }
528
-
529
- .custom-container.danger {
530
- border-color: var(--c-danger);
531
- background: rgba(239, 68, 68, 0.05);
532
- }
533
-
534
- .custom-container.info,
535
- .custom-container.note {
536
- border-color: var(--c-info);
537
- background: rgba(6, 182, 212, 0.05);
538
- }
539
-
540
- .custom-container-title {
541
- font-weight: var(--font-weight-semibold);
542
- margin-bottom: var(--space-sm);
543
- }
544
-
545
- /* ============================================
546
- CODE BLOCKS
547
- ============================================ */
548
-
549
- /* Inline code - VitePress style */
550
- :not(pre) > code {
551
- padding: 3px 6px;
552
- background: rgba(142, 150, 170, 0.14);
553
- color: var(--color-primary-3);
554
- font-family: var(--font-mono);
555
- font-size: 0.875em;
556
- border-radius: 4px;
557
- transition: color 0.25s, background-color 0.5s;
558
- }
559
-
560
- /* Code blocks - VitePress style */
561
- pre {
562
- position: relative;
563
- margin: 16px 0;
564
- padding: 20px 24px;
565
- background: var(--bg-alt);
566
- color: var(--text-2);
567
- font-family: var(--font-mono);
568
- font-size: 0.875em;
569
- line-height: 1.7;
570
- overflow-x: auto;
571
- border-radius: 8px;
572
- }
573
-
574
- /* Code block copy button placeholder */
575
- pre::after {
576
- content: 'Copy';
577
- position: absolute;
578
- top: 12px;
579
- right: 12px;
580
- padding: 4px 8px;
581
- font-size: 12px;
582
- color: var(--text-2);
583
- background: var(--bg-default);
584
- border: 1px solid var(--border-default);
585
- border-radius: var(--radius-sm);
586
- opacity: 0;
587
- transition: opacity 0.25s;
588
- pointer-events: none;
589
- }
590
-
591
- pre:hover::after {
592
- opacity: 1;
593
- }
594
-
595
- pre.line-numbers {
596
- padding-left: calc(24px + 3rem);
597
- }
598
-
599
- /* Code title */
600
- .code-block {
601
- margin: 16px 0;
602
- }
603
-
604
- .code-title {
605
- padding: 0.25rem 0.5rem;
606
- background: var(--bg-alt);
607
- color: var(--text-2);
608
- font-size: 12px;
609
- font-family: var(--font-mono);
610
- border: 1px solid var(--border-default);
611
- border-bottom: none;
612
- border-radius: 8px 8px 0 0;
613
- }
614
-
615
- .code-block pre {
616
- margin: 0;
617
- border-radius: 0 0 8px 8px;
618
- }
619
-
620
- /* ============================================
621
- RESPONSIVE DESIGN
622
- ============================================ */
623
-
624
- @media (max-width: 768px) {
625
- :root {
626
- --navbar-height: 56px;
627
- }
628
-
629
- .navbar-container {
630
- padding: 0 var(--space-md);
631
- }
632
-
633
- .page-nav {
634
- grid-template-columns: 1fr;
635
- }
636
-
637
- .page-nav-next {
638
- grid-column: 1;
639
- }
640
- }
641
-
642
- /* ============================================
643
- UTILITY CLASSES
644
- ============================================ */
645
-
646
- .sr-only {
647
- position: absolute;
648
- width: 1px;
649
- height: 1px;
650
- padding: 0;
651
- margin: -1px;
652
- overflow: hidden;
653
- clip: rect(0, 0, 0, 0);
654
- white-space: nowrap;
655
- border-width: 0;
656
- }
657
-
658
- .text-center { text-align: center; }
659
- .text-left { text-align: left; }
660
- .text-right { text-align: right; }
661
-
662
- .font-bold { font-weight: var(--font-weight-bold); }
663
- .font-semibold { font-weight: var(--font-weight-semibold); }
664
- .font-medium { font-weight: var(--font-weight-medium); }
665
-
666
- .text-xs { font-size: var(--font-size-xs); }
667
- .text-sm { font-size: var(--font-size-sm); }
668
- .text-lg { font-size: var(--font-size-lg); }
669
- .text-xl { font-size: var(--font-size-xl); }
670
- .text-2xl { font-size: var(--font-size-2xl); }
671
-
672
- .mt-sm { margin-top: var(--space-sm); }
673
- .mt-md { margin-top: var(--space-md); }
674
- .mt-lg { margin-top: var(--space-lg); }
675
- .mt-xl { margin-top: var(--space-xl); }
676
-
677
- .mb-sm { margin-bottom: var(--space-sm); }
678
- .mb-md { margin-bottom: var(--space-md); }
679
- .mb-lg { margin-bottom: var(--space-lg); }
680
- .mb-xl { margin-bottom: var(--space-xl); }
681
-
682
- /* ============================================
683
- DESIGN SYSTEM ACCENTS
684
- Make primary color more visible throughout UI
685
- ============================================ */
686
-
687
- /* Links use primary color */
688
- a {
689
- color: var(--color-primary-3, #3b82f6);
690
- }
691
-
692
- /* Active nav link highlight */
693
- .nav-link.active,
694
- .nav-link[href*="/docs/"] {
695
- color: var(--color-primary-3, #3b82f6);
696
- font-weight: var(--font-weight-semibold, 600);
697
- }
698
-
699
- /* Buttons */
700
- .btn-primary {
701
- background: var(--color-primary-3, #3b82f6);
702
- color: var(--bg-default, #ffffff);
703
- border: none;
704
- padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
705
- border-radius: var(--radius-md, 6px);
706
- font-weight: var(--font-weight-medium, 500);
707
- cursor: pointer;
708
- transition: background var(--transition-fast, 150ms);
709
- }
710
-
711
- .btn-primary:hover {
712
- background: var(--color-primary-2, #2563eb);
713
- }
714
-
715
- /* Code blocks get primary tint */
716
- /* pre { border-left: none; } */
717
-
718
- /* Blockquotes */
719
- blockquote {
720
- border-left: 4px solid var(--color-primary-3, #3b82f6);
721
- padding-left: var(--spacing-md, 1rem);
722
- color: var(--text-2, #6b7280);
723
- margin: var(--spacing-md, 1rem) 0;
724
- }
725
-
726
- /* Header anchors */
727
- a.header-anchor {
728
- color: var(--color-primary-3, #3b82f6);
729
- opacity: 0;
730
- transition: opacity var(--transition-fast, 150ms);
731
- }
732
-
733
- h1:hover a.header-anchor,
734
- h2:hover a.header-anchor,
735
- h3:hover a.header-anchor,
736
- h4:hover a.header-anchor {
737
- opacity: 1;
738
- }
739
-
740
- /* Tables */
741
- table th {
742
- background: var(--color-primary-soft, rgba(59, 130, 246, 0.1));
743
- color: var(--text-1, #111827);
744
- font-weight: var(--font-weight-semibold, 600);
745
- }
746
-
747
- /* Focus rings */
748
- *:focus-visible {
749
- outline: 2px solid var(--color-primary-3, #3b82f6);
750
- outline-offset: 2px;
751
- }
752
-
753
- /* Selected text */
754
- ::selection {
755
- background: var(--color-primary-soft, rgba(59, 130, 246, 0.2));
756
- color: var(--text-1, #111827);
757
- }