fumadocs-ui 15.2.8 → 16.0.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.
Files changed (202) hide show
  1. package/README.md +1 -1
  2. package/css/black.css +4 -2
  3. package/css/catppuccin.css +2 -0
  4. package/css/default.css +33 -0
  5. package/css/dusk.css +2 -0
  6. package/css/neutral.css +11 -8
  7. package/css/ocean.css +5 -3
  8. package/css/preset.css +237 -16
  9. package/css/purple.css +12 -10
  10. package/css/shadcn.css +31 -0
  11. package/css/shiki.css +78 -51
  12. package/css/solar.css +48 -0
  13. package/css/vitepress.css +3 -4
  14. package/dist/components/accordion.d.ts +6 -3
  15. package/dist/components/accordion.d.ts.map +1 -1
  16. package/dist/components/accordion.js +19 -11
  17. package/dist/components/banner.d.ts +8 -2
  18. package/dist/components/banner.d.ts.map +1 -1
  19. package/dist/components/banner.js +25 -30
  20. package/dist/components/callout.d.ts +2 -2
  21. package/dist/components/callout.d.ts.map +1 -1
  22. package/dist/components/callout.js +15 -18
  23. package/dist/components/card.d.ts.map +1 -1
  24. package/dist/components/card.js +2 -2
  25. package/dist/components/codeblock.d.ts +19 -23
  26. package/dist/components/codeblock.d.ts.map +1 -1
  27. package/dist/components/codeblock.js +55 -24
  28. package/dist/components/dialog/search-algolia.d.ts +5 -4
  29. package/dist/components/dialog/search-algolia.d.ts.map +1 -1
  30. package/dist/components/dialog/search-algolia.js +21 -7
  31. package/dist/components/dialog/search-default.d.ts +4 -2
  32. package/dist/components/dialog/search-default.d.ts.map +1 -1
  33. package/dist/components/dialog/search-default.js +22 -6
  34. package/dist/components/dialog/search-orama.d.ts +5 -3
  35. package/dist/components/dialog/search-orama.d.ts.map +1 -1
  36. package/dist/components/dialog/search-orama.js +21 -6
  37. package/dist/components/dialog/search.d.ts +61 -27
  38. package/dist/components/dialog/search.d.ts.map +1 -1
  39. package/dist/components/dialog/search.js +155 -67
  40. package/dist/components/dynamic-codeblock.d.ts +16 -2
  41. package/dist/components/dynamic-codeblock.d.ts.map +1 -1
  42. package/dist/components/dynamic-codeblock.js +22 -10
  43. package/dist/components/files.d.ts.map +1 -1
  44. package/dist/components/files.js +1 -1
  45. package/dist/components/github-info.js +1 -1
  46. package/dist/components/heading.js +1 -1
  47. package/dist/components/image-zoom.css +4 -0
  48. package/dist/components/inline-toc.d.ts +2 -2
  49. package/dist/components/inline-toc.d.ts.map +1 -1
  50. package/dist/components/inline-toc.js +1 -1
  51. package/dist/components/layout/language-toggle.js +1 -1
  52. package/dist/components/layout/root-toggle.d.ts +5 -15
  53. package/dist/components/layout/root-toggle.d.ts.map +1 -1
  54. package/dist/components/layout/root-toggle.js +10 -12
  55. package/dist/components/layout/search-toggle.d.ts +6 -4
  56. package/dist/components/layout/search-toggle.d.ts.map +1 -1
  57. package/dist/components/layout/search-toggle.js +5 -5
  58. package/dist/components/layout/sidebar.d.ts +21 -13
  59. package/dist/components/layout/sidebar.d.ts.map +1 -1
  60. package/dist/components/layout/sidebar.js +67 -65
  61. package/dist/components/layout/theme-toggle.js +1 -1
  62. package/dist/components/layout/toc-clerk.d.ts +2 -4
  63. package/dist/components/layout/toc-clerk.d.ts.map +1 -1
  64. package/dist/components/layout/toc-clerk.js +9 -5
  65. package/dist/components/layout/toc-thumb.js +1 -1
  66. package/dist/components/layout/toc.d.ts +6 -22
  67. package/dist/components/layout/toc.d.ts.map +1 -1
  68. package/dist/components/layout/toc.js +14 -18
  69. package/dist/components/tabs.d.ts +18 -18
  70. package/dist/components/tabs.d.ts.map +1 -1
  71. package/dist/components/tabs.js +44 -105
  72. package/dist/components/tabs.unstyled.d.ts +24 -0
  73. package/dist/components/tabs.unstyled.d.ts.map +1 -0
  74. package/dist/components/tabs.unstyled.js +89 -0
  75. package/dist/components/type-table.d.ts +19 -10
  76. package/dist/components/type-table.d.ts.map +1 -1
  77. package/dist/components/type-table.js +19 -10
  78. package/dist/components/ui/button.d.ts +2 -1
  79. package/dist/components/ui/button.d.ts.map +1 -1
  80. package/dist/components/ui/button.js +12 -8
  81. package/dist/components/ui/navigation-menu.js +2 -2
  82. package/dist/components/ui/popover.js +1 -1
  83. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  84. package/dist/components/ui/scroll-area.js +1 -1
  85. package/dist/contexts/search.d.ts +10 -2
  86. package/dist/contexts/search.d.ts.map +1 -1
  87. package/dist/contexts/search.js +7 -1
  88. package/dist/contexts/sidebar.d.ts.map +1 -1
  89. package/dist/contexts/sidebar.js +2 -3
  90. package/dist/contexts/tree.d.ts +2 -1
  91. package/dist/contexts/tree.d.ts.map +1 -1
  92. package/dist/contexts/tree.js +9 -2
  93. package/dist/i18n.d.ts +13 -11
  94. package/dist/i18n.d.ts.map +1 -1
  95. package/dist/i18n.js +14 -37
  96. package/dist/icons.d.ts +49 -0
  97. package/dist/icons.d.ts.map +1 -0
  98. package/dist/icons.js +282 -0
  99. package/dist/layouts/docs/client.d.ts +9 -0
  100. package/dist/layouts/docs/client.d.ts.map +1 -0
  101. package/dist/layouts/docs/client.js +46 -0
  102. package/dist/layouts/docs/index.d.ts +36 -0
  103. package/dist/layouts/docs/index.d.ts.map +1 -0
  104. package/dist/layouts/docs/index.js +77 -0
  105. package/dist/layouts/docs/page-client.d.ts +25 -0
  106. package/dist/layouts/docs/page-client.d.ts.map +1 -0
  107. package/dist/layouts/docs/page-client.js +157 -0
  108. package/dist/layouts/docs/page.d.ts +17 -0
  109. package/dist/layouts/docs/page.d.ts.map +1 -0
  110. package/dist/layouts/docs/page.js +26 -0
  111. package/dist/layouts/{home.d.ts → home/index.d.ts} +2 -3
  112. package/dist/layouts/home/index.d.ts.map +1 -0
  113. package/dist/layouts/home/index.js +56 -0
  114. package/dist/layouts/home/menu.d.ts +1 -1
  115. package/dist/layouts/home/menu.d.ts.map +1 -1
  116. package/dist/layouts/home/menu.js +3 -6
  117. package/dist/layouts/home/navbar.d.ts +4 -4
  118. package/dist/layouts/home/navbar.d.ts.map +1 -1
  119. package/dist/layouts/home/navbar.js +3 -4
  120. package/dist/layouts/notebook/client.d.ts +11 -0
  121. package/dist/layouts/notebook/client.d.ts.map +1 -0
  122. package/dist/layouts/notebook/client.js +45 -0
  123. package/dist/layouts/notebook/index.d.ts +34 -0
  124. package/dist/layouts/notebook/index.d.ts.map +1 -0
  125. package/dist/layouts/notebook/index.js +112 -0
  126. package/dist/layouts/shared/client.d.ts +6 -0
  127. package/dist/layouts/shared/client.d.ts.map +1 -0
  128. package/dist/layouts/{links.js → shared/client.js} +4 -6
  129. package/dist/layouts/shared/index.d.ts +122 -0
  130. package/dist/layouts/shared/index.d.ts.map +1 -0
  131. package/dist/layouts/{shared.js → shared/index.js} +1 -15
  132. package/dist/mdx.d.ts +7 -2
  133. package/dist/mdx.d.ts.map +1 -1
  134. package/dist/mdx.js +5 -1
  135. package/dist/mdx.server.d.ts.map +1 -1
  136. package/dist/mdx.server.js +10 -3
  137. package/dist/page.d.ts +33 -35
  138. package/dist/page.d.ts.map +1 -1
  139. package/dist/page.js +28 -32
  140. package/dist/provider/base.d.ts +1 -1
  141. package/dist/provider/base.d.ts.map +1 -1
  142. package/dist/provider/base.js +9 -9
  143. package/dist/provider/index.d.ts +5 -3
  144. package/dist/provider/index.d.ts.map +1 -1
  145. package/dist/provider/index.js +6 -6
  146. package/dist/provider/next.d.ts +4 -0
  147. package/dist/provider/next.d.ts.map +1 -0
  148. package/dist/provider/next.js +7 -0
  149. package/dist/provider/react-router.d.ts +4 -0
  150. package/dist/provider/react-router.d.ts.map +1 -0
  151. package/dist/provider/react-router.js +7 -0
  152. package/dist/provider/tanstack.d.ts +4 -0
  153. package/dist/provider/tanstack.d.ts.map +1 -0
  154. package/dist/provider/tanstack.js +7 -0
  155. package/dist/provider/waku.d.ts +4 -0
  156. package/dist/provider/waku.d.ts.map +1 -0
  157. package/dist/provider/waku.js +7 -0
  158. package/dist/style.css +944 -470
  159. package/dist/utils/get-sidebar-tabs.d.ts +18 -4
  160. package/dist/utils/get-sidebar-tabs.d.ts.map +1 -1
  161. package/dist/utils/get-sidebar-tabs.js +11 -8
  162. package/dist/utils/is-active.d.ts +2 -0
  163. package/dist/utils/is-active.d.ts.map +1 -1
  164. package/dist/utils/is-active.js +12 -4
  165. package/dist/utils/merge-refs.d.ts +3 -0
  166. package/dist/utils/merge-refs.d.ts.map +1 -0
  167. package/dist/utils/merge-refs.js +12 -0
  168. package/dist/utils/use-copy-button.d.ts +1 -1
  169. package/dist/utils/use-copy-button.d.ts.map +1 -1
  170. package/dist/utils/use-copy-button.js +9 -7
  171. package/package.json +76 -32
  172. package/css/animations.css +0 -199
  173. package/dist/components/ui/tabs.d.ts +0 -8
  174. package/dist/components/ui/tabs.d.ts.map +0 -1
  175. package/dist/components/ui/tabs.js +0 -16
  176. package/dist/layouts/docs/shared.d.ts +0 -25
  177. package/dist/layouts/docs/shared.d.ts.map +0 -1
  178. package/dist/layouts/docs/shared.js +0 -24
  179. package/dist/layouts/docs-client.d.ts +0 -5
  180. package/dist/layouts/docs-client.d.ts.map +0 -1
  181. package/dist/layouts/docs-client.js +0 -33
  182. package/dist/layouts/docs.d.ts +0 -30
  183. package/dist/layouts/docs.d.ts.map +0 -1
  184. package/dist/layouts/docs.js +0 -50
  185. package/dist/layouts/home.d.ts.map +0 -1
  186. package/dist/layouts/home.js +0 -44
  187. package/dist/layouts/links.d.ts +0 -79
  188. package/dist/layouts/links.d.ts.map +0 -1
  189. package/dist/layouts/notebook-client.d.ts +0 -12
  190. package/dist/layouts/notebook-client.d.ts.map +0 -1
  191. package/dist/layouts/notebook-client.js +0 -47
  192. package/dist/layouts/notebook.d.ts +0 -17
  193. package/dist/layouts/notebook.d.ts.map +0 -1
  194. package/dist/layouts/notebook.js +0 -68
  195. package/dist/layouts/shared.d.ts +0 -65
  196. package/dist/layouts/shared.d.ts.map +0 -1
  197. package/dist/page-client.d.ts +0 -28
  198. package/dist/page-client.d.ts.map +0 -1
  199. package/dist/page-client.js +0 -150
  200. package/dist/page.server.d.ts +0 -13
  201. package/dist/page.server.d.ts.map +0 -1
  202. package/dist/page.server.js +0 -36
