DocumentationCurrent Page

Theme Editor

Customize your design system without writing CSS

The Theme Editor is a visual tool that lets you customize your entire design system through an intuitive interface. Changes are applied as CSS variables, making them instantly available throughout your application.

Key Benefits

  • Real-time preview across multiple page types
  • Auto-generates CSS variables in globals.css
  • Creates AI-friendly documentation (brand.md)
  • Export/import themes as JSON for version control

Getting Started

Learn how to access and use the theme editor interface

Accessing the Theme Editor

Navigate to /theme in your browser to open the visual theme editor.

Open Theme Editor

Interface Overview

The theme editor uses a 3-column layout:

Left: Navigation

Icon-based tabs for Colors, Spacing, Radius, Fonts, and Buttons sections

Center: Preview

Live preview showing your changes on simulated pages (Home, Features, Pricing, Dashboard)

Right: Settings

Controls for the active section with sliders, color pickers, and dropdowns

Tip
Use the Light/Dark toggle in the preview to switch between editing light mode and dark mode colors.

Colors

Customize your color palette for light and dark modes

Color System

The theme editor provides 22 color tokens that work together to create a cohesive design system. Each color has separate values for light and dark modes.

Info
Switch between light and dark mode in the preview panel to edit each mode separately. Maintaining good contrast ratios ensures your design is accessible.

Color Tokens Reference

TokenPurposeCSS VariableTailwind Classes
primaryMain brand color for buttons, links, and CTAs--primarybg-primary, text-primary, border-primary
primaryForegroundText color on primary backgrounds--primary-foregroundtext-primary-foreground
secondarySecondary actions and accents--secondarybg-secondary, text-secondary
secondaryForegroundText on secondary backgrounds--secondary-foregroundtext-secondary-foreground
accentHighlight color for special elements--accentbg-accent, text-accent
backgroundMain page background--backgroundbg-background
foregroundPrimary text color--foregroundtext-foreground
cardCard and panel backgrounds--cardbg-card
mutedSubdued backgrounds and disabled states--mutedbg-muted, text-muted
mutedForegroundSecondary text and descriptions--muted-foregroundtext-muted-foreground
destructiveError states and dangerous actions--destructivebg-destructive, text-destructive
borderDefault border color--borderborder-border
inputInput field borders--inputborder-input
ringFocus ring color--ringring-ring
chart1-5Data visualization colors--chart-1 to --chart-5bg-chart-1, bg-chart-2, etc.
Warning
Always ensure sufficient contrast between foreground and background colors for accessibility. A minimum contrast ratio of 4.5:1 is recommended for normal text.

Spacing

Control the spacing scale used throughout your application

The spacing scale defines consistent gaps, padding, and margins. The 6-value scale ensures visual hierarchy and rhythm throughout your design.

TokenDefaultRangeUse Case
xs0.25rem0-6remTight spacing between related elements
sm0.5rem0-6remSmall gaps in compact layouts
md1rem0-6remStandard spacing for most elements
lg1.5rem0-6remMedium section spacing
xl2rem0-6remLarge section spacing
2xl3rem0-6remHero sections and major dividers

CSS Variables

:root {
  --spacing-xs: 0.25rem;
  --spacing-sm: 0.5rem;
  --spacing-md: 1rem;
  --spacing-lg: 1.5rem;
  --spacing-xl: 2rem;
  --spacing-2xl: 3rem;
}
Tip
Use the spacing scale consistently to create visual rhythm. Avoid arbitrary spacing values.

Border Radius

Define border radius values for different UI elements

Border radius values control the roundness of corners on buttons, cards, inputs, and other elements.

Radius Scale

None (Sharp)
0
Small (Subtle)
0.125rem
Medium (Default)
0.375rem
Large (Cards)
0.5rem
XL (Features)
0.75rem
2XL (Bold)
1rem
Full (Pills)
9999px
TokenUse CaseExamples
noneSharp cornersData tables, technical UIs
smSubtle roundingSmall buttons, inputs
mdStandard roundingDefault buttons, cards
lgCard-like elementsModals, large cards
xlFeature sectionsHero cards, callouts
2xlBold roundingLarge feature cards
fullCircular/pill shapeBadges, avatars, pill buttons

Typography

Customize fonts, text sizes, and typographic styles

Font Families

The theme editor integrates with Google Fonts and provides three font family slots:

FontPurposeOptions
sansBody text and UIInter, Roboto, Poppins, Open Sans, and 14 more
monoCode blocksJetBrains Mono, Fira Code, Source Code Pro, and 6 more
headingHeadlinesPlayfair Display, Merriweather, Montserrat, and 12 more

Text Sizes

Control the font size for different text elements:

ElementCSS VariableDefault Range
h1--text-h12-10rem
h2--text-h21.5-4rem
h3--text-h31.25-2rem
h4--text-h41-1.5rem
p--text-p0.75-1.25rem
blockquote--text-blockquoteDropdown presets
label--text-labelDropdown presets
code--text-codeDropdown presets

Typography Styles

Fine-tune line heights and letter spacing:

