jekyll-vitepress-theme 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +93 -0
  4. data/_includes/doc_footer.html +184 -0
  5. data/_includes/head.html +98 -0
  6. data/_includes/home.html +315 -0
  7. data/_includes/local_nav.html +23 -0
  8. data/_includes/nav.html +232 -0
  9. data/_includes/search.html +14 -0
  10. data/_includes/sidebar.html +47 -0
  11. data/_includes/vp_slots/doc_footer.html +0 -0
  12. data/_includes/vp_slots/head.html +1 -0
  13. data/_includes/vp_slots/layout_bottom.html +0 -0
  14. data/_layouts/default.html +127 -0
  15. data/_layouts/home.html +5 -0
  16. data/assets/css/vitepress-components.css +1524 -0
  17. data/assets/css/vitepress-core.css +2149 -0
  18. data/assets/css/vitepress-overrides.css +1408 -0
  19. data/assets/css/vp-icons.css +24 -0
  20. data/assets/images/favicon/apple-touch-icon.png +0 -0
  21. data/assets/images/favicon/favicon-96x96.png +0 -0
  22. data/assets/images/favicon/favicon.ico +0 -0
  23. data/assets/images/favicon/site.webmanifest +21 -0
  24. data/assets/images/favicon/web-app-manifest-192x192.png +0 -0
  25. data/assets/images/favicon/web-app-manifest-512x512.png +0 -0
  26. data/assets/images/file-icons/css.svg +1 -0
  27. data/assets/images/file-icons/default.svg +1 -0
  28. data/assets/images/file-icons/docker.svg +1 -0
  29. data/assets/images/file-icons/env.svg +1 -0
  30. data/assets/images/file-icons/go.svg +1 -0
  31. data/assets/images/file-icons/html.svg +1 -0
  32. data/assets/images/file-icons/java.svg +1 -0
  33. data/assets/images/file-icons/javascript.svg +1 -0
  34. data/assets/images/file-icons/json.svg +1 -0
  35. data/assets/images/file-icons/kotlin.svg +1 -0
  36. data/assets/images/file-icons/make.svg +1 -0
  37. data/assets/images/file-icons/markdown.svg +1 -0
  38. data/assets/images/file-icons/php.svg +1 -0
  39. data/assets/images/file-icons/python.svg +1 -0
  40. data/assets/images/file-icons/ruby.svg +1 -0
  41. data/assets/images/file-icons/rust.svg +1 -0
  42. data/assets/images/file-icons/shell.svg +1 -0
  43. data/assets/images/file-icons/sql.svg +1 -0
  44. data/assets/images/file-icons/text.svg +1 -0
  45. data/assets/images/file-icons/toml.svg +1 -0
  46. data/assets/images/file-icons/typescript.svg +1 -0
  47. data/assets/images/file-icons/vue.svg +1 -0
  48. data/assets/images/file-icons/xml.svg +1 -0
  49. data/assets/images/file-icons/yaml-dark.svg +1 -0
  50. data/assets/images/file-icons/yaml.svg +1 -0
  51. data/assets/images/logo.svg +337 -0
  52. data/assets/images/social-icons/bitbucket.svg +1 -0
  53. data/assets/images/social-icons/bluesky.svg +1 -0
  54. data/assets/images/social-icons/devdotto.svg +1 -0
  55. data/assets/images/social-icons/discord.svg +1 -0
  56. data/assets/images/social-icons/dribbble.svg +1 -0
  57. data/assets/images/social-icons/facebook.svg +1 -0
  58. data/assets/images/social-icons/github.svg +1 -0
  59. data/assets/images/social-icons/gitlab.svg +1 -0
  60. data/assets/images/social-icons/instagram.svg +1 -0
  61. data/assets/images/social-icons/linkedin.svg +1 -0
  62. data/assets/images/social-icons/mastodon.svg +1 -0
  63. data/assets/images/social-icons/medium.svg +1 -0
  64. data/assets/images/social-icons/npm.svg +1 -0
  65. data/assets/images/social-icons/reddit.svg +1 -0
  66. data/assets/images/social-icons/rss.svg +1 -0
  67. data/assets/images/social-icons/slack.svg +1 -0
  68. data/assets/images/social-icons/stackoverflow.svg +1 -0
  69. data/assets/images/social-icons/telegram.svg +1 -0
  70. data/assets/images/social-icons/twitch.svg +1 -0
  71. data/assets/images/social-icons/twitter.svg +1 -0
  72. data/assets/images/social-icons/x.svg +1 -0
  73. data/assets/images/social-icons/youtube.svg +1 -0
  74. data/assets/images/theme/vitepress-logo-large.svg +340 -0
  75. data/assets/images/theme/vitepress-logo-mini.svg +337 -0
  76. data/assets/js/vitepress-theme.js +1301 -0
  77. data/lib/jekyll/vitepress_theme/hooks.rb +111 -0
  78. data/lib/jekyll/vitepress_theme/version.rb +5 -0
  79. data/lib/jekyll-vitepress-theme.rb +3 -0
  80. metadata +143 -0
@@ -0,0 +1,1524 @@
1
+ /* ==== Layout.vue ==== */
2
+ .Layout {
3
+ display: flex;
4
+ flex-direction: column;
5
+ min-height: 100vh;
6
+ }
7
+
8
+
9
+ /* ==== components/VPBackdrop.vue ==== */
10
+ .VPBackdrop {
11
+ position: fixed;
12
+ top: 0;
13
+ /*rtl:ignore*/
14
+ right: 0;
15
+ bottom: 0;
16
+ /*rtl:ignore*/
17
+ left: 0;
18
+ z-index: var(--vp-z-index-backdrop);
19
+ background: var(--vp-backdrop-bg-color);
20
+ transition: opacity 0.5s;
21
+ }
22
+
23
+ .VPBackdrop.fade-enter-from,
24
+ .VPBackdrop.fade-leave-to {
25
+ opacity: 0;
26
+ }
27
+
28
+ .VPBackdrop.fade-leave-active {
29
+ transition-duration: .25s;
30
+ }
31
+
32
+ @media (min-width: 1280px) {
33
+ .VPBackdrop {
34
+ display: none;
35
+ }
36
+ }
37
+
38
+
39
+ /* ==== components/VPNav.vue ==== */
40
+ .VPNav {
41
+ position: relative;
42
+ top: var(--vp-layout-top-height, 0px);
43
+ /*rtl:ignore*/
44
+ left: 0;
45
+ z-index: var(--vp-z-index-nav);
46
+ width: 100%;
47
+ pointer-events: none;
48
+ transition: background-color 0.5s;
49
+ }
50
+
51
+ @media (min-width: 960px) {
52
+ .VPNav {
53
+ position: fixed;
54
+ }
55
+ }
56
+
57
+
58
+ /* ==== components/VPNavBar.vue ==== */
59
+ .VPNavBar {
60
+ position: relative;
61
+ height: var(--vp-nav-height);
62
+ pointer-events: none;
63
+ white-space: nowrap;
64
+ transition: background-color 0.25s;
65
+ }
66
+
67
+ .VPNavBar.screen-open {
68
+ transition: none;
69
+ background-color: var(--vp-nav-bg-color);
70
+ border-bottom: 1px solid var(--vp-c-divider);
71
+ }
72
+
73
+ .VPNavBar:not(.home) {
74
+ background-color: var(--vp-nav-bg-color);
75
+ }
76
+
77
+ @media (min-width: 960px) {
78
+ .VPNavBar:not(.home) {
79
+ background-color: transparent;
80
+ }
81
+
82
+ .VPNavBar:not(.has-sidebar):not(.home.top) {
83
+ background-color: var(--vp-nav-bg-color);
84
+ }
85
+ }
86
+
87
+ .VPNavBar .wrapper {
88
+ padding: 0 8px 0 24px;
89
+ }
90
+
91
+ @media (min-width: 768px) {
92
+ .VPNavBar .wrapper {
93
+ padding: 0 32px;
94
+ }
95
+ }
96
+
97
+ @media (min-width: 960px) {
98
+ .VPNavBar.has-sidebar .wrapper {
99
+ padding: 0;
100
+ }
101
+ }
102
+
103
+ .VPNavBar .container {
104
+ display: flex;
105
+ justify-content: space-between;
106
+ margin: 0 auto;
107
+ max-width: calc(var(--vp-layout-max-width) - 64px);
108
+ height: var(--vp-nav-height);
109
+ pointer-events: none;
110
+ }
111
+
112
+ .VPNavBar .container > .title,
113
+ .VPNavBar .container > .content {
114
+ pointer-events: none;
115
+ }
116
+
117
+ .VPNavBar .container * {
118
+ pointer-events: auto;
119
+ }
120
+
121
+ @media (min-width: 960px) {
122
+ .VPNavBar.has-sidebar .container {
123
+ max-width: 100%;
124
+ }
125
+ }
126
+
127
+ .VPNavBar > .wrapper > .container > .title {
128
+ flex-shrink: 0;
129
+ height: calc(var(--vp-nav-height) - 1px);
130
+ transition: background-color 0.5s;
131
+ }
132
+
133
+ @media (min-width: 960px) {
134
+ .VPNavBar.has-sidebar > .wrapper > .container > .title {
135
+ position: absolute;
136
+ top: 0;
137
+ left: 0;
138
+ z-index: 2;
139
+ padding: 0 32px;
140
+ width: var(--vp-sidebar-width);
141
+ height: var(--vp-nav-height);
142
+ background-color: transparent;
143
+ }
144
+ }
145
+
146
+ @media (min-width: 1440px) {
147
+ .VPNavBar.has-sidebar > .wrapper > .container > .title {
148
+ padding-left: max(32px, calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));
149
+ width: calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px);
150
+ }
151
+ }
152
+
153
+ .VPNavBar > .wrapper > .container > .content {
154
+ flex-grow: 1;
155
+ }
156
+
157
+ @media (min-width: 960px) {
158
+ .VPNavBar.has-sidebar > .wrapper > .container > .content {
159
+ position: relative;
160
+ z-index: 1;
161
+ padding-left: var(--vp-sidebar-width);
162
+ padding-right: 32px;
163
+ }
164
+ }
165
+
166
+ @media (min-width: 1440px) {
167
+ .VPNavBar.has-sidebar > .wrapper > .container > .content {
168
+ padding-left: calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width));
169
+ padding-right: calc((100% - var(--vp-layout-max-width)) / 2 + 32px);
170
+ }
171
+ }
172
+
173
+ .VPNavBar > .wrapper > .container > .content > .content-body {
174
+ display: flex;
175
+ justify-content: flex-end;
176
+ align-items: center;
177
+ height: var(--vp-nav-height);
178
+ transition: background-color 0.5s;
179
+ }
180
+
181
+ @media (min-width: 960px) {
182
+ .VPNavBar:not(.home.top) > .wrapper > .container > .content > .content-body {
183
+ position: relative;
184
+ background-color: var(--vp-nav-bg-color);
185
+ }
186
+
187
+ .VPNavBar:not(.has-sidebar):not(.home.top) > .wrapper > .container > .content > .content-body {
188
+ background-color: transparent;
189
+ }
190
+
191
+ .VPNavBar > .wrapper > .container > .content > .content-body {
192
+ margin-right: -100vw;
193
+ padding-right: 100vw;
194
+ }
195
+ }
196
+
197
+ .VPNavBar .menu + .translations::before,
198
+ .VPNavBar .menu + .appearance::before,
199
+ .VPNavBar .menu + .social-links::before,
200
+ .VPNavBar .translations + .appearance::before,
201
+ .VPNavBar .appearance + .social-links::before {
202
+ margin-right: 8px;
203
+ margin-left: 8px;
204
+ width: 1px;
205
+ height: 24px;
206
+ background-color: var(--vp-c-divider);
207
+ content: "";
208
+ }
209
+
210
+ .VPNavBar .menu + .appearance::before,
211
+ .VPNavBar .translations + .appearance::before {
212
+ margin-right: 16px;
213
+ }
214
+
215
+ .VPNavBar .appearance + .social-links::before {
216
+ margin-left: 16px;
217
+ }
218
+
219
+ .VPNavBar .social-links {
220
+ margin-right: -8px;
221
+ }
222
+
223
+ .VPNavBar .divider {
224
+ width: 100%;
225
+ height: 1px;
226
+ }
227
+
228
+ @media (min-width: 960px) {
229
+ .VPNavBar.has-sidebar .divider {
230
+ padding-left: var(--vp-sidebar-width);
231
+ }
232
+ }
233
+
234
+ @media (min-width: 1440px) {
235
+ .VPNavBar.has-sidebar .divider {
236
+ padding-left: calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width));
237
+ }
238
+ }
239
+
240
+ .VPNavBar .divider-line {
241
+ width: 100%;
242
+ height: 1px;
243
+ transition: background-color 0.5s;
244
+ }
245
+
246
+ .VPNavBar:not(.home) .divider-line {
247
+ background-color: var(--vp-c-gutter);
248
+ }
249
+
250
+ @media (min-width: 960px) {
251
+ .VPNavBar:not(.home.top) .divider-line {
252
+ background-color: var(--vp-c-gutter);
253
+ }
254
+
255
+ .VPNavBar:not(.has-sidebar):not(.home.top) .divider {
256
+ background-color: var(--vp-c-gutter);
257
+ }
258
+ }
259
+
260
+
261
+ /* ==== components/VPNavBarTitle.vue ==== */
262
+ .VPNavBarTitle .title {
263
+ display: flex;
264
+ align-items: center;
265
+ border-bottom: 1px solid transparent;
266
+ width: 100%;
267
+ height: var(--vp-nav-height);
268
+ font-size: 16px;
269
+ font-weight: 600;
270
+ color: var(--vp-c-text-1);
271
+ transition: opacity 0.25s;
272
+ }
273
+
274
+ @media (min-width: 960px) {
275
+ .VPNavBarTitle .title {
276
+ flex-shrink: 0;
277
+ }
278
+
279
+ .VPNavBarTitle.has-sidebar .title {
280
+ border-bottom-color: var(--vp-c-divider);
281
+ }
282
+ }
283
+
284
+ .VPNavBarTitle .logo {
285
+ margin-right: 8px;
286
+ height: var(--vp-nav-logo-height);
287
+ min-width: var(--vp-nav-logo-height);
288
+ width: auto;
289
+ object-fit: contain;
290
+ }
291
+
292
+
293
+ /* ==== components/VPNavBarMenu.vue ==== */
294
+ .VPNavBarMenu {
295
+ display: none;
296
+ }
297
+
298
+ @media (min-width: 768px) {
299
+ .VPNavBarMenu {
300
+ display: flex;
301
+ }
302
+ }
303
+
304
+
305
+ /* ==== components/VPNavBarMenuLink.vue ==== */
306
+ .VPNavBarMenuLink {
307
+ display: flex;
308
+ align-items: center;
309
+ padding: 0 12px;
310
+ line-height: var(--vp-nav-height);
311
+ font-size: 14px;
312
+ font-weight: 500;
313
+ color: var(--vp-c-text-1);
314
+ transition: color 0.25s;
315
+ }
316
+
317
+ .VPNavBarMenuLink.active {
318
+ color: var(--vp-c-brand-1);
319
+ }
320
+
321
+ .VPNavBarMenuLink:hover {
322
+ color: var(--vp-c-brand-1);
323
+ }
324
+
325
+
326
+ /* ==== components/VPNavBarSearch.vue ==== */
327
+ .VPNavBarSearch {
328
+ display: flex;
329
+ align-items: center;
330
+ }
331
+
332
+ @media (min-width: 768px) {
333
+ .VPNavBarSearch {
334
+ gap: 8px;
335
+ flex-grow: 1;
336
+ padding-left: 24px;
337
+ }
338
+ }
339
+
340
+ @media (min-width: 960px) {
341
+ .VPNavBarSearch {
342
+ padding-left: 32px;
343
+ }
344
+ }
345
+
346
+
347
+ /* ==== components/VPNavBarSearchButton.vue ==== */
348
+ .VPNavBarSearchButton {
349
+ display: flex;
350
+ align-items: center;
351
+ gap: 8px;
352
+ height: var(--vp-nav-height);
353
+ padding: 8px 14px;
354
+ font-size: 20px;
355
+ }
356
+
357
+ .VPNavBarSearchButton .text,
358
+ .VPNavBarSearchButton .keys,
359
+ :root.mac .VPNavBarSearchButton .key-ctrl,
360
+ :root:not(.mac) .VPNavBarSearchButton .key-cmd {
361
+ display: none;
362
+ }
363
+
364
+ .VPNavBarSearchButton kbd {
365
+ font-family: inherit;
366
+ font-weight: 500;
367
+ }
368
+
369
+ @media (min-width: 768px) {
370
+ .VPNavBarSearchButton {
371
+ height: auto;
372
+ padding: 8px 12px;
373
+ background-color: var(--vp-c-bg-alt);
374
+ border-radius: 8px;
375
+ font-size: 14px;
376
+ line-height: 1;
377
+ color: var(--vp-c-text-2);
378
+ }
379
+
380
+ .VPNavBarSearchButton .text {
381
+ display: inline;
382
+ font-size: 13px;
383
+ }
384
+
385
+ .VPNavBarSearchButton .keys {
386
+ display: flex;
387
+ align-items: center;
388
+ gap: 4px;
389
+ padding: 4px 6px;
390
+ border: 1px solid var(--vp-c-divider);
391
+ border-radius: 4px;
392
+ font-size: 12px;
393
+ }
394
+ }
395
+
396
+
397
+ /* ==== components/VPNavBarAppearance.vue ==== */
398
+ .VPNavBarAppearance {
399
+ display: none;
400
+ }
401
+
402
+ @media (min-width: 1280px) {
403
+ .VPNavBarAppearance {
404
+ display: flex;
405
+ align-items: center;
406
+ }
407
+ }
408
+
409
+
410
+ /* ==== components/VPNavBarSocialLinks.vue ==== */
411
+ .VPNavBarSocialLinks {
412
+ display: none;
413
+ }
414
+
415
+ @media (min-width: 1280px) {
416
+ .VPNavBarSocialLinks {
417
+ display: flex;
418
+ align-items: center;
419
+ }
420
+ }
421
+
422
+
423
+ /* ==== components/VPNavBarHamburger.vue ==== */
424
+ .VPNavBarHamburger {
425
+ display: flex;
426
+ justify-content: center;
427
+ align-items: center;
428
+ width: 48px;
429
+ height: var(--vp-nav-height);
430
+ }
431
+
432
+ @media (min-width: 768px) {
433
+ .VPNavBarHamburger {
434
+ display: none;
435
+ }
436
+ }
437
+
438
+ .VPNavBarHamburger .container {
439
+ position: relative;
440
+ width: 16px;
441
+ height: 14px;
442
+ overflow: hidden;
443
+ }
444
+
445
+ .VPNavBarHamburger:hover .top { top: 0; left: 0; transform: translateX(4px); }
446
+ .VPNavBarHamburger:hover .middle { top: 6px; left: 0; transform: translateX(0); }
447
+ .VPNavBarHamburger:hover .bottom { top: 12px; left: 0; transform: translateX(8px); }
448
+
449
+ .VPNavBarHamburger.active .top { top: 6px; transform: translateX(0) rotate(225deg); }
450
+ .VPNavBarHamburger.active .middle { top: 6px; transform: translateX(16px); }
451
+ .VPNavBarHamburger.active .bottom { top: 6px; transform: translateX(0) rotate(135deg); }
452
+
453
+ .VPNavBarHamburger.active:hover .top,
454
+ .VPNavBarHamburger.active:hover .middle,
455
+ .VPNavBarHamburger.active:hover .bottom {
456
+ background-color: var(--vp-c-text-2);
457
+ transition: top .25s, background-color .25s, transform .25s;
458
+ }
459
+
460
+ .VPNavBarHamburger .top,
461
+ .VPNavBarHamburger .middle,
462
+ .VPNavBarHamburger .bottom {
463
+ position: absolute;
464
+ width: 16px;
465
+ height: 2px;
466
+ background-color: var(--vp-c-text-1);
467
+ transition: top .25s, background-color .5s, transform .25s;
468
+ }
469
+
470
+ .VPNavBarHamburger .top { top: 0; left: 0; transform: translateX(0); }
471
+ .VPNavBarHamburger .middle { top: 6px; left: 0; transform: translateX(8px); }
472
+ .VPNavBarHamburger .bottom { top: 12px; left: 0; transform: translateX(4px); }
473
+
474
+
475
+ /* ==== components/VPNavScreen.vue ==== */
476
+ .VPNavScreen {
477
+ position: fixed;
478
+ top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));
479
+ /*rtl:ignore*/
480
+ right: 0;
481
+ bottom: 0;
482
+ /*rtl:ignore*/
483
+ left: 0;
484
+ padding: 0 32px;
485
+ width: 100%;
486
+ background-color: var(--vp-nav-screen-bg-color);
487
+ overflow-y: auto;
488
+ transition: background-color 0.25s;
489
+ pointer-events: auto;
490
+ }
491
+
492
+ .VPNavScreen.fade-enter-active,
493
+ .VPNavScreen.fade-leave-active {
494
+ transition: opacity 0.25s;
495
+ }
496
+
497
+ .VPNavScreen.fade-enter-active .container,
498
+ .VPNavScreen.fade-leave-active .container {
499
+ transition: transform 0.25s ease;
500
+ }
501
+
502
+ .VPNavScreen.fade-enter-from,
503
+ .VPNavScreen.fade-leave-to {
504
+ opacity: 0;
505
+ }
506
+
507
+ .VPNavScreen.fade-enter-from .container,
508
+ .VPNavScreen.fade-leave-to .container {
509
+ transform: translateY(-8px);
510
+ }
511
+
512
+ @media (min-width: 768px) {
513
+ .VPNavScreen {
514
+ display: none;
515
+ }
516
+ }
517
+
518
+ .VPNavScreen .container {
519
+ margin: 0 auto;
520
+ padding: 24px 0 96px;
521
+ max-width: 288px;
522
+ }
523
+
524
+ .VPNavScreen .menu + .translations,
525
+ .VPNavScreen .menu + .appearance,
526
+ .VPNavScreen .translations + .appearance {
527
+ margin-top: 24px;
528
+ }
529
+
530
+ .VPNavScreen .menu + .social-links {
531
+ margin-top: 16px;
532
+ }
533
+
534
+ .VPNavScreen .appearance + .social-links {
535
+ margin-top: 16px;
536
+ }
537
+
538
+
539
+ /* ==== components/VPNavScreenMenuLink.vue ==== */
540
+ .VPNavScreenMenuLink {
541
+ display: block;
542
+ border-bottom: 1px solid var(--vp-c-divider);
543
+ padding: 12px 0 11px;
544
+ line-height: 24px;
545
+ font-size: 14px;
546
+ font-weight: 500;
547
+ color: var(--vp-c-text-1);
548
+ transition:
549
+ border-color 0.25s,
550
+ color 0.25s;
551
+ }
552
+
553
+ .VPNavScreenMenuLink:hover {
554
+ color: var(--vp-c-brand-1);
555
+ }
556
+
557
+ .VPNavScreenMenuLink.active {
558
+ color: var(--vp-c-brand-1);
559
+ }
560
+
561
+
562
+ /* ==== components/VPNavScreenAppearance.vue ==== */
563
+ .VPNavScreenAppearance {
564
+ display: flex;
565
+ justify-content: space-between;
566
+ align-items: center;
567
+ border-radius: 8px;
568
+ padding: 12px 14px 12px 16px;
569
+ background-color: var(--vp-c-bg-soft);
570
+ }
571
+
572
+ .VPNavScreenAppearance .text {
573
+ line-height: 24px;
574
+ font-size: 12px;
575
+ font-weight: 500;
576
+ color: var(--vp-c-text-2);
577
+ }
578
+
579
+
580
+ /* ==== components/VPLocalNav.vue ==== */
581
+ .VPLocalNav {
582
+ position: sticky;
583
+ top: 0;
584
+ /*rtl:ignore*/
585
+ left: 0;
586
+ z-index: var(--vp-z-index-local-nav);
587
+ border-bottom: 1px solid var(--vp-c-gutter);
588
+ padding-top: var(--vp-layout-top-height, 0px);
589
+ width: 100%;
590
+ background-color: var(--vp-local-nav-bg-color);
591
+ }
592
+
593
+ .VPLocalNav.fixed {
594
+ position: fixed;
595
+ }
596
+
597
+ @media (min-width: 960px) {
598
+ .VPLocalNav {
599
+ top: var(--vp-nav-height);
600
+ }
601
+
602
+ .VPLocalNav.has-sidebar {
603
+ padding-left: var(--vp-sidebar-width);
604
+ }
605
+
606
+ .VPLocalNav.empty {
607
+ display: none;
608
+ }
609
+ }
610
+
611
+ @media (min-width: 1280px) {
612
+ .VPLocalNav {
613
+ display: none;
614
+ }
615
+ }
616
+
617
+ .VPLocalNav .container {
618
+ display: flex;
619
+ justify-content: space-between;
620
+ align-items: center;
621
+ }
622
+
623
+ .VPLocalNav .menu {
624
+ display: flex;
625
+ align-items: center;
626
+ line-height: 24px;
627
+ font-size: 12px;
628
+ font-weight: 500;
629
+ color: var(--vp-c-text-2);
630
+ transition: color 0.5s;
631
+ }
632
+
633
+ .VPLocalNav .menu:hover {
634
+ color: var(--vp-c-text-1);
635
+ transition: color 0.25s;
636
+ }
637
+
638
+ @media (min-width: 960px) {
639
+ .VPLocalNav .menu {
640
+ display: none;
641
+ }
642
+ }
643
+
644
+ .VPLocalNav .menu-icon {
645
+ margin-right: 8px;
646
+ font-size: 14px;
647
+ }
648
+
649
+ .VPLocalNav .menu,
650
+ .VPLocalNav .VPLocalNavOutlineDropdown > button {
651
+ padding: 12px 24px 11px;
652
+ }
653
+
654
+ @media (min-width: 768px) {
655
+ .VPLocalNav .menu,
656
+ .VPLocalNav .VPLocalNavOutlineDropdown > button {
657
+ padding: 12px 32px 11px;
658
+ }
659
+ }
660
+
661
+
662
+ /* ==== components/VPLocalNavOutlineDropdown.vue ==== */
663
+ .VPLocalNavOutlineDropdown button {
664
+ display: block;
665
+ font-size: 12px;
666
+ font-weight: 500;
667
+ line-height: 24px;
668
+ color: var(--vp-c-text-2);
669
+ transition: color 0.5s;
670
+ position: relative;
671
+ }
672
+
673
+ .VPLocalNavOutlineDropdown button:hover {
674
+ color: var(--vp-c-text-1);
675
+ transition: color 0.25s;
676
+ }
677
+
678
+ .VPLocalNavOutlineDropdown button.open {
679
+ color: var(--vp-c-text-1);
680
+ }
681
+
682
+ .VPLocalNavOutlineDropdown .icon {
683
+ display: inline-block;
684
+ vertical-align: middle;
685
+ margin-left: 2px;
686
+ font-size: 14px;
687
+ transform: rotate(0) /*rtl:rotate(180deg)*/;
688
+ transition: transform 0.25s;
689
+ }
690
+
691
+ @media (min-width: 960px) {
692
+ .VPLocalNavOutlineDropdown button {
693
+ font-size: 14px;
694
+ }
695
+
696
+ .VPLocalNavOutlineDropdown .icon {
697
+ font-size: 16px;
698
+ }
699
+ }
700
+
701
+ .VPLocalNavOutlineDropdown .open > .icon {
702
+ /*rtl:ignore*/
703
+ transform: rotate(90deg);
704
+ }
705
+
706
+ .VPLocalNavOutlineDropdown .items {
707
+ position: absolute;
708
+ top: 40px;
709
+ right: 16px;
710
+ left: 16px;
711
+ display: grid;
712
+ gap: 1px;
713
+ border: 1px solid var(--vp-c-border);
714
+ border-radius: 8px;
715
+ background-color: var(--vp-c-gutter);
716
+ max-height: calc(var(--vp-vh, 100vh) - 86px);
717
+ overflow: hidden auto;
718
+ box-shadow: var(--vp-shadow-3);
719
+ }
720
+
721
+ @media (min-width: 960px) {
722
+ .VPLocalNavOutlineDropdown .items {
723
+ right: auto;
724
+ left: calc(var(--vp-sidebar-width) + 32px);
725
+ width: 320px;
726
+ }
727
+ }
728
+
729
+ .VPLocalNavOutlineDropdown .header {
730
+ background-color: var(--vp-c-bg-soft);
731
+ }
732
+
733
+ .VPLocalNavOutlineDropdown .top-link {
734
+ display: block;
735
+ padding: 0 16px;
736
+ line-height: 48px;
737
+ font-size: 14px;
738
+ font-weight: 500;
739
+ color: var(--vp-c-brand-1);
740
+ }
741
+
742
+ .VPLocalNavOutlineDropdown .outline {
743
+ padding: 8px 0;
744
+ background-color: var(--vp-c-bg-soft);
745
+ }
746
+
747
+ .VPLocalNavOutlineDropdown .flyout-enter-active {
748
+ transition: all 0.2s ease-out;
749
+ }
750
+
751
+ .VPLocalNavOutlineDropdown .flyout-leave-active {
752
+ transition: all 0.15s ease-in;
753
+ }
754
+
755
+ .VPLocalNavOutlineDropdown .flyout-enter-from,
756
+ .VPLocalNavOutlineDropdown .flyout-leave-to {
757
+ opacity: 0;
758
+ transform: translateY(-16px);
759
+ }
760
+
761
+
762
+ /* ==== components/VPSidebar.vue ==== */
763
+ .VPSidebar {
764
+ position: fixed;
765
+ top: var(--vp-layout-top-height, 0px);
766
+ bottom: 0;
767
+ left: 0;
768
+ z-index: var(--vp-z-index-sidebar);
769
+ padding: 32px 32px 96px;
770
+ width: calc(100vw - 64px);
771
+ max-width: 320px;
772
+ background-color: var(--vp-sidebar-bg-color);
773
+ opacity: 0;
774
+ box-shadow: var(--vp-c-shadow-3);
775
+ overflow-x: hidden;
776
+ overflow-y: auto;
777
+ transform: translateX(-100%);
778
+ transition: opacity 0.5s, transform 0.25s ease;
779
+ overscroll-behavior: contain;
780
+ }
781
+
782
+ .VPSidebar.open {
783
+ opacity: 1;
784
+ visibility: visible;
785
+ transform: translateX(0);
786
+ transition: opacity 0.25s,
787
+ transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
788
+ }
789
+
790
+ .dark .VPSidebar {
791
+ box-shadow: var(--vp-shadow-1);
792
+ }
793
+
794
+ @media (min-width: 960px) {
795
+ .VPSidebar {
796
+ padding-top: var(--vp-nav-height);
797
+ width: var(--vp-sidebar-width);
798
+ max-width: 100%;
799
+ background-color: var(--vp-sidebar-bg-color);
800
+ opacity: 1;
801
+ visibility: visible;
802
+ box-shadow: none;
803
+ transform: translateX(0);
804
+ }
805
+ }
806
+
807
+ @media (min-width: 1440px) {
808
+ .VPSidebar {
809
+ padding-left: max(32px, calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));
810
+ width: calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px);
811
+ }
812
+ }
813
+
814
+ @media (min-width: 960px) {
815
+ .VPSidebar .curtain {
816
+ position: sticky;
817
+ top: calc(var(--vp-nav-height) * -1);
818
+ left: 0;
819
+ z-index: 1;
820
+ margin-top: calc(var(--vp-nav-height) * -1);
821
+ margin-right: -32px;
822
+ margin-left: -32px;
823
+ height: var(--vp-nav-height);
824
+ background-color: var(--vp-sidebar-bg-color);
825
+ }
826
+ }
827
+
828
+ .VPSidebar .nav {
829
+ outline: 0;
830
+ }
831
+
832
+
833
+ /* ==== components/VPSidebarGroup.vue ==== */
834
+ .VPSidebar .no-transition .caret-icon {
835
+ transition: none;
836
+ }
837
+
838
+ .VPSidebar .group + .group {
839
+ border-top: 1px solid var(--vp-c-divider);
840
+ padding-top: 10px;
841
+ }
842
+
843
+ @media (min-width: 960px) {
844
+ .VPSidebar .group {
845
+ padding-top: 10px;
846
+ width: calc(var(--vp-sidebar-width) - 64px);
847
+ }
848
+ }
849
+
850
+
851
+ /* ==== components/VPSidebarItem.vue ==== */
852
+ .VPSidebarItem.level-0 {
853
+ padding-bottom: 24px;
854
+ }
855
+
856
+ .VPSidebarItem.collapsed.level-0 {
857
+ padding-bottom: 10px;
858
+ }
859
+
860
+ .VPSidebarItem .item {
861
+ position: relative;
862
+ display: flex;
863
+ width: 100%;
864
+ }
865
+
866
+ .VPSidebarItem.collapsible > .item {
867
+ cursor: pointer;
868
+ }
869
+
870
+ .VPSidebarItem .indicator {
871
+ position: absolute;
872
+ top: 6px;
873
+ bottom: 6px;
874
+ left: -17px;
875
+ width: 2px;
876
+ border-radius: 2px;
877
+ transition: background-color 0.25s;
878
+ }
879
+
880
+ .VPSidebarItem.level-2.is-active > .item > .indicator,
881
+ .VPSidebarItem.level-3.is-active > .item > .indicator,
882
+ .VPSidebarItem.level-4.is-active > .item > .indicator,
883
+ .VPSidebarItem.level-5.is-active > .item > .indicator {
884
+ background-color: var(--vp-c-brand-1);
885
+ }
886
+
887
+ .VPSidebarItem .link {
888
+ display: flex;
889
+ align-items: center;
890
+ flex-grow: 1;
891
+ }
892
+
893
+ .VPSidebarItem .text {
894
+ flex-grow: 1;
895
+ padding: 4px 0;
896
+ line-height: 24px;
897
+ font-size: 14px;
898
+ transition: color 0.25s;
899
+ }
900
+
901
+ .VPSidebarItem.level-0 .text {
902
+ font-weight: 700;
903
+ color: var(--vp-c-text-1);
904
+ }
905
+
906
+ .VPSidebarItem.level-1 .text,
907
+ .VPSidebarItem.level-2 .text,
908
+ .VPSidebarItem.level-3 .text,
909
+ .VPSidebarItem.level-4 .text,
910
+ .VPSidebarItem.level-5 .text {
911
+ font-weight: 500;
912
+ color: var(--vp-c-text-2);
913
+ }
914
+
915
+ .VPSidebarItem.level-0.is-link > .item > .link:hover .text,
916
+ .VPSidebarItem.level-1.is-link > .item > .link:hover .text,
917
+ .VPSidebarItem.level-2.is-link > .item > .link:hover .text,
918
+ .VPSidebarItem.level-3.is-link > .item > .link:hover .text,
919
+ .VPSidebarItem.level-4.is-link > .item > .link:hover .text,
920
+ .VPSidebarItem.level-5.is-link > .item > .link:hover .text {
921
+ color: var(--vp-c-brand-1);
922
+ }
923
+
924
+ .VPSidebarItem.level-0.has-active > .item > .text,
925
+ .VPSidebarItem.level-1.has-active > .item > .text,
926
+ .VPSidebarItem.level-2.has-active > .item > .text,
927
+ .VPSidebarItem.level-3.has-active > .item > .text,
928
+ .VPSidebarItem.level-4.has-active > .item > .text,
929
+ .VPSidebarItem.level-5.has-active > .item > .text,
930
+ .VPSidebarItem.level-0.has-active > .item > .link > .text,
931
+ .VPSidebarItem.level-1.has-active > .item > .link > .text,
932
+ .VPSidebarItem.level-2.has-active > .item > .link > .text,
933
+ .VPSidebarItem.level-3.has-active > .item > .link > .text,
934
+ .VPSidebarItem.level-4.has-active > .item > .link > .text,
935
+ .VPSidebarItem.level-5.has-active > .item > .link > .text {
936
+ color: var(--vp-c-text-1);
937
+ }
938
+
939
+ .VPSidebarItem.level-0.is-active > .item .link > .text,
940
+ .VPSidebarItem.level-1.is-active > .item .link > .text,
941
+ .VPSidebarItem.level-2.is-active > .item .link > .text,
942
+ .VPSidebarItem.level-3.is-active > .item .link > .text,
943
+ .VPSidebarItem.level-4.is-active > .item .link > .text,
944
+ .VPSidebarItem.level-5.is-active > .item .link > .text {
945
+ color: var(--vp-c-brand-1);
946
+ }
947
+
948
+ .VPSidebarItem .caret {
949
+ display: flex;
950
+ justify-content: center;
951
+ align-items: center;
952
+ margin-right: -7px;
953
+ width: 32px;
954
+ height: 32px;
955
+ color: var(--vp-c-text-3);
956
+ cursor: pointer;
957
+ transition: color 0.25s;
958
+ flex-shrink: 0;
959
+ }
960
+
961
+ .VPSidebarItem .item:hover .caret {
962
+ color: var(--vp-c-text-2);
963
+ }
964
+
965
+ .VPSidebarItem .item:hover .caret:hover {
966
+ color: var(--vp-c-text-1);
967
+ }
968
+
969
+ .VPSidebarItem .caret-icon {
970
+ font-size: 18px;
971
+ /*rtl:ignore*/
972
+ transform: rotate(90deg);
973
+ transition: transform 0.25s;
974
+ }
975
+
976
+ .VPSidebarItem.collapsed .caret-icon {
977
+ transform: rotate(0)/*rtl:rotate(180deg)*/;
978
+ }
979
+
980
+ .VPSidebarItem.level-1 .items,
981
+ .VPSidebarItem.level-2 .items,
982
+ .VPSidebarItem.level-3 .items,
983
+ .VPSidebarItem.level-4 .items,
984
+ .VPSidebarItem.level-5 .items {
985
+ border-left: 1px solid var(--vp-c-divider);
986
+ padding-left: 16px;
987
+ }
988
+
989
+ .VPSidebarItem.collapsed .items {
990
+ display: none;
991
+ }
992
+
993
+
994
+ /* ==== components/VPContent.vue ==== */
995
+ .VPContent {
996
+ flex-grow: 1;
997
+ flex-shrink: 0;
998
+ margin: var(--vp-layout-top-height, 0px) auto 0;
999
+ width: 100%;
1000
+ }
1001
+
1002
+ .VPContent.is-home {
1003
+ width: 100%;
1004
+ max-width: 100%;
1005
+ }
1006
+
1007
+ .VPContent.has-sidebar {
1008
+ margin: 0;
1009
+ }
1010
+
1011
+ @media (min-width: 960px) {
1012
+ .VPContent {
1013
+ padding-top: var(--vp-nav-height);
1014
+ }
1015
+
1016
+ .VPContent.has-sidebar {
1017
+ margin: var(--vp-layout-top-height, 0px) 0 0;
1018
+ padding-left: var(--vp-sidebar-width);
1019
+ }
1020
+ }
1021
+
1022
+ @media (min-width: 1440px) {
1023
+ .VPContent.has-sidebar {
1024
+ padding-right: calc((100% - var(--vp-layout-max-width)) / 2);
1025
+ padding-left: calc((100% - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width));
1026
+ }
1027
+ }
1028
+
1029
+
1030
+ /* ==== components/VPDoc.vue ==== */
1031
+ .VPDoc {
1032
+ padding: 32px 24px 96px;
1033
+ width: 100%;
1034
+ }
1035
+
1036
+ @media (min-width: 768px) {
1037
+ .VPDoc {
1038
+ padding: 48px 32px 128px;
1039
+ }
1040
+ }
1041
+
1042
+ @media (min-width: 960px) {
1043
+ .VPDoc {
1044
+ padding: 48px 32px 0;
1045
+ }
1046
+
1047
+ .VPDoc:not(.has-sidebar) .container {
1048
+ display: flex;
1049
+ justify-content: center;
1050
+ max-width: 992px;
1051
+ }
1052
+
1053
+ .VPDoc:not(.has-sidebar) .content {
1054
+ max-width: 752px;
1055
+ }
1056
+ }
1057
+
1058
+ @media (min-width: 1280px) {
1059
+ .VPDoc .container {
1060
+ display: flex;
1061
+ justify-content: center;
1062
+ }
1063
+
1064
+ .VPDoc .aside {
1065
+ display: block;
1066
+ }
1067
+ }
1068
+
1069
+ @media (min-width: 1440px) {
1070
+ .VPDoc:not(.has-sidebar) .content {
1071
+ max-width: 784px;
1072
+ }
1073
+
1074
+ .VPDoc:not(.has-sidebar) .container {
1075
+ max-width: 1104px;
1076
+ }
1077
+ }
1078
+
1079
+ .VPDoc .container {
1080
+ margin: 0 auto;
1081
+ width: 100%;
1082
+ }
1083
+
1084
+ .aside {
1085
+ position: relative;
1086
+ display: none;
1087
+ order: 2;
1088
+ flex-grow: 1;
1089
+ padding-left: 32px;
1090
+ width: 100%;
1091
+ max-width: 256px;
1092
+ }
1093
+
1094
+ .VPDoc .left-aside {
1095
+ order: 1;
1096
+ padding-left: unset;
1097
+ padding-right: 32px;
1098
+ }
1099
+
1100
+ .VPDoc .aside-container {
1101
+ position: fixed;
1102
+ top: 0;
1103
+ padding-top: calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);
1104
+ width: 224px;
1105
+ height: 100vh;
1106
+ overflow-x: hidden;
1107
+ overflow-y: auto;
1108
+ scrollbar-width: none;
1109
+ }
1110
+
1111
+ .VPDoc .aside-container::-webkit-scrollbar {
1112
+ display: none;
1113
+ }
1114
+
1115
+ .VPDoc .aside-curtain {
1116
+ position: fixed;
1117
+ bottom: 0;
1118
+ z-index: 10;
1119
+ width: 224px;
1120
+ height: 32px;
1121
+ background: linear-gradient(transparent, var(--vp-c-bg) 70%);
1122
+ pointer-events: none;
1123
+ }
1124
+
1125
+ .VPDoc .aside-content {
1126
+ display: flex;
1127
+ flex-direction: column;
1128
+ min-height: calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));
1129
+ padding-bottom: 32px;
1130
+ }
1131
+
1132
+ .VPDoc .content {
1133
+ position: relative;
1134
+ margin: 0 auto;
1135
+ width: 100%;
1136
+ }
1137
+
1138
+ @media (min-width: 960px) {
1139
+ .VPDoc .content {
1140
+ padding: 0 32px 128px;
1141
+ }
1142
+ }
1143
+
1144
+ @media (min-width: 1280px) {
1145
+ .VPDoc .content {
1146
+ order: 1;
1147
+ margin: 0;
1148
+ min-width: 640px;
1149
+ }
1150
+ }
1151
+
1152
+ .VPDoc .content-container {
1153
+ margin: 0 auto;
1154
+ }
1155
+
1156
+ .VPDoc.has-aside .content-container {
1157
+ max-width: 688px;
1158
+ }
1159
+
1160
+
1161
+ /* ==== components/VPDocAside.vue ==== */
1162
+ .VPDocAside {
1163
+ display: flex;
1164
+ flex-direction: column;
1165
+ flex-grow: 1;
1166
+ }
1167
+
1168
+ .VPDocAside .spacer {
1169
+ flex-grow: 1;
1170
+ }
1171
+
1172
+ .VPDocAside .spacer + .VPDocAsideSponsors,
1173
+ .VPDocAside .spacer + .VPDocAsideCarbonAds {
1174
+ margin-top: 24px;
1175
+ }
1176
+
1177
+ .VPDocAside .VPDocAsideSponsors + .VPDocAsideCarbonAds {
1178
+ margin-top: 16px;
1179
+ }
1180
+
1181
+
1182
+ /* ==== components/VPDocAsideOutline.vue ==== */
1183
+ .VPDocAsideOutline {
1184
+ display: none;
1185
+ }
1186
+
1187
+ .VPDocAsideOutline.has-outline {
1188
+ display: block;
1189
+ }
1190
+
1191
+ .VPDocAsideOutline .content {
1192
+ position: relative;
1193
+ border-left: 1px solid var(--vp-c-divider);
1194
+ padding-left: 16px;
1195
+ font-size: 13px;
1196
+ font-weight: 500;
1197
+ }
1198
+
1199
+ .VPDocAsideOutline .outline-marker {
1200
+ position: absolute;
1201
+ top: 32px;
1202
+ left: -1px;
1203
+ z-index: 0;
1204
+ opacity: 0;
1205
+ width: 2px;
1206
+ border-radius: 2px;
1207
+ height: 18px;
1208
+ background-color: var(--vp-c-brand-1);
1209
+ transition:
1210
+ top 0.25s cubic-bezier(0, 1, 0.5, 1),
1211
+ background-color 0.5s,
1212
+ opacity 0.25s;
1213
+ }
1214
+
1215
+ .VPDocAsideOutline .outline-title {
1216
+ line-height: 32px;
1217
+ font-size: 14px;
1218
+ font-weight: 600;
1219
+ }
1220
+
1221
+
1222
+ /* ==== components/VPDocOutlineItem.vue ==== */
1223
+ .VPDocOutlineItem.root {
1224
+ position: relative;
1225
+ z-index: 1;
1226
+ }
1227
+
1228
+ .VPDocOutlineItem.nested {
1229
+ padding-right: 16px;
1230
+ padding-left: 16px;
1231
+ }
1232
+
1233
+ .VPDocOutlineItem .outline-link {
1234
+ display: block;
1235
+ line-height: 32px;
1236
+ font-size: 14px;
1237
+ font-weight: 400;
1238
+ color: var(--vp-c-text-2);
1239
+ white-space: nowrap;
1240
+ overflow: hidden;
1241
+ text-overflow: ellipsis;
1242
+ transition: color 0.5s;
1243
+ }
1244
+
1245
+ .VPDocOutlineItem .outline-link:hover,
1246
+ .VPDocOutlineItem .outline-link.active {
1247
+ color: var(--vp-c-text-1);
1248
+ transition: color 0.25s;
1249
+ }
1250
+
1251
+ .VPDocOutlineItem .outline-link.nested {
1252
+ padding-left: 13px;
1253
+ }
1254
+
1255
+
1256
+ /* ==== components/VPDocFooter.vue ==== */
1257
+ .VPDocFooter {
1258
+ margin-top: 64px;
1259
+ }
1260
+
1261
+ .VPDocFooter .edit-info {
1262
+ padding-bottom: 18px;
1263
+ }
1264
+
1265
+ @media (min-width: 640px) {
1266
+ .VPDocFooter .edit-info {
1267
+ display: flex;
1268
+ justify-content: space-between;
1269
+ align-items: center;
1270
+ padding-bottom: 14px;
1271
+ }
1272
+ }
1273
+
1274
+ .VPDocFooter .edit-link-button {
1275
+ display: flex;
1276
+ align-items: center;
1277
+ border: 0;
1278
+ line-height: 32px;
1279
+ font-size: 14px;
1280
+ font-weight: 500;
1281
+ color: var(--vp-c-brand-1);
1282
+ transition: color 0.25s;
1283
+ }
1284
+
1285
+ .VPDocFooter .edit-link-button:hover {
1286
+ color: var(--vp-c-brand-2);
1287
+ }
1288
+
1289
+ .VPDocFooter .edit-link-icon {
1290
+ margin-right: 8px;
1291
+ }
1292
+
1293
+ .VPDocFooter .prev-next {
1294
+ border-top: 1px solid var(--vp-c-divider);
1295
+ padding-top: 24px;
1296
+ display: grid;
1297
+ grid-row-gap: 8px;
1298
+ }
1299
+
1300
+ @media (min-width: 640px) {
1301
+ .VPDocFooter .prev-next {
1302
+ grid-template-columns: repeat(2, 1fr);
1303
+ grid-column-gap: 16px;
1304
+ }
1305
+ }
1306
+
1307
+ .VPDocFooter .pager-link {
1308
+ display: block;
1309
+ border: 1px solid var(--vp-c-divider);
1310
+ border-radius: 8px;
1311
+ padding: 11px 16px 13px;
1312
+ width: 100%;
1313
+ height: 100%;
1314
+ transition: border-color 0.25s;
1315
+ }
1316
+
1317
+ .VPDocFooter .pager-link:hover {
1318
+ border-color: var(--vp-c-brand-1);
1319
+ }
1320
+
1321
+ .VPDocFooter .pager-link.next {
1322
+ margin-left: auto;
1323
+ text-align: right;
1324
+ }
1325
+
1326
+ .VPDocFooter .desc {
1327
+ display: block;
1328
+ line-height: 20px;
1329
+ font-size: 12px;
1330
+ font-weight: 500;
1331
+ color: var(--vp-c-text-2);
1332
+ }
1333
+
1334
+ .VPDocFooter .title {
1335
+ display: block;
1336
+ line-height: 20px;
1337
+ font-size: 14px;
1338
+ font-weight: 500;
1339
+ color: var(--vp-c-brand-1);
1340
+ transition: color 0.25s;
1341
+ }
1342
+
1343
+
1344
+ /* ==== components/VPFooter.vue ==== */
1345
+ .VPFooter {
1346
+ position: relative;
1347
+ z-index: var(--vp-z-index-footer);
1348
+ border-top: 1px solid var(--vp-c-gutter);
1349
+ padding: 32px 24px;
1350
+ background-color: var(--vp-c-bg);
1351
+ }
1352
+
1353
+ .VPFooter.has-sidebar {
1354
+ display: none;
1355
+ }
1356
+
1357
+ .VPFooter a {
1358
+ text-decoration-line: underline;
1359
+ text-underline-offset: 2px;
1360
+ transition: color 0.25s;
1361
+ }
1362
+
1363
+ .VPFooter a:hover {
1364
+ color: var(--vp-c-text-1);
1365
+ }
1366
+
1367
+ @media (min-width: 768px) {
1368
+ .VPFooter {
1369
+ padding: 32px;
1370
+ }
1371
+ }
1372
+
1373
+ .VPFooter .container {
1374
+ margin: 0 auto;
1375
+ max-width: var(--vp-layout-max-width);
1376
+ text-align: center;
1377
+ }
1378
+
1379
+ .VPFooter .message,
1380
+ .VPFooter .copyright {
1381
+ line-height: 24px;
1382
+ font-size: 14px;
1383
+ font-weight: 500;
1384
+ color: var(--vp-c-text-2);
1385
+ }
1386
+
1387
+
1388
+ /* ==== components/VPSwitch.vue ==== */
1389
+ .VPSwitch {
1390
+ position: relative;
1391
+ border-radius: 11px;
1392
+ display: block;
1393
+ width: 40px;
1394
+ height: 22px;
1395
+ flex-shrink: 0;
1396
+ border: 1px solid var(--vp-input-border-color);
1397
+ background-color: var(--vp-input-switch-bg-color);
1398
+ transition: border-color 0.25s !important;
1399
+ }
1400
+
1401
+ .VPSwitch:hover {
1402
+ border-color: var(--vp-c-brand-1);
1403
+ }
1404
+
1405
+ .VPSwitch .check {
1406
+ position: absolute;
1407
+ top: 1px;
1408
+ /*rtl:ignore*/
1409
+ left: 1px;
1410
+ width: 18px;
1411
+ height: 18px;
1412
+ border-radius: 50%;
1413
+ background-color: var(--vp-c-neutral-inverse);
1414
+ box-shadow: var(--vp-shadow-1);
1415
+ transition: transform 0.25s !important;
1416
+ }
1417
+
1418
+ .VPSwitch .icon {
1419
+ position: relative;
1420
+ display: block;
1421
+ width: 18px;
1422
+ height: 18px;
1423
+ border-radius: 50%;
1424
+ overflow: hidden;
1425
+ }
1426
+
1427
+ .VPSwitch .icon [class^='vpi-'] {
1428
+ position: absolute;
1429
+ top: 3px;
1430
+ left: 3px;
1431
+ width: 12px;
1432
+ height: 12px;
1433
+ color: var(--vp-c-text-2);
1434
+ }
1435
+
1436
+ .dark .VPSwitch .icon [class^='vpi-'] {
1437
+ color: var(--vp-c-text-1);
1438
+ transition: opacity 0.25s !important;
1439
+ }
1440
+
1441
+
1442
+ /* ==== components/VPSwitchAppearance.vue ==== */
1443
+ .VPSwitchAppearance .sun {
1444
+ opacity: 1;
1445
+ }
1446
+
1447
+ .VPSwitchAppearance .moon {
1448
+ opacity: 0;
1449
+ }
1450
+
1451
+ .dark .VPSwitchAppearance .sun {
1452
+ opacity: 0;
1453
+ }
1454
+
1455
+ .dark .VPSwitchAppearance .moon {
1456
+ opacity: 1;
1457
+ }
1458
+
1459
+ .dark .VPSwitchAppearance .check {
1460
+ /*rtl:ignore*/
1461
+ transform: translateX(18px);
1462
+ }
1463
+
1464
+
1465
+ /* ==== components/VPSocialLinks.vue ==== */
1466
+ .VPSocialLinks {
1467
+ display: flex;
1468
+ justify-content: center;
1469
+ }
1470
+
1471
+
1472
+ /* ==== components/VPSocialLink.vue ==== */
1473
+ .VPSocialLink {
1474
+ display: flex;
1475
+ justify-content: center;
1476
+ align-items: center;
1477
+ width: 36px;
1478
+ height: 36px;
1479
+ color: var(--vp-c-text-2);
1480
+ transition: color 0.5s;
1481
+ }
1482
+
1483
+ .VPSocialLink:hover {
1484
+ color: var(--vp-c-text-1);
1485
+ transition: color 0.25s;
1486
+ }
1487
+
1488
+ .VPSocialLink > svg,
1489
+ .VPSocialLink > [class^="vpi-social-"] {
1490
+ width: 20px;
1491
+ height: 20px;
1492
+ fill: currentColor;
1493
+ }
1494
+
1495
+
1496
+ /* ==== components/VPSkipLink.vue ==== */
1497
+ .VPSkipLink {
1498
+ position: fixed;
1499
+ top: 8px;
1500
+ left: 8px;
1501
+ padding: 8px 16px;
1502
+ z-index: 999;
1503
+ border-radius: 8px;
1504
+ font-size: 12px;
1505
+ font-weight: bold;
1506
+ text-decoration: none;
1507
+ color: var(--vp-c-brand-1);
1508
+ box-shadow: var(--vp-shadow-3);
1509
+ background-color: var(--vp-c-bg);
1510
+ }
1511
+
1512
+ .VPSkipLink:focus {
1513
+ height: auto;
1514
+ width: auto;
1515
+ clip: auto;
1516
+ clip-path: none;
1517
+ }
1518
+
1519
+ @media (min-width: 1280px) {
1520
+ .VPSkipLink {
1521
+ top: 14px;
1522
+ left: 16px;
1523
+ }
1524
+ }