package/README.md CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  The Next.js framework for building documentation website.
4
4
 
5
- [Read Documentation](https://fumadocs.vercel.app/docs/ui)
5
+ [Read Documentation](https://fumadocs.dev/docs/ui)
package/css/black.css CHANGED
@@ -1,3 +1,5 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-background: hsl(0, 0%, 98%);
3
5
  --color-fd-foreground: hsl(0, 0%, 3.9%);
@@ -7,7 +9,7 @@
7
9
  --color-fd-popover-foreground: hsl(0, 0%, 15.1%);
8
10
  --color-fd-card: hsl(0, 0%, 99.7%);
9
11
  --color-fd-card-foreground: hsl(0, 0%, 3.9%);
10
- --color-fd-border: hsl(0, 0%, 89.8%);
12
+ --color-fd-border: hsla(0, 0%, 60%, 0.2);
11
13
  --color-fd-primary: hsl(0, 0%, 9%);
12
14
  --color-fd-primary-foreground: hsl(0, 0%, 98%);
13
15
  --color-fd-secondary: hsl(0, 0%, 96.1%);
@@ -26,7 +28,7 @@
26
28
  --color-fd-popover-foreground: hsl(0, 0%, 98%);
27
29
  --color-fd-card: hsl(0, 0%, 4%);
28
30
  --color-fd-card-foreground: hsl(0, 0%, 98%);
29
- --color-fd-border: hsl(0, 0%, 14%);
31
+ --color-fd-border: hsl(0, 0%, 50%, 0.2);
30
32
  --color-fd-primary: hsl(0, 0%, 98%);
31
33
  --color-fd-primary-foreground: hsl(0, 0%, 9%);
32
34
  --color-fd-secondary: hsl(0, 0%, 12.9%);
@@ -1,3 +1,5 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-popover: hsl(220, 22%, 92%);
3
5
  --color-fd-popover-foreground: hsl(234, 16%, 35%);
@@ -0,0 +1,33 @@
1
+ /**
2
+ The default theme of Fumadocs
3
+ */
4
+ @theme {
5
+ --color-fd-background: transparent;
6
+ --color-fd-foreground: transparent;
7
+ --color-fd-muted: transparent;
8
+ --color-fd-muted-foreground: transparent;
9
+ --color-fd-popover: transparent;
10
+ --color-fd-popover-foreground: transparent;
11
+ --color-fd-card: transparent;
12
+ --color-fd-card-foreground: transparent;
13
+ --color-fd-border: transparent;
14
+ --color-fd-primary: transparent;
15
+ --color-fd-primary-foreground: transparent;
16
+ --color-fd-secondary: transparent;
17
+ --color-fd-secondary-foreground: transparent;
18
+ --color-fd-accent: transparent;
19
+ --color-fd-accent-foreground: transparent;
20
+ --color-fd-ring: transparent;
21
+ --color-fd-overlay: transparent;
22
+ }
23
+
24
+ @theme static {
25
+ --color-fd-info: oklch(62.3% 0.214 259.815);
26
+ --color-fd-warning: oklch(76.9% 0.188 70.08);
27
+ --color-fd-error: oklch(63.7% 0.237 25.331);
28
+ --color-fd-success: oklch(72.3% 0.219 149.579);
29
+ --color-fd-diff-remove: rgba(200, 10, 100, 0.12);
30
+ --color-fd-diff-remove-symbol: rgb(230, 10, 100);
31
+ --color-fd-diff-add: rgba(14, 180, 100, 0.1);
32
+ --color-fd-diff-add-symbol: rgb(10, 200, 100);
33
+ }
package/css/dusk.css CHANGED
@@ -1,3 +1,5 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-background: hsl(250, 20%, 92%);
3
5
  --color-fd-primary: hsl(340, 40%, 48%);
package/css/neutral.css CHANGED
@@ -1,3 +1,5 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-background: hsl(0, 0%, 96%);
3
5
  --color-fd-foreground: hsl(0, 0%, 3.9%);
@@ -7,12 +9,12 @@
7
9
  --color-fd-popover-foreground: hsl(0, 0%, 15.1%);
8
10
  --color-fd-card: hsl(0, 0%, 94.7%);
9
11
  --color-fd-card-foreground: hsl(0, 0%, 3.9%);
10
- --color-fd-border: hsl(0, 0%, 89.8%);
12
+ --color-fd-border: hsla(0, 0%, 80%, 50%);
11
13
  --color-fd-primary: hsl(0, 0%, 9%);
12
14
  --color-fd-primary-foreground: hsl(0, 0%, 98%);
13
15
  --color-fd-secondary: hsl(0, 0%, 93.1%);
14
16
  --color-fd-secondary-foreground: hsl(0, 0%, 9%);
15
- --color-fd-accent: hsl(0, 0%, 90.1%);
17
+ --color-fd-accent: hsla(0, 0%, 82%, 50%);
16
18
  --color-fd-accent-foreground: hsl(0, 0%, 9%);
17
19
  --color-fd-ring: hsl(0, 0%, 63.9%);
18
20
  }
@@ -21,19 +23,20 @@
21
23
  --color-fd-background: hsl(0, 0%, 7.04%);
22
24
  --color-fd-foreground: hsl(0, 0%, 92%);
23
25
  --color-fd-muted: hsl(0, 0%, 12.9%);
24
- --color-fd-muted-foreground: hsl(0, 0%, 60.9%);
25
- --color-fd-popover: hsl(0, 0%, 9.8%);
26
- --color-fd-popover-foreground: hsl(0, 0%, 88%);
26
+ --color-fd-muted-foreground: hsla(0, 0%, 70%, 0.8);
27
+ --color-fd-popover: hsl(0, 0%, 11.6%);
28
+ --color-fd-popover-foreground: hsl(0, 0%, 86.9%);
27
29
  --color-fd-card: hsl(0, 0%, 9.8%);
28
30
  --color-fd-card-foreground: hsl(0, 0%, 98%);
29
- --color-fd-border: hsl(0, 0%, 14%);
31
+ --color-fd-border: hsla(0, 0%, 40%, 20%);
30
32
  --color-fd-primary: hsl(0, 0%, 98%);
31
33
  --color-fd-primary-foreground: hsl(0, 0%, 9%);
32
34
  --color-fd-secondary: hsl(0, 0%, 12.9%);
33
- --color-fd-secondary-foreground: hsl(0, 0%, 98%);
34
- --color-fd-accent: hsl(0, 0%, 16.9%);
35
+ --color-fd-secondary-foreground: hsl(0, 0%, 92%);
36
+ --color-fd-accent: hsla(0, 0%, 40.9%, 30%);
35
37
  --color-fd-accent-foreground: hsl(0, 0%, 90%);
36
38
  --color-fd-ring: hsl(0, 0%, 54.9%);
39
+ --color-fd-overlay: hsla(0, 0%, 0%, 0.2);
37
40
  }
