@farming-labs/nuxt-theme 0.0.3-beta.2 → 0.0.3-beta.3
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/package.json +2 -2
- package/src/components/DocsContent.vue +289 -10
- package/src/components/DocsLayout.vue +1 -0
- package/src/components/DocsPage.vue +4 -1
- package/src/components/FloatingAIChat.vue +2 -2
- package/src/components/SearchDialog.vue +341 -62
- package/src/components/TableOfContents.vue +98 -54
- package/src/themes/colorful.js +1 -1
- package/src/themes/default.js +1 -1
- package/styles/colorful.css +49 -3
- package/styles/darksharp.css +18 -0
- package/styles/docs.css +202 -12
- package/styles/greentree.css +237 -27
- package/styles/omni.css +292 -0
- package/styles/pixel-border-bundle.css +2 -2
- package/styles/pixel-border.css +108 -2
package/styles/colorful.css
CHANGED
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
--color-fd-primary-foreground: hsl(0, 0%, 5%);
|
|
17
17
|
--color-fd-ring: hsl(45, 90%, 55%);
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
.fd-table-wrapper {
|
|
20
|
+
border: none !important;
|
|
21
|
+
}
|
|
22
|
+
/* ─── Page description (below title, match Next.js) ─────────────────── */
|
|
21
23
|
|
|
22
24
|
.fd-page-description {
|
|
23
|
-
margin-bottom: 1rem;
|
|
24
25
|
font-size: 1.125rem;
|
|
25
26
|
line-height: 1.75;
|
|
26
27
|
color: var(--color-fd-muted-foreground);
|
|
@@ -148,3 +149,48 @@
|
|
|
148
149
|
.fd-docs-content hr {
|
|
149
150
|
border-color: var(--color-fd-border);
|
|
150
151
|
}
|
|
152
|
+
|
|
153
|
+
/* ─── Omni Command Palette (colorful theme) ─────────────────────────── */
|
|
154
|
+
|
|
155
|
+
.omni-content {
|
|
156
|
+
border-radius: 0.75rem;
|
|
157
|
+
border: 1px solid var(--color-fd-border);
|
|
158
|
+
background: var(--color-fd-popover);
|
|
159
|
+
box-shadow:
|
|
160
|
+
0 24px 60px -12px rgba(180, 140, 20, 0.12),
|
|
161
|
+
0 0 0 1px rgba(255, 255, 255, 0.04);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.omni-item-active {
|
|
165
|
+
background: color-mix(in srgb, var(--color-fd-primary) 15%, transparent);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.omni-highlight {
|
|
169
|
+
background: color-mix(in srgb, var(--color-fd-primary) 30%, transparent);
|
|
170
|
+
color: var(--color-fd-primary-foreground);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.omni-search-input:focus {
|
|
174
|
+
caret-color: var(--color-fd-primary);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* ─── Ask AI button (floating + custom trigger) — sync with Next.js ───── */
|
|
178
|
+
|
|
179
|
+
.fd-ai-floating-btn {
|
|
180
|
+
border-radius: 26px;
|
|
181
|
+
box-shadow: 0 8px 32px rgba(180, 140, 20, 0.3);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.fd-ai-floating-btn:hover {
|
|
185
|
+
box-shadow: 0 10px 40px rgba(180, 140, 20, 0.4);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.fd-ai-floating-trigger .ask-ai-trigger {
|
|
189
|
+
font-family: var(--fd-font-sans, inherit);
|
|
190
|
+
border-radius: 26px !important;
|
|
191
|
+
box-shadow: 0 8px 32px rgba(180, 140, 20, 0.3) !important;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.fd-ai-floating-trigger .ask-ai-trigger:hover {
|
|
195
|
+
box-shadow: 0 10px 40px rgba(180, 140, 20, 0.4);
|
|
196
|
+
}
|
package/styles/darksharp.css
CHANGED
|
@@ -204,3 +204,21 @@ code:not(pre code) {
|
|
|
204
204
|
.fd-ai-fm-trigger-btn:hover {
|
|
205
205
|
transform: none;
|
|
206
206
|
}
|
|
207
|
+
|
|
208
|
+
.fd-ai-floating-trigger .ask-ai-trigger {
|
|
209
|
+
font-family: var(--fd-font-sans, inherit);
|
|
210
|
+
border-radius: 2px !important;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.fd-ai-floating-trigger .ask-ai-trigger:hover {
|
|
214
|
+
box-shadow: 0 0 0 1px var(--color-fd-ring);
|
|
215
|
+
transform: none;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.fd-ai-fm-input-bar .fd-ai-floating-trigger .ask-ai-trigger {
|
|
219
|
+
border-radius: 2px !important;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.fd-ai-fm-input-bar .fd-ai-floating-trigger .ask-ai-trigger:hover {
|
|
223
|
+
transform: none;
|
|
224
|
+
}
|
package/styles/docs.css
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @farming-labs/
|
|
2
|
+
* @farming-labs/nuxt-theme — Fumadocs-accurate docs stylesheet
|
|
3
3
|
*
|
|
4
4
|
* Pixel-perfect port of fumadocs-ui's neutral preset.
|
|
5
5
|
* Uses the same CSS custom property system:
|
|
6
6
|
* --color-fd-primary, --color-fd-background, --color-fd-foreground, etc.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
@import "./omni.css";
|
|
10
|
+
|
|
9
11
|
/* ─── CSS Reset ──────────────────────────────────────────────────────── */
|
|
10
12
|
|
|
11
13
|
*,
|
|
@@ -70,10 +72,11 @@ html {
|
|
|
70
72
|
|
|
71
73
|
body {
|
|
72
74
|
font-family: var(--fd-font-sans, ui-sans-serif, system-ui, -apple-system, sans-serif);
|
|
75
|
+
font-size: var(--fd-body-size, 1rem);
|
|
76
|
+
font-weight: var(--fd-body-weight, 400);
|
|
77
|
+
line-height: var(--fd-body-line-height, 1.75);
|
|
73
78
|
background: var(--color-fd-background);
|
|
74
79
|
color: var(--color-fd-foreground);
|
|
75
|
-
line-height: 1.5;
|
|
76
|
-
font-size: 14px;
|
|
77
80
|
-webkit-font-smoothing: antialiased;
|
|
78
81
|
-moz-osx-font-smoothing: grayscale;
|
|
79
82
|
}
|
|
@@ -88,6 +91,7 @@ samp {
|
|
|
88
91
|
"Cascadia Code",
|
|
89
92
|
"Source Code Pro",
|
|
90
93
|
Menlo,
|
|
94
|
+
Consolas,
|
|
91
95
|
monospace
|
|
92
96
|
);
|
|
93
97
|
}
|
|
@@ -511,6 +515,11 @@ samp {
|
|
|
511
515
|
|
|
512
516
|
/* ─── Clerk TOC (tree-line style) ────────────────────────────────────── */
|
|
513
517
|
|
|
518
|
+
.fd-toc-clerk-wrap {
|
|
519
|
+
position: relative;
|
|
520
|
+
min-height: 0;
|
|
521
|
+
}
|
|
522
|
+
|
|
514
523
|
.fd-toc-clerk {
|
|
515
524
|
border-left: none !important;
|
|
516
525
|
}
|
|
@@ -560,24 +569,167 @@ samp {
|
|
|
560
569
|
}
|
|
561
570
|
}
|
|
562
571
|
|
|
563
|
-
/* ─── Page description (
|
|
572
|
+
/* ─── Page title + description (match Astro: title first, then description) ─────── */
|
|
573
|
+
|
|
574
|
+
.fd-page-title {
|
|
575
|
+
font-size: var(--fd-h1-size, 2.25rem);
|
|
576
|
+
font-weight: var(--fd-h1-weight, 700);
|
|
577
|
+
line-height: var(--fd-h1-line-height, 1.2);
|
|
578
|
+
letter-spacing: var(--fd-h1-letter-spacing, -0.025em);
|
|
579
|
+
margin: 0 0 0.5rem;
|
|
580
|
+
scroll-margin-top: 80px;
|
|
581
|
+
}
|
|
564
582
|
|
|
565
583
|
.fd-page-description {
|
|
584
|
+
margin-top: 0;
|
|
566
585
|
margin-bottom: 1rem;
|
|
567
|
-
font-size: 1.125rem;
|
|
568
|
-
|
|
586
|
+
font-size: var(--fd-body-size, 1.125rem);
|
|
587
|
+
font-weight: var(--fd-body-weight, 400);
|
|
588
|
+
line-height: var(--fd-body-line-height, 1.75);
|
|
569
589
|
color: var(--color-fd-muted-foreground);
|
|
570
590
|
}
|
|
571
591
|
|
|
592
|
+
/* ─── Page Actions (Copy page / Open in …) ─────────────────────────────── */
|
|
593
|
+
|
|
594
|
+
.fd-page-actions-divider {
|
|
595
|
+
border: none;
|
|
596
|
+
border-top: 1px solid var(--color-fd-border);
|
|
597
|
+
margin: 1rem 0 0.75rem;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
.fd-page-actions,
|
|
601
|
+
[data-page-actions] {
|
|
602
|
+
display: flex;
|
|
603
|
+
flex-direction: row;
|
|
604
|
+
align-items: center;
|
|
605
|
+
gap: 0.5rem;
|
|
606
|
+
margin-top: 0;
|
|
607
|
+
margin-bottom: 1rem;
|
|
608
|
+
width: 100%;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
.fd-page-actions[data-actions-alignment="right"],
|
|
612
|
+
[data-page-actions][data-actions-alignment="right"] {
|
|
613
|
+
justify-content: flex-end;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.fd-page-actions[data-actions-alignment="left"],
|
|
617
|
+
[data-page-actions][data-actions-alignment="left"] {
|
|
618
|
+
justify-content: flex-start;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.fd-page-action-btn {
|
|
622
|
+
display: inline-flex;
|
|
623
|
+
align-items: center;
|
|
624
|
+
gap: 0.375rem;
|
|
625
|
+
padding: 0.375rem 0.75rem;
|
|
626
|
+
font-size: 0.8125rem;
|
|
627
|
+
font-weight: 500;
|
|
628
|
+
line-height: 1;
|
|
629
|
+
min-height: 2rem;
|
|
630
|
+
color: var(--color-fd-muted-foreground);
|
|
631
|
+
background: var(--color-fd-secondary);
|
|
632
|
+
border: 1px solid var(--color-fd-border);
|
|
633
|
+
border-radius: 0.375rem;
|
|
634
|
+
cursor: pointer;
|
|
635
|
+
white-space: nowrap;
|
|
636
|
+
transition:
|
|
637
|
+
color 0.15s,
|
|
638
|
+
background 0.15s,
|
|
639
|
+
border-color 0.15s;
|
|
640
|
+
user-select: none;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.fd-page-action-btn:hover {
|
|
644
|
+
color: var(--color-fd-accent-foreground);
|
|
645
|
+
background: var(--color-fd-accent);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
.fd-page-action-btn[data-copied="true"] {
|
|
649
|
+
color: var(--color-fd-foreground);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.fd-page-action-btn svg {
|
|
653
|
+
flex-shrink: 0;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
.fd-page-action-dropdown {
|
|
657
|
+
position: relative;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.fd-page-action-menu {
|
|
661
|
+
position: absolute;
|
|
662
|
+
top: calc(100% + 0.375rem);
|
|
663
|
+
left: 0;
|
|
664
|
+
z-index: 50;
|
|
665
|
+
min-width: 220px;
|
|
666
|
+
padding: 0.375rem;
|
|
667
|
+
background: var(--color-fd-popover, var(--color-fd-background));
|
|
668
|
+
border: 1px solid var(--color-fd-border);
|
|
669
|
+
border-radius: 0.5rem;
|
|
670
|
+
box-shadow: 0 4px 24px hsl(0 0% 0% / 0.15);
|
|
671
|
+
display: flex;
|
|
672
|
+
flex-direction: column;
|
|
673
|
+
gap: 0.125rem;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.fd-page-action-menu[hidden] {
|
|
677
|
+
display: none !important;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.fd-page-action-menu-item {
|
|
681
|
+
display: flex;
|
|
682
|
+
align-items: center;
|
|
683
|
+
gap: 0.5rem;
|
|
684
|
+
width: 100%;
|
|
685
|
+
padding: 0.35rem 0.625rem;
|
|
686
|
+
font-size: 0.8125rem;
|
|
687
|
+
font-weight: 400;
|
|
688
|
+
color: var(--color-fd-foreground);
|
|
689
|
+
background: transparent;
|
|
690
|
+
border: none;
|
|
691
|
+
border-radius: 0.25rem;
|
|
692
|
+
cursor: pointer;
|
|
693
|
+
text-align: left;
|
|
694
|
+
text-decoration: none;
|
|
695
|
+
transition: background 0.1s, color 0.1s;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.fd-page-action-menu-item:hover {
|
|
699
|
+
background: var(--color-fd-accent);
|
|
700
|
+
color: var(--color-fd-accent-foreground);
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
.fd-page-action-menu-label {
|
|
704
|
+
flex: 1;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
.fd-page-actions a,
|
|
708
|
+
.fd-page-actions button,
|
|
709
|
+
.fd-page-action-menu-item,
|
|
710
|
+
.fd-page-action-btn {
|
|
711
|
+
text-decoration: none !important;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
.fd-page-action-menu-item:hover {
|
|
715
|
+
text-decoration: none !important;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
.fd-last-modified-below-title {
|
|
719
|
+
margin-top: 0.25rem;
|
|
720
|
+
margin-bottom: 1rem;
|
|
721
|
+
}
|
|
722
|
+
|
|
572
723
|
/* ─── Breadcrumb ─────────────────────────────────────────────────────── */
|
|
573
724
|
|
|
574
725
|
.fd-breadcrumb {
|
|
575
726
|
display: flex;
|
|
576
727
|
align-items: center;
|
|
577
728
|
gap: 0;
|
|
578
|
-
font-size:
|
|
729
|
+
font-size: var(--fd-small-size, 0.8125rem);
|
|
730
|
+
font-family: var(--fd-font-sans, inherit);
|
|
579
731
|
color: var(--color-fd-muted-foreground);
|
|
580
|
-
margin-bottom:
|
|
732
|
+
margin-bottom: 2rem;
|
|
581
733
|
}
|
|
582
734
|
|
|
583
735
|
.fd-breadcrumb-item {
|
|
@@ -588,7 +740,7 @@ samp {
|
|
|
588
740
|
.fd-breadcrumb-sep {
|
|
589
741
|
margin: 0 6px;
|
|
590
742
|
opacity: 0.4;
|
|
591
|
-
font-size:
|
|
743
|
+
font-size: var(--fd-small-size, 0.75rem);
|
|
592
744
|
}
|
|
593
745
|
|
|
594
746
|
.fd-breadcrumb-parent {
|
|
@@ -805,6 +957,9 @@ samp {
|
|
|
805
957
|
|
|
806
958
|
.fd-page-body p {
|
|
807
959
|
margin: 0 0 16px;
|
|
960
|
+
font-size: var(--fd-body-size, 1rem);
|
|
961
|
+
font-weight: var(--fd-body-weight, 400);
|
|
962
|
+
line-height: var(--fd-body-line-height, 1.75);
|
|
808
963
|
}
|
|
809
964
|
|
|
810
965
|
.fd-page-body ul,
|
|
@@ -815,6 +970,9 @@ samp {
|
|
|
815
970
|
|
|
816
971
|
.fd-page-body li {
|
|
817
972
|
margin: 4px 0;
|
|
973
|
+
font-size: var(--fd-body-size, 1rem);
|
|
974
|
+
font-weight: var(--fd-body-weight, 400);
|
|
975
|
+
line-height: var(--fd-body-line-height, 1.75);
|
|
818
976
|
}
|
|
819
977
|
|
|
820
978
|
.fd-page-body li::marker {
|
|
@@ -1245,7 +1403,8 @@ html.dark pre.shiki {
|
|
|
1245
1403
|
|
|
1246
1404
|
.fd-last-modified {
|
|
1247
1405
|
color: var(--color-fd-muted-foreground);
|
|
1248
|
-
font-size:
|
|
1406
|
+
font-size: var(--fd-small-size, 0.75rem);
|
|
1407
|
+
font-weight: var(--fd-small-weight, 400);
|
|
1249
1408
|
}
|
|
1250
1409
|
|
|
1251
1410
|
@media (max-width: 640px) {
|
|
@@ -1304,7 +1463,7 @@ html.dark pre.shiki {
|
|
|
1304
1463
|
|
|
1305
1464
|
.fd-page-nav-card:hover {
|
|
1306
1465
|
background: var(--color-fd-accent);
|
|
1307
|
-
border-color: var(--color-fd-
|
|
1466
|
+
border-color: var(--color-fd-border);
|
|
1308
1467
|
}
|
|
1309
1468
|
|
|
1310
1469
|
.fd-page-nav-next {
|
|
@@ -2038,7 +2197,8 @@ html.dark pre.shiki {
|
|
|
2038
2197
|
backdrop-filter: blur(4px);
|
|
2039
2198
|
color: var(--color-fd-muted-foreground, #71717a);
|
|
2040
2199
|
cursor: pointer;
|
|
2041
|
-
font-size:
|
|
2200
|
+
font-size: var(--fd-small-size, 0.875rem);
|
|
2201
|
+
font-family: var(--fd-font-sans, inherit);
|
|
2042
2202
|
box-shadow: 0 1px 3px color-mix(in srgb, var(--color-fd-background, #000) 20%, transparent);
|
|
2043
2203
|
transition:
|
|
2044
2204
|
transform 150ms,
|
|
@@ -2064,6 +2224,36 @@ html.dark pre.shiki {
|
|
|
2064
2224
|
animation: fd-ai-fade-in 300ms ease-out;
|
|
2065
2225
|
}
|
|
2066
2226
|
|
|
2227
|
+
/* Custom Ask AI trigger (e.g. triggerComponent): same base as .fd-ai-floating-btn */
|
|
2228
|
+
.fd-ai-floating-trigger .ask-ai-trigger {
|
|
2229
|
+
display: flex;
|
|
2230
|
+
align-items: center;
|
|
2231
|
+
justify-content: center;
|
|
2232
|
+
gap: 8px;
|
|
2233
|
+
padding: 8px 12px;
|
|
2234
|
+
height: 40px;
|
|
2235
|
+
border-radius: 16px;
|
|
2236
|
+
border: 1px solid var(--color-fd-border, rgba(255, 255, 255, 0.1));
|
|
2237
|
+
background: color-mix(in srgb, var(--color-fd-secondary, #f4f4f5) 80%, transparent);
|
|
2238
|
+
backdrop-filter: blur(4px);
|
|
2239
|
+
color: var(--color-fd-muted-foreground, #71717a);
|
|
2240
|
+
cursor: pointer;
|
|
2241
|
+
font-size: var(--fd-small-size, 0.875rem);
|
|
2242
|
+
font-family: var(--fd-font-sans, inherit);
|
|
2243
|
+
box-shadow: 0 1px 3px color-mix(in srgb, var(--color-fd-background, #000) 20%, transparent);
|
|
2244
|
+
transition: transform 150ms, background 150ms, color 150ms;
|
|
2245
|
+
}
|
|
2246
|
+
|
|
2247
|
+
.fd-ai-floating-trigger .ask-ai-trigger:hover {
|
|
2248
|
+
background: var(--color-fd-accent);
|
|
2249
|
+
color: var(--color-fd-accent-foreground);
|
|
2250
|
+
transform: scale(1.03);
|
|
2251
|
+
}
|
|
2252
|
+
|
|
2253
|
+
.fd-ai-floating-trigger .ask-ai-trigger:active {
|
|
2254
|
+
transform: scale(0.97);
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2067
2257
|
/* ═══════════════════════════════════════════════════════════════
|
|
2068
2258
|
Full-Modal (better-auth inspired) — fd-ai-fm-*
|
|
2069
2259
|
═══════════════════════════════════════════════════════════════ */
|