This is an initiative to help standardize the Alternative Checkboxes feature commonly used by the community in Obsidian.md. We are trying to achieve this by analyzing all publicly available implementations of Alternative Checkboxes within Obsidian be it as a Theme, CSS Snippet or Plugin. We are also looking to see if there are any other tools and external standards which could help with our decisions.
Currently, all discussion regarding this is carried out in a thread within the Official Obsidian Discord. For more information please head over there: https://discord.com/channels/686053708261228577/1291469509336502272
(All current goals are subject to change and are provided as a general idea so far. 📌 = Currently being worked on.)
- Round up all currently available Obsidian themes in the Theme Store and check for Alternative Checkboxes implementations. If Alternative Checkboxes present:
- Define the use case (Syntax and Meaning).
- Add the theme to the vault if it has Alternative Checkboxes.
- Include link for the Repository, Documentation (if any) and Code used to implement them.
Outcome: Identified 44/282 themes which use a form of Alternative Checkboxes (at the time).
- The results for Themes are in: 01 Theme Examples.md
- The results for CSS Snippets are in: 02 CSS Snippet Example.md
- The results for Plugins which interact with Alternative Checkboxes are in (WIP): 03 Plugin Examples.md
- Review collected data to identify the current "standard" use cases for each checkbox type; given syntax and it's assigned meaning. Also, take note of other alternative meanings and how many themes use those.
Outcome: Filtered through all themes with Alternative Checkboxes using the data collected in 01 Theme Examples.md, outlined their usage and highlighted the themes which have an alternative meaning assigned to the specific syntax.
You can see the entire breakdown for all checkbox types in: 06 Syntax and Meaning Review.md
Overall, the equivalent of Minimal Theme's Alternative Checkboxes implementation (syntax in conjunction with meaning) are the most popular uses across other themes. The breakdown above highlights the differences in other themes to help see what those theme's wouldn't support if this set was used as the Reference. It should also help see how much impact it might have if one of those themes chooses to align with the Reference Set. I've included the download count for each theme as a rough estimation of theme's use by users.
You can see the breakdown for that in: 07 Impact Breakdown.md
- Review the CSS from each theme to identify the patterns used to implement the feature.
Outcome: We've identified the most common ways Alternative Checkboxes are implemented and have created a CSS Reset file as a temporary way to reset everything back to the default checkbox styling. This however spawned a new goal to try and get all Style Settings enabled themes to support a toggle function which allows the user to disable the theme's Alternative Checkboxes feature. So, the current priority is to have all themes mentioned in 09 Style Settings Toggle Review.md and 10 @container Style Queries Toggle Review.md implement the appropriate ways to toggle their theme's Alternative Checkboxes, allowing us to use the Reference Set CSS snippet with ease and making it simpler to customise this feature for users.
- Decide on the initial set of Checkboxes.
- Possibly use a Tier system which rates the checkboxes based on their current popularity / percentage of use across themes.
- Best practices / conventions.
- Agreed syntax / meaning.
- Agreed icons to represent the checkbox?
- Agreed colours?
Outcome: Settled on the most common set of Checkboxes which turned out to be what is defined in the Minimal Theme. A large portion of themes which implement Alternative Checkboxes directly use the same Checkbox syntax in conjunction with the meaning. Some themes expand on it. As mentioned above you can see the breakdown in: 06 Syntax and Meaning Review.md The general consensus was to use Lucide icon set for the Reference Set since that's what Obsidian uses for it's UI. The icons were selected to match the same representations as other Alternative Checkboxes implementations. The Reference Set won't dictate what colour each icon will use but the CSS does accommodate setting any colour you want for your Theme / CSS snippet.
- Assure that all plugins which interact with Alternative Checkboxes are setup to support the Reference Set. Provide any help / adapt based on feedback.
- Barebones CSS Implementation of the Reference Set.
- Decide if the implementation provides example icons (likely Lucide to match existing Obsidian icons).
- 📌Naming convention for CSS Variables.
- 📌 General guidelines for Theme Developers to help users with using the Checkboxes they want to use.
- 📌 Allow users to fully disable the Theme's Checkbox implementation if the user prefers to use their own (likely a CSS snippet). This might include adding a Style Settings Toggle, providing the Alternative Checkbox feature as an optional CSS Snippet independent of the Theme's CSS or making sure the implementation within the Theme is easily overwritable by a CSS Snippet.
- 📌 Reach out to Theme Developers which Alternative Checkbox implementation doesn't align with the Reference Set to see if they are willing to adapt.
- Create a plan for helping uses to convert their notes when a theme changes the Alternative Checkbox/es.
- Methods / Plugins / Tools required to convert user's existing notes to match the Reference Set or adapt to the changes which a theme implements to align with the Reference Set.
- Methods of effectively notifying changes by Theme devs to users: Notes in Settings, Changelogs, hovering over Help icon, etc.
This repository serves as a central place for all the files relevant to the discussion. It's intended to be used directly as an Obsidian Vault. All themes and snippets that include Alternative Checkboxes are pre-installed for ease of testing. The following Community plugins are also included:
Style Settings
- Required for some themes.Code Editor Shortcuts
- Easier multiline editing.
Please refer to the License section below for more information about what license each Theme / CSS Snippet / Plugin are distributed under.
Ideally, each Alternative Checkbox implementation should be previewed with only the relevant Theme / CSS Snippet enabled to avoid styling issues. Remember to only use one CSS Snippet at a time when testing and to have none enabled when testing Theme implementations (unless required). For CSS Snippets, I'd advise to test those with the Default theme enabled unless stated otherwise.
For convenience, I've pinned Change theme
in the Command Palette for a quicker way to change themes.
At the moment, there are no direct guidelines for contributing to this repository. Ideally, any contributions should be mentioned in the Discussion thread first.
Special thanks to the following people for their direct contributions to this repository:
- claremacrae - For assisting in parsing through all available themes in Obsidian's Community Themes Store.
- ElsaTam - For reviewing the CSS in each theme to identify the patterns used to implement the feature.
- sigrunixia - For helping with the Repository maintenance and outward tasks like presenting the initiative to new themes.
Also, big thanks to everyone that contributed feedback over in the Discord Thread.
This repository contains Themes, CSS Snippets and Plugins which were added for convenience of previewing the relevant documentation. Here are the licenses under which they are distributed under:
Themes
- Minimal - Distributed under the MIT License
- Things - Distributed under the MIT License
- Blue Topaz - Distributed under the MIT License
- AnuPpuccin - Distributed under the GPL-3.0 License
- Sanctum - Distributed under the MIT License
- ITS - Distributed under the GPL-2.0 License
- Primary Distributed under the GPL-3.0 License
- Tokyo Night - Distributed under the MIT License
- Border - Distributed under the MIT License
- Spectrum - Distributed under the MIT License
- Cyber Glow - Distributed under the MIT License
- LYT Mode - Distributed under the MIT License
- Shiba Inu - Distributed under the MIT License
- PLN - Distributed under the GPL-3.0 License
- Obsidianotion - Distributed under the Unlicense License
- Maple - Distributed under the MIT License
- Ebullientworks - Distributed under the CC0-1.0 License
- Pine Forest Berry - Distributed under the MIT License
- Aura - Distributed under the GPL-2.0 License
- Vicious - Distributed under the MIT License
- Simple - Distributed under the Unlicense License
- Elegance - Distributed under the MIT License
- Material Ocean - Distributed under the MIT License
- Sparkling Night - Distributed under the MIT License
- Kakano - Distributed under the MIT License
- Neo - Distributed under the MIT License
- Feather - Distributed under the MIT License
- Listive - Distributed under the MIT License
- MagicUser - Distributed under the MIT License
- Qlean - Distributed under the MIT License
- Yue - Distributed under the MIT License
- sQdthOne - Distributed under the GPL-3.0 License
- Dracula Plus - Distributed under the MIT License
- Solitude - Distributed under the MIT License
- Prime - Distributed under the GPL-3.0 License
- Sanctum Reborn - Distributed under the MIT License
- Underwater - Distributed under the MIT License
- Nightingale - Distributed under the MIT License
- Reshi - Distributed under the GPL-3.0 License
- Shade Sanctuary - Distributed under the MIT License
- Sparkling Day - Distributed under the MIT License
- Oreo - Distributed under the GPL-3.0 License
- Gummy Revived - Distributed under the MIT License
- Lorens - Distributed under the MIT License
- Fancy-a-Story - Distributed under the MIT License
- Borealis - Distributed under the MIT License
CSS Snippets
- ITS Alternative Checkboxes - Distributed under the GPL-2.0 License
- Phoenix Checkboxes - Distributed under the MIT License
Plugins
- Style Settings - Distributed under the GPL-3.0 License
- Editor Shortcuts - Distributed under the MIT License
- Tasks - Distributed under the MIT License
- Snippetor - Distributed under the AGPL-3.0 License
- ToggleList - Distributed under the MIT License
The inclusion of the Themes / CSS Snippets / Plugins in this repository is strictly for research purposes. If you are an author of any of them and would like me to remove them from this repository, please let me know by creating an issue.
The Documentation itself (Markdown files) are under the Unlicense License, unless another license is noted, especially next to code snippets from the themes.
The icons used in the Reference Set CSS are Lucide. Lucide is distributed under the ISC License.