38
41
 
39
42
  .dark #nd-sidebar {
package/css/ocean.css CHANGED
@@ -1,3 +1,5 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-background: hsl(0, 0%, 98%);
3
5
  --color-fd-foreground: hsl(0, 0%, 3.9%);
@@ -18,15 +20,15 @@
18
20
  }
19
21
 
20
22
  .dark {
21
- --color-fd-background: hsl(220, 60%, 6%);
23
+ --color-fd-background: hsl(220, 60%, 8%);
22
24
  --color-fd-foreground: hsl(220, 60%, 94.5%);
23
25
  --color-fd-muted: hsl(220, 50%, 10%);
24
26
  --color-fd-muted-foreground: hsl(220, 30%, 65%);
25
27
  --color-fd-popover: hsl(220, 50%, 10%);
26
28
  --color-fd-popover-foreground: hsl(220, 60%, 94.5%);
27
- --color-fd-card: hsl(220, 50%, 10%);
29
+ --color-fd-card: hsla(220, 56%, 15%, 0.4);
28
30
  --color-fd-card-foreground: hsl(220, 60%, 94.5%);
29
- --color-fd-border: hsl(220, 50%, 20%);
31
+ --color-fd-border: hsla(220, 50%, 50%, 0.2);
30
32
  --color-fd-primary: hsl(205, 100%, 85%);
31
33
  --color-fd-primary-foreground: hsl(0, 0%, 9%);
32
34
  --color-fd-secondary: hsl(220, 50%, 20%);
package/css/preset.css CHANGED
@@ -1,22 +1,220 @@
1
1
  @import './shiki.css';
2
- @import './animations.css';
3
2
 
4
3
  @source '../dist/**/*.js';
5
4
  @plugin '../dist/theme/typography/index.js';
6
5
 
6
+ [dir='rtl'] {
7
+ --fd-sidebar-mobile-offset: -100%;
8
+ }
9
+
7
10
  @theme {
11
+ --fd-sidebar-mobile-offset: 100%;
8
12
  --spacing-fd-container: 1400px;
13
+ --fd-page-width: 1200px;
9
14
  --fd-sidebar-width: 0px;
10
15
  --fd-toc-width: 0px;
11
- --fd-layout-width: 100vw;
16
+ --fd-layout-width: 1600px;
12
17
  --fd-banner-height: 0px;
13
18
  --fd-nav-height: 0px;
14
19
  --fd-tocnav-height: 0px;
20
+ --animate-fd-fade-in: fd-fade-in 300ms ease;
21
+ --animate-fd-fade-out: fd-fade-out 300ms ease;
22
+
23
+ --animate-fd-dialog-in: fd-dialog-in 300ms cubic-bezier(0.16, 1, 0.3, 1);
24
+ --animate-fd-dialog-out: fd-dialog-out 300ms cubic-bezier(0.16, 1, 0.3, 1);
25
+
26
+ --animate-fd-popover-in: fd-popover-in 100ms ease;
27
+ --animate-fd-popover-out: fd-popover-out 100ms ease;
28
+
29
+ --animate-fd-collapsible-down: fd-collapsible-down 150ms
30
+ cubic-bezier(0.45, 0, 0.55, 1);
31
+ --animate-fd-collapsible-up: fd-collapsible-up 150ms
32
+ cubic-bezier(0.45, 0, 0.55, 1);
33
+
34
+ --animate-fd-accordion-down: fd-accordion-down 200ms ease-out;
35
+ --animate-fd-accordion-up: fd-accordion-up 200ms ease-out;
36
+
37
+ --animate-fd-nav-menu-in: fd-nav-menu-in 200ms ease;
38
+ --animate-fd-nav-menu-out: fd-nav-menu-out 200ms ease;
39
+
40
+ --animate-fd-enterFromLeft: fd-enterFromLeft 250ms ease;
41
+ --animate-fd-enterFromRight: fd-enterFromRight 250ms ease;
42
+
43
+ --animate-fd-sidebar-in: fd-sidebar-in 250ms ease;
44
+ --animate-fd-sidebar-out: fd-sidebar-out 250ms ease;
45
+
46
+ --animate-fd-exitToLeft: fd-exitToLeft 250ms ease;
47
+ --animate-fd-exitToRight: fd-exitToRight 250ms ease;
48
+
49
+ @keyframes fd-sidebar-in {
50
+ from {
51
+ transform: translateX(var(--fd-sidebar-mobile-offset));
52
+ }
53
+ }
54
+
55
+ @keyframes fd-sidebar-out {
56
+ to {
57
+ transform: translateX(var(--fd-sidebar-mobile-offset));
58
+ }
59
+ }
60
+
61
+ @keyframes fd-collapsible-down {
62
+ from {
63
+ height: 0;
64
+ opacity: 0;
65
+ }
66
+ to {
67
+ height: var(--radix-collapsible-content-height);
68
+ }
69
+ }
70
+
71
+ @keyframes fd-collapsible-up {
72
+ from {
73
+ height: var(--radix-collapsible-content-height);
74
+ }
75
+ to {
76
+ height: 0;
77
+ opacity: 0;
78
+ }
79
+ }
80
+
81
+ @keyframes fd-accordion-down {
82
+ from {
83
+ height: 0;
84
+ opacity: 0.5;
85
+ }
86
+ to {
87
+ height: var(--radix-accordion-content-height);
88
+ }
89
+ }
90
+
91
+ @keyframes fd-accordion-up {
92
+ from {
93
+ height: var(--radix-accordion-content-height);
94
+ }
95
+ to {
96
+ height: 0;
97
+ opacity: 0.5;
98
+ }
99
+ }
100
+
101
+ @keyframes fd-dialog-in {
102
+ from {
103
+ transform: scale(1.06);
104
+ opacity: 0;
105
+ }
106
+ to {
107
+ transform: scale(1);
108
+ }
109
+ }
110
+
111
+ @keyframes fd-dialog-out {
112
+ from {
113
+ transform: scale(1);
114
+ }
115
+ to {
116
+ transform: scale(1.04);
117
+ opacity: 0;
118
+ }
119
+ }
120
+
121
+ @keyframes fd-popover-in {
122
+ from {
123
+ opacity: 0;
124
+ transform: scale(0.9);
125
+ }
126
+ }
127
+
128
+ @keyframes fd-popover-out {
129
+ to {
130
+ opacity: 0;
131
+ transform: scale(0.9);
132
+ }
133
+ }
134
+
135
+ @keyframes fd-fade-in {
136
+ from {
137
+ opacity: 0;
138
+ }
139
+ to {
140
+ opacity: 1;
141
+ }
142
+ }
143
+
144
+ @keyframes fd-fade-out {
145
+ from {
146
+ opacity: 1;
147
+ }
148
+ to {
149
+ opacity: 0;
150
+ }
151
+ }
152
+
153
+ @keyframes fd-enterFromRight {
154
+ from {
155
+ opacity: 0;
156
+ transform: translateX(200px);
157
+ }
158
+ to {
159
+ opacity: 1;
160
+ transform: translateX(0);
161
+ }
162
+ }
163
+
164
+ @keyframes fd-enterFromLeft {
165
+ from {
166
+ opacity: 0;
167
+ transform: translateX(-200px);
168
+ }
169
+ to {
170
+ opacity: 1;
171
+ transform: translateX(0);
172
+ }
173
+ }
174
+
175
+ @keyframes fd-exitToRight {
176
+ from {
177
+ opacity: 1;
178
+ transform: translateX(0);
179
+ }
180
+ to {
181
+ opacity: 0;
182
+ transform: translateX(200px);
183
+ }
184
+ }
185
+
186
+ @keyframes fd-exitToLeft {
187
+ from {
188
+ opacity: 1;
189
+ transform: translateX(0);
190
+ }
191
+ to {
192
+ opacity: 0;
193
+ transform: translateX(-200px);
194
+ }
195
+ }
196
+
197
+ @keyframes fd-nav-menu-in {
198
+ from {
199
+ opacity: 0;
200
+ height: 0px;
201
+ }
202
+ to {
203
+ opacity: 1;
204
+ height: var(--radix-navigation-menu-viewport-height);
205
+ }
206
+ }
15
207
 
16
- --fd-diff-remove-color: rgba(200, 10, 100, 0.12);
17
- --fd-diff-remove-symbol-color: rgb(230, 10, 100);
18
- --fd-diff-add-color: rgba(14, 180, 100, 0.12);
19
- --fd-diff-add-symbol-color: rgb(10, 200, 100);
208
+ @keyframes fd-nav-menu-out {
209
+ from {
210
+ opacity: 1;
211
+ height: var(--radix-navigation-menu-viewport-height);
212
+ }
213
+ to {
214
+ opacity: 0;
215
+ height: 0px;
216
+ }
217
+ }
20
218
  }
21
219
 
22
220
  @layer base {
@@ -33,17 +231,36 @@
33
231
  color: var(--color-fd-foreground);
34
232
  }
35
233
 
36
- [data-rmiz-modal-overlay='visible'] {
37
- background-color: var(--color-fd-background);
234
+ :root,
235
+ #nd-docs-layout {
236
+ --fd-layout-offset: max(calc(50vw - var(--fd-layout-width) / 2), 0px);
237
+ }
238
+ }
239
+
240
+ @utility fd-scroll-container {
241
+ &::-webkit-scrollbar {
242
+ width: 5px;
243
+ height: 5px;
244
+ }
245
+
246
+ &::-webkit-scrollbar-thumb {
247
+ border-radius: 5px;
248
+ background: var(--color-fd-border);
249
+ }
250
+
251
+ &::-webkit-scrollbar-track {
252
+ background: transparent;
253
+ }
254
+
255
+ &::-webkit-scrollbar-corner {
256
+ display: none;
38
257
  }
39
258
  }
