@farming-labs/nuxt-theme 0.0.2-beta.26 → 0.0.2-beta.28

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/nuxt-theme",
3
- "version": "0.0.2-beta.26",
3
+ "version": "0.0.2-beta.28",
4
4
  "description": "Nuxt/Vue UI components for @farming-labs/docs — layout, sidebar, TOC, search, and theme toggle",
5
5
  "keywords": [
6
6
  "docs",
@@ -49,11 +49,18 @@
49
49
  "./pixel-border/css": "./styles/pixel-border-bundle.css",
50
50
  "./darksharp/css": "./styles/darksharp-bundle.css",
51
51
  "./styles/colorful.css": "./styles/colorful.css",
52
- "./colorful/css": "./styles/colorful-bundle.css"
52
+ "./colorful/css": "./styles/colorful-bundle.css",
53
+ "./greentree": {
54
+ "types": "./src/themes/greentree.d.ts",
55
+ "import": "./src/themes/greentree.js",
56
+ "default": "./src/themes/greentree.js"
57
+ },
58
+ "./styles/greentree.css": "./styles/greentree.css",
59
+ "./greentree/css": "./styles/greentree-bundle.css"
53
60
  },
54
61
  "dependencies": {
55
62
  "sugar-high": "^0.9.5",
56
- "@farming-labs/docs": "0.0.2-beta.26"
63
+ "@farming-labs/docs": "0.0.2-beta.28"
57
64
  },
