@farming-labs/theme 0.2.97 → 0.2.99

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.
@@ -35,7 +35,7 @@
35
35
  --scrollbar-track: transparent;
36
36
  /* Sharp corners — no rounding */
37
37
  --radius: 0px;
38
- --fd-nav-height: 56px;
38
+ --fd-nav-height: 44px;
39
39
  --fd-banner-height: 0px;
40
40
  --fd-tocnav-height: 0px;
41
41
  }
@@ -149,21 +149,76 @@ code:not(pre code) {
149
149
  * Pixel-border theme — better-auth inspired sidebar, clean dark UI
150
150
  * ═══════════════════════════════════════════════════════════════════ */
151
151
 
152
- /* ─── Wider content area on desktop ──────────────────────────────── */
152
+ /* ─── Production shell geometry ─────────────────────────────────── */
153
153
 
154
154
  @media (min-width: 1024px) {
155
155
  :root {
156
156
  --fd-layout-width: 1400px;
157
157
  }
158
- }
159
158
 
160
- /* ─── Docs grid: sidebar (sticky left, full height) | content | TOC ─────── */
161
- @media (min-width: 768px) {
162
- #nd-docs-layout:not([data-fd-framework]),
163
- #nd-docs-layout:not([data-fd-framework]) [style*="fd-sidebar-col"] {
164
- grid-template-columns: var(--fd-sidebar-col, 0px) 1fr min-content !important;
159
+ #nd-docs-layout.grid:not([data-fd-framework]) {
160
+ --fd-header-height: 44px;
161
+ grid-template:
162
+ "sidebar header header" 44px
163
+ "sidebar main toc" 1fr /
164
+ var(--fd-sidebar-col) minmax(0, 1fr) var(--fd-toc-width) !important;
165
+ }
166
+
167
+ #nd-docs-layout #nd-subnav {
168
+ position: sticky;
169
+ top: 0;
170
+ z-index: 30;
171
+ display: flex !important;
172
+ grid-area: header;
173
+ grid-column: 2 / -1;
174
+ height: 44px;
175
+ padding: 0 105px 0 0;
176
+ border-bottom: 1px solid var(--color-fd-border);
177
+ background: color-mix(in srgb, var(--color-fd-background) 92%, transparent);
178
+ backdrop-filter: blur(12px);
179
+ }
180
+
181
+ #nd-docs-layout #nd-subnav > a,
182
+ #nd-docs-layout #nd-subnav button[aria-label="Open Sidebar"] {
183
+ display: none !important;
184
+ }
185
+
186
+ #nd-docs-layout #nd-subnav button[data-search] {
187
+ width: 56px;
188
+ height: 44px;
189
+ margin-left: auto;
190
+ padding: 0;
191
+ border-left: 1px solid var(--color-fd-border);
192
+ color: var(--color-fd-muted-foreground);
165
193
  }
166
- /* Sidebar stretches to end and sticks on scroll; no max-height so content isn't clipped */
194
+
195
+ /* Farm's desktop header uses the compact keyboard hint in place of the
196
+ * magnifier while keeping Fumadocs' search trigger and shortcut behavior. */
197
+ #nd-docs-layout #nd-subnav button[data-search] svg {
198
+ display: none !important;
199
+ }
200
+
201
+ #nd-docs-layout #nd-subnav button[data-search]::after {
202
+ content: "⌘ K";
203
+ display: inline-flex;
204
+ width: 35px;
205
+ height: 22px;
206
+ align-items: center;
207
+ justify-content: center;
208
+ border: 1px solid var(--color-fd-border);
209
+ background: linear-gradient(
210
+ to right,
211
+ transparent calc(50% - 0.5px),
212
+ var(--color-fd-border) calc(50% - 0.5px),
213
+ var(--color-fd-border) calc(50% + 0.5px),
214
+ transparent calc(50% + 0.5px)
215
+ );
216
+ font-family: var(--fd-font-mono, ui-monospace, monospace);
217
+ font-size: 10px;
218
+ line-height: 1;
219
+ letter-spacing: 1px;
220
+ }
221
+
167
222
  #nd-docs-layout aside#nd-sidebar {
168
223
  position: sticky;
169
224
  top: 0;
@@ -171,49 +226,516 @@ code:not(pre code) {
171
226
  min-height: 0;
172
227
  height: 100vh;
173
228
  }
229
+
230
+ #nd-docs-layout [data-sidebar-placeholder] {
231
+ justify-self: stretch;
232
+ }
233
+
234
+ #nd-docs-layout article#nd-page {
235
+ width: min(100%, var(--fd-content-width));
236
+ max-width: none;
237
+ margin-inline: auto;
238
+ padding: 47px 40px 80px !important;
239
+ gap: 0;
240
+ }
241
+
242
+ #nd-docs-layout article#nd-page > .prose {
243
+ max-width: none;
244
+ }
245
+
246
+ #nd-docs-layout #nd-toc {
247
+ display: flex !important;
248
+ width: var(--fd-toc-width);
249
+ padding: 48px 16px 8px 0;
250
+ }
174
251
  }
175
252
 
176
- @media (min-width: 1024px) {
253
+ /* Keep the compact shell through tablet sizes. The sidebar itself stays on
254
+ * Fumadocs' native mobile lifecycle so focus, scroll locking, Escape, and
255
+ * backdrop dismissal work consistently at every touch breakpoint. */
256
+ @media (max-width: 1023px) {
257
+ :root {
258
+ --fd-mobile-nav-height: 56px;
259
+ }
260
+
261
+ /* Farm's server-rendered sidebar brand defaults to a 44px row followed by
262
+ * an 18px gap. On tablet, that puts its divider below the 56px mobile
263
+ * topbar. Give both sides of the shell one shared header edge instead. */
264
+ #nd-docs-layout aside#nd-sidebar > .sidebar-brand {
265
+ height: var(--fd-mobile-nav-height);
266
+ min-height: var(--fd-mobile-nav-height);
267
+ max-height: var(--fd-mobile-nav-height);
268
+ flex-basis: var(--fd-mobile-nav-height);
269
+ margin-bottom: 0;
270
+ }
271
+
272
+ body {
273
+ overflow-x: hidden;
274
+ }
275
+
177
276
  #nd-docs-layout.grid:not([data-fd-framework]) {
178
- grid-template:
179
- "sidebar header toc"
180
- "sidebar toc-popover toc"
181
- "sidebar main toc" 1fr /
182
- var(--fd-sidebar-col) minmax(0, 1fr) var(--fd-toc-width) !important;
277
+ --fd-header-height: 56px;
278
+ display: block !important;
279
+ min-height: 100dvh;
280
+ padding-top: 56px;
183
281
  }
