// OPENBOX DOCS

Creating Custom Themes

Author custom CSS themes using OpenBox's design system tokens.

OpenBox features a strict, token-driven CSS architecture. Every color, surface, font, and border is driven by standard CSS variables defined in :root.

Interactive Theme Studio & CSS Generator

Preview stock themes and generate custom CSS token files

--background
#0b0e16
--surface-card
#141926
--brand
#ff7a00
--focus / --accent
#00f0ff
--text-main
#f0f4fc
--border
#232a3d
OPENBOXv1.5.0
Chrono Trigger

Super Nintendo · 1995

SNES
Super Mario Odyssey

Nintendo Switch · 2017

Switch
Drop into ~/.local/share/openbox-game-launcher/themes/
/* OpenBox Custom Theme: Default Dark (Orange/Cyan) */
:root {
  --background: #0b0e16;
  --surface-card: #141926;
  --brand: #ff7a00;
  --focus: #00f0ff;
  --accent: #00f0ff;
  --text-main: #f0f4fc;
  --border: #232a3d;
  --border-muted: #232a3d;
  --brand-rgb: 255, 122, 0;
}

Design System Tokens

When creating a custom theme, you only need to override :root variables. No component CSS rules are modified.

TokenPurposeExample
--backgroundMain window and background surface#0b0e16
--surface-cardCards, dialogs, drawers, and panels#141926
--brandPrimary brand color, play buttons, active highlights#ff7a00
--focusFocus rings, active keyboard / gamepad focus#00f0ff
--accentSecondary interactive accents and badges#00f0ff
--text-mainPrimary readable text color#f0f4fc
--text-mutedSecondary labels, platform tags, metadata#8d9bb0
--borderCard and modal borders#232a3d
--font-sansPrimary UI typefaceSpace Grotesk, sans-serif
--font-monoMonospace typeface for paths, tokens, versionsJetBrains Mono, monospace

Installing a Custom Theme

  1. Create a CSS file named theme-mytheme.css in your themes directory:
    mkdir -p ~/.local/share/openbox-game-launcher/themes/
    nano ~/.local/share/openbox-game-launcher/themes/theme-mytheme.css
    
  2. Paste your :root definition:
    :root {
      --background: #0f141c;
      --surface-card: #192230;
      --brand: #e06c75;
      --focus: #61afef;
      --accent: #98c379;
      --text-main: #abb2bf;
      --border: #2c384c;
    }
    
  3. Open OpenBox, navigate to Settings -> Appearance, and select Mytheme from the theme dropdown.