theme.yml
spec at load time, so a broken theme fails the build instead of producing
half-rendered HTML.
Built-in themes
| Theme | Best for |
|---|---|
minimal | One-page, no-frills, ATS-friendly. The default. |
aurora | Modern two-column with hero gradient. Designer-leaning. |
material | Card-based grid, opinionated for tech roles. |
terminal | Monospace, dark, hacker aesthetic. |
sap | Two-column with sidebar for certs/skills/langs. Built for SAP, finance, consulting. |
meta.theme:
Anatomy of a theme
themeCSS— the raw stylesheet (use{{{themeCSS}}}to inline)tokens— flattened design tokens (e.g.{{tokens.colors_background}})
| Helper | Example |
|---|---|
join | {{join skills ", "}} |
eq | {{#if (eq meta.theme "minimal")}}…{{/if}} |
default | {{default end "Present"}} |
upper | {{upper person.name}} |
lower | {{lower meta.language}} |
theme.yml — the contract
tokens is flattened into a single namespace at compile time (e.g.
{{tokens.colors_accent}}) and exposed as CSS custom properties at runtime
(--rl-colors-accent).
Validation rules
| Level | Behavior |
|---|---|
| ERROR | Build fails. Wrong spec version, missing required fields, missing template files. |
| WARN | Build continues, prints to stderr. Unknown top-level keys (forward compat). |
| IGNORE | Silently skipped. Blocks not in supports.blocks. |
Contributing a theme
- Fork
ovsec/resumelang. cp -r themes/minimal themes/<your-name>.- Edit
theme.yml,templates/resume.hbs,assets/style.css. resumelang theme validate ./themes/<your-name>.- Open a PR with a screenshot rendered from
examples/jane.yml.
embed.FS, so they get the same
versioning and offline guarantee as the compiler itself.
Forward compatibility
theme.yml is versioned. A theme written for spec: v1 will keep working when
the compiler bumps to v2. Compilers refuse to load themes with a higher
spec than they understand, with a clear error message.