Logo

Getting Started

IntroductionInstallationQuick Start
Logo
DocumentationAPI ReferenceChangelog

Content

Theming

Customize your documentation site's appearance with colors, logos, and styling

Overview

Docs Kit provides extensive theming options to match your brand identity. Customize colors, logos, appearance modes, and more through the docs.config.ts file.

Color Palettes

Choose from 10 built-in color palettes that automatically apply to your entire site:

  • teal (default) - Modern, professional teal/cyan
  • blue - Classic, trustworthy blue
  • purple - Creative, modern purple
  • pink - Playful, energetic pink
  • green - Fresh, eco-friendly green
  • orange - Warm, energetic orange
  • red - Bold, attention-grabbing red
  • cyan - Cool, tech-focused cyan
  • gray - Minimal, neutral gray
  • yellow - Bright, cheerful yellow

Each color palette includes optimized light and dark mode variants that automatically adjust based on the user's theme preference.

Appearance Settings

Control the default theme and available options:

{
  "appearance": {
    "default": "light"
  }
}
appearance.default
string

The default color mode when users first visit your site.

Options:

  • "light" - Light mode (default)
  • "dark" - Dark mode
  • "system" - Follow system preference
"appearance": {
  "default": "system"
}

How It Works

1

First visit

User sees the default theme specified in config

2

Theme toggle

User can toggle between light and dark modes using the theme switcher in the navbar

3

Preference saved

The selected theme is saved to browser localStorage and persists across visits

4

Automatic sync

All colors, code blocks, and components automatically adjust to the active theme

Logo Customization

Provide separate logos for light and dark modes:

{
  "logo": {
    "light": "/logo/light.svg",
    "dark": "/logo/dark.svg"
  }
}

Logo Requirements

logo.light
stringrequired

Path to logo displayed in light mode. Should work well on light backgrounds.

Recommended:

  • Format: SVG (scales perfectly) or PNG with transparency
  • Height: 32-40px
  • Color: Dark/colorful (readable on light background)
logo.dark
stringrequired

Path to logo displayed in dark mode. Should work well on dark backgrounds.

Recommended:

  • Format: SVG or PNG with transparency
  • Height: 32-40px
  • Color: Light/white (readable on dark background)

Creating Logo Files

1

Prepare logo files

Create two versions of your logo:

  • light.svg - Dark logo for light mode
  • dark.svg - Light logo for dark mode

Or use the same logo with different colors:

logo-dark-version.svg
logo-light-version.svg
2

Add to public directory

Place logos in public/logo/:

public/
└── logo/
    ├── light.svg
    └── dark.svg
3

Update configuration

Reference logos in config:

{
  "logo": {
    "light": "/logo/light.svg",
    "dark": "/logo/dark.svg"
  }
}
4

Restart dev server

Restart the development server to see changes:

bun dev

Logo Best Practices

SVG files scale perfectly on all screen sizes and resolutions. PNG logos may appear blurry on high-DPI displays.

Size Guidelines:

  • Height: 32-40px for optimal navbar fit
  • Width: Up to 200px (wider logos may be clipped on mobile)
  • Aspect ratio: Keep it reasonable (avoid extremely wide logos)

Color Considerations:

Light Mode Logo:

