The Design System feature is currently in Beta. We’re actively improving it based on user feedback.
How It Works
HelloLeo projects use CSS variables as design tokens. When Leo creates a project, it sets up a centralized design system insrc/styles.css with variables for:
- Colors - Primary, secondary, accent, background, text colors (written in
oklch) - Typography - Body and heading fonts
- Effects - Border radius, shadows
Newer projects keep their design tokens in
src/styles.css. Older projects use
src/index.css instead—the editor auto-detects which file your project uses
(it looks for styles.css first, then index.css) and writes changes back in
whatever format that file already uses. Everything below works the same either way.Using the Design Editor
Accessing the Editor
- Open your project in HelloLeo
- Click Settings in the top navigation bar
- Select Design from the settings menu
Colors Tab
Edit your project’s color palette:- Primary - Main brand color for buttons, links, and accents
- Secondary - Supporting color for less prominent elements
- Accent - Highlight color for special elements
- Background/Foreground - Page and text colors
- Destructive/Success/Warning - Semantic colors for states
oklch, and on legacy projects HSL or hex)—including any transparency, like oklch(1 0 0 / 10%).
Typography Tab
Choose fonts for your project:- Body Font - Used for paragraphs and general text
- Heading Font - Used for titles and headings
<link> in your index.html so the new fonts also load in the published app.
Effects Tab
Adjust visual effects:- Border Radius - Control corner rounding (square to fully rounded)
- Shadow Intensity - Adjust shadow depth from None to Strong
Saving Changes
Click Save Changes to apply your modifications to the project. Color and effect tokens are written to your entry CSS file (src/styles.css, or src/index.css on older projects), and the font <link> in index.html is updated to match. Changes hot-reload automatically.
Light & Dark Mode
Use the toggle at the top of the editor to switch between editing:- Light mode colors (default theme)
- Dark mode colors (when user enables dark mode)
.dark block and an OS-default @media (prefers-color-scheme: dark) block—and the editor keeps both in sync automatically when you save, so dark mode looks the same whether it’s toggled manually or set by the device.
Troubleshooting
”No Color Tokens Found” Message
This means your project doesn’t have the HelloLeo Design System token structure yet—there are no color tokens for the editor to read. Solution: Click the “Ask Leo to Setup Design System” button, or copy this prompt and send it to Leo:“No Font Variables Found” Message
This means your project’s@theme inline block doesn’t define font tokens, so there’s nothing for the Typography tab to edit.
Solution: Click the “Ask Leo to Setup Design System” button, or send Leo this prompt:
Colors/Fonts Not Applying
If changes don’t appear in the preview:- Check the CSS structure - The design system needs the raw
oklchcolor tokens in:root,.dark, and the@media (prefers-color-scheme: dark)block - Verify the
@theme inlinemapping - Tokens must be mapped to utilities via--color-*: var(--*) - Don’t hardcode colors - Components should use utilities like
bg-primary, never hardcoded hex values
Fonts Not Loading
If fonts don’t appear in the published app:- Google Fonts
<link>-index.html<head>must contain a Google Fonts<link>; the editor rewrites that existing link on save but never creates one, so older projects may need it added once - Font token value - Tokens must be in format
'Font Name', fallbackand live in the@theme inlineblock
Shadows Not Working
If shadow changes don’t apply:- CSS variables - Project needs
--shadow-sm,--shadow,--shadow-md,--shadow-lg,--shadow-xl,--shadow-2xl - Theme mapping - These must be mapped through the
@theme inlineblock so the shadow utilities pick them up
Design System Structure
For reference, here’s what the HelloLeo Design System looks like. Raw tokens are defined three times—:root (light), .dark (explicit dark), and the @media (prefers-color-scheme: dark) block (OS default)—and then mapped to Tailwind utilities in @theme inline. You and Leo edit the raw token (e.g. --primary), never the --color-* mapping, and never hardcode hex in components.
Design tokens (src/styles.css)
--font-sans; the heading font token is --font-display (older projects use --font-heading). Both font tokens live in the @theme inline block, not in :root.
Font loading (index.html)
Fonts load via a Google Fonts<link> in the <head>. The scaffold ships preconnect tags plus a css2 stylesheet link for the default families, and the editor rewrites this link to match your selected fonts on save.
Workspace Themes
Workspace Themes are available on the Enterprise plan.

How It Works
- Open any project in your workspace
- Go to Settings > Design
- Configure your colors, typography, and effects
- Click Save as Workspace Theme
Managing Workspace Themes
In your workspace settings under the Design tab, you can:- View saved themes - See all themes saved to the workspace
- Set a default theme - Choose which theme applies to new projects
- Edit a theme - Update an existing theme and push changes across projects
Live Preview
See your design changes in real-time
Project Settings
Other project configuration options
