Themes
Themes change how a Riebeckite site looks: colors, typography, spacing, layout, and article presentation. They do not add Markdown syntax, search, diagrams, or other features; use a Plugin for those.
Install a theme
Most generated sites already include a theme. minimal uses @riebeckite/theme-minimal; starter and showcase use @riebeckite/theme-default.
To add another theme, install its package:
npm install @riebeckite/theme-minimal
Configure the theme
Import the theme factory and assign it to theme in riebeckite.config.ts:
import { defineConfig } from "@riebeckite/core";
import { minimalTheme } from "@riebeckite/theme-minimal";
export default defineConfig({
theme: minimalTheme(),
});
Some themes accept options. For example:
import { defaultTheme } from "@riebeckite/theme-default";
export default defineConfig({
theme: defaultTheme({
colorMode: "system",
typography: "system",
articleLayout: "article",
userCss: ["/extensions/custom.css"],
}),
});
userCss is useful for small site-specific tweaks. If you want a reusable visual language, create a theme instead.
Official themes
| Theme | Package | Factory | Best for |
|---|---|---|---|
| Default | @riebeckite/theme-default |
defaultTheme() |
The normal starting point: readable, configurable, and compatible with color mode |
| Minimal | @riebeckite/theme-minimal |
minimalTheme() |
A small baseline when you want little visual opinion |
| Gruvbox | @riebeckite/theme-gruvbox |
gruvboxTheme() |
A warm, high-contrast Gruvbox-inspired look |
| Rerurate | @riebeckite/theme-rerurate |
rerurateTheme() |
Rerurate's visual grammar |
| Sakura | @riebeckite/theme-sakura |
sakuraTheme() |
A sakura-inspired palette |
| Tokyo Night | @riebeckite/theme-tokyonight |
tokyonightTheme() |
A Tokyo Night-inspired dark/editor-like look |
The package README is the source of truth for each theme's exported factory name and options.
Create or extend a theme
Start with Writing a theme. Exact contracts live in Theme API, and the deeper design is described in Framework / Theme system.