Skip to content

[Feature]: Theme presets (Nord, Catppuccin, Dracula, etc.) #1567

Closed as duplicate

Description

@JustaCube

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/web

Problem or use case

The app only supports a Light/Dark/System toggle with no way to customize the color palette.

Proposed solution

A new Appearance page in settings (/settings/appearance) with a grid of clickable theme preset cards. Each preset defines accent, background, foreground, and border colors for both light and dark modes. Clicking one instantly recolors the app. Switching between light/dark/system automatically resolves the correct color variant for the active preset.

Presets would include: Default, Catppuccin, Nord, Dracula, Solarized, Monokai, One Dark, Gruvbox, Rose Pine, Tokyo Night, GitHub, and Ayu.

Why this matters

Developers spend hours in their tools and strongly prefer a consistent look across their setup. Matching the theme they already use in VS Code/terminal makes the app feel like home rather than a generic default. It's a low-cost, high-satisfaction feature — purely visual, zero impact on core functionality.

Smallest useful scope

Just the preset picker — a grid of named theme cards on a new Appearance settings page. One click applies all four colors (accent, background, foreground, border). No custom color editor, no import/export, no per-component overrides. Store a single themePreset string in client settings.

Alternatives considered

Exposing individual color pickers (accent, background, foreground, border separately) — more flexible but overwhelming UX and harder to get a cohesive look.

CSS-only approach with user stylesheets — too technical for most users.

Presets are the sweet spot: zero configuration needed, one click, always looks good.

Risks or tradeoffs

Adds 12 hardcoded preset definitions that need maintenance if the CSS variable system changes.

Preset colors override CSS custom properties via inline styles, which take priority over the stylesheet defaults. Resetting to "Default" cleanly removes all overrides.

Some themes (Dracula, Monokai) are primarily dark-mode themes — their light variants are community-derived approximations, not official.

Examples or references

Image

Contribution

  • I would be open to helping implement this.

Activity

  1. added
    enhancementRequested improvement or new capability.
    needs-triageIssue needs maintainer review and initial categorization.
    on Mar 30, 2026
  2. JustaCube commented on Mar 30, 2026

    @JustaCube
    Author

    I already have a working implementation for this on a local branch — ~420 lines across 6 files. Happy to open a PR if you're interested. Here's a quick summary of what it does:

    • New /settings/appearance route with a Palette icon in the sidebar
    • Light/Dark/System mode toggle (moved from General)
    • 12 theme preset cards in a grid: Default, Catppuccin, Nord, Dracula, Solarized, Monokai, One Dark, Gruvbox, Rose Pine, Tokyo Night, GitHub, Ayu
    • Single themePreset string stored in client settings (localStorage)
    • Colors resolve automatically when toggling light/dark mode
    • Applied on module load (no flash), "Default" cleanly removes all overrides

    Let me know if you'd like me to open it up.

  3. vivekascoder commented on May 7, 2026

    @vivekascoder

    I want this

  4. akaSurreal commented on Jul 16, 2026

    @akaSurreal

    also want this very much, even better if we can design our own as well

  5. juliusmarminge commented on Jul 20, 2026

    @juliusmarminge
    Member

    Closing as a duplicate of the canonical theming issue #418. Active focused theme work includes PR #3980 and PR #4068; preset scope and acceptance should be decided and validated on #418.

  6. added
    duplicateThis issue or pull request already exists
    and removed
    needs-triageIssue needs maintainer review and initial categorization.
    on Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsenhancementRequested improvement or new capability.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions