boltdocs 1.10.1 → 1.11.0

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 (226) hide show
  1. package/package.json +29 -7
  2. package/src/client/app/config-context.tsx +18 -0
  3. package/src/client/app/docs-layout.tsx +14 -0
  4. package/src/client/app/index.tsx +132 -260
  5. package/src/client/app/mdx-component.tsx +52 -0
  6. package/src/client/app/mdx-components-context.tsx +23 -0
  7. package/src/client/app/mdx-page.tsx +20 -0
  8. package/src/client/app/preload.tsx +38 -30
  9. package/src/client/app/router.tsx +30 -0
  10. package/src/client/app/scroll-handler.tsx +40 -0
  11. package/src/client/app/theme-context.tsx +75 -0
  12. package/src/client/components/default-layout.tsx +80 -0
  13. package/src/client/components/docs-layout.tsx +105 -0
  14. package/src/client/components/icons-dev.tsx +74 -0
  15. package/src/client/components/mdx/admonition.tsx +107 -0
  16. package/src/client/components/mdx/badge.tsx +41 -0
  17. package/src/client/components/mdx/button.tsx +35 -0
  18. package/src/client/components/mdx/card.tsx +124 -0
  19. package/src/client/components/mdx/code-block.tsx +119 -0
  20. package/src/client/components/mdx/component-preview.tsx +47 -0
  21. package/src/client/components/mdx/component-props.tsx +83 -0
  22. package/src/client/components/mdx/field.tsx +66 -0
  23. package/src/client/components/mdx/file-tree.tsx +287 -0
  24. package/src/client/components/mdx/hooks/use-code-block.ts +56 -0
  25. package/src/client/components/mdx/hooks/use-component-preview.ts +16 -0
  26. package/src/client/components/mdx/hooks/useTable.ts +74 -0
  27. package/src/client/components/mdx/hooks/useTabs.ts +68 -0
  28. package/src/client/components/mdx/image.tsx +23 -0
  29. package/src/client/components/mdx/index.ts +53 -0
  30. package/src/client/components/mdx/link.tsx +38 -0
  31. package/src/client/components/mdx/list.tsx +192 -0
  32. package/src/client/components/mdx/table.tsx +156 -0
  33. package/src/client/components/mdx/tabs.tsx +135 -0
  34. package/src/client/components/mdx/video.tsx +68 -0
  35. package/src/client/components/primitives/breadcrumbs.tsx +79 -0
  36. package/src/client/components/primitives/button-group.tsx +54 -0
  37. package/src/client/components/primitives/button.tsx +145 -0
  38. package/src/client/components/primitives/helpers/observer.ts +120 -0
  39. package/src/client/components/primitives/index.ts +17 -0
  40. package/src/client/components/primitives/link.tsx +122 -0
  41. package/src/client/components/primitives/menu.tsx +159 -0
  42. package/src/client/components/primitives/navbar.tsx +359 -0
  43. package/src/client/components/primitives/navigation-menu.tsx +116 -0
  44. package/src/client/components/primitives/on-this-page.tsx +461 -0
  45. package/src/client/components/primitives/page-nav.tsx +87 -0
  46. package/src/client/components/primitives/popover.tsx +47 -0
  47. package/src/client/components/primitives/search-dialog.tsx +183 -0
  48. package/src/client/components/primitives/sidebar.tsx +154 -0
  49. package/src/client/components/primitives/tabs.tsx +90 -0
  50. package/src/client/components/primitives/tooltip.tsx +83 -0
  51. package/src/client/components/primitives/types.ts +11 -0
  52. package/src/client/components/ui-base/breadcrumbs.tsx +42 -0
  53. package/src/client/components/ui-base/copy-markdown.tsx +112 -0
  54. package/src/client/components/ui-base/error-boundary.tsx +52 -0
  55. package/src/client/components/ui-base/github-stars.tsx +27 -0
  56. package/src/client/components/ui-base/head.tsx +69 -0
  57. package/src/client/components/ui-base/loading.tsx +87 -0
  58. package/src/client/components/ui-base/navbar.tsx +138 -0
  59. package/src/client/components/ui-base/not-found.tsx +24 -0
  60. package/src/client/components/ui-base/on-this-page.tsx +152 -0
  61. package/src/client/components/ui-base/page-nav.tsx +39 -0
  62. package/src/client/components/ui-base/powered-by.tsx +19 -0
  63. package/src/client/components/ui-base/progress-bar.tsx +67 -0
  64. package/src/client/components/ui-base/search-dialog.tsx +82 -0
  65. package/src/client/components/ui-base/sidebar.tsx +104 -0
  66. package/src/client/components/ui-base/tabs.tsx +65 -0
  67. package/src/client/components/ui-base/theme-toggle.tsx +32 -0
  68. package/src/client/hooks/index.ts +12 -0
  69. package/src/client/hooks/use-breadcrumbs.ts +22 -0
  70. package/src/client/hooks/use-i18n.ts +84 -0
  71. package/src/client/hooks/use-localized-to.ts +95 -0
  72. package/src/client/hooks/use-location.ts +5 -0
  73. package/src/client/hooks/use-navbar.ts +60 -0
  74. package/src/client/hooks/use-onthispage.ts +23 -0
  75. package/src/client/hooks/use-page-nav.ts +22 -0
  76. package/src/client/hooks/use-routes.ts +72 -0
  77. package/src/client/hooks/use-search.ts +71 -0
  78. package/src/client/hooks/use-sidebar.ts +49 -0
  79. package/src/client/hooks/use-tabs.ts +43 -0
  80. package/src/client/hooks/use-version.ts +78 -0
  81. package/src/client/index.ts +55 -18
  82. package/src/client/integrations/codesandbox.ts +179 -0
  83. package/src/client/ssr.tsx +27 -16
  84. package/src/client/theme/neutral.css +360 -0
  85. package/src/client/types.ts +131 -27
  86. package/src/client/utils/cn.ts +6 -0
  87. package/src/client/utils/copy-clipboard.ts +22 -0
  88. package/src/client/utils/get-base-file-path.ts +21 -0
  89. package/src/client/utils/github.ts +121 -0
  90. package/src/client/utils/use-on-change.ts +15 -0
  91. package/src/client/virtual.d.ts +24 -0
  92. package/src/node/cache.ts +156 -156
  93. package/src/node/config.ts +159 -103
  94. package/src/node/index.ts +13 -13
  95. package/src/node/mdx.ts +213 -61
  96. package/src/node/plugin/entry.ts +29 -18
  97. package/src/node/plugin/html.ts +11 -11
  98. package/src/node/plugin/index.ts +161 -83
  99. package/src/node/plugin/types.ts +2 -4
  100. package/src/node/routes/cache.ts +6 -6
  101. package/src/node/routes/index.ts +206 -113
  102. package/src/node/routes/parser.ts +106 -81
  103. package/src/node/routes/sorter.ts +15 -15
  104. package/src/node/routes/types.ts +24 -24
  105. package/src/node/ssg/index.ts +46 -46
  106. package/src/node/ssg/meta.ts +4 -4
  107. package/src/node/ssg/options.ts +5 -5
  108. package/src/node/ssg/sitemap.ts +14 -14
  109. package/src/node/utils.ts +31 -31
  110. package/tsconfig.json +25 -20
  111. package/tsup.config.ts +23 -14
  112. package/dist/PackageManagerTabs-NVT7G625.mjs +0 -99
  113. package/dist/SearchDialog-BEVZQ74P.css +0 -2679
  114. package/dist/SearchDialog-MEWGAONO.mjs +0 -194
  115. package/dist/Video-KNTY5BNO.mjs +0 -6
  116. package/dist/cache-KNL5B4EE.mjs +0 -12
  117. package/dist/chunk-7SFUJWTB.mjs +0 -211
  118. package/dist/chunk-FFBNU6IJ.mjs +0 -386
  119. package/dist/chunk-FMTOYQLO.mjs +0 -37
  120. package/dist/chunk-OZLYRXAD.mjs +0 -1914
  121. package/dist/chunk-Z7JHYNAS.mjs +0 -57
  122. package/dist/client/index.css +0 -2679
  123. package/dist/client/index.d.mts +0 -379
  124. package/dist/client/index.d.ts +0 -379
  125. package/dist/client/index.js +0 -3594
  126. package/dist/client/index.mjs +0 -658
  127. package/dist/client/ssr.css +0 -2679
  128. package/dist/client/ssr.d.mts +0 -27
  129. package/dist/client/ssr.d.ts +0 -27
  130. package/dist/client/ssr.js +0 -2930
  131. package/dist/client/ssr.mjs +0 -33
  132. package/dist/config-BsFQ-ErD.d.mts +0 -159
  133. package/dist/config-BsFQ-ErD.d.ts +0 -159
  134. package/dist/node/index.d.mts +0 -91
  135. package/dist/node/index.d.ts +0 -91
  136. package/dist/node/index.js +0 -1187
  137. package/dist/node/index.mjs +0 -762
  138. package/dist/types-Dj-bfnC3.d.mts +0 -74
  139. package/dist/types-Dj-bfnC3.d.ts +0 -74
  140. package/src/client/theme/components/CodeBlock/CodeBlock.tsx +0 -40
  141. package/src/client/theme/components/CodeBlock/index.ts +0 -1
  142. package/src/client/theme/components/PackageManagerTabs/PackageManagerTabs.tsx +0 -131
  143. package/src/client/theme/components/PackageManagerTabs/index.ts +0 -1
  144. package/src/client/theme/components/PackageManagerTabs/pkg-tabs.css +0 -64
  145. package/src/client/theme/components/Playground/Playground.tsx +0 -124
  146. package/src/client/theme/components/Playground/index.ts +0 -1
  147. package/src/client/theme/components/Playground/playground.css +0 -168
  148. package/src/client/theme/components/Video/Video.tsx +0 -84
  149. package/src/client/theme/components/Video/index.ts +0 -1
  150. package/src/client/theme/components/Video/video.css +0 -41
  151. package/src/client/theme/components/mdx/Admonition.tsx +0 -80
  152. package/src/client/theme/components/mdx/Badge.tsx +0 -31
  153. package/src/client/theme/components/mdx/Button.tsx +0 -50
  154. package/src/client/theme/components/mdx/Card.tsx +0 -80
  155. package/src/client/theme/components/mdx/Field.tsx +0 -60
  156. package/src/client/theme/components/mdx/FileTree.tsx +0 -229
  157. package/src/client/theme/components/mdx/List.tsx +0 -57
  158. package/src/client/theme/components/mdx/Table.tsx +0 -151
  159. package/src/client/theme/components/mdx/Tabs.tsx +0 -123
  160. package/src/client/theme/components/mdx/index.ts +0 -27
  161. package/src/client/theme/components/mdx/mdx-components.css +0 -764
  162. package/src/client/theme/icons/bun.tsx +0 -62
  163. package/src/client/theme/icons/deno.tsx +0 -20
  164. package/src/client/theme/icons/discord.tsx +0 -12
  165. package/src/client/theme/icons/github.tsx +0 -15
  166. package/src/client/theme/icons/npm.tsx +0 -13
  167. package/src/client/theme/icons/pnpm.tsx +0 -72
  168. package/src/client/theme/icons/twitter.tsx +0 -12
  169. package/src/client/theme/styles/markdown.css +0 -341
  170. package/src/client/theme/styles/variables.css +0 -187
  171. package/src/client/theme/styles.css +0 -38
  172. package/src/client/theme/ui/BackgroundGradient/BackgroundGradient.tsx +0 -10
  173. package/src/client/theme/ui/BackgroundGradient/index.ts +0 -1
  174. package/src/client/theme/ui/Breadcrumbs/Breadcrumbs.tsx +0 -68
  175. package/src/client/theme/ui/Breadcrumbs/index.ts +0 -1
  176. package/src/client/theme/ui/CopyMarkdown/CopyMarkdown.tsx +0 -82
  177. package/src/client/theme/ui/CopyMarkdown/copy-markdown.css +0 -114
  178. package/src/client/theme/ui/CopyMarkdown/index.ts +0 -1
  179. package/src/client/theme/ui/ErrorBoundary/ErrorBoundary.tsx +0 -46
  180. package/src/client/theme/ui/ErrorBoundary/index.ts +0 -1
  181. package/src/client/theme/ui/Footer/footer.css +0 -32
  182. package/src/client/theme/ui/Head/Head.tsx +0 -69
  183. package/src/client/theme/ui/Head/index.ts +0 -1
  184. package/src/client/theme/ui/LanguageSwitcher/LanguageSwitcher.tsx +0 -125
  185. package/src/client/theme/ui/LanguageSwitcher/index.ts +0 -1
  186. package/src/client/theme/ui/LanguageSwitcher/language-switcher.css +0 -98
  187. package/src/client/theme/ui/Layout/Layout.tsx +0 -208
  188. package/src/client/theme/ui/Layout/base.css +0 -105
  189. package/src/client/theme/ui/Layout/index.ts +0 -2
  190. package/src/client/theme/ui/Layout/pagination.css +0 -72
  191. package/src/client/theme/ui/Layout/responsive.css +0 -36
  192. package/src/client/theme/ui/Link/Link.tsx +0 -392
  193. package/src/client/theme/ui/Link/LinkPreview.tsx +0 -59
  194. package/src/client/theme/ui/Link/index.ts +0 -2
  195. package/src/client/theme/ui/Link/link-preview.css +0 -48
  196. package/src/client/theme/ui/Loading/Loading.tsx +0 -10
  197. package/src/client/theme/ui/Loading/index.ts +0 -1
  198. package/src/client/theme/ui/Loading/loading.css +0 -30
  199. package/src/client/theme/ui/Navbar/GithubStars.tsx +0 -27
  200. package/src/client/theme/ui/Navbar/Navbar.tsx +0 -193
  201. package/src/client/theme/ui/Navbar/Tabs.tsx +0 -99
  202. package/src/client/theme/ui/Navbar/index.ts +0 -2
  203. package/src/client/theme/ui/Navbar/navbar.css +0 -347
  204. package/src/client/theme/ui/NotFound/NotFound.tsx +0 -19
  205. package/src/client/theme/ui/NotFound/index.ts +0 -1
  206. package/src/client/theme/ui/NotFound/not-found.css +0 -64
  207. package/src/client/theme/ui/OnThisPage/OnThisPage.tsx +0 -244
  208. package/src/client/theme/ui/OnThisPage/index.ts +0 -1
  209. package/src/client/theme/ui/OnThisPage/toc.css +0 -152
  210. package/src/client/theme/ui/PoweredBy/PoweredBy.tsx +0 -18
  211. package/src/client/theme/ui/PoweredBy/index.ts +0 -1
  212. package/src/client/theme/ui/PoweredBy/powered-by.css +0 -76
  213. package/src/client/theme/ui/ProgressBar/ProgressBar.css +0 -17
  214. package/src/client/theme/ui/ProgressBar/ProgressBar.tsx +0 -51
  215. package/src/client/theme/ui/ProgressBar/index.ts +0 -1
  216. package/src/client/theme/ui/SearchDialog/SearchDialog.tsx +0 -209
  217. package/src/client/theme/ui/SearchDialog/index.ts +0 -1
  218. package/src/client/theme/ui/SearchDialog/search.css +0 -152
  219. package/src/client/theme/ui/Sidebar/Sidebar.tsx +0 -244
  220. package/src/client/theme/ui/Sidebar/index.ts +0 -1
  221. package/src/client/theme/ui/Sidebar/sidebar.css +0 -230
  222. package/src/client/theme/ui/ThemeToggle/ThemeToggle.tsx +0 -69
  223. package/src/client/theme/ui/ThemeToggle/index.ts +0 -1
  224. package/src/client/theme/ui/VersionSwitcher/VersionSwitcher.tsx +0 -136
  225. package/src/client/theme/ui/VersionSwitcher/index.ts +0 -1
  226. package/src/client/utils.ts +0 -49
