@themvora/cli
Brand recipes
Prerequisites
- Node.js 22+
- @themvora/cli installed (globally, locally, or via npx)
A brand recipe is a brand-inspired starting point: a documented reference colour, pinned as an anchor, and a full theme derived from it.
themvora list brands
themvora generate --brand appleBrand recipes are brand-inspired, not official. They are Themvora's own interpretations, generated by Themvora's own engine. They are not published, reviewed, or endorsed by the companies named, and using one does not make your product affiliated with them. Check the brand's own guidelines before shipping anything that imitates their identity.
What a recipe records, and what Themvora derives
This distinction is the whole point of the feature, so it is worth being exact.
Recorded — the documented input. Each recipe names one publicly documented reference and one anchor colour taken from it. That is the only brand-specific data Themvora stores:
apple
reference Apple · official-guidelines
https://developer.apple.com/design/human-interface-guidelines/color
design system: yes · light/dark: yes
anchor light primary #007aff System Blue
provenance approximateDerived — Themvora's own output. Everything else in the theme is produced by the generator from that anchor: the surfaces, borders, muted and accent roles, the dark-mode counterparts, and the contrast repair. None of it is copied from the brand's site or design system, and none of it is claimed to be theirs.
themvora explain shows both halves side by side, and is the way to check what
a recipe actually pins:
themvora explain --brand appleThe provenance field states how faithful the recipe is. Every shipped brand is
approximate: the anchor is documented, the rest is derived.
The five recipes
| Recipe | Character | Style | Anchor | Reference |
|---|---|---|---|---|
apple | Brand-inspired · Blue accent · Restrained | brand | #007aff | Apple HIG |
github | Brand-inspired · Primer blue · Systematic | brand | #0969da | GitHub Primer |
vercel | Brand-inspired · Monochrome · Geist neutral | minimal | #000000 | Vercel Geist |
slack | Brand-inspired · Aubergine · Bold | brand | #4a154b | Slack brand |
discord | Brand-inspired · Blurple · Playful | brand | #5865f2 | Discord brand |
Browse them with the colours applied on the brand preset gallery.
Using a recipe
# Generate a file
themvora generate --brand apple --output theme.json
# Start a project on it
themvora init my-app --framework react --brand apple
# Add it to an existing project's registry
themvora add brand githubThere is no per-brand shorthand
themvora generate --apple # ✗ not shippedThe shorthand form does not exist, and the docs do not show it. A brand is named
with --brand <id>, like every other registry value, because that is the only
spelling the parser accepts — and because a flag per brand would be a second
registry in the command surface.
Discovering the ids
themvora list brands # a table, with character, style and provenance
themvora list brands --json # the full entries
themvora list brands --ids # just the identifiers, one per lineRecipes are not scraped
A recipe is authored data in the Themvora repository, reviewed like any other
source file. The CLI never fetches a brand's website, never reads their CSS, and
never copies their stylesheet — generate --brand runs entirely offline against
the shipped catalog.
That is also why a recipe can be approximate and still be useful: it is honest about what it pins (one documented colour) rather than pretending to reproduce a design system.
Next Steps
- Presets — the nine generated families.
- Generation styles — what
--stylechanges. - Explain a theme — see a recipe's anchors and provenance.
- Diff two themes — compare a brand recipe against a preset.