Custom Theme Studio

by @gapmiss
5
4
3
2
1
Score: 32/100

Description

The Custom Theme Studio plugin provides an all-in-one toolkit for designing, editing, and managing Obsidian themes visually. It combines a CSS variable manager, live CSS rule editor, and powerful export features-all accessible from a dedicated studio interface. Users can modify colors, fonts, and layout styles using real-time previews and selector-based styling tools. The integrated Ace editor supports syntax highlighting, auto-completion, Prettier formatting, and embedded color pickers for precise control. It also enables users to import fonts, define custom selectors, and export their themes as shareable packages with manifest files.

Reviews

No reviews yet.

Stats

26
stars
3,949
downloads
0
forks
205
days
88
days
88
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
2
total issues
2
open issues
0
closed issues
0
commits

README file from

Github

Custom Theme Studio

A complete theme design studio for Obsidian. Create, customize, and export professional themes with visual tools, live CSS editing, and instant feedback—all without leaving your workspace.

Features at a Glance

Feature Description
CSS Variables Edit colors, fonts, and other UI styles. Variables are searchable, filterable by category, with live counter updates.
Font Import Import custom fonts and create base64 @font-face rules for your theme.
Live Editor Ace editor with syntax highlighting, auto-complete, Prettier formatting, and built-in color picker.
Visual Tools Pick elements to style with configurable selector generation, preview changes in real-time, freeze UI for inspection.
Theme Management Enable, disable, switch themes, or export as CSS with a manifest and Prettier formatting.
Settings Backup, import/export, reset customizations, toggle themes with reactive updates.

Detailed Features

CSS Variables

  • Edit built-in CSS variables for colors, fonts, and UI components
  • Organized into categories: components, editor, foundations, plugins, window, dark/light themes
  • Search and filter to quickly find variables with real-time result counter
  • Add custom variables with live counter updates
  • Color picker for HEX values with reactive updates
  • Category badges show item counts that update automatically
  • Tag-based filtering for quick navigation

CSS Rules

  • Smart Element Selector with configurable selector generation:
    • Three selector styles: Minimal (short), Balanced (moderate), Specific (detailed)
    • Toggle preference for classes vs. data attributes
    • Configure tag name inclusion
    • Exclude unwanted attributes with wildcard patterns
    • Handles special characters and aria-labels properly
  • Advanced CSS editor with syntax highlighting and auto-formatting
  • In-editor Prettier formatting with preserved undo/redo history
  • Smart cursor positioning when editing (auto-places cursor before closing brace)
  • Visual focus indicators for active editor
  • Live preview while editing with configurable debounce delay
  • Search and filter rules with result counter
  • Save and manage multiple custom rules with auto-scroll to newly created items
  • Apply imported fonts to any element

CSS Editor

  • Built-in Ace editor with syntax highlighting and auto-complete
  • One-click Prettier formatting with undo support
  • Customize editor settings: theme, font size, tab width (2 or 4 spaces)
  • Optional line numbers and word wrap
  • Embedded color picker for Ace editor
  • Visual focus state with accent-colored border
  • Smart cursor positioning respects tab width settings
  • Keyboard shortcuts for faster editing
  • Auto-completion includes all Obsidian variables
  • Configurable debounce delay for auto-apply changes

Theme Export

  • Export your theme as a CSS file
  • Generate a manifest file for distribution
  • Copy CSS or manifest to clipboard
  • Configure metadata: name, author, URL

Settings Management

  • Import/export settings for backup or sharing
  • Reset theme customizations
  • Toggle theme on/off globally

Installation

Available on Obsidian.md/plugins

From Obsidian

  1. Open Obsidian Settings
  2. Go to Community Plugins and disable Safe Mode
  3. Click Browse and search for "Custom Theme Studio"
  4. Install the plugin and enable it

Manual Installation

  1. Download main.js, manifest.json & styles.css from the latest release
  2. Create a new folder /path/to/vault/.obsidian/plugins/custom-theme-studio
  3. Move all 3 files to /path/to/vault/.obsidian/plugins/custom-theme-studio
  4. Settings > Community plugins > Reload plugins
  5. Enable the "Custom Theme Studio" plugin in the community plugin list