@@ -1,2679 +0,0 @@
1
- @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
2
-
3
- /* src/client/theme/ui/Link/link-preview.css */
4
- .boltdocs-link-preview {
5
- position: fixed;
6
- z-index: 1000;
7
- width: 260px;
8
- pointer-events: none;
9
- opacity: 0;
10
- transform: translateY(8px) scale(0.98);
11
- transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
12
- font-family: var(--ld-font-sans);
13
- }
14
- .boltdocs-link-preview.is-visible {
15
- opacity: 1;
16
- transform: translateY(0) scale(1);
17
- }
18
- .boltdocs-link-preview-content {
19
- padding: 0.85rem 1rem;
20
- background-color: var(--ld-navbar-bg);
21
- border: 1px solid var(--ld-border-subtle);
22
- border-radius: var(--ld-radius-lg);
23
- box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.2), 0 4px 10px -5px rgba(0, 0, 0, 0.1);
24
- }
25
- .boltdocs-link-preview-title {
26
- display: block;
27
- font-weight: 600;
28
- font-size: 0.875rem;
29
- color: var(--ld-text-main);
30
- margin-bottom: 0.35rem;
31
- line-height: 1.3;
32
- }
33
- .boltdocs-link-preview-summary {
34
- display: block;
35
- font-size: 0.775rem;
36
- color: var(--ld-text-muted);
37
- line-height: 1.5;
38
- display: -webkit-box;
39
- -webkit-line-clamp: 3;
40
- line-clamp: 3;
41
- -webkit-box-orient: vertical;
42
- overflow: hidden;
43
- }
44
-
45
- /* src/client/theme/ui/ProgressBar/ProgressBar.css */
46
- .boltdocs-progress-container {
47
- position: fixed;
48
- top: 0;
49
- left: 0;
50
- width: 100%;
51
- height: 2px;
52
- z-index: 1000;
53
- pointer-events: none;
54
- background: transparent;
55
- }
56
- .boltdocs-progress-bar {
57
- height: 100%;
58
- background:
59
- linear-gradient(
60
- 90deg,
61
- var(--ld-color-primary),
62
- var(--ld-gradient-to, var(--ld-color-primary)));
63
- box-shadow: 0 0 8px var(--ld-color-primary-glow);
64
- transition: width 0.1s ease-out;
65
- }
66
-
67
- /* src/client/theme/styles/variables.css */
68
- :root[data-theme=light],
69
- :root.theme-light {
70
- --ld-bg-main: #ffffff;
71
- --ld-bg-soft: #eeeeee;
72
- --ld-bg-mute: #f3f4f6;
73
- --ld-surface: #ffffff;
74
- --ld-border-subtle: #e5e7eb;
75
- --ld-border-strong: #d1d5db;
76
- --ld-text-main: #111827;
77
- --ld-text-muted: #4b5563;
78
- --ld-text-dim: #6b7280;
79
- --ld-color-primary: #7f13ec;
80
- --ld-color-primary-hover: #6d0fd0;
81
- --ld-color-primary-muted: rgba(127, 19, 236, 0.1);
82
- --ld-color-primary-glow: rgba(127, 19, 236, 0.25);
83
- --ld-color-primary-text: #ffffff;
84
- --ld-btn-primary-bg: #7f13ec;
85
- --ld-btn-primary-text: #ffffff;
86
- --ld-btn-secondary-bg: #ffffff;
87
- --ld-btn-secondary-text: #111827;
88
- --ld-gradient-from: var(--ld-color-primary);
89
- --ld-gradient-to: #a855f7;
90
- --ld-code-bg: #f3f4f6;
91
- --ld-code-header: #e5e7eb;
92
- --ld-code-text: #1f2937;
93
- --ld-navbar-bg: #ffffff;
94
- --ld-navbar-blur: 12px;
95
- --ld-sidebar-bg: transparent;
96
- --ld-sidebar-blur: 0px;
97
- --ld-glow-1-bg: var(--ld-color-primary-glow);
98
- --ld-glow-2-bg: rgba(215, 59, 246, 0.15);
99
- --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
100
- --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
101
- --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
102
- --ld-ui-btn-secondary-text: var(--ld-btn-secondary-text);
103
- --ld-ui-success-bg: rgba(34, 197, 94, 0.1);
104
- --ld-ui-success-text: #16a34a;
105
- --ld-ui-success-border: rgba(34, 197, 94, 0.25);
106
- --ld-ui-warning-bg: rgba(245, 158, 11, 0.1);
107
- --ld-ui-warning-text: #d97706;
108
- --ld-ui-warning-border: rgba(245, 158, 11, 0.25);
109
- --ld-ui-danger-bg: rgba(239, 68, 68, 0.1);
110
- --ld-ui-danger-text: #dc2626;
111
- --ld-ui-danger-border: rgba(239, 68, 68, 0.25);
112
- --ld-ui-info-bg: rgba(59, 130, 246, 0.1);
113
- --ld-ui-info-text: #2563eb;
114
- --ld-ui-info-border: rgba(59, 130, 246, 0.25);
115
- --ld-ui-note-bg: rgba(59, 130, 246, 0.06);
116
- --ld-ui-note-text: #2563eb;
117
- --ld-ui-note-border: rgba(59, 130, 246, 0.3);
118
- --ld-ui-tip-bg: rgba(34, 197, 94, 0.06);
119
- --ld-ui-tip-text: #16a34a;
120
- --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
121
- }
122
- :root {
123
- --ld-bg-main: #000;
124
- --ld-bg-soft: #12121272;
125
- --ld-bg-mute: #090909;
126
- --ld-surface: #1a1a1a;
127
- --ld-border-subtle: rgba(255, 255, 255, 0.06);
128
- --ld-border-strong: rgba(255, 255, 255, 0.12);
129
- --ld-text-main: #e4e4ed;
130
- --ld-text-muted: #9d9db5;
131
- --ld-text-dim: #6b6b85;
132
- --ld-color-primary: #ffffff;
133
- --ld-color-primary-hover: #f3f3f3;
134
- --ld-color-primary-muted: rgba(255, 255, 255, 0.1);
135
- --ld-color-primary-glow: rgba(255, 255, 255, 0.25);
136
- --ld-color-primary-text: #0a0a0f;
137
- --ld-color-accent: #ffffff;
138
- --ld-btn-primary-bg: #ffffff;
139
- --ld-btn-primary-text: #0a0a0f;
140
- --ld-btn-secondary-bg: #1a1a2e;
141
- --ld-btn-secondary-text: #e4e4ed;
142
- --ld-gradient-from: #ffffff;
143
- --ld-gradient-to: rgba(255, 255, 255, 0.7);
144
- --ld-code-bg: #050505;
145
- --ld-code-header: #111119;
146
- --ld-code-text: #d4d4d4;
147
- --ld-navbar-bg: #000;
148
- --ld-navbar-blur: 12px;
149
- --ld-sidebar-bg: transparent;
150
- --ld-sidebar-blur: 0px;
151
- --ld-glow-1-bg: var(--ld-color-primary-glow);
152
- --ld-glow-2-bg: rgba(246, 59, 187, 0.15);
153
- --ld-ui-btn-primary-bg: var(--ld-btn-primary-bg);
154
- --ld-ui-btn-primary-text: var(--ld-btn-primary-text);
155
- --ld-ui-btn-secondary-bg: var(--ld-btn-secondary-bg);
156
- --ld-ui-btn-secondary-text: var(--ld-btn-secondary-text);
157
- --ld-ui-success-bg: rgba(34, 197, 94, 0.1);
158
- --ld-ui-success-text: #22c55e;
159
- --ld-ui-success-border: rgba(34, 197, 94, 0.25);
160
- --ld-ui-warning-bg: rgba(245, 158, 11, 0.1);
161
- --ld-ui-warning-text: #f59e0b;
162
- --ld-ui-warning-border: rgba(245, 158, 11, 0.25);
163
- --ld-ui-danger-bg: rgba(239, 68, 68, 0.1);
164
- --ld-ui-danger-text: #ef4444;
165
- --ld-ui-danger-border: rgba(239, 68, 68, 0.25);
166
- --ld-ui-info-bg: rgba(59, 130, 246, 0.1);
167
- --ld-ui-info-text: #3b82f6;
168
- --ld-ui-info-border: rgba(59, 130, 246, 0.25);
169
- --ld-ui-note-bg: rgba(59, 130, 246, 0.06);
170
- --ld-ui-note-text: #3b82f6;
171
- --ld-ui-note-border: rgba(59, 130, 246, 0.3);
172
- --ld-ui-tip-bg: rgba(34, 197, 94, 0.06);
173
- --ld-ui-tip-text: #22c55e;
174
- --ld-ui-tip-border: rgba(34, 197, 94, 0.3);
175
- --ld-font-sans:
176
- "Inter",
177
- system-ui,
178
- -apple-system,
179
- sans-serif;
180
- --ld-font-mono:
181
- "JetBrains Mono",
182
- ui-monospace,
183
- SFMono-Regular,
184
- Menlo,
185
- Monaco,
186
- Consolas,
187
- monospace;
188
- --ld-navbar-height: 3.5rem;
189
- --ld-header-height: var(--ld-navbar-height);
190
- --ld-sidebar-width: 14.5rem;
191
- --ld-toc-width: 13rem;
192
- --ld-content-max-width: 820px;
193
- --ld-radius-sm: 4px;
194
- --ld-radius-md: 8px;
195
- --ld-radius-lg: 12px;
196
- --ld-radius-full: 9999px;
197
- scrollbar-width: thin;
198
- scrollbar-color: var(--ld-border-strong) transparent;
199
- }
200
- *::-webkit-scrollbar {
201
- width: 6px;
202
- height: 6px;
203
- }
204
- *::-webkit-scrollbar-track {
205
- background: transparent;
206
- }
207
- *::-webkit-scrollbar-thumb {
208
- background-color: var(--ld-border-strong);
209
- border-radius: 20px;
210
- border: transparent;
211
- }
212
- *::-webkit-scrollbar-thumb:hover {
213
- background-color: var(--ld-text-dim);
214
- }
215
-
216
- /* src/client/theme/ui/Layout/base.css */
217
- *,
218
- *::before,
219
- *::after {
220
- box-sizing: border-box;
221
- }
222
- html,
223
- body {
224
- margin: 0;
225
- padding: 0;
226
- height: 100%;
227
- overflow: hidden;
228
- }
229
- body {
230
- font-family: var(--ld-font-sans);
231
- background-color: var(--ld-bg-main);
232
- color: var(--ld-text-main);
233
- line-height: 1.7;
234
- -webkit-font-smoothing: antialiased;
235
- -moz-osx-font-smoothing: grayscale;
236
- }
237
- a {
238
- text-decoration: none;
239
- &:hover {
240
- text-decoration: none;
241
- }
242
- }
243
- .boltdocs-layout {
244
- display: flex;
245
- flex-direction: column;
246
- height: 100vh;
247
- width: 100vw;
248
- overflow: hidden;
249
- }
250
- .boltdocs-main-container {
251
- display: flex;
252
- flex: 1;
253
- width: 100%;
254
- max-width: 1440px;
255
- margin: 0 auto;
256
- padding: 0 0.5rem;
257
- height: calc(100vh - var(--ld-header-height));
258
- overflow: hidden;
259
- align-items: stretch;
260
- }
261
- .boltdocs-background-glow {
262
- position: fixed;
263
- top: 0;
264
- left: 0;
265
- right: 0;
266
- height: 100vh;
267
- overflow: hidden;
268
- z-index: -1;
269
- pointer-events: none;
270
- }
271
- .glow-shape {
272
- position: absolute;
273
- border-radius: 50%;
274
- filter: blur(100px);
275
- opacity: 0.15;
276
- top: -100px;
277
- }
278
- .glow-1 {
279
- width: 600px;
280
- height: 600px;
281
- background: var(--ld-glow-1-bg);
282
- left: -200px;
283
- }
284
- .glow-2 {
285
- width: 800px;
286
- height: 800px;
287
- background: var(--ld-glow-2-bg);
288
- top: -200px;
289
- }
290
- .boltdocs-page {
291
- position: relative;
292
- }
293
- .boltdocs-page-header {
294
- position: absolute;
295
- top: 0;
296
- right: 0;
297
- display: flex;
298
- justify-content: flex-end;
299
- padding: 1rem 0;
300
- pointer-events: none;
301
- }
302
- .boltdocs-page-header > * {
303
- pointer-events: auto;
304
- }
305
-
306
- /* src/client/theme/ui/Navbar/navbar.css */
307
- .boltdocs-navbar {
308
- display: flex;
309
- flex-direction: column;
310
- justify-content: center;
311
- background-color: var(--ld-navbar-bg);
312
- border-bottom: 1px solid var(--ld-border-subtle);
313
- position: sticky;
314
- top: 0;
315
- z-index: 100;
316
- }
317
- .boltdocs-navbar.has-tabs {
318
- --ld-header-height: 102px !important;
319
- height: 102px;
320
- }
321
- .boltdocs-navbar:not(.has-tabs) {
322
- --ld-header-height: var(--ld-navbar-height);
323
- height: var(--ld-navbar-height);
324
- }
325
- .navbar-container {
326
- display: flex;
327
- align-items: center;
328
- justify-content: space-between;
329
- width: 100%;
330
- max-width: 1440px;
331
- margin: 0 auto;
332
- padding: 0 1.5rem;
333
- }
334
- .navbar-logo {
335
- flex: 1;
336
- }
337
- .navbar-logo a {
338
- display: flex;
339
- align-items: center;
340
- gap: 0.5rem;
341
- font-weight: 700;
342
- font-size: 1.15rem;
343
- color: var(--ld-text-main);
344
- text-decoration: none;
345
- letter-spacing: -0.01em;
346
- }
347
- .navbar-logo a:hover {
348
- color: var(--ld-text-main);
349
- }
350
- .navbar-logo-img {
351
- height: 20px;
352
- width: auto;
353
- object-fit: contain;
354
- display: block;
355
- }
356
- .navbar-logo-svg {
357
- display: flex;
358
- align-items: center;
359
- }
360
- .navbar-logo-svg svg {
361
- height: 36px;
362
- width: auto;
363
- fill: currentColor;
364
- display: block;
365
- }
366
- .navbar-left {
367
- display: flex;
368
- align-items: center;
369
- gap: 1.25rem;
370
- }
371
- .navbar-version {
372
- display: flex;
373
- align-items: center;
374
- gap: 0.2rem;
375
- font-size: 0.75rem;
376
- font-weight: 500;
377
- color: var(--ld-text-muted);
378
- background-color: var(--ld-bg-soft);
379
- padding: 0.25rem 0.5rem;
380
- border-radius: var(--ld-radius-md);
381
- border: 1px solid var(--ld-border-subtle);
382
- cursor: pointer;
383
- transition: all 0.2s;
384
- }
385
- .navbar-version:hover {
386
- background-color: var(--ld-bg-mute);
387
- color: var(--ld-text-main);
388
- border-color: var(--ld-border-strong);
389
- }
390
- .navbar-right {
391
- display: flex;
392
- align-items: center;
393
- gap: 0.75rem;
394
- }
395
- .navbar-links {
396
- display: flex;
397
- align-items: center;
398
- gap: 0.25rem;
399
- }
400
- .navbar-links a {
401
- position: relative;
402
- padding: 0.4rem 0.75rem;
403
- color: var(--ld-text-muted);
404
- text-decoration: none;
405
- font-weight: 500;
406
- font-size: 0.875rem;
407
- border-radius: var(--ld-radius-md);
408
- transition: color 0.2s, background-color 0.2s;
409
- display: flex;
410
- align-items: center;
411
- gap: 0.35rem;
412
- }
413
- .navbar-external-icon {
414
- display: inline-flex;
415
- align-items: center;
416
- opacity: 0.6;
417
- margin-top: 1px;
418
- }
419
- .navbar-links a:hover {
420
- color: var(--ld-text-main);
421
- background-color: var(--ld-color-primary-muted);
422
- }
423
- .navbar-links a.active {
424
- color: var(--ld-color-primary);
425
- }
426
- .navbar-search {
427
- display: flex;
428
- align-items: center;
429
- gap: 0.5rem;
430
- padding: 0.35rem 0.75rem;
431
- background-color: transparent;
432
- border: 1px solid transparent;
433
- border-radius: var(--ld-radius-full);
434
- backdrop-filter: blur(12px);
435
- -webkit-backdrop-filter: blur(12px);
436
- color: var(--ld-text-dim);
437
- font-size: 0.8125rem;
438
- min-width: 220px;
439
- cursor: pointer;
440
- transition: all 0.2s;
441
- }
442
- .navbar-search:hover {
443
- background-color: var(--ld-bg-mute);
444
- color: var(--ld-text-muted);
445
- }
446
- .navbar-search svg {
447
- width: 15px;
448
- height: 15px;
449
- opacity: 0.7;
450
- }
451
- .navbar-search kbd {
452
- margin-left: auto;
453
- padding: 0.15rem 0.4rem;
454
- font-family: var(--ld-font-sans);
455
- font-weight: 500;
456
- font-size: 0.65rem;
457
- background-color: var(--ld-bg-mute);
458
- border: 1px solid var(--ld-border-strong);
459
- border-radius: var(--ld-radius-md);
460
- color: var(--ld-text-dim);
461
- }
462
- .navbar-github-stars {
463
- display: flex;
464
- align-items: center;
465
- gap: 0.35rem;
466
- padding: 0.3rem 0.65rem;
467
- border-radius: var(--ld-radius-full);
468
- border: 1px solid var(--ld-border-subtle);
469
- background: var(--ld-bg-soft);
470
- color: var(--ld-text-muted);
471
- text-decoration: none;
472
- font-size: 0.8rem;
473
- font-weight: 500;
474
- transition: all 0.2s;
475
- }
476
- .navbar-github-stars:hover {
477
- color: var(--ld-text-main);
478
- background: var(--ld-bg-mute);
479
- border-color: var(--ld-border-strong);
480
- }
481
- .navbar-github-stars svg {
482
- width: 15px;
483
- height: 15px;
484
- }
485
- .navbar-divider {
486
- width: 1px;
487
- height: 18px;
488
- background-color: var(--ld-border-subtle);
489
- margin: 0 0.25rem;
490
- }
491
- .navbar-icons {
492
- display: flex;
493
- align-items: center;
494
- gap: 0.25rem;
495
- }
496
- .navbar-icon-btn {
497
- display: flex;
498
- align-items: center;
499
- justify-content: center;
500
- width: 2.15rem;
501
- height: 2.15rem;
502
- background: transparent;
503
- border: none;
504
- cursor: pointer;
505
- border-radius: var(--ld-radius-full);
506
- color: var(--ld-text-muted);
507
- text-decoration: none;
508
- transition: color 0.2s, background-color 0.2s;
509
- }
510
- .navbar-icon-btn:hover {
511
- color: var(--ld-text-main);
512
- background-color: var(--ld-bg-mute);
513
- }
514
- .navbar-icon-btn svg {
515
- width: 18px;
516
- height: 18px;
517
- }
518
- .boltdocs-tabs-container {
519
- position: relative;
520
- background: var(--ld-navbar-bg);
521
- padding: 0;
522
- height: 46px;
523
- }
524
- .boltdocs-tabs-container::after {
525
- content: "";
526
- position: absolute;
527
- bottom: 0px;
528
- left: 0;
529
- right: 0;
530
- height: 1px;
531
- background: var(--ld-border-subtle);
532
- z-index: 10;
533
- }
534
- .boltdocs-tabs {
535
- max-width: 1440px;
536
- margin: 0 auto;
537
- display: flex;
538
- gap: 2rem;
539
- overflow-x: auto;
540
- scrollbar-width: none;
541
- padding: 0 1.5rem;
542
- position: relative;
543
- height: 100%;
544
- }
545
- .boltdocs-tabs::-webkit-scrollbar {
546
- display: none;
547
- }
548
- .boltdocs-tab-item {
549
- padding: 0.85rem 0;
550
- padding-bottom: calc(0.85rem + 1px);
551
- font-size: 0.875rem;
552
- font-weight: 500;
553
- color: var(--ld-text-muted);
554
- text-decoration: none;
555
- position: relative;
556
- transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
557
- white-space: nowrap;
558
- display: flex;
559
- align-items: center;
560
- gap: 0.6rem;
561
- opacity: 0.7;
562
- z-index: 20;
563
- }
564
- .boltdocs-tab-item:hover {
565
- color: var(--ld-text-main);
566
- opacity: 1;
567
- }
568
- .tab-icon {
569
- flex-shrink: 0;
570
- display: flex;
571
- align-items: center;
572
- justify-content: center;
573
- transition: transform 0.2s ease;
574
- }
575
- .boltdocs-tab-item:hover .tab-icon {
576
- transform: translateY(-1px);
577
- }
578
- .tab-icon.lucide-icon,
579
- .tab-icon.svg-icon svg {
580
- width: 18px;
581
- height: 18px;
582
- stroke-width: 2.25px;
583
- }
584
- .boltdocs-tab-item.active {
585
- color: var(--ld-text-main);
586
- font-weight: 600;
587
- opacity: 1;
588
- text-shadow: 0 0 10px rgba(255, 255, 255, 0.2);
589
- }
590
- .boltdocs-tab-indicator {
591
- position: absolute;
592
- bottom: 0px;
593
- left: 0;
594
- height: 3px;
595
- background: var(--ld-color-primary);
596
- border-radius: 2px 2px 0 0;
597
- box-shadow: 0 -2px 15px var(--ld-color-primary-glow);
598
- transition:
599
- transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
600
- width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
601
- opacity 0.3s ease;
602
- z-index: 100;
603
- pointer-events: none;
604
- transform-origin: left;
605
- }
606
-
607
- /* src/client/theme/ui/Sidebar/sidebar.css */
608
- .boltdocs-sidebar {
609
- width: var(--ld-sidebar-width);
610
- flex-shrink: 0;
611
- background-color: var(--ld-sidebar-bg);
612
- backdrop-filter: blur(var(--ld-sidebar-blur));
613
- -webkit-backdrop-filter: blur(var(--ld-sidebar-blur));
614
- border-right: 1px solid var(--ld-border-subtle);
615
- padding: 1.5rem 0.6rem;
616
- overflow-y: auto;
617
- height: 100%;
618
- scrollbar-width: none;
619
- display: flex;
620
- flex-direction: column;
621
- transform: translate3d(0, 0, 0);
622
- backface-visibility: hidden;
623
- }
624
- .sidebar-icon {
625
- flex-shrink: 0;
626
- display: flex;
627
- align-items: center;
628
- justify-content: center;
629
- }
630
- .sidebar-icon.lucide-icon,
631
- .sidebar-icon.svg-icon svg {
632
- color: var(--ld-text-muted);
633
- width: 18px;
634
- height: 18px;
635
- stroke-width: 2px;
636
- transition: color 0.2s ease;
637
- }
638
- .sidebar-link:hover .sidebar-icon.lucide-icon,
639
- .sidebar-link.active .sidebar-icon.lucide-icon {
640
- color: var(--ld-color-primary);
641
- }
642
- .boltdocs-sidebar > nav {
643
- flex: 1;
644
- }
645
- .boltdocs-sidebar::-webkit-scrollbar {
646
- display: none;
647
- }
648
- .boltdocs-sidebar::-webkit-scrollbar-track {
649
- background: transparent;
650
- }
651
- .boltdocs-sidebar::-webkit-scrollbar-thumb {
652
- background: var(--ld-bg-mute);
653
- border-radius: 4px;
654
- }
655
- .sidebar-list {
656
- list-style: none;
657
- padding: 0;
658
- margin: 0 0 0.5rem;
659
- }
660
- .sidebar-list li {
661
- margin-bottom: 2px;
662
- }
663
- .sidebar-link {
664
- display: flex;
665
- align-items: center;
666
- justify-content: space-between;
667
- padding: 0.5rem 0.75rem;
668
- color: var(--ld-text-muted);
669
- text-decoration: none;
670
- border-radius: 0.75rem;
671
- font-size: 0.875rem;
672
- font-weight: 500;
673
- transition: all 0.2s ease;
674
- margin: 0.15rem 0;
675
- }
676
- .sidebar-link-title-container {
677
- display: flex;
678
- align-items: center;
679
- gap: 0.75rem;
680
- }
681
- .sidebar-link-content {
682
- display: flex;
683
- align-items: center;
684
- justify-content: space-between;
685
- width: 100%;
686
- gap: 0.5rem;
687
- }
688
- .sidebar-link-content > span:last-child {
689
- flex: 1;
690
- word-wrap: break-word;
691
- }
692
- .sidebar-badge {
693
- font-size: 0.45rem;
694
- font-weight: 500;
695
- padding: 0.1rem 0.3rem;
696
- border-radius: 9999px;
697
- text-transform: uppercase;
698
- letter-spacing: 0.05em;
699
- white-space: nowrap;
700
- line-height: 1;
701
- display: inline-flex;
702
- align-items: center;
703
- flex-shrink: 0;
704
- }
705
- .sidebar-badge.badge-new {
706
- color: #38bdf8;
707
- background-color: rgba(56, 189, 248, 0.15);
708
- border: 1px solid rgba(56, 189, 248, 0.25);
709
- }
710
- .sidebar-badge.badge-experimental {
711
- color: #eab308;
712
- background-color: rgba(234, 179, 8, 0.15);
713
- border: 1px solid rgba(234, 179, 8, 0.25);
714
- }
715
- .sidebar-badge.badge-updated {
716
- color: #a1a1aa;
717
- background-color: rgba(161, 161, 170, 0.15);
718
- border: 1px solid rgba(161, 161, 170, 0.25);
719
- }
720
- .sidebar-badge.badge-default {
721
- color: var(--ld-text-muted);
722
- background-color: var(--ld-bg-mute);
723
- border: 1px solid var(--ld-border-subtle);
724
- }
725
- .sidebar-link:hover {
726
- color: var(--ld-color-primary-hover);
727
- background-color: var(--ld-bg-soft);
728
- }
729
- .sidebar-link.active {
730
- color: var(--ld-color-primary);
731
- font-weight: 600;
732
- background-color: var(--ld-bg-soft);
733
- }
734
- .sidebar-group {
735
- margin-top: 1.25rem;
736
- }
737
- .sidebar-group:first-child {
738
- margin-top: 0;
739
- }
740
- .sidebar-group-header {
741
- display: flex;
742
- align-items: center;
743
- justify-content: space-between;
744
- width: 100%;
745
- padding: 0.5rem 0.75rem;
746
- background: none;
747
- border: none;
748
- border-radius: var(--ld-radius-md);
749
- color: var(--ld-text-muted);
750
- font-family: var(--ld-font-sans);
751
- font-size: 0.8125rem;
752
- font-weight: 600;
753
- cursor: pointer;
754
- transition: color 0.2s, background-color 0.2s;
755
- }
756
- .sidebar-group-header-content {
757
- display: flex;
758
- align-items: center;
759
- gap: 0.75rem;
760
- }
761
- .sidebar-group-header:hover {
762
- color: var(--ld-text-main);
763
- }
764
- .sidebar-group-header.active {
765
- color: var(--ld-text-main);
766
- }
767
- .sidebar-group-chevron {
768
- display: inline-flex;
769
- align-items: center;
770
- transition: transform 0.25s ease;
771
- font-size: 0.75rem;
772
- line-height: 1;
773
- }
774
- .sidebar-group-chevron.open {
775
- transform: rotate(90deg);
776
- }
777
- .sidebar-group-list {
778
- list-style: none;
779
- padding: 0;
780
- margin: 0.35rem 0 0.5rem 0;
781
- position: relative;
782
- }
783
- .sidebar-group-list li {
784
- margin-bottom: 2px;
785
- }
786
- .sidebar-link-nested {
787
- padding-left: 0.75rem;
788
- }
789
- .sidebar-group-list {
790
- list-style: none;
791
- padding: 0;
792
- margin: 0.35rem 0 0.5rem 0;
793
- position: relative;
794
- }
795
- .sidebar-group-list li {
796
- margin-bottom: 2px;
797
- }
798
-
799
- /* src/client/theme/ui/OnThisPage/toc.css */
800
- .boltdocs-on-this-page {
801
- width: var(--ld-toc-width);
802
- flex-shrink: 0;
803
- padding: 1.5rem 1rem;
804
- height: 100%;
805
- display: flex;
806
- flex-direction: column;
807
- transform: translate3d(0, 0, 0);
808
- backface-visibility: hidden;
809
- }
810
- .on-this-page-title {
811
- font-size: 0.6875rem;
812
- font-weight: 700;
813
- text-transform: uppercase;
814
- letter-spacing: 0.08em;
815
- color: var(--ld-text-dim);
816
- margin: 0 0 0.75rem;
817
- padding-left: 0.75rem;
818
- flex-shrink: 0;
819
- }
820
- .on-this-page-container {
821
- position: relative;
822
- padding-left: 2px;
823
- flex: 0 1 auto;
824
- min-height: 0;
825
- display: flex;
826
- flex-direction: column;
827
- }
828
- .on-this-page-list-container {
829
- overflow-y: auto;
830
- max-height: 50vh;
831
- flex: 0 1 auto;
832
- position: relative;
833
- scrollbar-width: none;
834
- }
835
- .on-this-page-list-container::-webkit-scrollbar {
836
- display: none;
837
- }
838
- .on-this-page-list {
839
- list-style: none;
840
- padding: 0;
841
- margin: 0;
842
- border-left: 1px solid var(--ld-border-subtle);
843
- }
844
- .toc-indicator {
845
- position: absolute;
846
- left: 0;
847
- width: 2px;
848
- background-color: var(--ld-color-accent);
849
- transition:
850
- transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
851
- height 0.25s cubic-bezier(0.4, 0, 0.2, 1),
852
- opacity 0.2s ease;
853
- z-index: 1;
854
- border-radius: 2px;
855
- pointer-events: none;
856
- opacity: 0;
857
- }
858
- .on-this-page-list li {
859
- margin: 0;
860
- }
861
- .on-this-page-list li.toc-indent {
862
- padding-left: 0.75rem;
863
- }
864
- .toc-link {
865
- display: block;
866
- padding: 0.35rem 0.75rem;
867
- font-size: 0.8125rem;
868
- color: var(--ld-text-dim);
869
- text-decoration: none;
870
- border-left: 2px solid transparent;
871
- margin-left: -2px;
872
- line-height: 1.4;
873
- transition: color 0.2s, font-weight 0.2s;
874
- }
875
- .toc-link:hover {
876
- color: var(--ld-text-main);
877
- }
878
- .toc-link.active {
879
- color: var(--ld-color-primary);
880
- font-weight: 500;
881
- }
882
- .toc-help {
883
- margin-top: 1.5rem;
884
- padding-top: 1rem;
885
- border-top: 1px solid var(--ld-border-subtle);
886
- flex-shrink: 0;
887
- }
888
- .toc-help-title {
889
- font-size: 0.6875rem;
890
- font-weight: 700;
891
- text-transform: uppercase;
892
- letter-spacing: 0.08em;
893
- color: var(--ld-text-dim);
894
- margin: 0 0 0.5rem;
895
- padding-left: 0.75rem;
896
- }
897
- .toc-help-links {
898
- list-style: none;
899
- padding: 0;
900
- margin: 0;
901
- }
902
- .toc-help-links li {
903
- margin-bottom: 2px;
904
- }
905
- .toc-help-link {
906
- display: flex;
907
- align-items: center;
908
- gap: 0.4rem;
909
- padding: 0.3rem 0.75rem;
910
- font-size: 0.8rem;
911
- color: var(--ld-text-dim);
912
- text-decoration: none;
913
- border-radius: var(--ld-radius-md);
914
- transition: color 0.2s, background-color 0.2s;
915
- }
916
- .toc-help-link:hover {
917
- color: var(--ld-text-main);
918
- background-color: var(--ld-bg-mute);
919
- }
920
- .toc-help-link svg {
921
- width: 14px;
922
- height: 14px;
923
- opacity: 0.6;
924
- }
925
-
926
- /* src/client/theme/ui/Footer/footer.css */
927
- .boltdocs-footer {
928
- display: flex;
929
- align-items: center;
930
- justify-content: space-between;
931
- padding: 1.5rem 2rem;
932
- border-top: 1px solid var(--ld-border-subtle);
933
- background-color: var(--ld-bg-soft);
934
- font-size: 0.8rem;
935
- color: var(--ld-text-dim);
936
- }
937
- .footer-copy {
938
- margin: 0;
939
- }
940
- .footer-links {
941
- display: flex;
942
- gap: 1.25rem;
943
- }
944
- .footer-links a {
945
- color: var(--ld-text-dim);
946
- text-decoration: none;
947
- transition: color 0.2s;
948
- }
949
- .footer-links a:hover {
950
- color: var(--ld-text-muted);
951
- }
952
-
953
- /* src/client/theme/ui/LanguageSwitcher/language-switcher.css */
954
- .boltdocs-language-switcher {
955
- position: relative;
956
- display: flex;
957
- align-items: center;
958
- }
959
- .language-btn {
960
- display: flex;
961
- align-items: center;
962
- gap: 0.35rem;
963
- padding: 0.4rem 0.6rem;
964
- background: transparent;
965
- color: var(--ld-text-muted);
966
- border: none;
967
- border-radius: var(--ld-radius-md);
968
- font-size: 0.8125rem;
969
- font-weight: 500;
970
- cursor: pointer;
971
- transition: background-color 0.2s, color 0.2s;
972
- }
973
- .language-btn svg {
974
- width: 15px;
975
- height: 15px;
976
- opacity: 0.8;
977
- }
978
- .language-btn:hover {
979
- background-color: var(--ld-bg-mute);
980
- color: var(--ld-text-main);
981
- }
982
- .language-dropdown {
983
- position: absolute;
984
- top: 100%;
985
- right: 0;
986
- margin-top: 0.35rem;
987
- min-width: 130px;
988
- background-color: rgba(15, 15, 24, 0.85);
989
- backdrop-filter: blur(12px);
990
- -webkit-backdrop-filter: blur(12px);
991
- border: 1px solid var(--ld-border-strong);
992
- border-radius: var(--ld-radius-md);
993
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
994
- padding: 0.35rem;
995
- z-index: 200;
996
- display: flex;
997
- flex-direction: column;
998
- gap: 0.15rem;
999
- animation: languageDropdownIn 0.15s ease-out;
1000
- }
1001
- @keyframes languageDropdownIn {
1002
- from {
1003
- opacity: 0;
1004
- transform: translateY(-4px);
1005
- }
1006
- to {
1007
- opacity: 1;
1008
- transform: translateY(0);
1009
- }
1010
- }
1011
- [data-theme=light] .language-dropdown,
1012
- .theme-light .language-dropdown {
1013
- background-color: rgba(255, 255, 255, 0.9);
1014
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
1015
- }
1016
- .language-option {
1017
- display: block;
1018
- width: 100%;
1019
- text-align: left;
1020
- padding: 0.4rem 0.6rem;
1021
- background: transparent;
1022
- border: none;
1023
- border-radius: var(--ld-radius-sm);
1024
- color: var(--ld-text-muted);
1025
- font-size: 0.8125rem;
1026
- font-weight: 500;
1027
- cursor: pointer;
1028
- transition: background-color 0.2s, color 0.2s;
1029
- }
1030
- .language-option:hover {
1031
- background-color: var(--ld-bg-mute);
1032
- color: var(--ld-text-main);
1033
- }
1034
- .language-option.active {
1035
- background-color: var(--ld-color-primary-muted);
1036
- color: var(--ld-color-primary);
1037
- }
1038
-
1039
- /* src/client/theme/ui/PoweredBy/powered-by.css */
1040
- .powered-by-container {
1041
- display: flex;
1042
- justify-content: center;
1043
- padding: 1rem 0.6rem;
1044
- }
1045
- .powered-by-link {
1046
- position: relative;
1047
- display: inline-flex;
1048
- align-items: center;
1049
- gap: 0.45rem;
1050
- padding: 0.45rem 1rem;
1051
- border-radius: var(--ld-radius-full);
1052
- background: rgba(255, 255, 255, 0.03);
1053
- backdrop-filter: blur(8px);
1054
- -webkit-backdrop-filter: blur(8px);
1055
- border: 1px solid rgba(255, 255, 255, 0.08);
1056
- color: var(--ld-text-dim);
1057
- font-size: 0.725rem;
1058
- font-weight: 500;
1059
- text-decoration: none;
1060
- transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
1061
- letter-spacing: 0.01em;
1062
- overflow: hidden;
1063
- }
1064
- .powered-by-link::before {
1065
- content: "";
1066
- position: absolute;
1067
- top: 0;
1068
- left: -100%;
1069
- width: 100%;
1070
- height: 100%;
1071
- background:
1072
- linear-gradient(
1073
- 90deg,
1074
- transparent,
1075
- rgba(255, 255, 255, 0.05),
1076
- transparent);
1077
- transition: 0.5s;
1078
- }
1079
- .powered-by-link:hover::before {
1080
- left: 100%;
1081
- }
1082
- .powered-by-link:hover {
1083
- background: rgba(255, 255, 255, 0.06);
1084
- border-color: rgba(255, 255, 255, 0.2);
1085
- color: var(--ld-text-main);
1086
- transform: translateY(-2px);
1087
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
1088
- }
1089
- .powered-by-icon {
1090
- color: var(--ld-color-primary);
1091
- filter: drop-shadow(0 0 4px var(--ld-color-primary));
1092
- transition: transform 0.3s ease;
1093
- }
1094
- .powered-by-link:hover .powered-by-icon {
1095
- transform: scale(1.2) rotate(-10deg);
1096
- filter: drop-shadow(0 0 8px var(--ld-color-primary));
1097
- }
1098
- .powered-by-brand {
1099
- color: var(--ld-color-primary);
1100
- font-weight: 700;
1101
- text-shadow: 0 0 10px rgba(var(--ld-color-primary-rgb, 56, 189, 248), 0.3);
1102
- }
1103
- @media (max-width: 768px) {
1104
- .powered-by-container {
1105
- padding: 0.75rem 0.5rem;
1106
- }
1107
- }
1108
-
1109
- /* src/client/theme/ui/CopyMarkdown/copy-markdown.css */
1110
- .boltdocs-copy-markdown {
1111
- position: relative;
1112
- display: inline-block;
1113
- z-index: 100;
1114
- }
1115
- .copy-btn-group {
1116
- display: flex;
1117
- align-items: stretch;
1118
- background-color: var(--ld-bg-mute);
1119
- border: 1px solid var(--ld-border-subtle);
1120
- border-radius: var(--ld-radius-full);
1121
- overflow: hidden;
1122
- transition: all 0.2s ease;
1123
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
1124
- }
1125
- .copy-btn-group:hover {
1126
- border-color: var(--ld-color-primary-hover);
1127
- box-shadow: 0 4px 20px rgba(59, 130, 246, 0.15);
1128
- }
1129
- .copy-btn {
1130
- display: flex;
1131
- align-items: center;
1132
- gap: 8px;
1133
- padding: 8px 16px;
1134
- background: transparent;
1135
- border: none;
1136
- color: var(--ld-text-main);
1137
- font-size: 14px;
1138
- font-weight: 500;
1139
- cursor: pointer;
1140
- transition: background 0.2s ease;
1141
- }
1142
- .copy-btn:hover {
1143
- background-color: var(--ld-bg-soft);
1144
- }
1145
- .copy-label {
1146
- white-space: nowrap;
1147
- }
1148
- .copy-dropdown-toggle {
1149
- display: flex;
1150
- align-items: center;
1151
- justify-content: center;
1152
- padding: 0 10px;
1153
- background: rgba(255, 255, 255, 0.03);
1154
- border: none;
1155
- border-left: 1px solid var(--ld-border-subtle);
1156
- color: var(--ld-text-muted);
1157
- cursor: pointer;
1158
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1159
- }
1160
- .copy-dropdown-toggle:hover {
1161
- background: rgba(255, 255, 255, 0.1);
1162
- color: var(--ld-text-main);
1163
- }
1164
- .copy-dropdown-toggle .arrow-icon {
1165
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1166
- }
1167
- .copy-dropdown-toggle.is-active .arrow-icon {
1168
- transform: rotate(180deg);
1169
- }
1170
- .copy-dropdown {
1171
- position: absolute;
1172
- top: calc(100% + 8px);
1173
- right: 0;
1174
- width: 200px;
1175
- background: var(--ld-bg-main);
1176
- border: 1px solid var(--ld-border-subtle);
1177
- border-radius: var(--ld-radius-lg);
1178
- padding: 4px;
1179
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
1180
- overflow: hidden;
1181
- animation: boltdocs-fade-in 0.2s ease;
1182
- }
1183
- .copy-option {
1184
- display: flex;
1185
- align-items: center;
1186
- gap: 10px;
1187
- width: 100%;
1188
- padding: 10px 12px;
1189
- background: transparent;
1190
- border: none;
1191
- border-radius: 8px;
1192
- color: var(--ld-text-main);
1193
- font-size: 14px;
1194
- text-align: left;
1195
- cursor: pointer;
1196
- transition: background 0.2s ease;
1197
- }
1198
- .copy-option:hover {
1199
- background-color: var(--ld-bg-soft);
1200
- }
1201
- @keyframes boltdocs-fade-in {
1202
- from {
1203
- opacity: 0;
1204
- transform: translateY(-4px);
1205
- }
1206
- to {
1207
- opacity: 1;
1208
- transform: translateY(0);
1209
- }
1210
- }
1211
-
1212
- /* src/client/theme/styles/markdown.css */
1213
- .boltdocs-content {
1214
- flex: 1;
1215
- padding: 2rem 2.5rem 6rem;
1216
- max-width: var(--ld-content-max-width);
1217
- margin: 0 auto;
1218
- min-width: 0;
1219
- height: 100%;
1220
- overflow-y: auto;
1221
- scrollbar-width: none;
1222
- scroll-behavior: smooth;
1223
- transition: max-width 0.3s cubic-bezier(0.16, 1, 0.3, 1), padding 0.3s ease;
1224
- }
1225
- .boltdocs-content::-webkit-scrollbar {
1226
- display: none;
1227
- }
1228
- .boltdocs-breadcrumbs {
1229
- margin-bottom: 1.5rem;
1230
- }
1231
- .boltdocs-breadcrumbs-list {
1232
- display: flex;
1233
- align-items: center;
1234
- flex-wrap: wrap;
1235
- list-style: none;
1236
- padding: 0;
1237
- margin: 0;
1238
- font-size: 0.8125rem;
1239
- }
1240
- .boltdocs-breadcrumbs-item {
1241
- display: flex;
1242
- align-items: center;
1243
- }
1244
- .boltdocs-breadcrumbs-link {
1245
- display: flex;
1246
- align-items: center;
1247
- color: var(--ld-text-muted);
1248
- text-decoration: none;
1249
- transition: color 0.2s;
1250
- }
1251
- .boltdocs-breadcrumbs-link:hover {
1252
- color: var(--ld-color-primary);
1253
- }
1254
- .boltdocs-breadcrumbs-separator {
1255
- display: flex;
1256
- align-items: center;
1257
- color: var(--ld-text-dim);
1258
- margin: 0 0.5rem;
1259
- opacity: 0.5;
1260
- }
1261
- .boltdocs-breadcrumbs-text {
1262
- color: var(--ld-text-muted);
1263
- }
1264
- .boltdocs-breadcrumbs-active {
1265
- color: var(--ld-text-main);
1266
- font-weight: 500;
1267
- }
1268
- .boltdocs-page h1 {
1269
- font-size: 2.25rem;
1270
- margin: 0 0 0.75rem;
1271
- font-weight: 700;
1272
- letter-spacing: -0.025em;
1273
- color: var(--ld-text-main);
1274
- }
1275
- .boltdocs-page h1 + p {
1276
- color: var(--ld-text-muted);
1277
- font-size: 1.05rem;
1278
- margin-bottom: 2rem;
1279
- }
1280
- .boltdocs-page h2 {
1281
- font-size: 1.4rem;
1282
- margin-top: 2.5rem;
1283
- margin-bottom: 0.75rem;
1284
- font-weight: 700;
1285
- color: var(--ld-text-main);
1286
- padding-bottom: 0.5rem;
1287
- border-bottom: 1px solid var(--ld-border-subtle);
1288
- scroll-margin-top: 5rem;
1289
- letter-spacing: -0.015em;
1290
- }
1291
- .boltdocs-page h3 {
1292
- font-size: 1.125rem;
1293
- margin-top: 2rem;
1294
- margin-bottom: 0.5rem;
1295
- font-weight: 600;
1296
- color: var(--ld-text-main);
1297
- scroll-margin-top: 5rem;
1298
- }
1299
- .boltdocs-page p {
1300
- margin-top: 0;
1301
- margin-bottom: 1rem;
1302
- color: var(--ld-text-muted);
1303
- }
1304
- .boltdocs-page a {
1305
- color: var(--ld-color-primary);
1306
- text-decoration: none;
1307
- transition: color 0.2s;
1308
- }
1309
- .boltdocs-page a:hover {
1310
- color: var(--ld-color-primary-hover);
1311
- text-decoration: underline;
1312
- }
1313
- .boltdocs-page ul,
1314
- .boltdocs-page ol {
1315
- margin-top: 0;
1316
- margin-bottom: 1rem;
1317
- padding-left: 1.5rem;
1318
- color: var(--ld-text-muted);
1319
- }
1320
- .boltdocs-page li {
1321
- margin-bottom: 0.35rem;
1322
- }
1323
- .boltdocs-page strong {
1324
- color: var(--ld-text-main);
1325
- font-weight: 600;
1326
- }
1327
- .boltdocs-page blockquote {
1328
- margin: 1.5rem 0;
1329
- padding: 0.75rem 1.25rem;
1330
- border-left: 3px solid var(--ld-color-primary);
1331
- background-color: var(--ld-color-primary-muted);
1332
- border-radius: 0 var(--ld-radius-md) var(--ld-radius-md) 0;
1333
- color: var(--ld-text-muted);
1334
- }
1335
- .boltdocs-page blockquote p {
1336
- margin: 0;
1337
- }
1338
- .boltdocs-page hr {
1339
- border: none;
1340
- border-top: 1px solid var(--ld-border-subtle);
1341
- margin: 2rem 0;
1342
- }
1343
- .boltdocs-page img {
1344
- max-width: 100%;
1345
- height: auto;
1346
- border-radius: var(--ld-radius-md);
1347
- margin: 1rem 0;
1348
- display: block;
1349
- }
1350
- .boltdocs-page table {
1351
- width: 100%;
1352
- border-collapse: collapse;
1353
- margin: 1.5rem 0;
1354
- font-size: 0.875rem;
1355
- }
1356
- .boltdocs-page th {
1357
- text-align: left;
1358
- padding: 0.6rem 0.75rem;
1359
- border-bottom: 2px solid var(--ld-border-subtle);
1360
- color: var(--ld-text-main);
1361
- font-weight: 600;
1362
- }
1363
- .boltdocs-page td {
1364
- padding: 0.5rem 0.75rem;
1365
- border-bottom: 1px solid var(--ld-border-subtle);
1366
- color: var(--ld-text-muted);
1367
- }
1368
- .boltdocs-page tr:hover td {
1369
- background-color: rgba(255, 255, 255, 0.02);
1370
- }
1371
- .boltdocs-page :not(pre) > code {
1372
- background-color: var(--ld-surface);
1373
- padding: 0.15rem 0.45rem;
1374
- border-radius: 5px;
1375
- font-family: var(--ld-font-mono);
1376
- font-size: 0.85em;
1377
- color: var(--ld-color-primary-hover);
1378
- border: 1px solid var(--ld-border-subtle);
1379
- }
1380
- .code-block-wrapper {
1381
- margin: 1.5rem 0;
1382
- border-radius: var(--ld-radius-md);
1383
- overflow: hidden;
1384
- border: 1px solid var(--ld-border-subtle);
1385
- background-color: var(--ld-code-bg);
1386
- position: relative;
1387
- }
1388
- .code-block-copy {
1389
- display: flex;
1390
- align-items: center;
1391
- justify-content: center;
1392
- position: absolute;
1393
- top: 0.75rem;
1394
- right: 0.75rem;
1395
- z-index: 50;
1396
- padding: 0.4rem;
1397
- background-color: var(--ld-surface);
1398
- backdrop-filter: blur(8px);
1399
- -webkit-backdrop-filter: blur(8px);
1400
- border: 1px solid var(--ld-border-subtle);
1401
- border-radius: 6px;
1402
- color: var(--ld-text-dim);
1403
- cursor: pointer;
1404
- transition: all 0.2s ease;
1405
- opacity: 0;
1406
- }
1407
- .code-block-wrapper:hover .code-block-copy {
1408
- opacity: 1;
1409
- }
1410
- .code-block-copy:hover {
1411
- color: var(--ld-text-main);
1412
- border-color: var(--ld-border-strong);
1413
- background-color: rgba(255, 255, 255, 0.08);
1414
- }
1415
- .code-block-copy.copied {
1416
- color: #22c55e;
1417
- border-color: rgba(34, 197, 94, 0.4);
1418
- opacity: 1;
1419
- }
1420
- .code-block-copy svg {
1421
- width: 16px;
1422
- height: 16px;
1423
- }
1424
- .code-block-wrapper pre {
1425
- margin: 0 !important;
1426
- border-radius: 0 !important;
1427
- border: none !important;
1428
- background-color: transparent !important;
1429
- }
1430
- .code-block-wrapper pre > code {
1431
- display: grid !important;
1432
- padding: 1.25rem 1rem !important;
1433
- }
1434
- .code-block-wrapper pre > code .line {
1435
- padding: 0 1.25rem;
1436
- }
1437
- .boltdocs-page pre {
1438
- margin: 1.5rem 0;
1439
- border-radius: var(--ld-radius-md);
1440
- overflow-x: auto;
1441
- font-family: var(--ld-font-mono);
1442
- font-size: 0.8125rem;
1443
- line-height: 1.7;
1444
- background-color: var(--ld-code-bg);
1445
- color: var(--ld-code-text);
1446
- border: 1px solid var(--ld-border-subtle);
1447
- }
1448
- .boltdocs-page pre > code {
1449
- display: grid;
1450
- padding: 1rem 1rem;
1451
- background-color: transparent;
1452
- border: none;
1453
- color: inherit;
1454
- font-size: inherit;
1455
- }
1456
- .boltdocs-page pre > code .line {
1457
- padding: 0 1.25rem;
1458
- }
1459
- .boltdocs-page pre > code .line.highlighted {
1460
- background-color: var(--ld-color-primary-muted);
1461
- border-left: 2px solid var(--ld-color-primary);
1462
- }
1463
- .header-anchor {
1464
- margin-left: 0.5rem;
1465
- color: var(--ld-text-dim);
1466
- opacity: 0;
1467
- transition: opacity 0.2s;
1468
- text-decoration: none;
1469
- font-weight: 400;
1470
- }
1471
- .boltdocs-page h2:hover .header-anchor,
1472
- .boltdocs-page h3:hover .header-anchor {
1473
- opacity: 1;
1474
- }
1475
- .header-anchor:hover {
1476
- color: var(--ld-color-primary);
1477
- }
1478
- .boltdocs-heading {
1479
- display: flex;
1480
- align-items: center;
1481
- }
1482
- .boltdocs-heading .header-anchor {
1483
- display: inline-flex;
1484
- align-items: center;
1485
- margin-left: 0.5rem;
1486
- color: var(--ld-text-dim);
1487
- opacity: 0;
1488
- transition: opacity 0.2s;
1489
- text-decoration: none;
1490
- }
1491
- .boltdocs-heading:hover .header-anchor {
1492
- opacity: 1;
1493
- }
1494
-
1495
- /* src/client/theme/components/Video/video.css */
1496
- .boltdocs-video-wrapper {
1497
- margin: 1.5rem 0;
1498
- max-width: 100%;
1499
- width: 100%;
1500
- box-sizing: border-box;
1501
- border-radius: var(--ld-radius-md);
1502
- overflow: hidden;
1503
- border: 1px solid var(--ld-border-subtle);
1504
- background-color: var(--ld-surface);
1505
- }
1506
- .boltdocs-video {
1507
- display: block;
1508
- width: 100%;
1509
- max-width: 100%;
1510
- height: auto;
1511
- border-radius: 0;
1512
- animation: ld-video-fade-in 0.4s ease-out;
1513
- }
1514
- .boltdocs-video-placeholder {
1515
- width: 100%;
1516
- aspect-ratio: 16 / 9;
1517
- background-color: var(--ld-surface);
1518
- }
1519
- .boltdocs-page video {
1520
- max-width: 100%;
1521
- height: auto;
1522
- }
1523
- @keyframes ld-video-fade-in {
1524
- from {
1525
- opacity: 0;
1526
- }
1527
- to {
1528
- opacity: 1;
1529
- }
1530
- }
1531
-
1532
- /* src/client/theme/components/mdx/mdx-components.css */
1533
- .ld-btn {
1534
- all: unset;
1535
- box-sizing: border-box !important;
1536
- display: inline-flex;
1537
- align-items: center;
1538
- justify-content: center;
1539
- gap: 0.5rem;
1540
- font-family: var(--ld-font-sans);
1541
- font-weight: 600;
1542
- font-size: 0.9375rem;
1543
- line-height: normal;
1544
- letter-spacing: -0.01em;
1545
- text-align: center;
1546
- text-decoration: none !important;
1547
- white-space: nowrap;
1548
- border-radius: var(--ld-radius-md);
1549
- cursor: pointer;
1550
- transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
1551
- border: 1px solid transparent;
1552
- user-select: none;
1553
- position: relative;
1554
- }
1555
- .ld-btn:hover {
1556
- transform: translateY(-1px);
1557
- }
1558
- .ld-btn:active {
1559
- transform: translateY(0) scale(0.98);
1560
- }
1561
- .ld-btn--sm {
1562
- min-height: 2rem;
1563
- padding: 0 1rem;
1564
- font-size: 0.8125rem;
1565
- border-radius: var(--ld-radius-md);
1566
- }
1567
- .ld-btn--md {
1568
- min-height: 2.625rem;
1569
- padding: 0 1.6rem;
1570
- font-size: 0.9375rem;
1571
- }
1572
- .ld-btn--lg {
1573
- min-height: 3.25rem;
1574
- padding: 0 2.2rem;
1575
- font-size: 1.05rem;
1576
- }
1577
- .ld-btn--primary {
1578
- background-color: var( --ld-ui-btn-primary-bg, var(--ld-btn-primary-bg) ) !important;
1579
- color: var(--ld-ui-btn-primary-text, var(--ld-btn-primary-text)) !important;
1580
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
1581
- }
1582
- .ld-btn--primary:hover {
1583
- filter: brightness(1.1);
1584
- }
1585
- .ld-btn--secondary {
1586
- background-color: var( --ld-ui-btn-secondary-bg, var(--ld-btn-secondary-bg) ) !important;
1587
- color: var( --ld-ui-btn-secondary-text, var(--ld-btn-secondary-text) ) !important;
1588
- border-color: var(--ld-border-subtle);
1589
- }
1590
- .ld-btn--secondary:hover {
1591
- background-color: var(--ld-bg-mute);
1592
- border-color: var(--ld-border-strong);
1593
- }
1594
- .ld-btn--outline {
1595
- background: transparent !important;
1596
- color: var(--ld-text-main) !important;
1597
- border-color: var(--ld-border-strong);
1598
- }
1599
- .ld-btn--outline:hover {
1600
- background-color: var(--ld-bg-soft);
1601
- border-color: var(--ld-color-primary);
1602
- }
1603
- .ld-btn--ghost {
1604
- background: transparent !important;
1605
- color: var(--ld-text-muted) !important;
1606
- }
1607
- .ld-btn--ghost:hover {
1608
- background-color: var(--ld-bg-soft);
1609
- color: var(--ld-text-main) !important;
1610
- }
1611
- .ld-badge {
1612
- display: inline-flex;
1613
- align-items: center;
1614
- padding: 0.3rem 0.85rem;
1615
- font-size: 0.75rem;
1616
- font-weight: 600;
1617
- border-radius: var(--ld-radius-full);
1618
- line-height: 1.4;
1619
- white-space: nowrap;
1620
- letter-spacing: 0.01em;
1621
- }
1622
- .ld-badge--default {
1623
- background: var(--ld-bg-mute);
1624
- color: var(--ld-text-main);
1625
- border: 1px solid var(--ld-border-subtle);
1626
- }
1627
- .ld-badge--primary {
1628
- background: var(--ld-color-primary-muted);
1629
- color: var(--ld-color-primary);
1630
- border: 1px solid rgba(127, 19, 236, 0.2);
1631
- }
1632
- .ld-badge--success {
1633
- background: var(--ld-ui-success-bg);
1634
- color: var(--ld-ui-success-text);
1635
- border: 1px solid var(--ld-ui-success-border);
1636
- }
1637
- .ld-badge--warning {
1638
- background: var(--ld-ui-warning-bg);
1639
- color: var(--ld-ui-warning-text);
1640
- border: 1px solid var(--ld-ui-warning-border);
1641
- }
1642
- .ld-badge--danger {
1643
- background: var(--ld-ui-danger-bg);
1644
- color: var(--ld-ui-danger-text);
1645
- border: 1px solid var(--ld-ui-danger-border);
1646
- }
1647
- .ld-badge--info {
1648
- background: var(--ld-ui-info-bg);
1649
- color: var(--ld-ui-info-text);
1650
- border: 1px solid var(--ld-ui-info-border);
1651
- }
1652
- .ld-cards {
1653
- display: grid;
1654
- gap: 1rem;
1655
- margin: 1.5rem 0;
1656
- }
1657
- .ld-cards--1 {
1658
- grid-template-columns: 1fr;
1659
- }
1660
- .ld-cards--2 {
1661
- grid-template-columns: repeat(2, 1fr);
1662
- }
1663
- .ld-cards--3 {
1664
- grid-template-columns: repeat(3, 1fr);
1665
- }
1666
- .ld-cards--4 {
1667
- grid-template-columns: repeat(4, 1fr);
1668
- }
1669
- @media (max-width: 768px) {
1670
- .ld-cards--2,
1671
- .ld-cards--3,
1672
- .ld-cards--4 {
1673
- grid-template-columns: 1fr;
1674
- }
1675
- }
1676
- .ld-card {
1677
- position: relative;
1678
- padding: 1.35rem 1.5rem;
1679
- border-radius: var(--ld-radius-lg);
1680
- border: 1px solid var(--ld-border-subtle);
1681
- background: var(--ld-bg-soft);
1682
- transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1);
1683
- text-decoration: none !important;
1684
- backdrop-filter: blur(var(--ld-navbar-blur));
1685
- -webkit-backdrop-filter: blur(var(--ld-navbar-blur));
1686
- color: inherit;
1687
- overflow: hidden;
1688
- }
1689
- .ld-card::before {
1690
- content: "";
1691
- position: absolute;
1692
- top: 0;
1693
- left: 0;
1694
- right: 0;
1695
- height: 1px;
1696
- background:
1697
- linear-gradient(
1698
- 90deg,
1699
- transparent,
1700
- var(--ld-border-strong),
1701
- transparent);
1702
- opacity: 0;
1703
- transition: opacity 0.3s ease;
1704
- }
1705
- .ld-card:hover {
1706
- border-color: var(--ld-color-primary);
1707
- transform: translateY(-3px);
1708
- }
1709
- .ld-card:hover::before {
1710
- opacity: 1;
1711
- background:
1712
- linear-gradient(
1713
- 90deg,
1714
- transparent,
1715
- var(--ld-color-primary),
1716
- transparent);
1717
- }
1718
- .ld-card--link {
1719
- cursor: pointer;
1720
- }
1721
- .ld-card--link:hover {
1722
- text-decoration: none !important;
1723
- }
1724
- .ld-card__icon {
1725
- font-size: 1.6rem;
1726
- display: flex;
1727
- align-items: center;
1728
- justify-content: center;
1729
- width: 2.5rem;
1730
- height: 2.5rem;
1731
- margin-bottom: 0.85rem;
1732
- }
1733
- .ld-card__title {
1734
- font-size: 0.95rem;
1735
- font-weight: 700;
1736
- margin: 0 0 0.4rem;
1737
- color: var(--ld-text-main);
1738
- letter-spacing: -0.01em;
1739
- }
1740
- .ld-card__body {
1741
- font-size: 0.85rem;
1742
- color: var(--ld-text-muted);
1743
- line-height: 1.55;
1744
- margin: 0;
1745
- }
1746
- .ld-card__body p {
1747
- margin: 0;
1748
- }
1749
- .ld-tabs {
1750
- margin: 1.5rem 0;
1751
- border: 1px solid var(--ld-border-subtle);
1752
- border-radius: var(--ld-radius-lg);
1753
- overflow: hidden;
1754
- background: var(--ld-bg-soft);
1755
- }
1756
- .ld-tabs__bar {
1757
- display: flex;
1758
- gap: 0;
1759
- background-color: var(--ld-bg-mute);
1760
- border-bottom: 1px solid var(--ld-border-subtle);
1761
- overflow-x: auto;
1762
- }
1763
- .ld-tabs__trigger {
1764
- position: relative;
1765
- display: flex;
1766
- align-items: center;
1767
- gap: 0.5rem;
1768
- padding: 0.65rem 1.25rem;
1769
- background: none;
1770
- border: none;
1771
- border-bottom: 2px solid transparent;
1772
- color: var(--ld-text-dim);
1773
- font-family: var(--ld-font-sans);
1774
- font-size: 0.8125rem;
1775
- font-weight: 500;
1776
- cursor: pointer;
1777
- transition: all 0.2s ease;
1778
- white-space: nowrap;
1779
- }
1780
- .ld-tabs__trigger svg {
1781
- width: 1rem;
1782
- height: 1rem;
1783
- }
1784
- .ld-tabs__trigger:hover {
1785
- color: var(--ld-text-main);
1786
- background-color: rgba(255, 255, 255, 0.03);
1787
- }
1788
- .ld-tabs__trigger--active {
1789
- color: var(--ld-color-primary);
1790
- border-bottom-color: var(--ld-color-primary);
1791
- background-color: transparent;
1792
- }
1793
- .ld-tabs__content {
1794
- padding: 1.25rem;
1795
- }
1796
- .ld-tab-panel {
1797
- font-size: 0.9rem;
1798
- line-height: 1.7;
1799
- color: var(--ld-text-muted);
1800
- }
1801
- .ld-admonition {
1802
- margin: 1.5rem 0;
1803
- border-radius: var(--ld-radius-lg);
1804
- border: 1px solid;
1805
- overflow: hidden;
1806
- }
1807
- .ld-admonition__header {
1808
- display: flex;
1809
- align-items: center;
1810
- gap: 0.5rem;
1811
- padding: 0.6rem 1.1rem;
1812
- font-weight: 600;
1813
- font-size: 0.8rem;
1814
- text-transform: uppercase;
1815
- letter-spacing: 0.04em;
1816
- }
1817
- .ld-admonition__icon {
1818
- display: inline-flex;
1819
- align-items: center;
1820
- }
1821
- .ld-admonition__body {
1822
- padding: 0.6rem 1.1rem 1rem;
1823
- font-size: 0.875rem;
1824
- line-height: 1.7;
1825
- color: var(--ld-text-muted);
1826
- }
1827
- .ld-admonition__body p {
1828
- margin: 0 0 0.5rem;
1829
- }
1830
- .ld-admonition__body p:last-child {
1831
- margin-bottom: 0;
1832
- }
1833
- .ld-admonition--note {
1834
- border-color: var(--ld-ui-note-border);
1835
- background-color: var(--ld-ui-note-bg);
1836
- }
1837
- .ld-admonition--note .ld-admonition__header {
1838
- color: var(--ld-ui-note-text);
1839
- }
1840
- .ld-admonition--tip {
1841
- border-color: var(--ld-ui-tip-border);
1842
- background-color: var(--ld-ui-tip-bg);
1843
- }
1844
- .ld-admonition--tip .ld-admonition__header {
1845
- color: var(--ld-ui-tip-text);
1846
- }
1847
- .ld-admonition--info {
1848
- border-color: var(--ld-ui-info-border);
1849
- background-color: var(--ld-ui-info-bg);
1850
- }
1851
- .ld-admonition--info .ld-admonition__header {
1852
- color: var(--ld-ui-info-text);
1853
- }
1854
- .ld-admonition--warning {
1855
- border-color: var(--ld-ui-warning-border);
1856
- background-color: var(--ld-ui-warning-bg);
1857
- }
1858
- .ld-admonition--warning .ld-admonition__header {
1859
- color: var(--ld-ui-warning-text);
1860
- }
1861
- .ld-admonition--danger {
1862
- border-color: var(--ld-ui-danger-border);
1863
- background-color: var(--ld-ui-danger-bg);
1864
- }
1865
- .ld-admonition--danger .ld-admonition__header {
1866
- color: var(--ld-ui-danger-text);
1867
- }
1868
- .ld-list {
1869
- margin: 1rem 0;
1870
- padding-left: 0;
1871
- list-style: none;
1872
- }
1873
- .ld-list--checked,
1874
- .ld-list--arrow {
1875
- padding-left: 0;
1876
- }
1877
- .ld-list__item {
1878
- display: flex;
1879
- align-items: flex-start;
1880
- gap: 0.6rem;
1881
- padding: 0.35rem 0;
1882
- color: var(--ld-text-muted);
1883
- font-size: 0.9rem;
1884
- line-height: 1.6;
1885
- }
1886
- .ld-list__icon {
1887
- flex-shrink: 0;
1888
- margin-top: 0.25rem;
1889
- }
1890
- .ld-list--checked .ld-list__icon {
1891
- color: var(--ld-ui-success-text);
1892
- }
1893
- .ld-list--arrow .ld-list__icon {
1894
- color: var(--ld-color-primary);
1895
- }
1896
- .ld-file-tree {
1897
- margin: 1.5rem 0;
1898
- padding: 1rem;
1899
- border-radius: var(--ld-radius-lg);
1900
- border: 1px solid var(--ld-border-subtle);
1901
- background: var(--ld-bg-soft);
1902
- font-family: var(--ld-font-mono);
1903
- font-size: 0.875rem;
1904
- overflow-x: auto;
1905
- }
1906
- .ld-file-tree__list {
1907
- list-style: none !important;
1908
- margin: 0 !important;
1909
- padding: 0;
1910
- position: relative;
1911
- }
1912
- .ld-file-tree__list:not(.ld-file-tree__list--root) {
1913
- padding-left: 1.25rem;
1914
- margin-top: 0.25rem !important;
1915
- position: relative;
1916
- }
1917
- .ld-file-tree__list:not(.ld-file-tree__list--root)::before {
1918
- content: "";
1919
- position: absolute;
1920
- top: 0;
1921
- bottom: 0;
1922
- left: 0.45rem;
1923
- width: 1px;
1924
- background-color: var(--ld-border-subtle);
1925
- z-index: 0;
1926
- }
1927
- .ld-file-tree__item {
1928
- position: relative;
1929
- margin: 0.2rem 0 !important;
1930
- padding: 0 !important;
1931
- display: block !important;
1932
- }
1933
- .ld-file-tree__label {
1934
- display: inline-flex;
1935
- align-items: center;
1936
- gap: 0.5rem;
1937
- color: var(--ld-text-muted);
1938
- user-select: none;
1939
- border-radius: var(--ld-radius-sm);
1940
- padding: 0.25rem 0.6rem 0.25rem 0.4rem;
1941
- transition: all 0.2s ease;
1942
- position: relative;
1943
- z-index: 1;
1944
- }
1945
- .ld-file-tree__label:hover {
1946
- background: var(--ld-bg-mute);
1947
- color: var(--ld-text-main);
1948
- }
1949
- .ld-file-tree__label--folder {
1950
- color: var(--ld-text-main);
1951
- font-weight: 500;
1952
- }
1953
- .ld-file-tree__icon {
1954
- display: inline-flex;
1955
- align-items: center;
1956
- justify-content: center;
1957
- opacity: 0.8;
1958
- flex-shrink: 0;
1959
- }
1960
- .ld-file-tree__icon-folder {
1961
- color: var(--ld-color-primary);
1962
- }
1963
- .ld-file-tree__name {
1964
- white-space: nowrap;
1965
- }
1966
- .ld-file-tree__icon--chevron {
1967
- width: 14px;
1968
- height: 14px;
1969
- opacity: 0.5;
1970
- transition: opacity 0.2s ease;
1971
- display: flex !important;
1972
- align-items: center;
1973
- justify-content: center;
1974
- }
1975
- .ld-file-tree__label:hover .ld-file-tree__icon--chevron {
1976
- opacity: 1;
1977
- }
1978
- .ld-file-tree__chevron {
1979
- transition: transform 0.2s ease;
1980
- }
1981
- .ld-file-tree__chevron--open {
1982
- transform: rotate(90deg);
1983
- }
1984
- .ld-file-tree__icon--spacer {
1985
- width: 14px;
1986
- }
1987
- .ld-table-container {
1988
- margin: 1.5rem 0;
1989
- border: 1px solid var(--ld-border-subtle);
1990
- border-radius: var(--ld-radius-lg);
1991
- overflow: hidden;
1992
- background: var(--ld-bg-soft);
1993
- display: flex;
1994
- flex-direction: column;
1995
- }
1996
- .ld-table-wrapper {
1997
- overflow-x: auto;
1998
- scrollbar-width: thin;
1999
- }
2000
- .ld-table {
2001
- width: 100%;
2002
- border-collapse: collapse;
2003
- text-align: left;
2004
- font-size: 0.875rem;
2005
- line-height: 1.5;
2006
- }
2007
- .ld-table thead {
2008
- background: var(--ld-bg-mute);
2009
- border-bottom: 1px solid var(--ld-border-subtle);
2010
- }
2011
- .ld-table th {
2012
- padding: 0.75rem 1rem;
2013
- font-weight: 600;
2014
- color: var(--ld-text-main);
2015
- font-size: 0.8125rem;
2016
- text-transform: uppercase;
2017
- letter-spacing: 0.04em;
2018
- white-space: nowrap;
2019
- }
2020
- .ld-table-header--sortable {
2021
- cursor: pointer;
2022
- transition: background-color 0.2s;
2023
- }
2024
- .ld-table-header--sortable:hover {
2025
- background-color: var(--ld-bg-soft);
2026
- }
2027
- .ld-table-header-content {
2028
- display: flex;
2029
- align-items: center;
2030
- gap: 0.5rem;
2031
- }
2032
- .ld-table-sort-icon {
2033
- opacity: 0.8;
2034
- color: var(--ld-color-primary);
2035
- transition: opacity 0.2s;
2036
- }
2037
- .ld-table-sort-icon--hidden {
2038
- opacity: 0;
2039
- }
2040
- .ld-table-header--sortable:hover .ld-table-sort-icon--hidden {
2041
- opacity: 0.3;
2042
- }
2043
- .ld-table td {
2044
- padding: 0.875rem 1rem;
2045
- color: var(--ld-text-muted);
2046
- border-bottom: 1px solid var(--ld-border-subtle);
2047
- }
2048
- .ld-table tr:last-child td {
2049
- border-bottom: none;
2050
- }
2051
- .ld-table code {
2052
- font-size: 0.8rem;
2053
- padding: 0.2rem 0.4rem;
2054
- background: rgba(255, 255, 255, 0.05);
2055
- border-radius: 4px;
2056
- }
2057
- .ld-table-pagination {
2058
- display: flex;
2059
- align-items: center;
2060
- justify-content: space-between;
2061
- padding: 0.75rem 1rem;
2062
- background: var(--ld-bg-mute);
2063
- border-top: 1px solid var(--ld-border-subtle);
2064
- font-size: 0.75rem;
2065
- color: var(--ld-text-dim);
2066
- }
2067
- .ld-table-pagination-controls {
2068
- display: flex;
2069
- align-items: center;
2070
- gap: 0.25rem;
2071
- }
2072
- .ld-table-pagination-btn {
2073
- display: flex;
2074
- align-items: center;
2075
- justify-content: center;
2076
- width: 1.75rem;
2077
- height: 1.75rem;
2078
- border-radius: var(--ld-radius-md);
2079
- border: 1px solid var(--ld-border-subtle);
2080
- background: var(--ld-bg-soft);
2081
- color: var(--ld-text-muted);
2082
- cursor: pointer;
2083
- transition: all 0.2s;
2084
- }
2085
- .ld-table-pagination-btn:hover:not(:disabled) {
2086
- background: var(--ld-bg-mute);
2087
- color: var(--ld-text-main);
2088
- border-color: var(--ld-border-strong);
2089
- }
2090
- .ld-table-pagination-btn:disabled {
2091
- opacity: 0.4;
2092
- cursor: not-allowed;
2093
- }
2094
- .ld-field {
2095
- margin: 1.5rem 0;
2096
- padding: 1.25rem;
2097
- border-radius: var(--ld-radius-lg);
2098
- border: 1px solid var(--ld-border-subtle);
2099
- background: var(--ld-bg-soft);
2100
- position: relative;
2101
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
2102
- }
2103
- .ld-field:hover {
2104
- border-color: var(--ld-color-primary);
2105
- box-shadow: 0 4px 20px -8px rgba(127, 19, 236, 0.15);
2106
- }
2107
- .ld-field__header {
2108
- display: flex;
2109
- flex-wrap: wrap;
2110
- align-items: center;
2111
- justify-content: space-between;
2112
- gap: 1rem;
2113
- margin-bottom: 0.85rem;
2114
- padding-bottom: 0.85rem;
2115
- border-bottom: 1px solid var(--ld-border-subtle);
2116
- }
2117
- .ld-field__signature {
2118
- display: flex;
2119
- align-items: center;
2120
- gap: 0.75rem;
2121
- }
2122
- .ld-field__name {
2123
- font-family: var(--ld-font-mono);
2124
- font-size: 0.95rem;
2125
- font-weight: 700;
2126
- color: var(--ld-text-main);
2127
- background: rgba(127, 19, 236, 0.08);
2128
- padding: 0.2rem 0.6rem;
2129
- border-radius: var(--ld-radius-sm);
2130
- letter-spacing: -0.01em;
2131
- }
2132
- .ld-field__type-badge {
2133
- font-family: var(--ld-font-mono);
2134
- font-size: 0.75rem;
2135
- font-weight: 500;
2136
- color: var(--ld-color-primary);
2137
- background: var(--ld-color-primary-muted);
2138
- padding: 0.15rem 0.5rem;
2139
- border-radius: var(--ld-radius-full);
2140
- border: 1px solid rgba(127, 19, 236, 0.2);
2141
- }
2142
- .ld-field__required-badge {
2143
- font-size: 0.7rem;
2144
- font-weight: 700;
2145
- text-transform: uppercase;
2146
- color: var(--ld-ui-danger-text);
2147
- background: var(--ld-ui-danger-bg);
2148
- padding: 0.1rem 0.4rem;
2149
- border-radius: var(--ld-radius-sm);
2150
- letter-spacing: 0.05em;
2151
- }
2152
- .ld-field__default {
2153
- display: flex;
2154
- align-items: center;
2155
- gap: 0.5rem;
2156
- font-size: 0.8rem;
2157
- }
2158
- .ld-field__default-label {
2159
- color: var(--ld-text-dim);
2160
- font-weight: 500;
2161
- }
2162
- .ld-field__default-value {
2163
- font-family: var(--ld-font-mono);
2164
- color: var(--ld-text-main);
2165
- background: var(--ld-bg-mute);
2166
- padding: 0.15rem 0.4rem;
2167
- border-radius: var(--ld-radius-sm);
2168
- }
2169
- .ld-field__content {
2170
- font-size: 0.875rem;
2171
- line-height: 1.6;
2172
- color: var(--ld-text-muted);
2173
- }
2174
- .ld-field__content p {
2175
- margin: 0;
2176
- }
2177
-
2178
- /* src/client/theme/components/PackageManagerTabs/pkg-tabs.css */
2179
- .pkg-tabs-wrapper {
2180
- margin: 1.5rem 0;
2181
- }
2182
- .pkg-tabs-header {
2183
- display: flex;
2184
- gap: 0.25rem;
2185
- overflow-x: auto;
2186
- padding-bottom: 0.5rem;
2187
- margin-bottom: -0.5rem;
2188
- scrollbar-width: none;
2189
- }
2190
- .pkg-tabs-header::-webkit-scrollbar {
2191
- display: none;
2192
- }
2193
- .pkg-tab-btn {
2194
- display: inline-flex;
2195
- align-items: center;
2196
- gap: 0.4rem;
2197
- padding: 0.5rem 1rem;
2198
- background-color: var(--ld-bg-soft);
2199
- border: 1px solid var(--ld-border-subtle);
2200
- border-bottom: none;
2201
- border-radius: var(--ld-radius-md) var(--ld-radius-md) 0 0;
2202
- color: var(--ld-text-muted);
2203
- font-family: var(--ld-font-sans);
2204
- font-size: 0.8125rem;
2205
- font-weight: 500;
2206
- cursor: pointer;
2207
- transition: all 0.2s;
2208
- opacity: 0.7;
2209
- }
2210
- .pkg-tab-btn:hover {
2211
- color: var(--ld-text-main);
2212
- background-color: var(--ld-bg-mute);
2213
- opacity: 1;
2214
- }
2215
- .pkg-tab-btn.active {
2216
- background-color: var(--ld-code-bg);
2217
- color: var(--ld-text-main);
2218
- border-color: var(--ld-border-subtle);
2219
- opacity: 1;
2220
- position: relative;
2221
- z-index: 2;
2222
- margin-bottom: -1px;
2223
- }
2224
- .pkg-tab-icon {
2225
- display: inline-block;
2226
- }
2227
- .pkg-tabs-content {
2228
- margin-top: 0 !important;
2229
- border-top-left-radius: 0 !important;
2230
- }
2231
-
2232
- /* src/client/theme/ui/SearchDialog/search.css */
2233
- .boltdocs-search-overlay {
2234
- position: fixed;
2235
- top: 0;
2236
- left: 0;
2237
- right: 0;
2238
- bottom: 0;
2239
- background-color: rgba(0, 0, 0, 0.6);
2240
- backdrop-filter: blur(4px);
2241
- -webkit-backdrop-filter: blur(4px);
2242
- z-index: 999;
2243
- display: flex;
2244
- justify-content: center;
2245
- align-items: flex-start;
2246
- padding-top: 10vh;
2247
- }
2248
- .boltdocs-search-modal {
2249
- width: 100%;
2250
- max-width: 560px;
2251
- background-color: var(--ld-bg-main);
2252
- border: 1px solid var(--ld-border-subtle);
2253
- border-radius: var(--ld-radius-lg);
2254
- box-shadow: 0 16px 64px rgba(0, 0, 0, 0.4);
2255
- overflow: hidden;
2256
- display: flex;
2257
- flex-direction: column;
2258
- animation: boltdocs-search-appear 0.15s ease-out forwards;
2259
- }
2260
- @keyframes boltdocs-search-appear {
2261
- from {
2262
- opacity: 0;
2263
- transform: scale(0.96) translateY(-10px);
2264
- }
2265
- to {
2266
- opacity: 1;
2267
- transform: scale(1) translateY(0);
2268
- }
2269
- }
2270
- .boltdocs-search-header {
2271
- display: flex;
2272
- align-items: center;
2273
- padding: 1rem 1.25rem;
2274
- border-bottom: 1px solid transparent;
2275
- background-color: transparent;
2276
- gap: 0.75rem;
2277
- }
2278
- .boltdocs-search-header svg {
2279
- width: 18px;
2280
- height: 18px;
2281
- color: var(--ld-color-primary);
2282
- opacity: 0.8;
2283
- }
2284
- .boltdocs-search-header input {
2285
- flex: 1;
2286
- background: transparent;
2287
- border: none;
2288
- color: var(--ld-text-main);
2289
- font-size: 1.05rem;
2290
- font-weight: 500;
2291
- font-family: var(--ld-font-sans);
2292
- outline: none;
2293
- box-shadow: none;
2294
- }
2295
- .boltdocs-search-header input::placeholder {
2296
- color: var(--ld-text-dim);
2297
- }
2298
- .boltdocs-search-close {
2299
- background: var(--ld-bg-mute);
2300
- border: 1px solid var(--ld-border-subtle);
2301
- color: var(--ld-text-dim);
2302
- font-size: 0.6875rem;
2303
- padding: 0.2rem 0.4rem;
2304
- border-radius: 4px;
2305
- cursor: pointer;
2306
- font-family: var(--ld-font-sans);
2307
- transition: all 0.2s;
2308
- }
2309
- .boltdocs-search-close:hover {
2310
- background: var(--ld-border-strong);
2311
- color: var(--ld-text-main);
2312
- }
2313
- .boltdocs-search-results {
2314
- max-height: 50vh;
2315
- overflow-y: auto;
2316
- padding: 0.5rem;
2317
- }
2318
- .boltdocs-search-results::-webkit-scrollbar {
2319
- width: 6px;
2320
- }
2321
- .boltdocs-search-results::-webkit-scrollbar-thumb {
2322
- background: var(--ld-bg-mute);
2323
- border-radius: 4px;
2324
- }
2325
- .boltdocs-search-result-item {
2326
- display: flex;
2327
- flex-direction: column;
2328
- padding: 0.75rem 1rem;
2329
- border-radius: var(--ld-radius-md);
2330
- text-decoration: none;
2331
- transition: background-color 0.15s;
2332
- margin-bottom: 2px;
2333
- }
2334
- .boltdocs-search-result-item.is-heading {
2335
- padding-left: 2rem;
2336
- border-left: 2px solid transparent;
2337
- }
2338
- .heading-indicator {
2339
- color: var(--ld-text-muted);
2340
- font-weight: 500;
2341
- margin-right: 0.35rem;
2342
- font-family: var(--ld-font-mono);
2343
- }
2344
- .boltdocs-search-result-item:hover,
2345
- .boltdocs-search-result-item:focus {
2346
- background-color: var(--ld-bg-mute);
2347
- outline: none;
2348
- }
2349
- .boltdocs-search-result-title {
2350
- color: var(--ld-text-main);
2351
- font-weight: 500;
2352
- font-size: 0.95rem;
2353
- }
2354
- .boltdocs-search-result-group {
2355
- color: var(--ld-text-muted);
2356
- font-size: 0.75rem;
2357
- margin-top: 0.15rem;
2358
- }
2359
- .boltdocs-search-empty {
2360
- padding: 2rem;
2361
- text-align: center;
2362
- color: var(--ld-text-dim);
2363
- font-size: 0.9rem;
2364
- }
2365
-
2366
- /* src/client/theme/ui/Layout/pagination.css */
2367
- .page-nav {
2368
- display: grid;
2369
- grid-template-columns: 1fr 1fr;
2370
- gap: 0.75rem;
2371
- margin-top: 2.5rem;
2372
- padding-top: 1.5rem;
2373
- border-top: 1px solid var(--ld-border-subtle);
2374
- }
2375
- .page-nav-link {
2376
- display: flex;
2377
- align-items: center;
2378
- justify-content: space-between;
2379
- gap: 0.75rem;
2380
- padding: 0.875rem 1rem;
2381
- border-radius: var(--ld-radius-md);
2382
- border: 1px solid var(--ld-border-subtle);
2383
- text-decoration: none;
2384
- transition: all 0.2s;
2385
- }
2386
- .page-nav-link:hover {
2387
- border-color: var(--ld-color-primary);
2388
- background-color: var(--ld-color-primary-muted);
2389
- }
2390
- .page-nav-link--prev {
2391
- flex-direction: row-reverse;
2392
- }
2393
- .page-nav-link--next {
2394
- text-align: left;
2395
- }
2396
- .page-nav-info {
2397
- display: flex;
2398
- flex-direction: column;
2399
- gap: 0.15rem;
2400
- min-width: 0;
2401
- }
2402
- .page-nav-label {
2403
- font-size: 0.6875rem;
2404
- font-weight: 600;
2405
- text-transform: uppercase;
2406
- letter-spacing: 0.05em;
2407
- color: var(--ld-text-dim);
2408
- display: block;
2409
- }
2410
- .page-nav-title {
2411
- font-size: 0.8125rem;
2412
- font-weight: 600;
2413
- color: var(--ld-text-main);
2414
- display: block;
2415
- white-space: nowrap;
2416
- overflow: hidden;
2417
- text-overflow: ellipsis;
2418
- }
2419
- .page-nav-arrow {
2420
- color: var(--ld-text-dim);
2421
- flex-shrink: 0;
2422
- transition: color 0.2s;
2423
- }
2424
- .page-nav-link:hover .page-nav-arrow {
2425
- color: var(--ld-color-primary);
2426
- }
2427
-
2428
- /* src/client/theme/ui/NotFound/not-found.css */
2429
- .boltdocs-not-found {
2430
- display: flex;
2431
- align-items: center;
2432
- justify-content: center;
2433
- min-height: 60vh;
2434
- text-align: center;
2435
- padding: 2rem;
2436
- }
2437
- .not-found-content {
2438
- max-width: 420px;
2439
- }
2440
- .not-found-code {
2441
- display: block;
2442
- font-size: 6rem;
2443
- font-weight: 900;
2444
- line-height: 1;
2445
- background:
2446
- linear-gradient(
2447
- 135deg,
2448
- var(--ld-gradient-from),
2449
- var(--ld-gradient-to));
2450
- -webkit-background-clip: text;
2451
- -webkit-text-fill-color: transparent;
2452
- background-clip: text;
2453
- margin-bottom: 0.5rem;
2454
- }
2455
- .not-found-title {
2456
- font-size: 1.5rem;
2457
- font-weight: 700;
2458
- margin: 0 0 0.75rem;
2459
- color: var(--ld-text-main);
2460
- }
2461
- .not-found-text {
2462
- color: var(--ld-text-muted);
2463
- margin-bottom: 1.5rem;
2464
- }
2465
- a.not-found-link {
2466
- display: inline-flex;
2467
- align-items: center;
2468
- gap: 0.5rem;
2469
- padding: 0.6rem 1.5rem;
2470
- background-color: var(--ld-btn-primary-bg);
2471
- color: var(--ld-btn-primary-text) !important;
2472
- border-radius: var(--ld-radius-md);
2473
- text-decoration: none;
2474
- font-weight: 600;
2475
- transition: all 0.2s;
2476
- }
2477
- a.not-found-link:hover {
2478
- background-color: var(--ld-btn-primary-bg);
2479
- opacity: 0.9;
2480
- transform: translateY(-1px);
2481
- box-shadow: 0 4px 16px var(--ld-color-primary-glow);
2482
- color: var(--ld-btn-primary-text) !important;
2483
- }
2484
-
2485
- /* src/client/theme/ui/Loading/loading.css */
2486
- .boltdocs-loading {
2487
- display: flex;
2488
- flex-direction: column;
2489
- align-items: center;
2490
- justify-content: center;
2491
- min-height: 40vh;
2492
- gap: 1rem;
2493
- }
2494
- .loading-spinner {
2495
- width: 2.5rem;
2496
- height: 2.5rem;
2497
- border: 3px solid var(--ld-border-subtle);
2498
- border-top-color: var(--ld-color-primary);
2499
- border-radius: 50%;
2500
- animation: boltdocs-spin 0.7s linear infinite;
2501
- }
2502
- @keyframes boltdocs-spin {
2503
- to {
2504
- transform: rotate(360deg);
2505
- }
2506
- }
2507
- .loading-text {
2508
- font-size: 0.875rem;
2509
- color: var(--ld-text-dim);
2510
- margin: 0;
2511
- }
2512
-
2513
- /* src/client/theme/components/Playground/playground.css */
2514
- .boltdocs-playground {
2515
- display: flex;
2516
- flex-direction: column;
2517
- margin: 2rem 0;
2518
- border-radius: var(--ld-radius-lg);
2519
- border: 1px solid var(--ld-border-subtle);
2520
- background: var(--ld-code-bg);
2521
- overflow: hidden;
2522
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
2523
- backdrop-filter: blur(10px);
2524
- }
2525
- .playground-split-container {
2526
- display: flex;
2527
- flex-direction: column;
2528
- width: 100%;
2529
- }
2530
- @media (min-width: 1024px) {
2531
- .playground-split-container {
2532
- flex-direction: row;
2533
- min-height: 350px;
2534
- align-items: stretch;
2535
- }
2536
- }
2537
- .playground-panel {
2538
- display: flex;
2539
- flex-direction: column;
2540
- flex: 1;
2541
- min-width: 0;
2542
- }
2543
- .playground-editor-panel {
2544
- border-bottom: 1px solid var(--ld-border-subtle);
2545
- background: var(--ld-code-bg);
2546
- }
2547
- @media (min-width: 1024px) {
2548
- .playground-editor-panel {
2549
- border-bottom: none;
2550
- border-right: 1px solid var(--ld-border-subtle);
2551
- }
2552
- }
2553
- .playground-preview-panel {
2554
- background: var(--ld-bg-mute);
2555
- position: relative;
2556
- }
2557
- .playground-panel-header {
2558
- display: flex;
2559
- align-items: center;
2560
- justify-content: space-between;
2561
- padding: 0.5rem 1rem;
2562
- border-bottom: 1px solid var(--ld-border-subtle);
2563
- background: rgba(0, 0, 0, 0.1);
2564
- }
2565
- .playground-panel-title {
2566
- display: flex;
2567
- align-items: center;
2568
- gap: 0.5rem;
2569
- font-size: 0.75rem;
2570
- font-weight: 600;
2571
- color: var(--ld-text-muted);
2572
- text-transform: uppercase;
2573
- letter-spacing: 0.05em;
2574
- }
2575
- .playground-copy-btn {
2576
- background: transparent;
2577
- border: none;
2578
- color: var(--ld-text-muted);
2579
- cursor: pointer;
2580
- padding: 0.25rem;
2581
- border-radius: var(--ld-radius-sm);
2582
- display: flex;
2583
- align-items: center;
2584
- justify-content: center;
2585
- transition: all 0.2s;
2586
- }
2587
- .playground-copy-btn:hover {
2588
- background: rgba(255, 255, 255, 0.1);
2589
- color: var(--ld-text-main);
2590
- }
2591
- .playground-panel-content {
2592
- flex: 1;
2593
- overflow: auto;
2594
- position: relative;
2595
- display: flex;
2596
- flex-direction: column;
2597
- }
2598
- .playground-editor {
2599
- background: transparent;
2600
- }
2601
- .playground-editor > div {
2602
- font-family: var(--ld-font-mono) !important;
2603
- font-size: 0.85rem !important;
2604
- line-height: 1.5 !important;
2605
- min-height: 100%;
2606
- }
2607
- .playground-editor pre {
2608
- padding: 1.5rem !important;
2609
- margin: 0 !important;
2610
- background: transparent !important;
2611
- }
2612
- .playground-editor textarea {
2613
- outline: none !important;
2614
- padding: 1.5rem !important;
2615
- }
2616
- .boltdocs-playground[data-readonly=true] .playground-editor textarea {
2617
- cursor: default !important;
2618
- }
2619
- .playground-preview {
2620
- padding: 2rem;
2621
- display: flex;
2622
- align-items: center;
2623
- justify-content: center;
2624
- background-color: var(--ld-bg-mute);
2625
- background-image: radial-gradient(var(--ld-border-subtle) 1.5px, transparent 1.5px);
2626
- background-size: 24px 24px;
2627
- color: var(--ld-text-main);
2628
- min-height: 200px;
2629
- }
2630
- .playground-error {
2631
- margin: 0;
2632
- padding: 1rem;
2633
- background: #7f1d1d;
2634
- color: #fca5a5;
2635
- font-size: 0.8rem;
2636
- font-family: var(--ld-font-mono);
2637
- white-space: pre-wrap;
2638
- border-top: 1px solid #991b1b;
2639
- z-index: 10;
2640
- }
2641
- .playground-skeleton {
2642
- height: 350px;
2643
- background: var(--ld-bg-mute);
2644
- border-radius: var(--ld-radius-lg);
2645
- animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
2646
- margin: 2rem 0;
2647
- border: 1px solid var(--ld-border-subtle);
2648
- }
2649
-
2650
- /* src/client/theme/ui/Layout/responsive.css */
2651
- @media (max-width: 1100px) {
2652
- .boltdocs-on-this-page {
2653
- display: none;
2654
- }
2655
- }
2656
- @media (max-width: 768px) {
2657
- .boltdocs-sidebar {
2658
- display: none;
2659
- }
2660
- .boltdocs-content {
2661
- padding: 1.5rem 1rem 3rem;
2662
- }
2663
- .hero-title {
2664
- font-size: 2.25rem;
2665
- }
2666
- .ld-cards--2,
2667
- .ld-cards--3,
2668
- .ld-cards--4 {
2669
- grid-template-columns: 1fr;
2670
- }
2671
- .navbar-search {
2672
- display: none;
2673
- }
2674
- .page-nav {
2675
- flex-direction: column;
2676
- }
2677
- }
2678
-
2679
- /* src/client/theme/styles.css */