CSS magicians/theme creators — standardisation of theming practices

It’s a testament to the flexibility of Obsidian that this discussion is worth having.

Most people using Obsidian have come from other tools such as Evernote, Notion, Apple Notes, Bear, Ulysses, etc — none of which offer the near infinite degree of customization afforded by Obsidian/CSS.

However it’s a double-edged sword. Obsidian’s flexibility allows a user’s reach to exceed their grasp. Because you can theoretically customize anything, it creates the desire to tweak everything. Most developers struggle with the same issue — how big of a “wall of toggles” are you willing to have to satisfy user requests, and when does it become so unwieldy that user’s can’t find what they’re looking for?

Case in point, Minimal heading colors can be changed using Style Settings or the standardized variables in the CSS.

Where I do think standardization can work is by using plugins to replace commonly replicated features in themes.

Back in November 2020, I created the Hider plugin which split out some functionality of Minimal into a separate plugin, that could be used by other themes. I see this as a viable path for other common features such as @mgmeyers’s Indentation Guides plugin which will hopefully remove the need for every theme to include relationship lines.

IMO, the dividing line should be Plugins & Themes one side, and CSS on the other. Once a user enters the realm of snippets and CSS manipulation, caveat emptor.

I don’t believe it is possible to standardize CSS across themes and I do not think users should expect snippets to be particularly cross-compatible. In fact I am rather against the idea of a snippet store for this reason.

As @anon56682183 mentioned there are best practices, such as avoiding !important. I could imagine (and welcome) a future where Obsidian devs force theme developers to submit themes as a compiled bundle. This could prevent some of the more egregious blockers for cross-compatibility, and make it easier to for users to update to the latest version (like with plugins) — but keep in mind that would heighten the bar for theme development.

5 Likes