PropertyCSS VariableRange
Body Line Height--line-height1.0-2.5
H1 Line Height--line-height-h10.8-1.8
H2 Line Height--line-height-h20.8-1.8
H3 Line Height--line-height-h30.8-1.8
Letter Spacing--letter-spacing-0.05em to 0.2em
Warning
Important: Do not override typography sizes with Tailwind classes like text-4xl or leading-tight on headings. The theme editor controls these via CSS variables. Use font-bold, text-primary, and spacing classes instead.

Buttons

Customize button styling and hover effects

Control button appearance including border radius, font weight, font size, and hover effects.

Button Properties

PropertyCSS VariableOptions
Border Radius--button-radius0-3rem slider
Font Weight--button-font-weight300-900 (100 steps)
Font Size--button-font-size0.75-1.5rem + presets

Hover Effects

Choose from 5 hover effect styles:

None
No hover effect
Opacity
Fade to 80% opacity
Lift
Raise with shadow
Scale
Slightly enlarge (1.05x)
Glow
Subtle glow effect
Info
Button hover effects use CSS variables like --button-hover-opacity, --button-hover-transform, and --button-hover-shadow.

Actions

Apply your theme, export settings, and download starter projects

Apply to Project
Updates globals.css with new CSS variables and regenerates brand.md documentation
Export JSON
Download brand-theme.json with all settings for backup or version control
Import JSON
Load a previously saved theme from a JSON file
View CSS
Preview the CSS code that will be generated before applying
Download Starter
Generate a ZIP file with a starter project using your current theme
Warning
After clicking "Apply to Project", you must refresh your browser to see the changes take effect.

AI Theme Generator

Generate custom themes using AI-powered natural language prompts

The AI Theme Generator uses advanced language models to create complete design systems from simple descriptions. Describe your vision in plain English, paste a website URL, or upload an inspiration image to get started.

Info
Sign in to your account to use the AI Theme Generator. Each prompt generates a complete theme with colors, fonts, spacing, and more.

Three Ways to Generate Themes

Text Prompts
Describe your theme in plain English like 'Cyberpunk neon theme' or 'Professional law firm'
Website URL
Paste any website URL to extract colors and styles from that site
Image Upload
Upload or paste images to extract color palettes and design inspiration

Using Text Prompts

Simply describe your desired theme in natural language. The AI understands context and can generate themes based on:

  • Style & Mood: "Cyberpunk neon theme", "Soft pastel minimalist", "Warm coffee shop vibes"
  • Industry: "Professional law firm", "Modern tech startup", "Creative agency"
  • Colors: "Navy blue and gold luxury theme", "Forest green nature theme"
Example prompts:
"Cyberpunk neon theme with pink and cyan accents"
"Professional law firm with navy blue and gold"
"Soft pastel minimalist with rounded corners"
"Warm coffee shop vibes with brown tones"

Website URL Scraping

Paste any website URL to extract its colors and design styles. The AI analyzes the site and generates a matching theme.

Example:
"https://stripe.com create a theme like this"
"https://apple.com make it similar to this website"

The AI shows progressive loading status: "Scraping website..." → "Extracting colors and styles..." → "Analyzing design..." → "Generating theme..."

Image Upload

Upload inspiration images or paste them directly from your clipboard. The AI analyzes the image to extract color palettes and design inspiration.

FeatureDetails
Supported formatsPNG, JPEG, GIF, WebP
Max file size5MB
Upload methodsFile picker button or paste from clipboard (Ctrl/Cmd+V)

Generated Theme Preview

Each AI-generated theme includes:

  • Complete color palette for both light and dark modes
  • Font selections for body text and headings
  • Typography sizes (H1, H2, H3, body text)
  • Border radius, spacing scale, and button styles
  • "Apply Theme" button to instantly apply the generated theme
Tip
You can refine themes with follow-up prompts. The AI remembers your conversation context, so try requests like "make it more vibrant" or "use a different font for headings".

Downloadable Files

Export your theme in multiple formats for different platforms and use cases

The Theme Editor provides 9 different export formats to integrate your theme into various projects and platforms. All downloads require authentication.

Info
The Starter Pack is recommended for new projects as it includes everything configured and ready to use.

Available Export Formats

ExportFormatDescriptionBest For
Starter PackZIPComplete Next.js project with themeStarting new projects
Tailwind ConfigZIPtailwind.config.js + directivesExisting Tailwind projects
tokens.jsonJSONDesign tokens (standard spec)Design tools, frameworks
theme.tsTypeScriptshadcn/ui theme configurationProgrammatic access
globals.cssCSSCSS variables onlyAny CSS project
brand-skill.mdMarkdownAI-friendly brand guidelinesClaude/AI assistants
Vue.js ThemeCSSCSS vars with --vibecn- prefixVue.js projects
Java Constants.javaThemeConstants.java classJava/Spring projects
Java Properties.propertiesSpring Boot properties fileSpring Boot projects

1. Starter Pack (ZIP)

A complete Next.js project with your theme pre-configured. Includes all necessary files, dependencies, and folder structure.

Full Next.js 16 setup with App Router

Theme applied to globals.css

shadcn/ui components configured