40
259
 
41
260
  @utility fd-steps {
42
261
  counter-reset: step;
43
- border-left-width: 1px;
44
- margin-left: 1rem;
45
- padding-left: 1.75rem;
46
262
  position: relative;
263
+ @apply pl-6 ml-2 border-l sm:ml-4 sm:pl-7;
47
264
  }
48
265
 
49
266
  @utility fd-step {
@@ -52,16 +269,13 @@
52
269
  color: var(--color-fd-secondary-foreground);
53
270
  content: counter(step);
54
271
  counter-increment: step;
55
- border-radius: 9999px;
56
272
  justify-content: center;
57
273
  align-items: center;
58
- width: 2rem;
59
- height: 2rem;
60
274
  font-size: 0.875rem;
61
275
  line-height: 1.25rem;
62
276
  display: flex;
63
277
  position: absolute;
64
- left: -1rem;
278
+ @apply size-8 -start-4 rounded-full;
65
279
  }
66
280
  }
67
281
 
@@ -85,7 +299,14 @@
85
299
  margin-inline: auto;
86
300
  padding-inline: 1rem;
87
301
 
88
- @apply 2xl:max-w-[1400px];
302
+ @apply 2xl:max-w-(--spacing-fd-container);
89
303
  }
90
304
 
91
305
  @variant dark (&:where(.dark, .dark *));
306
+
307
+ /* Apply styles to :root */
308
+ @custom-variant on-root {
309
+ :root:has(&) {
310
+ @slot;
311
+ }
312
+ }
package/css/purple.css CHANGED
@@ -1,8 +1,10 @@
1
+ @import './default.css';
2
+
1
3
  @theme {
2
4
  --color-fd-background: hsl(256, 100%, 96%);
3
5
  --color-fd-primary: hsl(270, 100%, 52%);
4
- --color-fd-border: hsl(270, 40%, 80%);
5
- --color-fd-accent: hsl(270, 60%, 86%);
6
+ --color-fd-border: hsla(270, 40%, 80%, 0.5);
7
+ --color-fd-accent: hsl(270, 40%, 88%);
6
8
  --color-fd-accent-foreground: hsl(270, 100%, 20%);
7
9
  --color-fd-muted: hsl(256, 60%, 94%);
8
10
  --color-fd-muted-foreground: hsl(256, 50%, 50%);
@@ -18,20 +20,20 @@
18
20
  }
19
21
 
20
22
  .dark {
21
- --color-fd-background: hsl(256, 60%, 6%);
23
+ --color-fd-background: hsl(256, 20%, 6%);
22
24
  --color-fd-primary: hsl(270, 100%, 86%);
23
- --color-fd-border: hsl(270, 100%, 20%);
24
- --color-fd-accent: hsl(256, 60%, 26%);
25
- --color-fd-accent-foreground: hsl(270, 100%, 86%);
26
- --color-fd-muted: hsl(256, 60%, 10%);
25
+ --color-fd-border: hsla(270, 50%, 40%, 0.3);
26
+ --color-fd-accent: hsl(256, 23%, 22%);
27
+ --color-fd-accent-foreground: hsl(270, 40%, 86%);
28
+ --color-fd-muted: hsl(256, 23%, 10%);
27
29
  --color-fd-foreground: hsl(256, 60%, 90%);
28
30
  --color-fd-muted-foreground: hsl(256, 50%, 75%);
29
- --color-fd-secondary: hsl(270, 100%, 20%);
31
+ --color-fd-secondary: hsl(270, 23%, 20%);
30
32
  --color-fd-secondary-foreground: hsl(256, 60%, 90%);
31
- --color-fd-card: hsl(256, 60%, 10%);
33
+ --color-fd-card: hsl(256, 23%, 10%);
32
34
  --color-fd-card-foreground: hsl(256, 60%, 90%);
33
35
  --color-fd-popover-foreground: hsl(256, 60%, 90%);
34
- --color-fd-popover: hsl(256, 60%, 6%);
36
+ --color-fd-popover: hsl(256, 23%, 6%);
35
37
  --color-fd-primary-foreground: hsl(256, 60%, 6%);
36
38
  --color-fd-ring: hsl(270, 100%, 86%);
37
39
  }
