@barodoc/theme-docs 0.0.1

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +68 -0
  3. package/src/components/CodeCopy.astro +173 -0
  4. package/src/components/DocHeader.tsx +166 -0
  5. package/src/components/DocsSidebar.tsx +84 -0
  6. package/src/components/Header.astro +32 -0
  7. package/src/components/LanguageSwitcher.astro +77 -0
  8. package/src/components/MobileNav.astro +61 -0
  9. package/src/components/MobileNavSheet.tsx +73 -0
  10. package/src/components/Search.tsx +210 -0
  11. package/src/components/SearchDialog.tsx +83 -0
  12. package/src/components/Sidebar.astro +56 -0
  13. package/src/components/SidebarWrapper.tsx +24 -0
  14. package/src/components/TableOfContents.astro +98 -0
  15. package/src/components/ThemeScript.astro +11 -0
  16. package/src/components/ThemeToggle.tsx +57 -0
  17. package/src/components/api/ApiEndpoint.astro +36 -0
  18. package/src/components/api/ApiParam.astro +26 -0
  19. package/src/components/api/ApiParams.astro +16 -0
  20. package/src/components/api/ApiResponse.astro +35 -0
  21. package/src/components/index.ts +30 -0
  22. package/src/components/mdx/Accordion.tsx +61 -0
  23. package/src/components/mdx/Badge.tsx +33 -0
  24. package/src/components/mdx/Callout.astro +79 -0
  25. package/src/components/mdx/Card.astro +66 -0
  26. package/src/components/mdx/CardGroup.astro +18 -0
  27. package/src/components/mdx/CodeGroup.astro +63 -0
  28. package/src/components/mdx/CodeGroup.tsx +51 -0
  29. package/src/components/mdx/Columns.tsx +31 -0
  30. package/src/components/mdx/DocAccordion.tsx +87 -0
  31. package/src/components/mdx/DocCallout.tsx +65 -0
  32. package/src/components/mdx/DocCard.tsx +70 -0
  33. package/src/components/mdx/DocTabs.tsx +48 -0
  34. package/src/components/mdx/Expandable.tsx +107 -0
  35. package/src/components/mdx/FileTree.tsx +72 -0
  36. package/src/components/mdx/Frame.tsx +23 -0
  37. package/src/components/mdx/Icon.tsx +59 -0
  38. package/src/components/mdx/Mermaid.tsx +94 -0
  39. package/src/components/mdx/ParamField.tsx +76 -0
  40. package/src/components/mdx/ResponseField.tsx +62 -0
  41. package/src/components/mdx/Step.astro +14 -0
  42. package/src/components/mdx/Steps.astro +37 -0
  43. package/src/components/mdx/Steps.tsx +49 -0
  44. package/src/components/mdx/Tabs.tsx +67 -0
  45. package/src/components/mdx/Tooltip.tsx +36 -0
  46. package/src/components/ui/accordion.tsx +54 -0
  47. package/src/components/ui/alert.tsx +60 -0
  48. package/src/components/ui/button.tsx +57 -0
  49. package/src/components/ui/card.tsx +75 -0
  50. package/src/components/ui/collapsible.tsx +9 -0
  51. package/src/components/ui/dialog.tsx +119 -0
  52. package/src/components/ui/index.ts +11 -0
  53. package/src/components/ui/scroll-area.tsx +45 -0
  54. package/src/components/ui/separator.tsx +28 -0
  55. package/src/components/ui/sheet.tsx +137 -0
  56. package/src/components/ui/tabs.tsx +52 -0
  57. package/src/components/ui/tooltip.tsx +29 -0
  58. package/src/index.ts +74 -0
  59. package/src/layouts/BaseLayout.astro +28 -0
  60. package/src/layouts/DocsLayout.astro +121 -0
  61. package/src/lib/utils.ts +6 -0
  62. package/src/pages/docs/[...slug].astro +116 -0
  63. package/src/pages/index.astro +217 -0
  64. package/src/styles/global.css +342 -0
