What problem does it solve?
Skrift theming addresses the challenge of managing multiple visual themes and consistent template overrides in Skrift-based projects. It provides a centralized discovery, resolution order, and per-request switching to adapt the UI to context or user preferences.
Core Features & Use Cases
- Theme discovery API with ThemeInfo metadata (directory_name, name, description, version, author, templates_dir, static_dir, screenshot)
- Three-tier template and static file resolution: active theme templates, project overrides, and package defaults
- Per-request theme switching via a hook-based system (RESOLVE_THEME) to apply user- or request-specific themes
- Admin and setup integration for theme selection, with dynamic updates to template directories
- Create, override, and distribute themes under themes/<name>/templates/ plus optional static, theme.yaml, and screenshot
Quick Start
Install a theme under themes/<name>/templates, set site_theme to the desired name, and render a page to verify the themed templates.