A template containing everything you need for creating your own Obsidian theme.
See the codeThis is a sample theme for Obsidian (https://obsidian.md).
First, select Use this template to create a copy of this repository under your GitHub profile. Then, clone your new repository to your computer.
Once you have the repository locally on your computer, there are a couple of placeholder fields you'll need to fill in.
manifest.json file, update the placeholder fields to describe your theme. For example:{
"name": "Moonstone",
"author": "Your Name",
"version": "0.0.0",
"minAppVersion": "1.10.6"
}
After you have those fields configured, all that's left to do is add your styles! All of your CSS needs to be inside the file theme.css as a part of your release.
For a deeper walkthrough, see the official Build a theme tutorial.
Before you can submit your theme to the community directory, there are a few things you'll need to prepare.
Review the Theme guidelines for best practices, such as using CSS variables, avoiding !important, and keeping assets local. Themes that don't follow them are more likely to break on future Obsidian versions or get flagged during review.
This template already includes stylelint-config-obsidianmd, which enforces the same CSS rules used during theme review. Run npm install once, then npm run lint to check theme.css against them. This also runs automatically on every pull request via the lint workflow.
Inside the repository, include a screenshot thumbnail of your theme. We recommend storing it in a screenshots folder at the root of your repository, for example screenshots/screenshot.png. This image will be used for the small preview in the theme list.
Your screenshot file should be 16:9 aspect ratio.
The recommended size is 512x288.
Themes support GitHub Releases, introduced in v0.16 of Obsidian. This lets you specify which versions of your theme are compatible with which versions of Obsidian.
This repository already includes a GitHub Actions workflow that automates this. Pushing a tag matching your manifest.json version creates a draft release with manifest.json and theme.css attached, which you can then review and publish. See Release your theme with GitHub Actions for the full walkthrough.
Before you push a tag, make sure versions.json is up to date. This file maps your theme's version to the minimum Obsidian version it's compatible with:
{
"1.0.0": "1.10.6"
}
For the initial release of your theme, you shouldn't need to make any changes to this file. When you release a new version, add an entry for it:
{
"1.0.0": "1.10.6",
"1.0.1": "1.10.6"
}
The "key" is your theme's version, and the "value" is the minimum version of Obsidian that version is compatible with. If a new version of your theme only works with an Insider build of Obsidian, set this value accordingly, so users on older versions of Obsidian won't be prompted to update to a version that won't work for them.
To have your theme included in the Theme Gallery, you'll submit it through the Obsidian Community directory. Make sure you've added a screenshot and published a release first, since the submission form needs both.
You'll also need a LICENSE file in the root of your repository, which isn't included in this template. See Choose a License if you're not sure which one to use. See the official Submit your theme guide for more detail.
https://github.com/your-username/your-repo-name.screenshots/screenshot.png.The directory processes the manifest.json at the HEAD of your repository's default branch, so make sure it's accurate and committed before submitting. Obsidian downloads manifest.json and theme.css from the GitHub release whose tag matches the version in your manifest, which is why a published release is required.
3 followers · starred May 2024
91 followers · starred Oct 2022
A template containing everything you need for creating your own Obsidian theme.
See the codeThis is a sample theme for Obsidian (https://obsidian.md).
First, select Use this template to create a copy of this repository under your GitHub profile. Then, clone your new repository to your computer.
Once you have the repository locally on your computer, there are a couple of placeholder fields you'll need to fill in.
manifest.json file, update the placeholder fields to describe your theme. For example:{
"name": "Moonstone",
"author": "Your Name",
"version": "0.0.0",
"minAppVersion": "1.10.6"
}
After you have those fields configured, all that's left to do is add your styles! All of your CSS needs to be inside the file theme.css as a part of your release.
For a deeper walkthrough, see the official Build a theme tutorial.
Before you can submit your theme to the community directory, there are a few things you'll need to prepare.
Review the Theme guidelines for best practices, such as using CSS variables, avoiding !important, and keeping assets local. Themes that don't follow them are more likely to break on future Obsidian versions or get flagged during review.
This template already includes stylelint-config-obsidianmd, which enforces the same CSS rules used during theme review. Run npm install once, then npm run lint to check theme.css against them. This also runs automatically on every pull request via the lint workflow.
Inside the repository, include a screenshot thumbnail of your theme. We recommend storing it in a screenshots folder at the root of your repository, for example screenshots/screenshot.png. This image will be used for the small preview in the theme list.
Your screenshot file should be 16:9 aspect ratio.
The recommended size is 512x288.
Themes support GitHub Releases, introduced in v0.16 of Obsidian. This lets you specify which versions of your theme are compatible with which versions of Obsidian.
This repository already includes a GitHub Actions workflow that automates this. Pushing a tag matching your manifest.json version creates a draft release with manifest.json and theme.css attached, which you can then review and publish. See Release your theme with GitHub Actions for the full walkthrough.
Before you push a tag, make sure versions.json is up to date. This file maps your theme's version to the minimum Obsidian version it's compatible with:
{
"1.0.0": "1.10.6"
}
For the initial release of your theme, you shouldn't need to make any changes to this file. When you release a new version, add an entry for it:
{
"1.0.0": "1.10.6",
"1.0.1": "1.10.6"
}
The "key" is your theme's version, and the "value" is the minimum version of Obsidian that version is compatible with. If a new version of your theme only works with an Insider build of Obsidian, set this value accordingly, so users on older versions of Obsidian won't be prompted to update to a version that won't work for them.
To have your theme included in the Theme Gallery, you'll submit it through the Obsidian Community directory. Make sure you've added a screenshot and published a release first, since the submission form needs both.
You'll also need a LICENSE file in the root of your repository, which isn't included in this template. See Choose a License if you're not sure which one to use. See the official Submit your theme guide for more detail.
https://github.com/your-username/your-repo-name.screenshots/screenshot.png.The directory processes the manifest.json at the HEAD of your repository's default branch, so make sure it's accurate and committed before submitting. Obsidian downloads manifest.json and theme.css from the GitHub release whose tag matches the version in your manifest, which is why a published release is required.
3 followers · starred May 2024
91 followers · starred Oct 2022