@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.
@@ -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
- /* ─── Description under title ──────────────────────────────────────── */
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
+ }
@@ -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/svelte-theme — Fumadocs-accurate docs stylesheet
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 (frontmatter) ─────────────────────────────────── */
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
- line-height: 1.75;
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: 13px;
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: 8px;
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: 12px;
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: 12px;
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-ring);
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: 14px;
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
  ═══════════════════════════════════════════════════════════════ */