58
65
  "peerDependencies": {
59
66
  "nuxt": ">=3.0.0",
@@ -303,6 +303,10 @@ const showFloatingAI = computed(
303
303
  </button>
304
304
  </div>
305
305
 
306
+ <div v-if="$slots['sidebar-header']" class="fd-sidebar-banner">
307
+ <slot name="sidebar-header" />
308
+ </div>
309
+
306
310
  <nav class="fd-sidebar-nav">
307
311
  <slot name="sidebar" :tree="tree" :is-active="isActive">
308
312
  <template v-if="tree?.children">
@@ -424,6 +428,10 @@ const showFloatingAI = computed(
424
428
  </slot>
425
429
  </nav>
426
430
 
431
+ <div v-if="$slots['sidebar-footer']" class="fd-sidebar-footer-custom">
432
+ <slot name="sidebar-footer" />
433
+ </div>
434
+
427
435
  <div v-if="showThemeToggle" class="fd-sidebar-footer">
428
436
  <ThemeToggle />
429
437
  </div>
@@ -0,0 +1,4 @@
1
+ export declare const greentree: (overrides?: {
2
+ ui?: Record<string, unknown>;
3
+ }) => import("@farming-labs/docs").DocsTheme;
4
+ export declare const GreenTreeUIDefaults: Record<string, unknown>;
@@ -0,0 +1,42 @@
1
+ import { createTheme } from "@farming-labs/docs";
2
+
3
+ const GreenTreeUIDefaults = {
4
+ colors: {
5
+ primary: "#0D9373",
6
+ background: "#fff",
7
+ muted: "#505351",
8
+ border: "#DFE1E0",
9
+ },
10
+ typography: {
11
+ font: {
12
+ style: {
13
+ sans: "Inter, -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif",
14
+ mono: "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace",
15
+ },
16
+ h1: { size: "2.25rem", weight: 500, lineHeight: "1.2", letterSpacing: "-0.025em" },
17
+ h2: { size: "1.875rem", weight: 600, lineHeight: "1.25", letterSpacing: "-0.02em" },
18
+ h3: { size: "1.5rem", weight: 600, lineHeight: "1.3", letterSpacing: "-0.01em" },
19
+ h4: { size: "1.25rem", weight: 600, lineHeight: "1.4" },
20
+ body: { size: "1rem", weight: 400, lineHeight: "1.7" },
21
+ small: { size: "0.875rem", weight: 400, lineHeight: "1.5" },
22
+ },
23
+ },
24
+ layout: {
25
+ contentWidth: 768,
26
+ sidebarWidth: 240,
27
+ toc: { enabled: true, depth: 3, style: "default" },
28
+ header: { height: 56, sticky: true },
29
+ },
30
+ components: {
31
+ Callout: { variant: "soft", icon: true },
32
+ CodeBlock: { showCopyButton: true },
33
+ Tabs: { style: "default" },
34
+ },
35
+ };
36
+
37
+ export const greentree = createTheme({
38
+ name: "greentree",
39
+ ui: GreenTreeUIDefaults,
40
+ });
41
+
42
+ export { GreenTreeUIDefaults };
package/styles/docs.css CHANGED
@@ -375,6 +375,16 @@ samp {
375
375
  background: var(--color-fd-border);
376
376
  }
377
377
 
378
+ .fd-sidebar-banner {
379
+ padding: 12px 16px;
380
+ border-bottom: 1px solid var(--color-fd-border);
381
+ }
382
+
383
+ .fd-sidebar-footer-custom {
384
+ padding: 12px 16px;
385
+ border-top: 1px solid var(--color-fd-border);
386
+ }
387
+
378
388
  .fd-sidebar-footer {
379
389
  padding: 12px 16px;
380
390
  border-top: 1px solid var(--color-fd-border);
@@ -0,0 +1,2 @@
1
+ @import "./docs.css";
2
+ @import "./greentree.css";
@@ -0,0 +1,626 @@
1
+ /* @farming-labs/nuxt-theme — greentree theme overrides
2
+ * Mintlify-inspired design, emerald green accent. Import AFTER docs.css.
3
+ */
4
+
5
+ /* ─── GreenTree color overrides ────────────────────────────────── */
6
+
7
+ :root {
8
+ --color-fd-primary: #0d9373;
9
+ --color-fd-primary-foreground: #fff;
10
+ --color-fd-ring: #0d9373;
11
+
12
+ --color-fd-background: #fff;
13
+ --color-fd-foreground: #171a18;
14
+ --color-fd-card: #fff;
15
+ --color-fd-card-foreground: #171a18;
16
+ --color-fd-popover: #fff;
17
+ --color-fd-popover-foreground: #171a18;
18
+ --color-fd-secondary: #f6f8f7;
19
+ --color-fd-secondary-foreground: #171a18;
20
+ --color-fd-muted: #f6f8f7;
21
+ --color-fd-muted-foreground: #505351;
22
+ --color-fd-accent: #f0f5f3;
23
+ --color-fd-accent-foreground: #171a18;
24
+ --color-fd-border: #dfe1e0;
25
+ }
26
+
27
+ .dark {
28
+ --color-fd-primary: #26bd6c;
29
+ --color-fd-primary-foreground: #0a0d0d;
30
+ --color-fd-ring: #26bd6c;
31
+
32
+ --color-fd-background: #0a0d0d;
33
+ --color-fd-foreground: #e5e7e6;
34
+ --color-fd-card: #111413;
35
+ --color-fd-card-foreground: #e5e7e6;
36
+ --color-fd-popover: #111413;
37
+ --color-fd-popover-foreground: #e5e7e6;
38
+ --color-fd-secondary: #1a1d1c;
39
+ --color-fd-secondary-foreground: #e5e7e6;
40
+ --color-fd-muted: #1a1d1c;
41
+ --color-fd-muted-foreground: #8a8d8b;
42
+ --color-fd-accent: #1a1d1c;
43
+ --color-fd-accent-foreground: #e5e7e6;
44
+ --color-fd-border: #2a2d2c;
45
+ }
46
+
47
+ /* ─── Typography — Inter, Mintlify-style values ──────────────── */
48
+
49
+ h1 {
50
+ letter-spacing: -0.025em;
51
+ font-weight: 500;
52
+ line-height: 1.2;
53
+ }
54
+
55
+ h2 {
56
+ letter-spacing: -0.02em;
57
+ font-weight: 600;
58
+ line-height: 1.25;
59
+ }
60
+
61
+ h3 {
62
+ letter-spacing: -0.01em;
63
+ font-weight: 600;
64
+ line-height: 1.3;
65
+ }
66
+
67
+ .fd-docs-content p {
68
+ font-size: 1rem;
69
+ line-height: 1.7;
70
+ }
71
+
72
+ /* ═══════════════════════════════════════════════════════════════════
73
+ * SIDEBAR — GreenTree: no border, green active background
74
+ * ═══════════════════════════════════════════════════════════════════ */
75
+
76
+ aside,
77
+ #nd-sidebar,
78
+ aside#nd-sidebar,
79
+ #nd-docs-layout aside {
80
+ border: none;
81
+ border-right: none;
82
+ border-left: none;
83
+ border-color: transparent;
84
+ box-shadow: none;
85
+ background: var(--color-fd-background);
86
+ }
87
+
88
+ aside a[data-active] {
89
+ font-size: 0.875rem;
90
+ line-height: 1.5;
91
+ font-weight: 500;
92
+ padding: 6px 10px;
93
+ border-radius: 8px;
94
+ color: var(--color-fd-muted-foreground);
95
+ transition:
96
+ color 150ms,
97
+ background-color 150ms;
98
+ }
99
+
100
+ aside a[data-active]:hover {
101
+ color: var(--color-fd-foreground);
102
+ background: var(--color-fd-accent);
103
+ }
104
+
105
+ aside a[data-active="true"] {
106
+ color: var(--color-fd-primary);
107
+ font-weight: 600;
108
+ background: rgba(13, 147, 115, 0.08);
109
+ background-color: rgba(13, 147, 115, 0.08);
110
+ }
111
+
112
+ .dark aside a[data-active="true"] {
113
+ background: rgba(38, 189, 108, 0.1);
114
+ background-color: rgba(38, 189, 108, 0.1);
115
+ color: var(--color-fd-primary);
116
+ }
117
+
118
+ aside a[data-active="true"]::before {
119
+ background-color: transparent;
120
+ width: 0;
121
+ }
122
+
123
+ aside a[data-active].w-full {
124
+ font-weight: 600;
125
+ font-size: 0.875rem;
126
+ color: var(--color-fd-foreground);
127
+ padding-top: 1rem;
128
+ padding-bottom: 0.25rem;
129
+ margin-top: 0.5rem;
130
+ background: transparent !important;
131
+ }
132
+
133
+ aside a[data-active].w-full:first-child {
134
+ margin-top: 0;
135
+ }
136
+
137
+ aside a[data-active="true"].w-full {
138
+ color: var(--color-fd-primary);
139
+ }
140
+
141
+ aside div.w-full:not([role]) {
142
+ font-weight: 600;
143
+ font-size: 0.875rem;
144
+ color: var(--color-fd-foreground);
145
+ padding-top: 1rem;
146
+ padding-bottom: 0.25rem;
147
+ margin-top: 0.5rem;
148
+ }
149
+
150
+ aside button[class*="bg-fd-secondary"] {
151
+ background: transparent;
152
+ border: 1px solid var(--color-fd-border);
153
+ border-radius: 8px;
154
+ font-size: 0.875rem;
155
+ }
156
+
157
+ aside .border-t,
158
+ aside [class*="border-t"] {
159
+ border-top-color: transparent;
160
+ }
161
+
162
+ /* ═══════════════════════════════════════════════════════════════════
163
+ * HEADER — clean, no heavy border
164
+ * ═══════════════════════════════════════════════════════════════════ */
165
+
166
+ header,
167
+ [role="banner"],
168
+ #nd-docs-layout > header,
169
+ nav[class*="header"] {
170
+ border-bottom: 1px solid var(--color-fd-border);
171
+ }
172
+
173
+ /* ═══════════════════════════════════════════════════════════════════
174
+ * CONTENT — links, code, tables, etc.
175
+ * ═══════════════════════════════════════════════════════════════════ */
176
+
177
+ .fd-docs-content a:not(.fd-page-nav-card):not([class]) {
178
+ text-decoration: underline;
179
+ text-underline-offset: 3px;
180
+ text-decoration-color: rgba(13, 147, 115, 0.3);
181
+ text-decoration-thickness: 1px;
182
+ font-weight: 500;
183
+ color: var(--color-fd-primary);
184
+ transition: text-decoration-color 150ms;
185
+ }
186
+
187
+ .fd-docs-content a:not(.fd-page-nav-card):not([class]):hover {
188
+ text-decoration-color: var(--color-fd-primary);
189
+ }
190
+
191
+ .fd-docs-content :not(pre) > code {
192
+ padding: 2px 5px;
193
+ border: 1px solid var(--color-fd-border);
194
+ font-size: 0.875rem;
195
+ border-radius: 6px;
196
+ background: var(--color-fd-muted);
197
+ color: var(--color-fd-foreground);
198
+ font-weight: 400;
199
+ }
200
+
201
+ .fd-docs-content table {
202
+ border-collapse: separate;
203
+ border-spacing: 0;
204
+ background: var(--color-fd-card);
205
+ border-radius: 8px;
206
+ border: 1px solid var(--color-fd-border);
207
+ overflow: hidden;
208
+ width: 100%;
209
+ }
210
+
211
+ .fd-docs-content th {
212
+ background: var(--color-fd-muted);
213
+ font-weight: 500;
214
+ font-size: 0.8125rem;
215
+ color: var(--color-fd-muted-foreground);
216
+ text-transform: none;
217
+ letter-spacing: normal;
218
+ }
219
+
220
+ .fd-docs-content th,
221
+ .fd-docs-content td {
222
+ padding: 0.75rem 1rem;
223
+ border-bottom: 1px solid var(--color-fd-border);
224
+ font-size: 0.875rem;
225
+ }
226
+
227
+ .fd-docs-content tr:last-child td {
228
+ border-bottom: none;
229
+ }
230
+
231
+ .fd-docs-content blockquote {
232
+ border-left: 3px solid var(--color-fd-primary);
233
+ padding-left: 1rem;
234
+ color: var(--color-fd-muted-foreground);
235
+ font-style: normal;
236
+ margin: 1rem 0;
237
+ }
238
+
239
+ .fd-docs-content hr {
240
+ border-color: var(--color-fd-border);
241
+ }
242
+
243
+ /* ═══════════════════════════════════════════════════════════════════
244
+ * CARDS
245
+ * ═══════════════════════════════════════════════════════════════════ */
246
+
247
+ .fd-card {
248
+ display: block;
249
+ border-radius: 12px;
250
+ border: 1px solid var(--color-fd-border);
251
+ background: var(--color-fd-card);
252
+ padding: 1.25rem;
253
+ font-size: 0.875rem;
254
+ color: var(--color-fd-card-foreground);
255
+ box-shadow: none;
256
+ transition:
257
+ background-color 150ms,
258
+ border-color 150ms;
259
+ }
260
+
261
+ .fd-card:hover {
262
+ border-color: var(--color-fd-primary);
263
+ box-shadow: none;
264
+ }
265
+
266
+ .fd-card-icon {
267
+ margin-bottom: 0.5rem;
268
+ width: fit-content;
269
+ border-radius: 8px;
270
+ border: 1px solid var(--color-fd-border);
271
+ padding: 0.5rem;
272
+ color: var(--color-fd-primary);
273
+ background: rgba(13, 147, 115, 0.06);
274
+ }
275
+
276
+ .dark .fd-card-icon {
277
+ background: rgba(38, 189, 108, 0.08);
278
+ }
279
+
280
+ .fd-card-title {
281
+ font-weight: 500;
282
+ font-size: 0.9375rem;
283
+ }
284
+
285
+ .fd-card-description {
286
+ color: var(--color-fd-muted-foreground);
287
+ margin-top: 0.25rem;
288
+ font-size: 0.8125rem;
289
+ line-height: 1.5;
290
+ }
291
+
292
+ .fd-cards {
293
+ display: grid;
294
+ grid-template-columns: 1fr;
295
+ gap: 0.75rem;
296
+ }
297
+
298
+ @media (min-width: 640px) {
299
+ .fd-cards {
300
+ grid-template-columns: repeat(2, 1fr);
301
+ }
302
+ }
303
+
304
+ .fd-page-nav-card {
305
+ border-radius: 12px;
306
+ }
307
+
308
+ /* ═══════════════════════════════════════════════════════════════════
309
+ * CODE BLOCKS, TABS, CALLOUT, TOC, etc.
310
+ * ═══════════════════════════════════════════════════════════════════ */
311
+
312
+ figure.shiki {
313
+ border-radius: 10px;
314
+ overflow: hidden;
315
+ border: 1px solid var(--color-fd-border);
316
+ }
317
+
318
+ [role="tablist"] {
319
+ border-bottom: 1px solid var(--color-fd-border);
320
+ }
321
+
322
+ [role="tab"] {
323
+ font-size: 0.875rem;
324
+ font-weight: 400;
325
+ padding: 0.5rem 0.75rem;
326
+ border-radius: 0;
327
+ color: var(--color-fd-muted-foreground);
328
+ border-bottom: 2px solid transparent;
329
+ transition:
330
+ color 150ms,
331
+ border-color 150ms;
332
+ }
333
+
334
+ [role="tab"][aria-selected="true"],
335
+ [role="tab"][data-state="active"] {
336
+ color: var(--color-fd-primary);
337
+ border-bottom-color: var(--color-fd-primary);
338
+ font-weight: 500;
339
+ }
340
+
341
+ [style*="--callout-color"] {
342
+ border-radius: 10px;
343
+ border-width: 1px;
344
+ }
345
+
346
+ details {
347
+ border: 1px solid var(--color-fd-border);
348
+ border-radius: 10px;
349
+ padding: 0;
350
+ margin: 0.75rem 0;
351
+ overflow: hidden;
352
+ }
353
+
354
+ details summary {
355
+ padding: 0.75rem 1rem;
356
+ font-weight: 500;
357
+ font-size: 0.9375rem;
358
+ cursor: pointer;
359
+ color: var(--color-fd-foreground);
360
+ background: var(--color-fd-secondary);
361
+ transition: background 150ms;
362
+ }
363
+
364
+ details summary:hover {
365
+ background: var(--color-fd-accent);
366
+ }
367
+
368
+ details[open] summary {
369
+ border-bottom: 1px solid var(--color-fd-border);
370
+ }
371
+
372
+ details > :not(summary) {
373
+ padding: 0.75rem 1rem;
374
+ }
375
+
376
+ #nd-toc a[data-active="true"] {
377
+ color: var(--color-fd-primary);
378
+ font-weight: 500;
379
+ }
380
+
381
+ #nd-toc a[data-active="false"] {
382
+ color: var(--color-fd-muted-foreground);
383
+ }
384
+
385
+ #nd-toc a {
386
+ font-size: 0.875rem;
387
+ line-height: 1.3;
388
+ }
389
+
390
+ #nd-toc h3 {
391
+ font-size: 0.875rem;
392
+ font-weight: 500;
393
+ }
394
+
395
+ .omni-content {
396
+ border-radius: 12px;
397
+ border: 1px solid var(--color-fd-border);
398
+ background: var(--color-fd-popover);
399
+ box-shadow: 0 16px 70px rgba(0, 0, 0, 0.1);
400
+ }
401
+
402
+ .omni-item {
403
+ border-radius: 8px;
404
+ }
405
+
406
+ .omni-item-active {
407
+ background: var(--color-fd-accent);
408
+ }
409
+
410
+ .omni-highlight {
411
+ background: rgba(13, 147, 115, 0.1);
412
+ color: var(--color-fd-primary);
413
+ }
414
+
415
+ .dark .omni-highlight {
416
+ background: rgba(38, 189, 108, 0.15);
417
+ }
418
+
419
+ .omni-search-input:focus {
420
+ caret-color: var(--color-fd-primary);
421
+ }
422
+
423
+ .fd-page-footer {
424
+ border-top: 1px solid var(--color-fd-border);
425
+ }
426
+
427
+ .fd-page-description {
428
+ margin-bottom: 1rem;
429
+ font-size: 1rem;
430
+ line-height: 1.7;
431
+ color: var(--color-fd-muted-foreground);
432
+ }
433
+
434
+ .fd-page-action-btn {
435
+ border-radius: 8px;
436
+ font-size: 0.8125rem;
437
+ }
438
+
439
+ .fd-page-action-menu {
440
+ border-radius: 10px;
441
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
442
+ }
443
+
444
+ .fd-page-action-menu-item {
445
+ border-radius: 6px;
446
+ }
447
+
448
+ .fd-ai-dialog {
449
+ border-radius: 14px;
450
+ box-shadow: 0 16px 70px rgba(0, 0, 0, 0.1);
451
+ }
452
+
453
+ .fd-ai-bubble-user {
454
+ border-radius: 16px 16px 4px 16px;
455
+ }
456
+
457
+ .fd-ai-bubble-ai {
458
+ border-radius: 16px 16px 16px 4px;
459
+ }
460
+
461
+ .fd-ai-input-wrap {
462
+ border-radius: 10px;
463
+ }
464
+
465
+ .fd-ai-send-btn {
466
+ border-radius: 10px;
467
+ }
468
+
469
+ .dark .fd-ai-floating-btn {
470
+ border-radius: 999px;
471
+ background: var(--color-fd-primary);
472
+ color: #fff;
473
+ box-shadow: 0 2px 8px rgba(38, 189, 108, 0.25);
474
+ border: none;
475
+ }
476
+
477
+ .dark .fd-ai-floating-btn:hover {
478
+ filter: brightness(1.1);
479
+ }
480
+
481
+ :root:not(.dark) .fd-ai-floating-btn {
482
+ border-radius: 999px;
483
+ background: var(--color-fd-primary);
484
+ color: #fff;
485
+ box-shadow: 0 2px 8px rgba(13, 147, 115, 0.2);
486
+ border: none;
487
+ }
488
+
489
+ :root:not(.dark) .fd-ai-floating-btn:hover {
490
+ filter: brightness(1.1);
491
+ }
492
+
493
+ .fd-ai-suggestion,
494
+ .fd-ai-result {
495
+ border-radius: 10px;
496
+ }
497
+
498
+ .fd-sidebar-search-ai-row {
499
+ display: flex;
500
+ gap: 8px;
501
+ align-items: stretch;
502
+ width: 100%;
503
+ }
504
+
505
+ .fd-sidebar-search-btn {
506
+ flex: 1;
507
+ min-width: 0;
508
+ display: flex;
509
+ align-items: center;
510
+ gap: 8px;
511
+ padding: 8px 10px;
512
+ font-size: 0.875rem;
513
+ color: var(--color-fd-muted-foreground);
514
+ background: transparent;
515
+ border: 1px solid var(--color-fd-border);
516
+ border-radius: 8px;
517
+ cursor: pointer;
518
+ transition: background-color 150ms;
519
+ }
520
+
521
+ .fd-sidebar-search-btn:hover {
522
+ background: var(--color-fd-accent);
523
+ }
524
+
525
+ .fd-sidebar-search-btn svg {
526
+ flex-shrink: 0;
527
+ }
528
+
529
+ .fd-sidebar-search-kbd kbd {
530
+ font-family: inherit;
531
+ font-size: 0.7rem;
532
+ padding: 1px 4px;
533
+ border: 1px solid var(--color-fd-border);
534
+ border-radius: 4px;
535
+ background: var(--color-fd-muted);
536
+ }
537
+
538
+ .fd-sidebar-ai-btn {
539
+ display: inline-flex;
540
+ align-items: center;
541
+ justify-content: center;
542
+ width: 38px;
543
+ min-width: 38px;
544
+ border-radius: 8px;
545
+ border: 1px solid var(--color-fd-border);
546
+ background: transparent;
547
+ color: var(--color-fd-muted-foreground);
548
+ cursor: pointer;
549
+ transition:
550
+ background-color 150ms,
551
+ color 150ms,
552
+ border-color 150ms;
553
+ }
554
+
555
+ .fd-sidebar-ai-btn:hover {
556
+ background: var(--color-fd-accent);
557
+ color: var(--color-fd-primary);
558
+ border-color: var(--color-fd-primary);
559
+ }
560
+
561
+ .fd-sidebar-ai-btn svg {
562
+ width: 16px;
563
+ height: 16px;
564
+ }
565
+
566
+ .fd-page-actions {
567
+ display: flex;
568
+ gap: 0;
569
+ align-items: stretch;
570
+ }
571
+
572
+ .fd-page-action-btn {
573
+ display: inline-flex;
574
+ align-items: center;
575
+ gap: 6px;
576
+ padding: 6px 12px;
577
+ font-size: 0.8125rem;
578
+ font-weight: 500;
579
+ color: var(--color-fd-muted-foreground);
580
+ background: transparent;
581
+ border: 1px solid var(--color-fd-border);
582
+ cursor: pointer;
583
+ transition:
584
+ background-color 150ms,
585
+ color 150ms;
586
+ white-space: nowrap;
587
+ }
588
+
589
+ .fd-page-action-btn:hover {
590
+ background: var(--color-fd-accent);
591
+ color: var(--color-fd-foreground);
592
+ }
593
+
594
+ .fd-page-actions .fd-page-action-btn:first-child {
595
+ border-radius: 8px 0 0 8px;
596
+ border-right: none;
597
+ }
598
+
599
+ .fd-page-actions .fd-page-action-dropdown:last-child .fd-page-action-btn,
600
+ .fd-page-actions > .fd-page-action-btn:last-child {
601
+ border-radius: 0 8px 8px 0;
602
+ border-left: 1px solid var(--color-fd-border);
603
+ padding: 6px 8px;
604
+ }
605
+
606
+ .fd-page-actions .fd-page-action-btn:only-child {
607
+ border-radius: 8px;
608
+ border: 1px solid var(--color-fd-border);
609
+ }
610
+
611
+ .fd-page-action-dropdown {
612
+ position: relative;
613
+ }
614
+
615
+ .fd-sidebar::-webkit-scrollbar {
616
+ width: 4px;
617
+ }
618
+
619
+ .fd-sidebar::-webkit-scrollbar-thumb {
620
+ background: var(--color-fd-border);
621
+ border-radius: 4px;
622
+ }
623
+
624
+ .fd-sidebar::-webkit-scrollbar-track {
625
+ background: transparent;
626
+ }