@@ -0,0 +1,217 @@
1
+ ---
2
+ import BaseLayout from "../layouts/BaseLayout.astro";
3
+ import { ThemeToggle } from "../components/ThemeToggle";
4
+ import config from "virtual:barodoc/config";
5
+
6
+ const features = [
7
+ {
8
+ icon: "📝",
9
+ title: "MDX Support",
10
+ description: "Write documentation in MDX with full React component support."
11
+ },
12
+ {
13
+ icon: "🌙",
14
+ title: "Dark Mode",
15
+ description: "Built-in dark mode with system preference detection."
16
+ },
17
+ {
18
+ icon: "🔍",
19
+ title: "Full-text Search",
20
+ description: "Client-side search powered by Pagefind for fast results."
21
+ },
22
+ {
23
+ icon: "🌐",
24
+ title: "Internationalization",
25
+ description: "Multi-language support out of the box with Astro i18n."
26
+ },
27
+ {
28
+ icon: "⚡",
29
+ title: "Lightning Fast",
30
+ description: "Static site generation for optimal performance."
31
+ },
32
+ {
33
+ icon: "🎨",
34
+ title: "Customizable",
35
+ description: "Easily customize colors, fonts, and components."
36
+ }
37
+ ];
38
+ ---
39
+
40
+ <BaseLayout title={config.name}>
41
+ <div class="min-h-screen flex flex-col">
42
+ <!-- Header -->
43
+ <header class="sticky top-0 z-50 border-b border-[var(--color-border)] bg-[var(--color-bg)]/95 backdrop-blur-md">
44
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
45
+ <div class="flex h-16 items-center justify-between">
46
+ <a href="/" class="flex items-center gap-2.5 font-semibold text-[var(--color-text)]">
47
+ {config.logo && <img src={config.logo} alt={config.name} class="h-7 w-7" />}
48
+ <span class="text-lg">{config.name}</span>
49
+ </a>
50
+ <div class="flex items-center gap-2">
51
+ {config.topbar?.github && (
52
+ <a
53
+ href={config.topbar.github}
54
+ target="_blank"
55
+ rel="noopener noreferrer"
56
+ class="p-2.5 rounded-xl text-[var(--color-text-secondary)] hover:text-[var(--color-text)] hover:bg-[var(--color-bg-secondary)] transition-all"
57
+ aria-label="GitHub"
58
+ >
59
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
60
+ <path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path>
61
+ </svg>
62
+ </a>
63
+ )}
64
+ <ThemeToggle client:load />
65
+ <a
66
+ href="/docs/introduction"
67
+ class="ml-2 px-4 py-2 bg-primary-600 text-white rounded-xl hover:bg-primary-700 transition-all text-sm font-medium shadow-sm hover:shadow-md"
68
+ >
69
+ Get Started
70
+ </a>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </header>
75
+
76
+ <!-- Hero Section -->
77
+ <main class="flex-1">
78
+ <div class="relative overflow-hidden">
79
+ <!-- Background gradient -->
80
+ <div class="absolute inset-0 bg-gradient-to-b from-primary-50/50 to-transparent dark:from-primary-950/20 dark:to-transparent pointer-events-none"></div>
81
+ <div class="absolute inset-0 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(120,119,198,0.15),rgba(255,255,255,0))] dark:bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(120,119,198,0.1),rgba(0,0,0,0))] pointer-events-none"></div>
82
+
83
+ <div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pt-20 pb-24 sm:pt-28 sm:pb-32">
84
+ <div class="text-center max-w-4xl mx-auto">
85
+ <!-- Badge -->
86
+ <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary-50 dark:bg-primary-950/50 border border-primary-200 dark:border-primary-800 mb-8">
87
+ <span class="relative flex h-2 w-2">
88
+ <span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-primary-400 opacity-75"></span>
89
+ <span class="relative inline-flex rounded-full h-2 w-2 bg-primary-500"></span>
90
+ </span>
91
+ <span class="text-sm font-medium text-primary-700 dark:text-primary-300">Powered by Astro</span>
92
+ </div>
93
+
94
+ <h1 class="text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight text-[var(--color-text)] mb-6 leading-tight">
95
+ Build beautiful
96
+ <span class="text-transparent bg-clip-text bg-gradient-to-r from-primary-600 to-primary-400"> documentation</span>
97
+ </h1>
98
+
99
+ <p class="text-lg sm:text-xl text-[var(--color-text-secondary)] mb-10 max-w-2xl mx-auto leading-relaxed">
100
+ Create stunning documentation sites with MDX, Astro, and Tailwind CSS.
101
+ Deploy anywhere with static site generation.
102
+ </p>
103
+
104
+ <div class="flex flex-col sm:flex-row items-center justify-center gap-4">
105
+ <a
106
+ href="/docs/introduction"
107
+ class="w-full sm:w-auto px-8 py-3.5 bg-primary-600 text-white rounded-xl hover:bg-primary-700 transition-all font-medium shadow-lg shadow-primary-500/25 hover:shadow-xl hover:shadow-primary-500/30 hover:-translate-y-0.5"
108
+ >
109
+ Get Started
110
+ </a>
111
+ <a
112
+ href="/docs/quickstart"
113
+ class="w-full sm:w-auto px-8 py-3.5 border border-[var(--color-border)] text-[var(--color-text)] rounded-xl hover:bg-[var(--color-bg-secondary)] hover:border-[var(--color-text-muted)] transition-all font-medium"
114
+ >
115
+ Quick Start
116
+ </a>
117
+ </div>
118
+
119
+ <!-- Install command -->
120
+ <div class="mt-12 inline-flex items-center gap-3 px-5 py-3 bg-[var(--color-bg-secondary)] border border-[var(--color-border)] rounded-xl">
121
+ <code class="text-sm text-[var(--color-text-secondary)] font-mono">
122
+ npx create-barodoc my-docs
123
+ </code>
124
+ <button
125
+ class="p-1.5 rounded-lg hover:bg-[var(--color-bg-tertiary)] text-[var(--color-text-muted)] hover:text-[var(--color-text)] transition-colors"
126
+ onclick="navigator.clipboard.writeText('npx create-barodoc my-docs')"
127
+ aria-label="Copy command"
128
+ >
129
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
130
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"></path>
131
+ </svg>
132
+ </button>
133
+ </div>
134
+ </div>
135
+ </div>
136
+ </div>
137
+
138
+ <!-- Features Section -->
139
+ <div class="py-20 bg-[var(--color-bg-secondary)] border-y border-[var(--color-border)]">
140
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
141
+ <div class="text-center mb-16">
142
+ <h2 class="text-3xl font-bold text-[var(--color-text)] mb-4">
143
+ Everything you need
144
+ </h2>
145
+ <p class="text-lg text-[var(--color-text-secondary)] max-w-2xl mx-auto">
146
+ Barodoc comes with all the features you need to create beautiful documentation.
147
+ </p>
148
+ </div>
149
+
150
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
151
+ {features.map((feature) => (
152
+ <div class="group p-6 bg-[var(--color-bg)] rounded-2xl border border-[var(--color-border)] hover:border-primary-300 dark:hover:border-primary-700 hover:shadow-lg transition-all duration-200">
153
+ <div class="flex items-center justify-center w-12 h-12 rounded-xl bg-primary-50 dark:bg-primary-950/50 mb-4 group-hover:scale-110 transition-transform">
154
+ <span class="text-2xl">{feature.icon}</span>
155
+ </div>
156
+ <h3 class="text-lg font-semibold text-[var(--color-text)] mb-2">
157
+ {feature.title}
158
+ </h3>
159
+ <p class="text-sm text-[var(--color-text-secondary)] leading-relaxed">
160
+ {feature.description}
161
+ </p>
162
+ </div>
163
+ ))}
164
+ </div>
165
+ </div>
166
+ </div>
167
+
168
+ <!-- CTA Section -->
169
+ <div class="py-20">
170
+ <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
171
+ <h2 class="text-3xl font-bold text-[var(--color-text)] mb-4">
172
+ Ready to get started?
173
+ </h2>
174
+ <p class="text-lg text-[var(--color-text-secondary)] mb-8">
175
+ Create your documentation site in minutes.
176
+ </p>
177
+ <a
178
+ href="/docs/introduction"
179
+ class="inline-flex px-8 py-3.5 bg-primary-600 text-white rounded-xl hover:bg-primary-700 transition-all font-medium shadow-lg shadow-primary-500/25 hover:shadow-xl hover:shadow-primary-500/30 hover:-translate-y-0.5"
180
+ >
181
+ Read the docs
182
+ </a>
183
+ </div>
184
+ </div>
185
+ </main>
186
+
187
+ <!-- Footer -->
188
+ <footer class="border-t border-[var(--color-border)] bg-[var(--color-bg-secondary)]">
189
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
190
+ <div class="flex flex-col sm:flex-row items-center justify-between gap-4">
191
+ <div class="flex items-center gap-2 text-[var(--color-text-secondary)]">
192
+ {config.logo && <img src={config.logo} alt={config.name} class="h-5 w-5 opacity-60" />}
193
+ <span class="text-sm">Built with Barodoc</span>
194
+ </div>
195
+ <div class="flex items-center gap-6">
196
+ {config.topbar?.github && (
197
+ <a
198
+ href={config.topbar.github}
199
+ target="_blank"
200
+ rel="noopener noreferrer"
201
+ class="text-sm text-[var(--color-text-secondary)] hover:text-[var(--color-text)] transition-colors"
202
+ >
203
+ GitHub
204
+ </a>
205
+ )}
206
+ <a
207
+ href="/docs/introduction"
208
+ class="text-sm text-[var(--color-text-secondary)] hover:text-[var(--color-text)] transition-colors"
209
+ >
210
+ Documentation
211
+ </a>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </footer>
216
+ </div>
217
+ </BaseLayout>
@@ -0,0 +1,342 @@
1
+ @import "tailwindcss";
2
+ @plugin "@tailwindcss/typography";
3
+
4
+ /* Scan theme package files */
5
+ @source "../**/*.{astro,tsx}";
6
+
7
+ @theme {
8
+ /* Primary color palette - Blue */
9
+ --color-primary-50: oklch(0.97 0.02 250);
10
+ --color-primary-100: oklch(0.94 0.04 250);
11
+ --color-primary-200: oklch(0.88 0.08 250);
12
+ --color-primary-300: oklch(0.78 0.12 250);
13
+ --color-primary-400: oklch(0.68 0.16 250);
14
+ --color-primary-500: oklch(0.58 0.18 250);
15
+ --color-primary-600: oklch(0.50 0.18 250);
16
+ --color-primary-700: oklch(0.42 0.16 250);
17
+ --color-primary-800: oklch(0.35 0.12 250);
18
+ --color-primary-900: oklch(0.28 0.08 250);
19
+ --color-primary-950: oklch(0.20 0.04 250);
20
+ }
21
+
22
+ @layer base {
23
+ :root {
24
+ /* Mintlify-style soft colors */
25
+ --color-bg: #ffffff;
26
+ --color-bg-secondary: #f8fafc;
27
+ --color-bg-tertiary: #f1f5f9;
28
+ --color-bg-hover: #f1f5f9;
29
+ --color-text: #0f172a;
30
+ --color-text-secondary: #64748b;
31
+ --color-text-muted: #94a3b8;
32
+ --color-border: #e2e8f0;
33
+ --color-border-light: #f1f5f9;
34
+
35
+ /* Shadows */
36
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
37
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
38
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
39
+ }
40
+
41
+ .dark {
42
+ --color-bg: #0c0c0c;
43
+ --color-bg-secondary: #141414;
44
+ --color-bg-tertiary: #1c1c1c;
45
+ --color-bg-hover: #1c1c1c;
46
+ --color-text: #fafafa;
47
+ --color-text-secondary: #a1a1aa;
48
+ --color-text-muted: #71717a;
49
+ --color-border: #27272a;
50
+ --color-border-light: #1c1c1c;
51
+
52
+ /* Dark shadows */
53
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
54
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3);
55
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3);
56
+ }
57
+
58
+ html {
59
+ scroll-behavior: smooth;
60
+ }
61
+
62
+ body {
63
+ background-color: var(--color-bg);
64
+ color: var(--color-text);
65
+ font-feature-settings: "rlig" 1, "calt" 1;
66
+ }
67
+
68
+ /* Smooth transitions for all interactive elements */
69
+ a, button, input, [role="button"] {
70
+ transition: all 150ms ease-out;
71
+ }
72
+
73
+ /* Ensure cursor pointer for interactive elements */
74
+ a[href], button, [role="button"] {
75
+ cursor: pointer;
76
+ }
77
+ }
78
+
79
+ /* Prose styling for MDX content - Mintlify style */
80
+ .prose {
81
+ --tw-prose-body: var(--color-text);
82
+ --tw-prose-headings: var(--color-text);
83
+ --tw-prose-links: var(--color-primary-600);
84
+ --tw-prose-code: var(--color-text);
85
+ --tw-prose-pre-bg: var(--color-bg-secondary);
86
+ font-size: 0.875rem !important;
87
+ line-height: 1.6 !important;
88
+ }
89
+
90
+ .dark .prose {
91
+ --tw-prose-links: var(--color-primary-400);
92
+ }
93
+
94
+ /* Headings - Mintlify style */
95
+ .prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
96
+ font-size: 1.75rem !important;
97
+ font-weight: 700 !important;
98
+ letter-spacing: -0.025em !important;
99
+ margin-top: 0 !important;
100
+ margin-bottom: 0.375rem !important;
101
+ line-height: 1.25 !important;
102
+ }
103
+
104
+ .prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
105
+ font-size: 1.1875rem !important;
106
+ font-weight: 600 !important;
107
+ letter-spacing: -0.02em !important;
108
+ margin-top: 1.25rem !important;
109
+ margin-bottom: 0.375rem !important;
110
+ padding-bottom: 0.25rem !important;
111
+ border-bottom: 1px solid var(--color-border) !important;
112
+ }
113
+
114
+ .prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
115
+ font-size: 1rem !important;
116
+ font-weight: 600 !important;
117
+ margin-top: 1rem !important;
118
+ margin-bottom: 0.25rem !important;
119
+ }
120
+
121
+ .prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
122
+ font-size: 0.9375rem !important;
123
+ font-weight: 600 !important;
124
+ margin-top: 0.875rem !important;
125
+ margin-bottom: 0.25rem !important;
126
+ }
127
+
128
+ /* Paragraphs - tighter spacing */
129
+ .prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
130
+ margin-top: 0.5rem !important;
131
+ margin-bottom: 0.5rem !important;
132
+ }
133
+
134
+ /* Links with underline on hover */
135
+ .prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
136
+ font-weight: 500 !important;
137
+ text-decoration: none !important;
138
+ }
139
+
140
+ .prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)):hover {
141
+ text-decoration: underline !important;
142
+ text-underline-offset: 2px !important;
143
+ }
144
+
145
+ /* Code block styling - Mintlify style */
146
+ .prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
147
+ background-color: var(--color-bg) !important;
148
+ border: 1px solid var(--color-border) !important;
149
+ border-radius: 0.5rem !important;
150
+ padding: 0.75rem 1rem !important;
151
+ font-size: 0.8125rem !important;
152
+ line-height: 1.5 !important;
153
+ overflow-x: auto !important;
154
+ margin: 0.75rem 0 !important;
155
+ }
156
+
157
+ .prose :where(code):not(:where(pre code, [class~="not-prose"],[class~="not-prose"] *)) {
158
+ background-color: var(--color-bg-tertiary) !important;
159
+ padding: 0.125rem 0.375rem !important;
160
+ border-radius: 0.25rem !important;
161
+ font-size: 0.85em !important;
162
+ font-weight: 500 !important;
163
+ border: 1px solid var(--color-border) !important;
164
+ }
165
+
166
+ .prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before,
167
+ .prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
168
+ content: none !important;
169
+ }
170
+
171
+ /* Lists - tighter spacing */
172
+ .prose :where(ul, ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
173
+ margin-top: 0.375rem !important;
174
+ margin-bottom: 0.375rem !important;
175
+ padding-left: 1.25rem !important;
176
+ }
177
+
178
+ .prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
179
+ margin-top: 0.125rem !important;
180
+ margin-bottom: 0.125rem !important;
181
+ }
182
+
183
+ .prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
184
+ color: var(--color-text-muted) !important;
185
+ }
186
+
187
+ /* Blockquotes - Mintlify style */
188
+ .prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
189
+ border-left: 3px solid var(--color-primary-500) !important;
190
+ background-color: var(--color-bg-secondary) !important;
191
+ padding: 0.5rem 0.75rem !important;
192
+ margin: 0.625rem 0 !important;
193
+ border-radius: 0 0.5rem 0.5rem 0 !important;
194
+ font-style: normal !important;
195
+ }
196
+
197
+ .prose :where(blockquote p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
198
+ margin: 0 !important;
199
+ }
200
+
201
+ /* Tables - cleaner look */
202
+ .prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
203
+ width: 100% !important;
204
+ border-collapse: collapse !important;
205
+ margin: 0.625rem 0 !important;
206
+ font-size: 0.8125rem !important;
207
+ }
208
+
209
+ .prose :where(th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
210
+ background-color: var(--color-bg-secondary) !important;
211
+ font-weight: 600 !important;
212
+ text-align: left !important;
213
+ padding: 0.5rem 0.75rem !important;
214
+ border-bottom: 2px solid var(--color-border) !important;
215
+ }
216
+
217
+ .prose :where(td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
218
+ padding: 0.5rem 0.75rem !important;
219
+ border-bottom: 1px solid var(--color-border) !important;
220
+ }
221
+
222
+ .prose :where(tr:last-child td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
223
+ border-bottom: none !important;
224
+ }
225
+
226
+ /* Horizontal rule */
227
+ .prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
228
+ border: none !important;
229
+ border-top: 1px solid var(--color-border) !important;
230
+ margin: 1.5rem 0 !important;
231
+ }
232
+
233
+ /* Images */
234
+ .prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
235
+ border-radius: 0.5rem !important;
236
+ border: 1px solid var(--color-border) !important;
237
+ }
238
+
239
+ /* Shiki dual theme support */
240
+ .astro-code {
241
+ background-color: var(--color-bg) !important;
242
+ border-radius: 0.5rem;
243
+ }
244
+
245
+ .dark .astro-code,
246
+ .dark .astro-code span {
247
+ color: var(--shiki-dark) !important;
248
+ background-color: var(--shiki-dark-bg) !important;
249
+ }
250
+
251
+ /* Pagefind search styling */
252
+ .pagefind-ui {
253
+ --pagefind-ui-scale: 1;
254
+ --pagefind-ui-primary: var(--color-primary-600);
255
+ --pagefind-ui-text: var(--color-text);
256
+ --pagefind-ui-background: var(--color-bg);
257
+ --pagefind-ui-border: var(--color-border);
258
+ --pagefind-ui-tag: var(--color-bg-secondary);
259
+ }
260
+
261
+ /* Scrollbar styling */
262
+ ::-webkit-scrollbar {
263
+ width: 8px;
264
+ height: 8px;
265
+ }
266
+
267
+ ::-webkit-scrollbar-track {
268
+ background: transparent;
269
+ }
270
+
271
+ ::-webkit-scrollbar-thumb {
272
+ background: var(--color-border);
273
+ border-radius: 4px;
274
+ }
275
+
276
+ ::-webkit-scrollbar-thumb:hover {
277
+ background: var(--color-text-muted);
278
+ }
279
+
280
+ /* Selection styling */
281
+ ::selection {
282
+ background-color: var(--color-primary-200);
283
+ color: var(--color-primary-900);
284
+ }
285
+
286
+ .dark ::selection {
287
+ background-color: var(--color-primary-800);
288
+ color: var(--color-primary-100);
289
+ }
290
+
291
+ /* Animations for shadcn/ui components */
292
+ @keyframes accordion-down {
293
+ from {
294
+ height: 0;
295
+ }
296
+ to {
297
+ height: var(--radix-accordion-content-height);
298
+ }
299
+ }
300
+
301
+ @keyframes accordion-up {
302
+ from {
303
+ height: var(--radix-accordion-content-height);
304
+ }
305
+ to {
306
+ height: 0;
307
+ }
308
+ }
309
+
310
+ @keyframes collapsible-down {
311
+ from {
312
+ height: 0;
313
+ }
314
+ to {
315
+ height: var(--radix-collapsible-content-height);
316
+ }
317
+ }
318
+
319
+ @keyframes collapsible-up {
320
+ from {
321
+ height: var(--radix-collapsible-content-height);
322
+ }
323
+ to {
324
+ height: 0;
325
+ }
326
+ }
327
+
328
+ .animate-accordion-down {
329
+ animation: accordion-down 0.2s ease-out;
330
+ }
331
+
332
+ .animate-accordion-up {
333
+ animation: accordion-up 0.2s ease-out;
334
+ }
335
+
336
+ .animate-collapsible-down {
337
+ animation: collapsible-down 0.2s ease-out;
338
+ }
339
+
340
+ .animate-collapsible-up {
341
+ animation: collapsible-up 0.2s ease-out;
342
+ }