Ready to run with npm install && npm run dev

2. Tailwind Config (ZIP)

Tailwind CSS v3 configuration file and directives for existing projects.

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  darkMode: ['class'],
  content: ['./src/**/*.{js,ts,jsx,tsx,mdx}'],
  theme: {
    extend: {
      colors: {
        background: 'var(--background)',
        foreground: 'var(--foreground)',
        primary: {
          DEFAULT: 'var(--primary)',
          foreground: 'var(--primary-foreground)',
        },
        // ... more color tokens
      },
    },
  },
  plugins: [require('tailwindcss-animate')],
};

3. tokens.json

Design tokens in the standard JSON format, compatible with design tools and token pipelines.

tokens.json
{
  "$schema": "https://design-tokens.json-schema.org/",
  "name": "VibeCN Theme",
  "colors": {
    "light": {
      "background": { "value": "0 0% 100%", "type": "color" },
      "foreground": { "value": "222.2 84% 4.9%", "type": "color" },
      "primary": { "value": "221.2 83.2% 53.3%", "type": "color" }
    }
  },
  "spacing": {
    "xs": { "value": "0.5rem", "type": "dimension" },
    "sm": { "value": "0.75rem", "type": "dimension" }
  }
}

4. theme.ts

TypeScript file exporting your theme as a typed JavaScript object for programmatic access.

theme.ts
export const theme = {
  name: 'VibeCN Theme',
  colors: {
    light: {
      background: '0 0% 100%',
      foreground: '222.2 84% 4.9%',
      primary: '221.2 83.2% 53.3%',
      // ... more colors
    },
    dark: { /* dark mode colors */ }
  },
  spacing: {
    xs: '0.5rem',
    sm: '0.75rem',
    // ... more spacing
  }
} as const;

5. globals.css

Standalone CSS file with all theme variables. Copy directly into your project's CSS.

globals.css
:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --primary: 221.2 83.2% 53.3%;
  --primary-foreground: 210 40% 98%;
  /* ... more variables */
}

.dark {
  --background: 222.2 84% 4.9%;
  --foreground: 210 40% 98%;
  /* ... dark mode overrides */
}

6. brand-skill.md

AI-friendly brand guidelines for Claude and other AI assistants. Helps AI understand your design system when building features.

Usage:
1. Download brand-skill.md
2. Add to your project as a skill or in docs/
3. Reference in AI conversations for consistent styling

7. Vue.js Theme

CSS variables prefixed with --vibecn- for Vue.js projects to avoid conflicts.

theme-vars.css
:root {
  --vibecn-background: 0 0% 100%;
  --vibecn-foreground: 222.2 84% 4.9%;
  --vibecn-primary: 221.2 83.2% 53.3%;
  /* ... more variables */
}

.dark {
  --vibecn-background: 222.2 84% 4.9%;
  /* ... dark mode overrides */
}

8. Java Constants

Java class with theme constants for Java/Spring projects.

ThemeConstants.java
public final class ThemeConstants {
    private ThemeConstants() {
        // Prevent instantiation
    }

    // Colors - Light Mode
    public static final String BACKGROUND = "0 0% 100%";
    public static final String FOREGROUND = "222.2 84% 4.9%";
    public static final String PRIMARY = "221.2 83.2% 53.3%";

    // Spacing
    public static final String SPACING_XS = "0.5rem";
    public static final String SPACING_SM = "0.75rem";
}

9. Java Properties

Spring Boot compatible properties file for configuration-based theme access.

theme.properties
# Colors - Light Mode
theme.colors.light.background=0 0% 100%
theme.colors.light.foreground=222.2 84% 4.9%
theme.colors.light.primary=221.2 83.2% 53.3%

# Spacing
theme.spacing.xs=0.5rem
theme.spacing.sm=0.75rem

# Usage in Spring Boot:
# @Value("${theme.colors.light.primary}")
# private String primaryColor;
Tip
All export formats are generated from your current theme. Make sure to apply your theme changes before downloading.

brand.md Integration

Understand how the theme editor generates AI-friendly documentation

What is brand.md?

docs/brand.md is an auto-generated file that documents your entire design system in a human-readable and AI-parseable format.

What it contains

  • Complete color palette tables (light and dark modes)
  • Typography settings (fonts, sizes, line heights)
  • Spacing scale and border radius values
  • Button styles and hover effects
  • Raw theme JSON for programmatic access

How it updates

When you click "Apply to Project" in the theme editor:

  1. The :root and .dark blocks in src/app/globals.css are replaced
  2. The docs/brand.md file is regenerated with current values
  3. Both files are updated atomically in a single operation

AI Integration

AI code assistants (like Claude, Cursor, GitHub Copilot) can read brand.md to understand your design system and generate code that follows your brand guidelines.

# Example: Ask your AI assistant
"Create a new feature card component using the design system from brand.md"

# The AI will use your custom colors, spacing, and typography
Tip
Include brand.md in your version control to track design system changes over time.

File Locations

docs/brand.md

Auto-generated design system documentation

src/app/globals.css

CSS variables updated by theme editor

.cursor/commands/brand.md

Developer guidelines for using the design system