- Use dark colors (#000000 - #333333)
- Or brand colors that contrast with white/light backgrounds
- Ensure text is readable

Dark Mode Logo:

- Use light colors (#FFFFFF - #E0E0E0)
- Or adjusted brand colors for dark backgrounds
- Maintain readability

Favicon

Set a custom favicon for browser tabs:

{
  "favicon": "/favicon.svg"
}
favicon
string

Path to favicon file in the public/ directory.

Supported formats:

  • .svg - Recommended, works in modern browsers
  • .ico - Traditional format, best compatibility
  • .png - Works but less optimal than SVG

Creating a Favicon

Create a simple SVG favicon:

<!-- public/favicon.svg -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <rect width="100" height="100" fill="#2DD4BF"/>
  <text x="50" y="75" font-size="70" text-anchor="middle" fill="white">D</text>
</svg>

Advantages:

  • Small file size
  • Scales perfectly
  • Can support dark mode with CSS

Site Metadata

Configure basic site information:

{
  "name": "Your Documentation",
  "description": "Comprehensive guides and documentation"
}
name
stringrequired

The name of your documentation site. Used in:

  • Browser tab title (with page title)
  • SEO meta tags
  • Social media cards
  • Default logo text (if no logo provided)
"name": "Acme API Docs"
description
stringrequired

A brief description of your documentation. Used for:

  • Homepage meta description
  • Social media cards
  • Search engine descriptions
"description": "Complete API reference and guides for Acme platform"

Custom Styling

While most styling is handled by color palettes, you can add custom CSS for advanced customization.

Adding Custom CSS

1

Create CSS file

Create a custom CSS file:

/* app/custom.css */
:root {
  --custom-navbar-height: 80px;
}

.docs-navbar {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
2

Import in layout

Import in your app layout:

// app/layout.tsx
import './custom.css'

Custom CSS can override theme consistency. Use built-in theming options when possible.

Typography

Docs Kit uses system fonts for optimal performance and readability:

Font Stack:

/* Body text */
font-family:
  system-ui,
  -apple-system,
  BlinkMacSystemFont,
  "Segoe UI",
  Roboto,
  sans-serif;

/* Code */
font-family:
  "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;

Custom Fonts

To use custom fonts, add them to your project:

1

Add font files

Place fonts in public/fonts/:

public/
└── fonts/
    ├── custom-font-regular.woff2
    └── custom-font-bold.woff2
2

Define @font-face

Create font definitions:

/* app/fonts.css */
@font-face {
  font-family: 'CustomFont';
  src: url('/fonts/custom-font-regular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'CustomFont';
  src: url('/fonts/custom-font-bold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
}
3

Apply custom font

Override Chakra UI theme:

import { createSystem, defaultConfig } from '@chakra-ui/react'

const customConfig = {
  ...defaultConfig,
  theme: {
    tokens: {
      fonts: {
        body: { value: 'CustomFont, system-ui, sans-serif' }
      }
    }
  }
}

export const system = createSystem(customConfig)

Responsive Design

Docs Kit automatically adapts to different screen sizes:

Breakpoints

{
  base: "0px",      // Mobile
  sm: "640px",      // Small tablets
  md: "768px",      // Tablets
  lg: "1024px",     // Desktop
  xl: "1280px",     // Large desktop
  "2xl": "1536px"   // Extra large
}

Mobile Optimizations

  • Collapsible sidebar that opens as a drawer
  • Touch-friendly navigation
  • Optimized code block scrolling
  • Responsive tables
  • Adaptive typography

Theming Checklist

When setting up your theme, configure these key items:

  • Choose a color palette that matches your brand
  • Set default appearance (light/dark/system)
  • Create and add light mode logo
  • Create and add dark mode logo
  • Add a favicon
  • Set site name and description
  • Test both light and dark modes
  • Verify on mobile devices
  • Check logo sizing in navbar
  • Ensure sufficient color contrast

Examples

Minimal Configuration

{
  "name": "My Docs",
  "description": "Documentation site",
  "colorPalette": "blue",
  "appearance": {
    "default": "light"
  },
  "logo": {
    "light": "/logo/light.svg",
    "dark": "/logo/dark.svg"
  },
  "favicon": "/favicon.svg"
}

Complete Configuration

{
  "name": "Acme API Documentation",
  "description": "Comprehensive API guides and references for Acme platform",
  "colorPalette": "purple",
  "appearance": {
    "default": "system"
  },
  "logo": {
    "light": "/logo/acme-dark.svg",
    "dark": "/logo/acme-light.svg"
  },
  "favicon": "/favicon.svg"
}

Next, explore the complete Configuration Reference for all available options.

Built with Chakra UI

On this page
OverviewColor PalettesAppearance SettingsHow It WorksLogo CustomizationLogo RequirementsCreating Logo FilesLogo Best PracticesFaviconCreating a FaviconSite MetadataCustom StylingAdding Custom CSSTypographyCustom FontsResponsive DesignBreakpointsMobile OptimizationsTheming ChecklistExamplesMinimal ConfigurationComplete Configuration