Via BRAT (Beta Reviewer's Auto-update Tool):

  1. Ensure the BRAT plugin is installed
  2. Trigger the command Obsidian42 - BRAT: Add a beta plugin for testing
  3. Enter this repository, gapmiss/custom-theme-studio
  4. Enable the "Custom Theme Studio" plugin in the community plugin list

Usage

Opening the Theme Studio

After installation, you can access Custom Theme Studio in several ways:

  • Ribbon Icon: Click the paintbrush icon in the left ribbon
  • Command Palette: Use Ctrl/Cmd + P and search for "Custom Theme Studio: Open view"
  • Hotkey: Assign a custom hotkey in Settings > Hotkeys for "Custom Theme Studio: Open view"

Getting Started

  1. Open the plugin view using one of the methods above
  2. Enable your custom theme by toggling the switch at the top of the view
  3. Start customizing using the three main sections:

CSS Variables

Edit Obsidian's built-in CSS variables to customize colors, fonts, and UI elements:

  • Browse categories: Variables are organized by components, editor, foundations, plugins, etc.
  • Search variables: Use the search box to quickly find specific variables
  • Color picker: Click the color square next to HEX values for visual color selection
  • Real-time preview: Changes apply immediately when "Auto-apply changes" is enabled

CSS Rules

Create custom CSS rules to style specific elements:

  • Element selector: Use Ctrl/Cmd + P → "Custom Theme Studio: Select an element for new CSS rule" to visually pick elements
    • Configure selector generation in settings: choose between Minimal, Balanced, or Specific styles
    • Prefer classes over attributes or vice versa
    • Exclude specific attributes using wildcard patterns (e.g., data-tooltip-*)
  • CSS editor: Write custom CSS with syntax highlighting and auto-completion
    • Click the sparkles icon (✨) to format CSS with Prettier (undoable with Ctrl/Cmd+Z)
    • Cursor automatically positions for optimal editing
    • Visual focus indicator shows when editor is active
  • Live preview: See changes in real-time as you type (configurable debounce delay)
  • Font import: Import custom fonts and generate @font-face rules

Theme Export

Export your customizations as a complete Obsidian theme:

  • Theme metadata: Set name, author, and URL information
  • Export options: Choose to include/exclude disabled rules and enable Prettier formatting
  • Download files: Get both CSS and manifest.json files for theme distribution

Keyboard Shortcuts & Commands

  • Toggle custom theme: Quickly enable/disable your theme
  • Select element: Pick UI elements for styling
  • Freeze Obsidian: Freeze the interface for 5 seconds to inspect hover states
  • Import CSS snippet: Import existing CSS snippets from your vault

Pro Tips

  • Backup your work: Use Settings > Export settings before major changes
  • Element inspection: Use the "Freeze Obsidian" command to inspect elements that disappear on hover
  • Search efficiently: Use the search boxes in CSS Variables and CSS Rules sections - counters show results in real-time
  • Test responsively: Toggle your theme on/off to compare changes
  • Format while editing: Use the sparkles icon (✨) in the CSS editor to format your code with Prettier - it's undoable!
  • Customize selectors: Configure element selector behavior in settings for your preferred selector style
  • Exclude noisy attributes: Add patterns like data-tooltip-* to excluded attributes for cleaner selectors
  • Smart cursor: When editing CSS rules, the cursor automatically positions for adding new properties
  • Adjust debounce: Fine-tune the auto-apply delay slider in settings for optimal performance
  • Share themes: Export your theme and share the CSS/manifest files with others

Credits

Some code inspired by and derived from:

Thank you!

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Beautitab
2 years ago by Andrew McGivery
A plugin for Obsidian.MD that creates a customizable new tab view with beautiful backgrounds, quotes, search, and more.
Plugin Groups
3 years ago by Mocca101
A plugin that allows you to easily group and manage your other plugins in Obsidian.
MySnippets
5 years ago by Chetachi
MySnippets is a plugin that adds a status bar menu allowing the user to quickly manage their snippets within the comfort of their workspace 🖌.
Canvas CSS class
3 years ago by Lisandra-dev
A plugin that will add a css class to your canvas & adding to each canvas the path to help personnalization
Unicode Search
3 years ago by BambusControl
Simple Unicode character search for Obsidian.md
css snippets
5 years ago by Daniel Brandenburg
Obsidian plugin for css snippets
Emoji Magic
3 years ago by simplgy
Makes it easier to add emojis using an improved keyword search
Natural Language Syntax Highlighting
3 years ago by artisticat
Highlight adjectives, nouns, adverbs, verbs, and conjunctions in Obsidian.md
Simple Banner
a year ago by Sandro Ducceschi
Visually enhance your Obsidian notes with a customizable banner. Supports icons and time/date display.
Simple Columns
10 months ago by Josie
An Obsidian plugin that lets you create easily resizable and customizable columns in your notes.
Style Text
3 years ago by Juanjo Arranz
Apply custom CSS styles to selected text in your Obsidian Notes
Callout Integrator
3 years ago by
A plugin for Obsidian to allow the integration of long blocks of text into callouts.
Snippetor
4 years ago by ebullient
An assist for creating CSS snippets for Obsidian
Hyphenation
3 years ago by 7596ff
Enables justified text and hyphenation
Custom Classes
3 years ago by Lila Rest
A minimal Obsidian plugin that allows you to add your own HTML classes to chosen Markdown elements directly from your notes.
New 3D Graph
10 months ago by Aryan Gupta
Visualize your vault in 3D with a powerful, highly customizable, and filterable graph.
Regex Mark
2 years ago by Mara-Li
Snippet Commands
5 years ago by death_au
Registers custom css snippets as commands (which you can bind hotkeys to)
Orgmode (CM6)
2 years ago by Benoit Bazard
Orgmode plugin for Obsidian
Auto Class
4 years ago by Nathonius
Automatically add CSS classes to notes based on file path.
Group Snippets
4 years ago by Mara-Li
Create folder of snippets to activate them in one click !
Text Wrapper
3 years ago by smx0
Plugin for Obsidian
Root Folder Context Menu
2 years ago by mnaoumov
Obsidian Plugin that enables context menu for vault root folder
Metadata Icon
2 years ago by Benature
change metadata entry icon
CSS Inlay Colors
2 years ago by Benji Grant
Show inline color hints for CSS colors in Obsidian
Edit mode switch
2 years ago by Mara-Li
Add a button in file header to switch between LP & Source while editing
Canvas Daily Note
2 years ago by Andrew McGivery
A plugin for Obsidian that allows you to add a daily note node to the canvas that will always show todays note.
Pixel Pets
9 months ago by Lucas Jin
Adds cute pixel pets to Obsidian.
Set View Mode per Note
2 years ago by Alex Davies
Use YAML frontmatter to specify a view mode per note.
Custom Slides
9 months ago by David V. Kimball
Customize Obsidian's Slides core plugin's navigation, styles, and behavior.
MantouAI
2 years ago by Morino Pan
MantouAI—— 让Obsidian变身智能助手
Tag Formatter
2 years ago by snsvrno
Configurable Obsidian plugin that hides parent tags.
Better Order List
2 years ago by Boninall
Livecodes Playground
2 years ago by @gapmiss
Open-source client-side code editor plugin for Obsidian.md - powered by LiveCodes.io
Dynamic Text Concealer
2 years ago by Matt Cole Anderson
Obsidian.md Plugin to conceal or replace user configured text patterns in Live Preview and Read Mode.
CSS Inserter
2 years ago by Erika Gozar
Inserts user-defined css snippets into the selected text.
YAML Table
a year ago by dainakai
Mode manager
a year ago by dk949
Better management of reading/editing modes in obsidian
Adapt to Current View
7 months ago by greetclammy
Obsidian plugin to set different accent colors for Reading view, Live Preview and Source view.
My SVGs
4 months ago by Omar Badawy
An Obsidian plugin that Registers your own SVGs into Obsidian's global icon library for use with other plugins or however you want.
Better Link Clicker
4 months ago by Eniverz
An Obsidian plugin that modifies the default link click event.
Negative Heading
2 months ago by Ashan Devine
Render Discord-style "-#" lines as compact headings in reading view and the editor.