184
282
 
185
- #nd-docs-layout [data-sidebar-placeholder] {
186
- justify-self: stretch;
283
+ #nd-docs-layout #nd-subnav {
284
+ position: fixed;
285
+ inset: 0 0 auto;
286
+ z-index: 80;
287
+ display: flex !important;
288
+ width: 100%;
289
+ height: 56px;
290
+ padding: 0 105px 0 0;
291
+ border-bottom: 1px solid var(--color-fd-border);
292
+ background: color-mix(in srgb, var(--color-fd-background) 94%, transparent);
293
+ backdrop-filter: blur(12px);
294
+ }
295
+
296
+ #nd-docs-layout #nd-subnav > a {
297
+ display: none;
298
+ }
299
+
300
+ #nd-docs-layout #nd-subnav > div.flex-1 {
301
+ order: 2;
302
+ }
303
+
304
+ #nd-docs-layout #nd-subnav button[aria-label="Open Sidebar"] {
305
+ order: 1;
306
+ width: 56px;
307
+ height: 56px;
308
+ padding: 0;
309
+ border-right: 1px solid var(--color-fd-border);
310
+ }
311
+
312
+ #nd-docs-layout #nd-subnav button[aria-label="Open Sidebar"] svg {
313
+ display: none;
314
+ }
315
+
316
+ #nd-docs-layout #nd-subnav button[aria-label="Open Sidebar"]::before {
317
+ content: "";
318
+ width: 18px;
319
+ height: 1.5px;
320
+ background: currentColor;
321
+ box-shadow:
322
+ 0 -6px 0 currentColor,
323
+ 0 6px 0 currentColor;
324
+ }
325
+
326
+ #nd-docs-layout #nd-subnav button[data-search] {
327
+ order: 3;
328
+ width: 44px;
329
+ height: 56px;
330
+ margin-left: auto;
331
+ padding: 0;
332
+ border-left: 1px solid var(--color-fd-border);
333
+ color: var(--color-fd-muted-foreground);
334
+ }
335
+
336
+ #nd-docs-layout [data-sidebar-placeholder],
337
+ #nd-docs-layout [data-sidebar-panel],
338
+ #nd-docs-layout [data-toc-popover],
339
+ #nd-docs-layout #nd-toc {
340
+ display: none !important;
187
341
  }
188
342
 
189
343
  #nd-docs-layout article#nd-page {
344
+ width: 100%;
190
345
  max-width: none;
191
- margin-inline: 0;
346
+ margin: 0;
347
+ padding: 34px 20px 64px !important;
348
+ gap: 0;
192
349
  }
193
350
 
194
351
  #nd-docs-layout article#nd-page > .prose {
195
352
  max-width: none;
196
353
  }
197
- }
198
354
 
