Jamdesk Documentation logo

Theming

Choose a built-in theme — Jam, Nebula, or Pulsar — to control typography, layout, spacing, and dark mode. Override colors to match your brand.

Set theme in docs.json to control layout, typography, spacing, and dark mode behavior. Three themes are available: jam (default), nebula, and pulsar.

docs.json
{
  "theme": "jam"
}

Available Themes

Jam theme preview

The default theme. Header-logo layout with a radial gradient background derived from your primary color. Rounded borders (6-24px).

View live example

{
  "theme": "jam"
}

Typography

Each theme bundles fonts loaded from Google Fonts:

ThemeHeadingsBodyCode
JamInterInterJetBrains Mono
NebulaIBM Plex MonoIBM Plex MonoIBM Plex Mono
PulsarInterInterJetBrains Mono

We recommend the defaults — they're tuned to each theme. If you need a different look, set fonts in docs.json to swap the entire site to a Google Font:

{
  "fonts": {
    "family": "Lora"
  }
}

Use separate fonts for headings and body:

{
  "fonts": {
    "heading": { "family": "Space Grotesk" },
    "body": { "family": "Inter" }
  }
}

Any Google Font works — set just family and the build fetches it automatically. To self-host a custom font, add source (URL or /-relative path) and format:

{
  "fonts": {
    "family": "AcmeSans",
    "source": "/fonts/acme-sans.woff2",
    "format": "woff2"
  }
}

For anything beyond the fonts field — overriding code fonts, tweaking weights per heading level, or loading non-Google webfonts — see Custom CSS.

Custom Colors

Override the default palette to match your brand identity:

{
  "theme": "jam",
  "colors": {
    "primary": "#635BFF",
    "light": "#7C75FF",
    "dark": "#4F46E5"
  }
}
ColorUsage
primaryLinks, buttons, accents
lightHover states, highlights
darkActive states, dark mode accents

Colors take effect after your next build. In local development, restart the dev server to see changes.

Use a color tool like Coolors or Realtime Colors to generate a harmonious palette.

Need more than colors? Custom CSS lets you override fonts, spacing, content width, border radii, callout styles, and component-level details. Themes set the defaults; Custom CSS is the escape hatch for anything CSS can touch.

Dark Mode

All themes include dark mode. By default Jamdesk follows the user's system preference and offers a toggle in the navbar. Your color palette adapts automatically.

Pin the site to a specific mode with appearance in docs.json:

{
  "appearance": {
    "default": "dark",
    "strict": true
  }
}
FieldValuesDefaultDescription
default"system" | "light" | "dark""system"Initial mode for first-time visitors
strictbooleanfalseWhen true, hides the navbar toggle so visitors stay on default

Set default alone to suggest a starting mode while still letting users switch. Add strict: true to remove the toggle entirely and lock the site to that mode.

To test dark mode during development, use the navbar toggle or emulate it in DevTools:

  1. Open DevTools
  2. Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows)
  3. Search for "Emulate CSS prefers-color-scheme: dark"

For fine-grained control over dark mode styles, use Custom CSS.

What's Next?

Branding

Customize logos, colors, and favicons

Custom CSS

Override theme styles with your own CSS

Navigation

Configure tabs, groups, and page structure