package/css/shadcn.css ADDED
@@ -0,0 +1,31 @@
1
+ @import './default.css';
2
+
3
+ @theme {
4
+ --color-fd-background: var(--background);
5
+ --color-fd-foreground: var(--foreground);
6
+ --color-fd-muted: var(--muted);
7
+ --color-fd-muted-foreground: var(--muted-foreground);
8
+ --color-fd-popover: var(--popover);
9
+ --color-fd-popover-foreground: var(--popover-foreground);
10
+ --color-fd-card: var(--card);
11
+ --color-fd-card-foreground: var(--card-foreground);
12
+ --color-fd-border: var(--border);
13
+ --color-fd-primary: var(--primary);
14
+ --color-fd-primary-foreground: var(--primary-foreground);
15
+ --color-fd-secondary: var(--secondary);
16
+ --color-fd-secondary-foreground: var(--secondary-foreground);
17
+ --color-fd-accent: var(--accent);
18
+ --color-fd-accent-foreground: var(--accent-foreground);
19
+ --color-fd-ring: var(--ring);
20
+ }
21
+
22
+ #nd-sidebar {
23
+ background-color: var(--sidebar);
24
+ color: var(--sidebar-foreground);
25
+ border-color: var(--sidebar-border);
26
+
27
+ --color-fd-accent: var(--sidebar-accent);
28
+ --color-fd-accent-foreground: var(--sidebar-accent-foreground);
29
+ --color-fd-ring: var(--sidebar-ring);
30
+ --color-fd-primary-foreground: var(--sidebar-primary-foreground);
31
+ }
package/css/shiki.css CHANGED
@@ -1,65 +1,92 @@
1
- .shiki code span {
2
- color: var(--shiki-light);
1
+ :root {
2
+ --padding-left: calc(var(--spacing) * 4);
3
+ --padding-right: calc(var(--spacing) * 4);
3
4
  }
4
5
 
5
- .dark .shiki code span {
6
- color: var(--shiki-dark);
6
+ .shiki:not(.not-fumadocs-codeblock *) {
7
+ code span {
8
+ color: var(--shiki-light);
9
+ }
7
10
  }
8
11
 
9
- .fd-codeblock pre > * {
10
- display: grid;
11
- font-size: 13px;
12
+ .dark .shiki:not(.not-fumadocs-codeblock *) {
13
+ code span {
14
+ color: var(--shiki-dark);
15
+ }
12
16
  }
13
17
 
14
- .shiki code .diff.remove {
15
- background-color: var(--fd-diff-remove-color);
16
- opacity: 0.7;
17
- }
18
+ :is(pre *):is(.shiki *):not(.not-fumadocs-codeblock *) {
19
+ .line& {
20
+ position: relative;
21
+ min-height: 1lh;
22
+ padding-left: var(--padding-left);
23
+ padding-right: var(--padding-right);
24
+ }
18
25
 
19
- .shiki code .diff::before {
20
- position: absolute;
21
- left: 6px;
22
- }
26
+ .has-focused .line&:not(.focused) {
27
+ filter: blur(2px);
28
+ transition: filter 200ms;
29
+ }
23
30
 
24
- .shiki code .diff.remove::before {
25
- content: '-';
26
- color: var(--fd-diff-remove-symbol-color);
27
- }
31
+ .has-focused:hover .line&:not(.focused) {
32
+ filter: blur(0);
33
+ }
28
34
 
29
- .shiki code .diff.add {
30
- background-color: var(--fd-diff-add-color);
31
- }
35
+ [data-line-numbers] .twoslash-meta-line& {
36
+ padding-left: calc(var(--padding-left) + 7 * var(--spacing));
37
+ }
32
38
 
33
- .shiki code .diff.add::before {
34
- content: '+';
35
- color: var(--fd-diff-add-symbol-color);
36
- }
39
+ [data-line-numbers] .line& {
40
+ counter-increment: line;
41
+ padding-left: calc(var(--padding-left) + 7 * var(--spacing));
42
+ }
37
43
 
38
- .shiki code .diff {
39
- margin: 0 -16px;
40
- padding: 0 16px;
41
- position: relative;
42
- }
44
+ [data-line-numbers] .line&::after {
45
+ position: absolute;
46
+ content: counter(line);
47
+ color: color-mix(
48
+ in oklab,
49
+ var(--fd-counter-color, var(--color-fd-muted-foreground)) 60%,
50
+ transparent
51
+ );
52
+ @apply top-0 left-4;
53
+ }
43
54
 
44
- .shiki .highlighted {
45
- margin: 0 -16px;
46
- padding: 0 16px;
47
- background-color: color-mix(
48
- in oklab,
49
- var(--color-fd-primary) 10%,
50
- transparent
51
- );
52
- }
55
+ .diff&::before {
56
+ position: absolute;
57
+ left: calc(var(--spacing) * 1.5);
58
+ }
59
+
60
+ .diff.remove& {
61
+ opacity: 0.7;
62
+ --fd-counter-color: var(--color-fd-diff-remove-symbol);
63
+ @apply bg-fd-diff-remove;
64
+ }
65
+
66
+ .diff.remove&::before {
67
+ content: '-';
68
+ @apply text-fd-diff-remove-symbol;
69
+ }
70
+
71
+ .diff.add& {
72
+ --fd-counter-color: var(--color-fd-diff-add-symbol);
73
+ @apply bg-fd-diff-add;
74
+ }
75
+
76
+ .diff.add&::before {
77
+ content: '+';
78
+ @apply text-fd-diff-add-symbol;
79
+ }
80
+
81
+ .highlighted& {
82
+ --fd-counter-color: var(--color-fd-primary);
83
+ padding-left: calc(var(--padding-left) - 2px);
84
+
85
+ @apply border-l-2 border-fd-primary/50 bg-fd-primary/10;
86
+ }
53
87
 
54
- .shiki .highlighted-word {
55
- padding: 1px 2px;
56
- margin: -1px -3px;
57
- border: 1px solid
58
- color-mix(in oklab, var(--color-fd-primary) 50%, transparent);
59
- background-color: color-mix(
60
- in oklab,
61
- var(--color-fd-primary) 10%,
62
- transparent
63
- );
64
- border-radius: 2px;
88
+ .highlighted-word& {
89
+ padding: 1px;
90
+ @apply border -my-px border-fd-primary/30 bg-fd-primary/10 rounded-md font-medium;
91
+ }
65
92
  }