@import "tailwindcss"; @import "fumadocs-ui/css/neutral.css"; @import "fumadocs-ui/css/preset.css"; @import "fumapress/css/preset.css"; /* Fonts — self-hosted via Fontsource, referenced by the typeset presets. */ @import "@fontsource-variable/dm-sans"; @import "@fontsource-variable/instrument-sans"; @import "@fontsource-variable/jetbrains-mono"; /* shadcn/typeset — one CSS file you own. Regenerate it any time at https://ui.shadcn.com/typeset */ @import "./typeset.css"; :root { --font-dm-sans: "DM Sans Variable", sans-serif; --font-instrument-sans: "Instrument Sans Variable", sans-serif; --font-jetbrains-mono: "JetBrains Mono Variable", monospace; } @theme inline { --default-font-family: var(--font-instrument-sans); --font-heading: var(--font-dm-sans); --font-mono: var(--font-jetbrains-mono); } /* --------------------------------------------------------- Typeset presets — tune rhythm per context. Three controls: size, leading, flow. Built with https://ui.shadcn.com/typeset --------------------------------------------------------- */ .typeset-docs { --typeset-font-body: var(--font-instrument-sans); --typeset-font-heading: var(--font-dm-sans); --typeset-font-mono: var(--font-jetbrains-mono); --typeset-size: 16px; --typeset-leading: 1.9; --typeset-flow: 1em; } /* Tighter rhythm, e.g. for changelog callouts or chat-like UI */ .typeset-compact { --typeset-leading: 1.6; --typeset-flow: 1em; } /* Measure (80ch) — the builder puts max-width on the wrapper, not in typeset.css. Add this class next to `typeset` when your layout doesn't already constrain line length. */ .typeset-measure { max-width: 37em; } /* --------------------------------------------------------- Fumadocs interop: Fumadocs UI ships its own `prose` styling for page bodies. When a container is both, let Typeset own the rhythm by disabling the prose margins that would double up. Keep interactive Fumadocs components (tabs, callouts, accordions) out of Typeset with `not-typeset`. --------------------------------------------------------- */ .typeset.prose :where(*) { margin-block-end: 0; }