Skip to main content

Themes

IntentText themes control the visual appearance of rendered documents — colors, fonts, spacing, and component styling.

The 8 built-in themes

Corporate

Blue accents, Inter font, professional appearance. Best for business documents, reports, and proposals.

PropertyValue
Primary color#2563eb
Background#ffffff
FontInter
HeadingInter Bold

Minimal

Clean, maximum whitespace, simple typography. Best for documents where content should be the only focus.

PropertyValue
Primary color#333333
Background#ffffff
FontSystem default

Warm

Warm colors, Georgia serif, friendly tone. Best for HR documents, newsletters, and communications.

PropertyValue
Primary color#d97706
Background#fffbeb
FontGeorgia
HeadingGeorgia Bold

Technical

Monospace accents, compact layout, data-dense presentation. Best for specs, runbooks, and architecture docs.

PropertyValue
Primary color#10b981
Background#ffffff
FontInter
Code fontJetBrains Mono

Print

Maximum readability on paper. Optimized for physical printing with appropriate margins and font sizes.

PropertyValue
Primary color#000000
Background#ffffff
FontTimes New Roman

Formal, serif font, minimal color. Convention over personality. Best for contracts, agreements, and compliance docs.

PropertyValue
Primary color#1e293b
Background#ffffff
FontGeorgia
HeadingGeorgia Bold

Editorial

Magazine-style, large headings, prominent pull quotes. Best for newsletters, articles, and publications.

PropertyValue
Primary color#7c3aed
Background#ffffff
FontGeorgia
HeadingInter Bold

Dark

Dark background, light text, screen-optimized. Not ideal for printing.

PropertyValue
Primary color#60a5fa
Background#1e1e1e
Text#e5e5e5
FontInter

Applying a theme

In the CLI

# HTML rendering
dotit document.it --html --theme corporate

# Print rendering
dotit document.it --print --theme legal

# PDF export
dotit document.it --pdf --theme editorial

In the document

meta: | type: document | theme: corporate

In the editor

The web editor (and the embeddable @dotit/editor component) has a theme picker dropdown — select a theme and it's applied in real time.

Theme resolution order

When rendering, the theme is resolved in this order:

  1. CLI flag / render option--theme corporate (highest priority)
  2. Document metadatameta: | theme: corporate
  3. Built-in fallbackcorporate (used when none is given or the name is unknown)

The 8 built-in themes are available everywhere with no download step.

Theme object format

A theme is a plain object with colors, fonts, and spacing groups (plus optional description, author, blocks, and print). Register one at runtime with registerBuiltinTheme so it resolves by name:

import { registerBuiltinTheme } from "@dotit/core";

registerBuiltinTheme({
name: "my-brand",
version: "1.0",
description: "Custom brand theme",
colors: {
text: "#1e293b",
heading: "#0f172a",
muted: "#64748b",
accent: "#e11d48",
border: "#e2e8f0",
background: "#ffffff",
"code-bg": "#f5f5f5",
},
fonts: {
body: "Helvetica, Arial, sans-serif",
heading: "Helvetica Bold, Arial Bold, sans-serif",
mono: "Menlo, Monaco, monospace",
size: "11pt",
leading: "1.6",
},
spacing: {
"page-margin": "1in",
"section-gap": "2rem",
"block-gap": "0.75rem",
indent: "0",
},
});

See the full IntentTheme interface in the Core API.

Managing themes

# List the built-in themes
dotit theme list

# Show a theme's fonts, colors, and metadata
dotit theme info corporate

theme list and theme info are the only dotit theme subcommands. Custom themes are registered programmatically via registerBuiltinTheme (above) or passed inline as a theme object to renderHTML / renderPrint.

:::note Planned A Hub-backed theme gallery with dotit theme install / publish is planned — today themes are the 8 built-ins plus any you register in code. :::