Accessibility in core (no framework)
IntermediatecoreMeasuring contrast between theme tokens and validating a whole theme.
@themvora/core1 file3 APIsExamples
Every example here is a real source tree in the Themvora repository — a starter app for each framework integration, plus focused implementations of a single feature. The code shown is the file itself, read from examples/ at build time.
One complete runnable app per framework integration, each implementing the setup from its framework guide. Clone the repo, run the command, and you have a working themed app.
Angular DI providers and the scope directive.
@themvora/angular@themvora/app-shared@themvora/core@themvora/tailwindpnpm --filter @themvora/app-angular devAstro integration with React islands.
@themvora/app-shared@themvora/astro@themvora/core@themvora/tailwindpnpm --filter @themvora/app-astro devThe native ThemeScope and inline script — no client framework at all.
@themvora/astro@themvora/corepnpm --filter @themvora/app-astro-native devThe Astro integration with a React island and the React hooks.
@themvora/astro@themvora/corepnpm --filter @themvora/app-astro-react devApp Router with server-side theme resolution.
@themvora/app-shared@themvora/core@themvora/next@themvora/react@themvora/tailwindpnpm --filter @themvora/app-nextjs devNuxt module with SSR and cookie persistence.
@themvora/app-shared@themvora/core@themvora/nuxt@themvora/tailwind@themvora/vuepnpm --filter @themvora/app-nuxt devReact 19 with the provider and hooks, built by Vite.
@themvora/app-shared@themvora/core@themvora/react@themvora/tailwindpnpm --filter @themvora/app-react devRemix v2 with loader-side theme resolution.
@themvora/app-shared@themvora/core@themvora/react@themvora/remix@themvora/tailwindpnpm --filter @themvora/app-remix devSolid signals, built by Vite.
@themvora/app-shared@themvora/core@themvora/solid@themvora/tailwindpnpm --filter @themvora/app-solid devSvelte 5 runes, built by Vite.
@themvora/app-shared@themvora/core@themvora/svelte@themvora/tailwindpnpm --filter @themvora/app-svelte devThe runtime driven directly, with no build step and no framework.
@themvora/corepnpm --filter @themvora/app-vanilla-js devVue 3 with the plugin and composables, built by Vite.
@themvora/app-shared@themvora/core@themvora/tailwind@themvora/vuepnpm --filter @themvora/app-vue devCustom elements with no framework at all.
@themvora/core@themvora/webpnpm --filter @themvora/app-web devFocused implementations of a single Themvora feature. Each one is a real source tree in the repository — the code below is the file itself, read from examples/, not a transcription of it.
Measuring contrast between theme tokens and validating a whole theme.
@themvora/core1 file3 APIsThe minimum viable Themvora setup: define a theme, wrap the app, read the active theme.
@themvora/core@themvora/react3 files3 APIsDriving the CLI from code instead of a shell.
@themvora/cli1 file1 APIsA theme-aware overlay scrollbar that follows the active theme.
@themvora/core@themvora/react3 files3 APIsInspecting the live theme during development.
@themvora/core@themvora/react3 files3 APIsSwitching theme family and light/dark mode independently.
@themvora/core@themvora/react3 files7 APIsUndo and redo across theme changes.
@themvora/core@themvora/react3 files4 APIsKeeping the theme in sync across tabs and windows.
@themvora/core1 file1 APIsPersisting the selection so it survives a reload, with a fingerprint guard.
@themvora/core@themvora/react3 files4 APIsExtending the runtime with a plugin.
@themvora/core1 file3 APIsCreating and driving a runtime directly, without a framework binding.
@themvora/core1 file2 APIsSwitching theme automatically on a schedule.
@themvora/core@themvora/react3 files3 APIsResolving a scoped theme and emitting its variables for a subtree.
@themvora/core1 file4 APIsCapturing and restoring a full runtime snapshot.
@themvora/core@themvora/react3 files6 APIsComputing solar times for a location and switching the theme at dusk and dawn.
@themvora/core1 file3 APIsDeriving a complete light/dark theme pair from a single seed color.
@themvora/core1 file1 APIsApplying a scoped theme declaratively with `<ThemeScope>`.
@themvora/core@themvora/react3 files4 APIsDefining, extending and resolving themes, and reading a theme's family and mode.
@themvora/core1 file5 APIsTurning a theme's token tree into flat CSS custom properties.
@themvora/core1 file3 APIsAnimating a theme change instead of swapping it instantly.
@themvora/core@themvora/react3 files3 APIsEmitting a pre-paint bootstrap script that applies the stored theme before first paint.
@themvora/core1 file2 APIsThe examples are part of the pnpm workspace, so the @themvora/* packages resolve to the local source rather than to npm. That means an example always exercises the version in the repository.
# from the repository root pnpm install # run a starter app pnpm --filter @themvora/example-react dev # type-check and build it pnpm --filter @themvora/example-react build
Concept examples are smaller trees inside examples/<feature>/<framework>/. Copy the files into a project that already has the packages installed — each one lists exactly what it needs.
The setup each starter app implements.
Task-oriented walkthroughs for common goals.
What people have built with Themvora.
Drive the runtime live in the browser.
Which packages an example pulls in, and why.
The shortest path to a themed app.