199
- /* ─── Mobile: ensure sidebar drawer/content isn't clipped ───────────────── */
200
- @media (max-width: 767px) {
201
- #nd-docs-layout aside#nd-sidebar {
355
+ html:has([data-fd-tablet-sidebar-state="open"]) {
356
+ overflow: hidden;
357
+ }
358
+
359
+ #nd-docs-layout:has([data-fd-tablet-sidebar-state="open"])
360
+ [data-sidebar-placeholder] {
361
+ position: fixed;
362
+ inset: 0 auto 0 0;
363
+ z-index: 100;
364
+ display: block !important;
365
+ width: min(342px, calc(100vw - 42px));
366
+ height: 100dvh;
367
+ pointer-events: auto;
368
+ }
369
+
370
+ #nd-docs-layout:has([data-fd-tablet-sidebar-state="open"])
371
+ [data-sidebar-placeholder]
372
+ > aside {
373
+ position: absolute;
374
+ inset: 0;
375
+ width: 100% !important;
376
+ height: 100dvh;
202
377
  max-height: none;
203
- overflow-y: visible;
378
+ }
379
+
380
+ /* Fumadocs keeps the desktop sidebar's internal width on its direct
381
+ * children. The tablet drawer is wider, so the end-aligned children left a
382
+ * large empty gutter at the start of the panel. Let the header and tree use
383
+ * the full overlay width instead. */
384
+ #nd-docs-layout:has([data-fd-tablet-sidebar-state="open"])
385
+ [data-sidebar-placeholder]
386
+ > aside
387
+ > * {
388
+ width: 100% !important;
389
+ }
390
+
391
+ #nd-docs-layout:has([data-fd-tablet-sidebar-state="open"])
392
+ aside#nd-sidebar
393
+ > div:first-child {
394
+ height: 56px;
395
+ min-height: 56px;
396
+ max-height: 56px;
397
+ flex-basis: 56px;
398
+ padding-right: 58px;
399
+ }
400
+
401
+ .fd-tablet-sidebar-backdrop {
402
+ position: fixed;
403
+ inset: 0;
404
+ z-index: 95;
405
+ display: block;
406
+ border: 0;
407
+ background: color-mix(in srgb, var(--color-fd-background) 72%, transparent);
408
+ backdrop-filter: blur(2px);
409
+ }
410
+
411
+ .fd-tablet-sidebar-close {
412
+ position: fixed;
413
+ top: 6px;
414
+ left: calc(min(342px, calc(100vw - 42px)) - 50px);
415
+ z-index: 101;
416
+ display: inline-flex;
417
+ width: 44px;
418
+ height: 44px;
419
+ align-items: center;
420
+ justify-content: center;
421
+ border: 0;
422
+ color: var(--color-fd-muted-foreground);
423
+ background: transparent;
424
+ }
425
+
426
+ .fd-tablet-sidebar-close:hover,
427
+ .fd-tablet-sidebar-close:focus-visible {
428
+ color: var(--color-fd-foreground);
429
+ }
430
+
431
+ .fd-tablet-sidebar-close:focus-visible {
432
+ outline: 1px solid var(--color-fd-ring);
433
+ outline-offset: -1px;
434
+ }
435
+
436
+ .fd-tablet-sidebar-close > span,
437
+ .fd-tablet-sidebar-close > span::after {
438
+ display: block;
439
+ width: 18px;
440
+ height: 1px;
441
+ background: currentColor;
442
+ content: "";
443
+ }
444
+
445
+ .fd-tablet-sidebar-close > span {
446
+ transform: rotate(45deg);
447
+ }
448
+
449
+ .fd-tablet-sidebar-close > span::after {
450
+ transform: rotate(90deg);
451
+ }
452
+
453
+ #nd-docs-layout > div[data-state]:has(+ aside#nd-sidebar-mobile) {
454
+ z-index: 95;
455
+ background: color-mix(in srgb, var(--color-fd-background) 72%, transparent);
456
+ }
457
+
458
+ aside#nd-sidebar-mobile {
459
+ --fd-pixel-rail-width: 12px;
460
+ inset: 0 auto 0 0 !important;
461
+ z-index: 100;
462
+ width: min(342px, calc(100vw - 42px));
463
+ max-width: none;
464
+ border-right: 1px solid var(--color-fd-border);
465
+ border-left: 0;
466
+ background-color: var(--color-fd-background);
467
+ background-image:
468
+ linear-gradient(var(--color-fd-border), var(--color-fd-border)),
469
+ linear-gradient(var(--color-fd-border), var(--color-fd-border)),
470
+ repeating-linear-gradient(
471
+ -45deg,
472
+ color-mix(in srgb, var(--color-fd-border) 2%, transparent),
473
+ color-mix(in srgb, var(--color-fd-foreground) 7%, transparent) 1px,
474
+ transparent 1px,
475
+ transparent 6px
476
+ ),
477
+ repeating-linear-gradient(
478
+ -45deg,
479
+ color-mix(in srgb, var(--color-fd-border) 2%, transparent),
480
+ color-mix(in srgb, var(--color-fd-foreground) 7%, transparent) 1px,
481
+ transparent 1px,
482
+ transparent 6px
483
+ );
484
+ background-position:
485
+ var(--fd-pixel-rail-width) 0,
486
+ calc(100% - var(--fd-pixel-rail-width)) 0,
487
+ left top,
488
+ right top;
489
+ background-repeat: repeat-y;
490
+ background-size:
491
+ 1px 100%,
492
+ 1px 100%,
493
+ var(--fd-pixel-rail-width) 100%,
494
+ var(--fd-pixel-rail-width) 100%;
495
+ box-shadow: none;
496
+ }
497
+
498
+ aside#nd-sidebar-mobile[data-state="open"] {
499
+ animation: fd-pixel-sidebar-in 180ms ease-out both !important;
500
+ }
501
+
502
+ aside#nd-sidebar-mobile[data-state="closed"] {
503
+ animation: fd-pixel-sidebar-out 150ms ease-in both !important;
504
+ }
505
+
506
+ aside#nd-sidebar-mobile > div:first-child {
507
+ box-sizing: border-box;
508
+ min-height: 56px;
509
+ flex: 0 0 56px;
510
+ gap: 0;
511
+ padding: 0 calc(var(--fd-pixel-rail-width) + 8px);
512
+ border-bottom: 1px solid var(--color-fd-border);
513
+ }
514
+
515
+ aside#nd-sidebar-mobile > div:first-child > div {
516
+ height: 100%;
517
+ }
518
+
519
+ aside#nd-sidebar-mobile > div:first-child > div::before {
520
+ content: "/ DOCS";
521
+ flex: 0 0 auto;
522
+ color: var(--color-fd-foreground);
523
+ font-family: var(--fd-font-mono, ui-monospace, monospace);
524
+ font-size: 12px;
525
+ letter-spacing: 0.03em;
526
+ }
527
+
528
+ aside#nd-sidebar-mobile
529
+ > div:first-child
530
+ > div
531
+ > button[aria-label="Open Sidebar"]:last-child {
532
+ position: relative;
533
+ width: 44px;
534
+ height: 44px;
535
+ padding: 0;
536
+ }
537
+
538
+ aside#nd-sidebar-mobile
539
+ > div:first-child
540
+ > div
541
+ > button[aria-label="Open Sidebar"]:last-child
542
+ svg {
543
+ display: none;
544
+ }
545
+
546
+ aside#nd-sidebar-mobile
547
+ > div:first-child
548
+ > div
549
+ > button[aria-label="Open Sidebar"]:last-child::before,
550
+ aside#nd-sidebar-mobile
551
+ > div:first-child
552
+ > div
553
+ > button[aria-label="Open Sidebar"]:last-child::after {
554
+ position: absolute;
555
+ width: 18px;
556
+ height: 1px;
557
+ background: currentColor;
558
+ content: "";
559
+ }
560
+
561
+ aside#nd-sidebar-mobile
562
+ > div:first-child
563
+ > div
564
+ > button[aria-label="Open Sidebar"]:last-child::before {
565
+ transform: rotate(45deg);
566
+ }
567
+
568
+ aside#nd-sidebar-mobile
569
+ > div:first-child
570
+ > div
571
+ > button[aria-label="Open Sidebar"]:last-child::after {
572
+ transform: rotate(-45deg);
573
+ }
574
+
575
+ aside#nd-sidebar-mobile > div:nth-child(2) > div:last-child {
576
+ padding-inline: calc(var(--fd-pixel-rail-width) + 4px) !important;
577
+ }
578
+ }
579
+
580
+ @keyframes fd-pixel-sidebar-in {
581
+ from {
582
+ transform: translateX(-100%);
583
+ }
584
+
585
+ to {
586
+ transform: translateX(0);
587
+ }
588
+ }
589
+
590
+ @keyframes fd-pixel-sidebar-out {
591
+ from {
592
+ transform: translateX(0);
593
+ }
594
+
595
+ to {
596
+ transform: translateX(-100%);
597
+ }
598
+ }
599
+
600
+ @media (prefers-reduced-motion: reduce) {
601
+ aside#nd-sidebar-mobile[data-state] {
602
+ animation-duration: 1ms !important;
603
+ }
604
+ }
605
+
606
+ .fd-agent-llms-directive[data-visible-in-header="true"] {
607
+ position: fixed;
608
+ top: 0;
609
+ right: 0;
610
+ z-index: 90;
611
+ display: inline-flex;
612
+ width: 105px;
613
+ height: 44px;
614
+ align-items: center;
615
+ justify-content: center;
616
+ border-left: 1px solid var(--color-fd-border);
617
+ border-bottom: 1px solid var(--color-fd-border);
618
+ color: var(--color-fd-muted-foreground);
619
+ background: color-mix(in srgb, var(--color-fd-background) 94%, transparent);
620
+ font-family: var(--fd-font-mono, ui-monospace, monospace);
621
+ font-size: 12px;
622
+ letter-spacing: 0.03em;
623
+ text-decoration: none;
624
+ }
625
+
626
+ .fd-agent-llms-directive[data-visible-in-header="true"]:hover {
627
+ color: var(--color-fd-foreground);
628
+ }
629
+
630
+ @media (max-width: 1023px) {
631
+ .fd-agent-llms-directive[data-visible-in-header="true"] {
632
+ height: 56px;
204
633
  }
205
634
  }
206
635
 
207
636
  /* ─── Sidebar (better-auth style) — light + dark ───────────────────── */
