Skip to content

Theme System

A theme is a combination of template + variant:

theme: classic-navy
# ^^^^^^^ ^^^^
# | variant (color scheme)
# template (layout)
  • Template = the HTML structure and typographic layout (classic, compact, modern, technical).
  • Variant = a CSS file that defines colors, borders, and accents within that template.

All themes live in the open-source devresume-themes repo.

TemplateStyle
classicTraditional two-column layout with strong hierarchy.
compactDense single-column. Good for technical CVs that fit on one page.
modernClean single-column with generous whitespace.
technicalDeveloper-focused, monospace accents.
TemplateVariants
classicdark, blue, navy, slate, burgundy
compactblue, charcoal, forest, navy, wine
modernnavy, slate, teal, burgundy
technicallight, dark, amber, ocean

Eighteen themes total, all free. Set the full name in your YAML:

theme: technical-amber

A rendered resume is built from three pieces:

  1. <template>/template.html — Go html/template with {{.Name}}, {{range .Sections}}, etc.
  2. <template>/themes/<variant>.css — color variables, typography, spacing for that variant.
  3. fonts/<font-id>/*.woff2 — base64-inlined at render time for pixel-perfect output.

The HTML template has two placeholders that get substituted before Go-template parsing:

  • {{FONT_CSS}}@font-face rules for the selected font.
  • {{THEME_CSS}} — the selected variant CSS inlined verbatim.

The production backend and the local preview CLI produce byte-identical output, so what you see in the preview is exactly what production ships.

Themes are cosmetic, not functional — every section type renders in every theme. Pick based on role and context:

  • classic-navy / classic-dark — general-purpose, looks professional in any industry.
  • compact-* — when you have a lot of content and want one page.
  • modern-* — when visual polish matters (design-adjacent roles, PM, marketing).
  • technical-* — engineering roles that appreciate a developer aesthetic.

Want to build your own theme? See Contributing a Theme.