Built-in Presets
@themvora/core
Themvora ships with 9 curated families and 5 brand families — 18 default themes and 10 brand themes, each with a light and a dark variant. Click any preset to apply it to this site live.
1What's included
2Try them live
Applied now on this site
This page is themed by the live runtime — every card above calls setFamily() on this very page.
--theme-color-background#fafbff--theme-color-foreground#0d0f1f--theme-color-card#ffffff--theme-color-cardForeground#0d0f1f--theme-color-popover#ffffff--theme-color-popoverForeground#0d0f1f--theme-color-primary#5b54e8--theme-color-primaryForeground#ffffff--theme-color-secondary#eef0fb--theme-color-secondaryForeground#171a2e--theme-color-muted#f2f3fb--theme-color-mutedForeground#5a6172--theme-color-accent#e8e6ff--theme-color-accentForeground#4f46c9--theme-color-destructive#ef4444--theme-color-destructiveForeground#ffffff--theme-color-success#16a34a--theme-color-successForeground#ffffff--theme-color-border#e4e6f2--theme-color-input#e4e6f2--theme-color-ring#5b54e8--theme-radius-lg12px--theme-code-background#f6f7fc--theme-code-foreground#0f172a--theme-code-comment#6b7280--theme-code-keyword#7c3aed--theme-code-string#07865c--theme-code-number#d97706--theme-code-function#2563eb--theme-code-variable#0f172a--theme-code-type#db2777--theme-code-property#0284c7--theme-code-operator#7c3aed--theme-code-punctuation#475569--theme-code-tag#be185d--theme-code-attribute#0284c7--theme-code-lineNumber#9ca3af--theme-code-selectionrgba(91, 84, 232, 0.12)--theme-code-highlightrgba(91, 84, 232, 0.06)--theme-code-gutter#f6f7fc--theme-code-border#e4e6f2Themvora's curated palette collection — nine generated families.
setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.setFamily() to this very page — live, no reload.3Install instructions
Default presets
import { getPresetThemes } from "@themvora/core";
// Default presets — nine families, light + dark
const themes = getPresetThemes();
// Restyle one family's tokens
const custom = getPresetThemes({
plum: {
light: { tokens: { colors: { primary: "#6d28d9" } } },
},
});Brand presets
import { getBrandPresets } from "@themvora/core";
// Apple, GitHub, Vercel, Slack, Discord — light + dark each
const themes = getBrandPresets();
const github = themes.filter((t) => t.meta?.family === "github");
createThemeRuntime({ themes: github, defaultTheme: "github-light" });PresetOverrides map to getPresetThemes(). See the custom themes guide for details.4Create your own
Visual regression board
The same component board under every preset, in both modes. The numeric gates check contrast, separation and anchor preservation; none of them can see that a disabled button reads as enabled or that a selected tab has no visible state. This is the part that has to be looked at. The Generated tab renders themes produced by generateTheme() rather than by a curated recipe — the presets are 14 hand-checked inputs, and the generator is unbounded.