208
637
  /* Sidebar container: use theme variables for both modes */
209
638
  aside#nd-sidebar {
639
+ --fd-pixel-rail-width: 12px;
210
640
  background: var(--color-fd-background);
641
+ background-image:
642
+ linear-gradient(var(--color-fd-border), var(--color-fd-border)),
643
+ linear-gradient(var(--color-fd-border), var(--color-fd-border)),
644
+ repeating-linear-gradient(
645
+ -45deg,
646
+ color-mix(in srgb, var(--color-fd-border) 2%, transparent),
647
+ color-mix(in srgb, var(--color-fd-foreground) 7%, transparent) 1px,
648
+ transparent 1px,
649
+ transparent 6px
650
+ ),
651
+ repeating-linear-gradient(
652
+ -45deg,
653
+ color-mix(in srgb, var(--color-fd-border) 2%, transparent),
654
+ color-mix(in srgb, var(--color-fd-foreground) 7%, transparent) 1px,
655
+ transparent 1px,
656
+ transparent 6px
657
+ );
658
+ background-position:
659
+ var(--fd-pixel-rail-width) 0,
660
+ calc(100% - var(--fd-pixel-rail-width)) 0,
661
+ left top,
662
+ right top;
663
+ background-repeat: repeat-y;
664
+ background-size:
665
+ 1px 100%,
666
+ 1px 100%,
667
+ var(--fd-pixel-rail-width) 100%,
668
+ var(--fd-pixel-rail-width) 100%;
669
+ border-left: 1px solid var(--color-fd-border);
211
670
  border-color: var(--color-fd-border);
212
671
  }
213
672
 
673
+ aside#nd-sidebar > div:first-child {
674
+ box-sizing: border-box;
675
+ height: 44px;
676
+ min-height: 44px;
677
+ max-height: 44px;
678
+ flex: 0 0 44px;
679
+ gap: 0;
680
+ justify-content: center;
681
+ padding: 0 calc(var(--fd-pixel-rail-width) + 12px);
682
+ border-bottom: 1px solid var(--color-fd-border);
683
+ }
684
+
685
+ aside#nd-sidebar > div:first-child > div:first-child {
686
+ width: 100%;
687
+ height: 100%;
688
+ align-items: center;
689
+ font-family: var(--fd-font-mono, ui-monospace, monospace);
690
+ font-size: 12px;
691
+ letter-spacing: 0.03em;
692
+ text-transform: uppercase;
693
+ }
694
+
695
+ aside#nd-sidebar > div:first-child > div:first-child::after {
696
+ content: "/ DOCS";
697
+ flex: 0 0 auto;
698
+ margin-left: auto;
699
+ color: var(--color-fd-foreground);
700
+ }
701
+
702
+ aside#nd-sidebar > div:first-child > div:first-child > a {
703
+ gap: 8px;
704
+ font-size: 12px;
705
+ font-weight: 500;
706
+ }
707
+
708
+ aside#nd-sidebar > div:first-child > div:first-child > a::before {
709
+ content: "";
710
+ width: 16px;
711
+ height: 16px;
712
+ flex: 0 0 16px;
713
+ background:
714
+ linear-gradient(currentColor 0 0) 0 0 / 6px 6px no-repeat,
715
+ linear-gradient(currentColor 0 0) 8px 0 / 8px 6px no-repeat,
716
+ linear-gradient(color-mix(in srgb, currentColor 64%, transparent) 0 0) 0 8px / 6px 6px
717
+ no-repeat,
718
+ linear-gradient(color-mix(in srgb, currentColor 64%, transparent) 0 0) 8px 8px / 8px 6px
719
+ no-repeat;
720
+ }
721
+
722
+ aside#nd-sidebar > div:first-child button[aria-label="Collapse Sidebar"],
723
+ aside#nd-sidebar > div:first-child button[data-search-full] {
724
+ display: none !important;
725
+ }
726
+
727
+ /* Production keeps the tree scrollable to the bottom without a pinned
728
+ * Fumadocs appearance switcher occupying the last row. Farm's server-rendered
729
+ * layout uses `.sidebar-scroll` as its last child, so never hide that tree. */
730
+ #nd-docs-layout:not([data-fd-framework])
731
+ aside#nd-sidebar
732
+ > div:last-child:not(.sidebar-scroll) {
733
+ display: none !important;
734
+ }
735
+
214
736
  /* ── Full-width border separators between top-level items ─────────── */
215
737
  aside .overscroll-contain > div {
216
- margin-top: -22px;
738
+ margin-top: 3px;
217
739
  }
218
740
 
