@themvora/cli
Presets
Prerequisites
- Node.js 22+
- @themvora/cli installed (globally, locally, or via npx)
A preset is a curated recipe: a seed colour, a generation style, and a character, pinned together so the result is reproducible. Presets are the shortest path from "I need a theme" to a complete light/dark pair.
themvora list presets
themvora generate --preset mintThe nine presets
| Preset | Character | Style | Seed |
|---|---|---|---|
oat | Warm · Soft · Neutral | soft | #b45309 |
berry | Warm · Vibrant | vibrant | #db2777 |
mint | Cool · Soft · Restrained | soft | #059669 |
citrus | Warm · Vibrant · Bright | vibrant | #d97706 |
cocoa | Warm · Deep · Editorial | editorial | #92400e |
plum | Violet · Editorial | editorial | #7c3aed |
iris | Cool · Balanced | balanced | #6366f1 |
sky | Cool · Soft · Airy | soft | #0ea5e9 |
graphite | Neutral · Minimal | minimal | #52525b |
Every preset produces a <id>-light and <id>-dark theme. Browse them with the
colours applied on the preset gallery.
Using a preset
Generate a file — the theme is written out, nothing else changes:
themvora generate --preset mint --output theme.jsonStart a project — init registers the preset with the framework provider:
themvora init my-app --framework react --preset mintExtend a project — add appends it to the project's existing registry, so
both presets become selectable:
themvora add preset irisDiscovering the ids
themvora list presets # a table, with character, style and seed
themvora list presets --json # the full registry entries
themvora list presets --ids # just the identifiers, one per lineEvery identifier comes from the same registry generate, init and add
resolve against, so list cannot print a preset the generator would reject. A
preset id is also the value --preset accepts everywhere:
themvora generate --preset mint
themvora init my-app --framework vue --preset mint
themvora add preset mintWhere the values come from
A preset is a recipe, not a snapshot. generateTheme derives the full token
set from the seed using the pinned style, which is why two runs of the same
preset produce byte-identical output and why a preset never carries hand-tuned
colours that could drift from the generator.
--style overrides the style a preset pins:
themvora generate --preset mint --style editorialPresets vs. brands vs. seeds
| What it is | When to use it | |
|---|---|---|
| Preset | A curated seed + style + character | You want a considered theme, fast |
| Brand | A brand-inspired recipe with documented anchors | You want something recognisable |
| Seed | Just a colour | You have a brand colour of your own |
All three resolve to the same thing — a pair of ThemeDefinition objects — so
they are interchangeable in every command that accepts a theme source.
Next Steps
- Brand recipes — the five brand-inspired presets.
- Generation styles — what
--stylechanges. - Generate a theme — the full command.
- Set up a project — wire a preset into a framework.