Theme School
approvedby michellegdyason
Learn theme development visually, then graduate to standalone CSS. - This plugin has not been manually reviewed by Obsidian staff.
Theme School
Theme School is a visual learning scaffold for making Obsidian themes without starting from a blank CSS file. It helps you make deliberate choices, shows the real CSS variable behind each choice, and exports a standard standalone theme.
The intended final step is to uninstall Theme School.
Why this is a plugin—not a theme
A theme can style Obsidian, but it cannot provide an interactive teaching interface. Theme School is therefore a plugin that produces themes. The exported theme.css and manifest.json have no dependency on the plugin.
What the first release teaches
- Separate light and dark baselines rather than treating one as an inversion
- Surface hierarchy, readable contrast, accents, borders, selections, and highlights
- Interface, reading, and monospace type systems
- Type scale, line height, content width, and paragraph rhythm
- Corner, input, tab, and divider systems
- Navigation density and editor-specific choices
- The connection between a visual control and its Obsidian CSS variable
- The first step beyond variables: adding a hand-written CSS selector
Theme School also checks normal body-text contrast against the WCAG AA 4.5:1 threshold. Live preview applies CSS variables reversibly; hand-written graduation CSS is export-only and should be tested through the exported theme.
Install for development
- Clone this repository into
.obsidian/plugins/theme-schoolin a test vault. Obsidian recommends using a separate development vault. - Run
npm installandnpm run build. - In Obsidian, open Settings → Community plugins, enable community plugins, then enable Theme School.
- Click the palette ribbon icon or run Theme School: Open studio from the command palette.
The graduation workflow
- Explore relationships with the visual controls.
- Notice and learn the CSS variable beside every control.
- Use Export → Create theme folder in this vault.
- Open the exported
<your-config-folder>/themes/your-theme/theme.cssand connect your choices to the declarations. - Add one small rule in the Advanced section and see it appear at the end of the export.
- Disable or uninstall Theme School. Your theme remains a normal Obsidian theme.
Development
npm install
npm run dev
For a production bundle:
npm run build
The release assets required by Obsidian are main.js, manifest.json, and styles.css.
Safety
Develop plugins in a separate test vault. Exporting writes only to <your-config-folder>/themes/<your-theme-name> in the current vault; Obsidian supplies the configured folder name at runtime.
Support development
If Theme School helps you learn to make your own themes, you can support Michelle's work:
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.