219
741
  aside .overscroll-contain > div > a[data-active] {
@@ -227,13 +749,19 @@ aside .overscroll-contain > div > a[data-active] {
227
749
 
228
750
  aside .overscroll-contain > div > div {
229
751
  border-top: 1px solid var(--color-fd-border);
230
- margin-left: -1rem;
752
+ margin-left: -0.875rem;
231
753
  margin-right: -1rem;
232
754
  padding: 0 !important;
233
755
  }
234
756
 
235
- aside .overscroll-contain > div > a[data-active]:first-child,
236
- aside .overscroll-contain > div > div:first-child {
757
+ /* Keep every top-level section title in its own bordered row. The child
758
+ * threadline starts immediately below this edge, matching the pixel grid. */
759
+ aside .overscroll-contain > div > div > button[aria-controls][aria-expanded] {
760
+ width: 100%;
761
+ border-bottom: 1px solid var(--color-fd-border);
762
+ }
763
+
764
+ aside .overscroll-contain > div > a[data-active]:first-child {
237
765
  border-top: none;
238
766
  }
239
767
 
@@ -246,10 +774,7 @@ aside .overscroll-contain > div > div:last-child {
246
774
 
247
775
  aside a[data-active],
248
776
  aside button[aria-controls][aria-expanded] {
249
- font-size: 0.875rem;
250
- line-height: 1.6;
251
777
  border-radius: 0 !important;
252
- padding: 0.5rem 0.625rem !important;
253
778
  transition: color 0.15s ease;
254
779
  overflow: hidden;
255
780
  background-color: transparent !important;
@@ -265,7 +790,7 @@ aside a[data-active="true"]:hover {
265
790
  background: transparent !important;
266
791
  background-color: transparent !important;
267
792
  color: var(--color-fd-primary) !important;
268
- font-weight: 600;
793
+ font-weight: 400;
269
794
  }
270
795
 
271
796
  aside a[data-active="false"]:hover {
@@ -277,10 +802,11 @@ aside a[data-active="false"]:hover {
277
802
  /* ── Child links inside collapsible folders ──────────────────────── */
278
803
 
279
804
  aside div.overflow-hidden[data-state] a[data-active] {
280
- font-size: 0.785rem !important;
281
- padding-left: 2rem !important;
282
- padding-top: 0.25rem !important;
283
- padding-bottom: 0.25rem !important;
805
+ position: relative;
806
+ min-height: 31.5703125px;
807
+ padding: 6px 30px 6px 68px !important;
808
+ font-size: 13.5px !important;
809
+ line-height: 1.45 !important;
284
810
  color: var(--color-fd-muted-foreground) !important;
285
811
  overflow: hidden;
286
812
  }
@@ -288,7 +814,7 @@ aside div.overflow-hidden[data-state] a[data-active] {
288
814
  aside div.overflow-hidden[data-state] a[data-active="true"],
289
815
  aside div.overflow-hidden[data-state] a[data-active="true"]:hover {
290
816
  color: var(--color-fd-primary) !important;
291
- font-weight: 500 !important;
817
+ font-weight: 400 !important;
292
818
  }
293
819
 
294
820
  aside div.overflow-hidden[data-state] a[data-active="false"]:hover {
@@ -297,31 +823,124 @@ aside div.overflow-hidden[data-state] a[data-active="false"]:hover {
297
823
 
298
824
  /* ── Folder toggle buttons (section headers) ─────────────────────── */
299
825
 
300
- aside button.text-fd-muted-foreground {
301
- color: var(--color-fd-foreground);
302
- font-size: 0.875rem;
303
- font-weight: 500;
826
+ aside#nd-sidebar button.text-fd-muted-foreground,
827
+ aside#nd-sidebar-mobile button.text-fd-muted-foreground {
828
+ height: 35px;
829
+ min-height: 35px;
830
+ padding: 8px 30px !important;
831
+ color: var(--color-fd-muted-foreground) !important;
832
+ font-size: 12px !important;
833
+ font-weight: 600 !important;
834
+ line-height: 18px !important;
304
835
  letter-spacing: normal;
305
836
  text-transform: none;
306
837
  }
307
838
 
308
- aside button.text-fd-muted-foreground:hover {
309
- color: var(--color-fd-foreground);
839
+ aside#nd-sidebar button.text-fd-muted-foreground:hover,
840
+ aside#nd-sidebar-mobile button.text-fd-muted-foreground:hover {
841
+ color: var(--color-fd-foreground) !important;
310
842
  }
311
843
 
312
844
  aside a[data-active="true"]::before {
313
- background-color: var(--color-fd-primary) !important;
314
- width: 2px !important;
315
- height: 40% !important;
316
- margin-top: -1.5px !important;
317
- margin-left: 0.6rem !important;
318
- inset-inline-start: 0.5rem !important;
845
+ content: none !important;
846
+ }
847
+
848
+ aside div.overflow-hidden[data-state] > div {
849
+ gap: 0 !important;
850
+ padding: 8px 0 6px !important;
851
+ }
852
+
853
+ /* Nested folders keep their labels visible so the configured information
854
+ * architecture survives in adapters with deeper sidebar trees. */
855
+ aside div.overflow-hidden[data-state] > div > div[data-state] {
856
+ position: relative;
857
+ padding: 2px 0 4px;
858
+ }
859
+
860
+ aside div.overflow-hidden[data-state] > div > div[data-state]::before {
861
+ content: "";
862
+ position: absolute;
863
+ top: 17px;
864
+ bottom: 19px;
865
+ inset-inline-start: 75px;
866
+ width: 1px;
867
+ background: color-mix(in srgb, var(--color-fd-border) 88%, transparent);
868
+ }
869
+
870
+ aside#nd-sidebar div.overflow-hidden[data-state] button[aria-expanded],
871
+ aside#nd-sidebar-mobile div.overflow-hidden[data-state] button[aria-expanded] {
872
+ position: relative;
873
+ display: flex !important;
874
+ height: 31.5703125px;
875
+ min-height: 31.5703125px;
876
+ padding: 6px 30px 6px 68px !important;
877
+ color: var(--color-fd-muted-foreground) !important;
878
+ font-size: 13.5px !important;
879
+ font-weight: 500 !important;
880
+ line-height: 1.45 !important;
881
+ }
882
+
883
+ aside div.overflow-hidden[data-state] div.overflow-hidden[data-state] > div {
884
+ padding: 0 0 4px !important;
885
+ }
886
+
887
+ aside div.overflow-hidden[data-state] button[aria-expanded]::after {
888
+ content: "";
889
+ position: absolute;
890
+ top: calc(50% - 0.5px);
891
+ inset-inline-start: 46px;
892
+ width: 29px;
893
+ height: 1px;
894
+ background: color-mix(in srgb, var(--color-fd-border) 88%, transparent);
895
+ }
896
+
897
+ aside
898
+ div.overflow-hidden[data-state]
899
+ div.overflow-hidden[data-state]
900
+ a[data-active] {
901
+ padding-inline-start: 103px !important;
902
+ }
903
+
904
+ aside div.overflow-hidden[data-state] a[data-active]::after {
905
+ content: "";
906
+ position: absolute;
907
+ top: calc(50% - 0.5px);
908
+ inset-inline-start: 46px;
909
+ width: 22px;
910
+ height: 1px;
911
+ background: color-mix(in srgb, var(--color-fd-border) 88%, transparent);
912
+ }
913
+
914
+ aside div.overflow-hidden[data-state] a[data-active="true"]::after {
915
+ background: var(--color-fd-primary);
319
916
  }
320
917
 
321
918
  aside div.overflow-hidden[data-state]::before {
322
- margin-left: 0.5rem !important;
323
- height: calc(100% + 20px) !important;
324
- margin-top: -25px !important;
919
+ top: 0 !important;
920
+ bottom: 0 !important;
921
+ inset-inline-start: 46px !important;
922
+ width: 1px !important;
923
+ height: auto !important;
924
+ margin: 0 !important;
925
+ }
926
+
927
+ aside
928
+ div.overflow-hidden[data-state]
929
+ div.overflow-hidden[data-state]
930
+ a[data-active]::after {
931
+ inset-inline-start: 75px;
932
+ width: 28px;
933
+ }
934
+
935
+ aside
936
+ div.overflow-hidden[data-state]
937
+ div.overflow-hidden[data-state]::before {
938
+ content: none !important;
939
+ }
940
+
941
+ aside button[aria-expanded] > .lucide-chevron-down,
942
+ aside button[aria-expanded] > .lucide-chevron-right {
943
+ display: none !important;
325
944
  }
326
945
 
327
946
  aside div[data-state="open"] > :last-child {
@@ -359,6 +978,100 @@ aside button[class*="rounded-full"] {
359
978
 
360
979
  /* ─── Tables: visible borders, rounded-none (light + dark) ─────────── */
361
980
 
981
+ /* ─── Page rhythm and typography ─────────────────────────────────── */
982
+
983
+ #nd-docs-layout {
984
+ background: var(--color-fd-background);
985
+ font-family: var(--fd-font-sans, ui-sans-serif, system-ui, sans-serif);
986
+ }
987
+
988
+ #nd-page > .prose h1 {
989
+ margin: 0 0 16px;
990
+ font-size: 36px;
991
+ font-weight: 400;
992
+ line-height: 1.14;
993
+ letter-spacing: -0.02em;
994
+ }
995
+
996
+ #nd-page > .prose h2 {
997
+ margin: 44px 0 14px;
998
+ padding-top: 26px;
999
+ border-top: 1px solid var(--color-fd-border);
1000
+ font-size: 24px;
1001
+ font-weight: 400;
1002
+ line-height: 1.24;
1003
+ letter-spacing: -0.01em;
1004
+ }
1005
+
1006
+ #nd-page > .prose h3 {
1007
+ margin: 30px 0 12px;
1008
+ font-size: 20px;
1009
+ font-weight: 400;
1010
+ line-height: 1.3;
1011
+ letter-spacing: 0;
1012
+ }
1013
+
1014
+ #nd-page > .prose h4,
1015
+ #nd-page > .prose h5,
1016
+ #nd-page > .prose h6 {
1017
+ margin: 24px 0 10px;
1018
+ font-weight: 400;
1019
+ letter-spacing: 0;
1020
+ }
1021
+
1022
+ #nd-page > .prose p {
1023
+ margin: 14px 0;
1024
+ color: color-mix(in srgb, var(--color-fd-foreground) 74%, transparent);
1025
+ font-size: 15.6px;
1026
+ line-height: 1.8;
1027
+ }
1028
+
1029
+ #nd-page > .prose ul,
1030
+ #nd-page > .prose ol {
1031
+ margin: 16px 0;
1032
+ padding-left: 24px;
1033
+ color: color-mix(in srgb, var(--color-fd-foreground) 78%, transparent);
1034
+ line-height: 1.75;
1035
+ }
1036
+
1037
+ #nd-page > .prose li {
1038
+ margin: 6px 0;
1039
+ }
1040
+
1041
+ #nd-docs-layout .fd-title-separator {
1042
+ display: none;
1043
+ }
1044
+
1045
+ /* The adapter portals title actions beside an MDX-owned h1. Removing the
1046
+ * portal wrapper from layout makes that block flow like the native page. */
1047
+ #nd-docs-layout .fd-title-decorations-host {
1048
+ display: contents;
1049
+ }
1050
+
1051
+ #nd-docs-layout .fd-below-title-block {
1052
+ display: flex;
1053
+ width: 100%;
1054
+ margin: 0 0 20px;
1055
+ }
1056
+
1057
+ #nd-docs-layout .fd-below-title-block .fd-actions-portal {
1058
+ width: 100%;
1059
+ }
1060
+
1061
+ @media (max-width: 1023px) {
1062
+ #nd-page > .prose h1 {
1063
+ font-size: 32px;
1064
+ line-height: 1.16;
1065
+ letter-spacing: 0;
1066
+ }
1067
+
1068
+ #nd-page > .prose h2 {
1069
+ margin-top: 34px;
1070
+ padding-top: 22px;
1071
+ font-size: 23px;
1072
+ }
1073
+ }
1074
+
362
1075
  table {
363
1076
  border: 1px solid var(--color-fd-border);
364
1077
  border-radius: 0 !important;
@@ -389,10 +1102,59 @@ tr:last-child td {
389
1102
  /* Target the fumadocs CodeBlock figure (shiki class) */
390
1103
  figure.shiki,
391
1104
  .fd-codeblock {
1105
+ --padding-left: 0px;
1106
+ --padding-right: 0px;
392
1107
  border: 1px solid var(--color-fd-border) !important;
393
1108
  border-radius: 0 !important;
1109
+ background: #141414 !important;
394
1110
  overflow: hidden;
395
- box-shadow: none !important;
1111
+ box-shadow: 3px 3px 0 0 var(--color-fd-border) !important;
1112
+ }
1113
+
1114
+ @media (min-width: 1024px) {
1115
+ figure.shiki,
1116
+ .fd-codeblock {
1117
+ margin: 20px 0 !important;
1118
+ }
1119
+
1120
+ figure.shiki span[style*="--shiki-dark"],
1121
+ .fd-codeblock span[style*="--shiki-dark"] {
1122
+ color: color-mix(in srgb, var(--color-fd-foreground) 74%, transparent) !important;
1123
+ }
1124
+ }
1125
+
1126
+ figure.shiki pre,
1127
+ .fd-codeblock pre {
1128
+ margin: 0;
1129
+ padding: 18px 20px !important;
1130
+ font-family: var(--fd-font-mono, ui-monospace, monospace) !important;
1131
+ font-size: 13px;
1132
+ line-height: 1.6;
1133
+ }
1134
+
1135
+ figure.shiki > div[role="region"],
1136
+ .fd-codeblock > div[role="region"] {
1137
+ padding-block: 0 !important;
1138
+ }
1139
+
1140
+ figure.shiki code,
1141
+ .fd-codeblock code {
1142
+ font-family: inherit !important;
1143
+ }
1144
+
1145
+ @media (max-width: 1023px) {
1146
+ figure.shiki,
1147
+ .fd-codeblock {
1148
+ margin: 16px 0;
1149
+ box-shadow: 2px 2px 0 0 var(--color-fd-border) !important;
1150
+ }
1151
+
1152
+ figure.shiki pre,
1153
+ .fd-codeblock pre {
1154
+ padding: 12px 11px !important;
1155
+ font-size: 12px;
1156
+ line-height: 1.5;
1157
+ }
396
1158
  }
397
1159
 
398
1160
  /* Copy button inside code blocks */
@@ -401,6 +1163,12 @@ figure.shiki button,
401
1163
  border-radius: 0 !important;
402
1164
  }
403
1165
 
1166
+ figure.shiki button[aria-label="Copy Text"],
1167
+ .fd-copy-btn {
1168
+ opacity: 1 !important;
1169
+ visibility: visible !important;
1170
+ }
1171
+
404
1172
  /* Code block title bar */
405
1173
  figure.shiki > div:first-child,
406
1174
  .fd-codeblock-title {
@@ -450,16 +1218,108 @@ div:has(> [role="tablist"]) {
450
1218
  border-color: var(--color-fd-border);
451
1219
  }
452
1220
 
453
- /* ─── Nav cards (prev/next): visible border, rounded-none ──────────── */
1221
+ /* ─── Page footer + previous/next navigation ─────────────────────── */
454
1222
 
455
- article a[class*="border"] {
456
- border-color: var(--color-fd-border);
1223
+ #nd-docs-layout .fd-page-footer > a {
457
1224
  border-radius: 0 !important;
458
1225
  }
459
1226
 
460
- article a[class*="border"]:hover {
461
- background: var(--color-fd-muted);
462
- border-color: var(--color-fd-ring);
1227
+ #nd-docs-layout .fd-page-nav,
1228
+ #nd-docs-layout[data-fd-framework] .fd-page-nav {
1229
+ display: grid;
1230
+ width: 100%;
1231
+ max-width: 100%;
1232
+ grid-template-columns: 1fr;
1233
+ gap: 1rem;
1234
+ margin-top: 1rem;
1235
+ border-top: 0;
1236
+ padding-top: 0;
1237
+ }
1238
+
1239
+ #nd-docs-layout .fd-page-nav:has(.fd-page-nav-prev):has(.fd-page-nav-next),
1240
+ #nd-docs-layout[data-fd-framework]
1241
+ .fd-page-nav:has(.fd-page-nav-prev):has(.fd-page-nav-next) {
1242
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1243
+ }
1244
+
1245
+ #nd-docs-layout .fd-page-nav-card,
1246
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-card {
1247
+ display: flex;
1248
+ min-width: 0;
1249
+ min-height: 6.125rem;
1250
+ flex-direction: column;
1251
+ justify-content: flex-start;
1252
+ gap: 0.5rem;
1253
+ border: 1px solid var(--color-fd-border);
1254
+ border-radius: 0 !important;
1255
+ background: transparent;
1256
+ padding: 1rem;
1257
+ color: var(--color-fd-foreground);
1258
+ text-decoration: none;
1259
+ transition:
1260
+ background-color 150ms ease,
1261
+ border-color 150ms ease;
1262
+ }
1263
+
1264
+ #nd-docs-layout .fd-page-nav-card:hover,
1265
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-card:hover {
1266
+ border-color: color-mix(in srgb, var(--color-fd-foreground) 28%, transparent);
1267
+ background: color-mix(in srgb, var(--color-fd-muted) 80%, transparent);
1268
+ }
1269
+
1270
+ #nd-docs-layout .fd-page-nav-next,
1271
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-next {
1272
+ align-items: flex-end;
1273
+ text-align: right;
1274
+ }
1275
+
1276
+ #nd-docs-layout .fd-page-nav-title,
1277
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-title {
1278
+ display: inline-flex;
1279
+ max-width: 100%;
1280
+ min-height: 0;
1281
+ align-items: center;
1282
+ gap: 0.375rem;
1283
+ overflow: hidden;
1284
+ color: var(--color-fd-foreground);
1285
+ font-size: 0.875rem;
1286
+ font-weight: 500;
1287
+ line-height: 1.5;
1288
+ overflow-wrap: anywhere;
1289
+ }
1290
+
1291
+ #nd-docs-layout .fd-page-nav-title svg,
1292
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-title svg {
1293
+ width: 1rem;
1294
+ height: 1rem;
1295
+ flex-shrink: 0;
1296
+ }
1297
+
1298
+ #nd-docs-layout .fd-page-nav-description,
1299
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-description {
1300
+ display: block;
1301
+ max-width: 100%;
1302
+ min-height: 0;
1303
+ overflow: hidden;
1304
+ color: var(--color-fd-muted-foreground);
1305
+ font-size: 0.975rem;
1306
+ font-weight: 400;
1307
+ line-height: 1.8;
1308
+ text-overflow: ellipsis;
1309
+ white-space: nowrap;
1310
+ }
1311
+
1312
+ @media (max-width: 640px) {
1313
+ #nd-docs-layout .fd-page-nav,
1314
+ #nd-docs-layout[data-fd-framework] .fd-page-nav {
1315
+ grid-template-columns: 1fr !important;
1316
+ }
1317
+
1318
+ #nd-docs-layout .fd-page-nav-next,
1319
+ #nd-docs-layout[data-fd-framework] .fd-page-nav-next {
1320
+ align-items: flex-start;
1321
+ text-align: left;
1322
+ }
463
1323
  }
464
1324
 
465
1325
  /* ─── Search dialog ───────────────────────────────────────────────── */
@@ -526,6 +1386,9 @@ hr {
526
1386
 
527
1387
  /* ─── Page Actions (pixel-border overrides) ───────────────────────── */
528
1388
  .fd-page-action-btn {
1389
+ height: 34px;
1390
+ gap: 8px;
1391
+ padding: 0 12px;
529
1392
  border-radius: 0 !important;
530
1393
  font-size: 0.75rem;
531
1394
  letter-spacing: 0.03em;
@@ -959,43 +1822,158 @@ hr {
959
1822
 
960
1823
  /* ─── Omni Command Palette (pixel-border theme) ─────────────────── */
961
1824
 
1825
+ .omni-overlay {
1826
+ z-index: 200;
1827
+ background: color-mix(in srgb, var(--color-fd-background) 64%, transparent);
1828
+ backdrop-filter: blur(3px);
1829
+ }
1830
+
962
1831
  .omni-content {
1832
+ --omni-content-top: clamp(72px, 14vh, 104px);
1833
+ z-index: 201;
1834
+ width: min(680px, calc(100% - 24px));
1835
+ overflow: hidden;
963
1836
  border-radius: 0 !important;
964
1837
  border: 1px solid var(--fd-pixel-modal-border);
1838
+ background: var(--color-fd-background);
965
1839
  box-shadow:
966
1840
  2px 2px 0 0 var(--fd-pixel-modal-shadow),
967
1841
  0 0 0 1px color-mix(in srgb, var(--color-fd-foreground) 3%, transparent);
968
1842
  }
969
1843
 
970
- .omni-item {
971
- border-radius: 0 !important;
1844
+ .omni-header {
1845
+ background: color-mix(in srgb, var(--color-fd-background) 96%, var(--color-fd-foreground));
972
1846
  }
973
1847
 
974
- .omni-kbd,
975
- .omni-kbd-sm {
976
- border-radius: 0 !important;
977
- border: 1px solid var(--color-fd-border, hsl(0 0% 15%));
1848
+ .omni-search-row {
1849
+ min-height: 54px;
1850
+ padding: 0 14px;
1851
+ }
1852
+
1853
+ .omni-search-icon svg {
1854
+ width: 18px;
1855
+ height: 18px;
1856
+ }
1857
+
1858
+ .omni-search-input {
1859
+ font-family: var(--fd-font-sans, system-ui, -apple-system, sans-serif);
1860
+ font-size: 15.5px;
1861
+ line-height: 1.5;
978
1862
  }
979
1863
 
980
1864
  .omni-close-btn {
1865
+ min-width: 36px;
1866
+ height: 30px;
1867
+ padding: 0 8px;
981
1868
  border-radius: 0 !important;
1869
+ font-size: 10px;
1870
+ letter-spacing: 0.04em;
982
1871
  }
983
1872
 
984
- .omni-empty-icon {
985
- border-radius: 0 !important;
1873
+ .omni-close-btn:focus-visible,
1874
+ .omni-filter-button:focus-visible,
1875
+ .omni-filter-option:focus-visible,
1876
+ .omni-item:focus-visible {
1877
+ outline: 1px solid var(--color-fd-ring, var(--color-fd-foreground));
1878
+ outline-offset: -2px;
986
1879
  }
987
1880
 
988
- .omni-search-input {
989
- font-family: var(--fd-font-sans, system-ui, -apple-system, sans-serif);
1881
+ .omni-body {
1882
+ max-height: min(500px, calc(100dvh - var(--omni-content-top) - 112px));
1883
+ padding: 0;
1884
+ }
1885
+
1886
+ .omni-group + .omni-group {
1887
+ border-top: 1px solid var(--color-fd-border);
990
1888
  }
991
1889
 
992
1890
  .omni-group-label {
1891
+ display: block;
1892
+ padding: 8px 14px 6px;
1893
+ border-bottom: 1px solid var(--color-fd-border);
1894
+ color: var(--color-fd-muted-foreground);
993
1895
  font-family: var(--fd-font-mono, ui-monospace, monospace);
1896
+ font-size: 10px;
1897
+ line-height: 1.2;
994
1898
  letter-spacing: 0.08em;
1899
+ text-transform: uppercase;
1900
+ }
1901
+
1902
+ .omni-group-items {
1903
+ gap: 0;
1904
+ }
1905
+
1906
+ .omni-item {
1907
+ border-radius: 0 !important;
1908
+ padding: 11px 14px;
1909
+ border-bottom: 1px solid var(--color-fd-border);
1910
+ transition:
1911
+ color 80ms ease,
1912
+ background-color 80ms ease;
1913
+ }
1914
+
1915
+ .omni-group-items > .omni-item:last-child {
1916
+ border-bottom: 0;
1917
+ }
1918
+
1919
+ .omni-item:hover,
1920
+ .omni-item-active {
1921
+ background: color-mix(in srgb, var(--color-fd-foreground) 7%, transparent);
1922
+ }
1923
+
1924
+ .omni-item-active {
1925
+ box-shadow: inset 2px 0 0 var(--color-fd-foreground);
1926
+ }
1927
+
1928
+ .omni-item-subtitle {
1929
+ margin-bottom: 2px;
1930
+ font-family: var(--fd-font-mono, ui-monospace, monospace);
1931
+ font-size: 10.5px;
1932
+ line-height: 1.4;
1933
+ letter-spacing: 0.01em;
1934
+ }
1935
+
1936
+ .omni-item-label {
1937
+ font-size: 14px;
1938
+ line-height: 1.35;
1939
+ }
1940
+
1941
+ .omni-item-description {
1942
+ -webkit-line-clamp: 2;
1943
+ margin-top: 6px;
1944
+ padding-left: 0;
1945
+ border-left: 0;
1946
+ color: var(--color-fd-muted-foreground);
1947
+ font-size: 12.5px;
1948
+ line-height: 1.5;
1949
+ }
1950
+
1951
+ .omni-empty {
1952
+ display: flex;
1953
+ min-height: 132px;
1954
+ flex-direction: column;
1955
+ align-items: center;
1956
+ justify-content: center;
1957
+ padding: 24px 16px;
1958
+ }
1959
+
1960
+ .omni-empty-icon {
1961
+ border-radius: 0 !important;
1962
+ border: 1px solid var(--color-fd-border);
1963
+ background: transparent;
1964
+ }
1965
+
1966
+ .omni-kbd,
1967
+ .omni-kbd-sm {
1968
+ border-radius: 0 !important;
1969
+ border: 1px solid var(--color-fd-border, hsl(0 0% 15%));
995
1970
  }
996
1971
 
997
1972
  .omni-footer-inner {
1973
+ min-height: 42px;
1974
+ padding: 8px 12px;
998
1975
  font-family: var(--fd-font-mono, ui-monospace, monospace);
1976
+ font-size: 10.5px;
999
1977
  }
1000
1978
 
1001
1979
  .omni-footer-hint svg {
@@ -1010,6 +1988,57 @@ hr {
1010
1988
  .omni-highlight {
1011
1989
  background: color-mix(in srgb, var(--color-fd-primary, #6366f1) 25%, transparent);
1012
1990
  border-radius: 0 !important;
1991
+ color: inherit;
1992
+ text-decoration: none;
1993
+ }
1994
+
1995
+ @media (max-width: 639px) {
1996
+ .omni-content {
1997
+ --omni-content-top: 8px;
1998
+ width: calc(100% - 16px);
1999
+ max-height: calc(100dvh - 16px);
2000
+ }
2001
+
2002
+ .omni-search-row {
2003
+ min-height: 52px;
2004
+ padding: 0 12px;
2005
+ }
2006
+
2007
+ .omni-search-input {
2008
+ font-size: 16px;
2009
+ }
2010
+
2011
+ .omni-body {
2012
+ max-height: min(500px, calc(100dvh - 108px));
2013
+ }
2014
+
2015
+ .omni-item {
2016
+ padding: 10px 12px;
2017
+ }
2018
+
2019
+ .omni-item-description {
2020
+ font-size: 12px;
2021
+ line-height: 1.45;
2022
+ }
2023
+
2024
+ .omni-footer-inner {
2025
+ min-height: 40px;
2026
+ gap: 8px;
2027
+ padding: 7px 10px;
2028
+ font-size: 10px;
2029
+ }
2030
+
2031
+ .omni-footer-hints {
2032
+ gap: 7px;
2033
+ }
2034
+
2035
+ .omni-footer-hint {
2036
+ gap: 3px;
2037
+ }
2038
+
2039
+ .omni-filter-label {
2040
+ display: none;
2041
+ }
1013
2042
  }
1014
2043
 
1015
2044
  /* ─── Feedback (pixel-border theme) ──────────────────────────────── */