Obsidian-Vault-Template

A template of my personal obsidian vault!


date: 2026-06-21T22:42:40 tags:

  • Meta cssclasses:
  • Meta
  • image-borders
  • center-images

My Obsidian Vault

Welcome! If you're here, that probably means you're looking at my vault template, (or you've managed to break into my house and see my personal vault). Enjoy!

Installation & Usage

It is recommended that you view this vault in Obsidian and not GitHub directly, as some custom CSS will not be visible, resulting in weird visual artefacts. For the best experience, either download the vault or git clone it locally and open it with Obsidian to view these files directly.

While it is recommended to read the whole file if you want to customize everything yourself, for the bare minimum, check out:

  • [[#Daily Notes]] (most important!)

And here are all the details in a quick access section:

  • [[#Colored Sidebar]]
  • [[#Themed Note Titles]]
  • [[#Daily Notes]]
  • [[#Git Sync Button]]
  • [[#Habit Trackers]]

Plugins

Built-in/Core Plugins (the only important one at least):

  • Bases (required for [[#Projects Overview]])

Community Plugins:

  • Templater (required for [[#Daily Notes]])
  • Dataview (required for [[#Heatmap Calendar]])
  • Meta Bind (required for [[#Habit Trackers]] & [[#Git Sync Button]])
  • Calendar (optional, adds calendar to bottom-left corner)
  • Git (optional, for vault syncing)
  • Iconize (optional, adds text icons to notes)
  • Better Word Count (optional, just QoL)
  • Latex Suite (optional, QoL for inputting LaTeX & math formatting)
  • Settings Search (optional, QoL)
  • Heatmap Calendar, customized modified* (required for [[#Heatmap Calendar]], obviously)

*note: the Heatmap Calendar plugin is a modified plugin from the original. if you want to use this in your own vault, follow the instructions in [[#Heatmap Calendar]].

CSS

The CSS snippets are in the .obsidian/snippets/ folder. If you don't know how to add snippets to your vault, I'd suggest watching a tutorial!

I have 4 main snippet files:

  • ColoredSidebar.css for [[#Colored Sidebar]], inspired by CyanVoxel's Colored Sidebar, slightly modified & optimized. Change the colors to your liking!
  • Tweaks.css for minor visual changes and improvements
  • Custom.css for [[#Markdown Tweaks]], like styled callouts, side-by-side callouts... etc
  • ThemedTitles.css for [[#Themed Note Titles]]
  • and Daily.css dedicated to [[#Daily Notes]]

Colored Sidebar

[!|p] ![[99 - Meta/Sample Images/Colored Sidebar Example.png|Sidebar-r]]By default, the Colored Sidebar CSS snippet colors folders according to their number prefix in the root folder, e.g., '00 - ...', '01 - ...', etc.

Each number prefix is associated with a corresponding color. For my vault, I have set it up to be a rainbow, but you can change this however you want!

Here are the steps to do so:

  1. Open the .obsidian/snippets/ColoredSidebar.css CSS file
  2. Find the place where it says:
/* folder colors - tweakable! */
.nav-folder:has([data-path^="00"]) { --color: var(--rgb-orange); }
.nav-folder:has([data-path^="01"]) { --color: var(--rgb-amber); }
.nav-folder:has([data-path^="02"]) { --color: var(--rgb-yellow); }
.nav-folder:has([data-path^="03"]) { --color: var(--rgb-lime); }
.nav-folder:has([data-path^="04"]) { --color: var(--rgb-cyan); }
.nav-folder:has([data-path^="05"]) { --color: var(--rgb-blue); }
.nav-folder:has([data-path^="06"]) { --color: var(--rgb-blue-violet); }
.nav-folder:has([data-path^="99"]) { --color: var(--rgb-cool-gray); }
  1. Choose the color that you want to modify, after --color: ..., and change to either a pre-existing preset var(--rgb-...) or a custom hex code, e.g., #00ff00.

Themed Note Titles

[!|p] ![[99 - Meta/Sample Images/Themed Titles.png|Titles-r]]You may notice that the color of the note title changes with the color of the folder. This is controlled by ThemedTitles.css and each note will automatically be populated with a CSS class and tag in its frontmatter. This tells Obsidian what color it should make the title. You can customize this as well:

To do so,

  1. Go to .obsidian/snippets/ThemedTitles.css
  2. Change the following code:
.MapsOfContent { /* change this to your folder name - in my case it's "00 - Maps Of Content" */
    --title-color-1: var(--red); /* this is the first color in the gradient */
    --title-color-2: #CA1243; /* this is the second color in the gradient */
    --pen-filter: hue-rotate(140deg) saturate(250%); /* this is the color of the pen */
}

Features

Daily Notes

[!|p] ![[99 - Meta/Sample Images/Daily Notes.png|Daily-r]]Daily notes are split into 5 main sections, color coded and separated into different callouts. To see the full markdown source code, see the sample daily note [[04 - Daily/2026/2026-06-22|2026-06-23]].

Life Progress Bar

At the top we have a life progress bar. This automatically calculates your age, and the amount of time you have spent in your life for this particular day in the form of a progress bar.

!!important: this feature will require your birthday. To change your birthday so that age calculations work,

  1. Go to [[99 - Meta/Templates/Daily Note Template|Daily Note Template]]
  2. Enter Source view mode (either by pressing Ctrl+E followed by Ctrl+W, or manually)
  3. Change the line where it says:
const birthday = '...'; // change this!
const expectedLifespan = ...; // change this!

with your actual birthdate (in YYYY-MM-DD format) and lifespan in years for the bounds of the progress bar. I used my country's expected lifespan, but you can set this to whatever you want.

Journal Section

The Journal section in blue is where most of your content is gonna go. In it contains a daily selfie photo element that will be displayed beside your text content.

Daily Selfies should be put in the Selfies folder (04 - Daily/Selfies) with the date specified in the name as YYYY-MM-DD.JPG. For example, for the date 2026/06/23, you should put an image in 04 - Daily/Selfies and name it 2026-06-23.JPG. Obsidian will automatically fetch the corresponding photo of the current day.

You may also put headers and tags in your Journal section to separate tasks/events. Learn more in the sample daily note.

Learned/Thoughts Section

These sections are dedicated to 1. what you learned today and 2. random, unorganized thoughts. Think about the Learned section as the daily fact for today, and the Thoughts section as a place to ran about a pet peeve or shower thoughts.

Changelog Section

(see [[#Git Sync Button]])

Habits Section

(see [[#Habit Trackers]])

Git Sync Button

![[99 - Meta/Sample Images/GitHub Button.png|GitSync-r]] Daily notes come with a built-in 'Push Vault to GitHub Button', which does two things when clicked:

  • it commits your changes and pushes it to github and saves your information
  • and it sets your sleep time for the day (more on that in [[#Habit Trackers]])

Be careful though as the button is one time use! As once you click the button, it reverts back into text form.

note: This requires the Meta Bind plugin, and if you were to simply copy it into your notes, it wouldn't work. If you want to copy this in your own vault, install the Meta Bind plugin and copy this vault's .obsidian/plugins/obsidian-meta-bind-plugin/data.json file into your own vault.

Habit Trackers

![[99 - Meta/Sample Images/Habit Tracker.png|Habits-r]] This is the most complicated part: it comes with 3 subsections --

  • a daily rating part, on how good or bad the day is
  • a daily habits part, to keep track of what habits you have and have not done for today
  • and a sleep time part, to keep track of your sleep time for today. All three metrics will be displayed in the [[#Heatmap Calendar]].

note: This requires the Meta Bind plugin, and if you were to simply copy it into your notes, it wouldn't work. If you want to copy this in your own vault, install the Meta Bind and copy this vault's .obsidian/plugins/obsidian-meta-bind-plugin/data.json file into your own vault.

To change & customize the daily habits part, the easiest way to do so is through Meta Bind's default GUI:

  1. Go to Settings (Ctrl + ,) > Meta Bind (under community plugins)
  2. Find 'Input field templates' and press the 'Edit templates' button
  3. Under the 'habit' part, change the following code:
INPUT[multiSelect(option('put your habits here!'), option('see README for more info'))]

to your choice of habits to keep track of, in the following format:

INPUT[multiSelect(option('[HABIT #1]'), option('[HABIT #2]'), option('[HABIT #3]... etc'))]

Similarly, you can also change the display text for the rating section this way.

Finally, for the sleep time part, sleep time is automatically recorded

  1. when you first open the note, to serve as a placeholder
  2. and second, at the time when you press the Git button, since that's what I've found to be when I usually go to bed.

Of course, this isn't an accurate metric, but if you want to be more precise, you can change the day's sleeping time in the note's frontmatter. Simply:

  1. Enter Source view mode (either by pressing Ctrl+E followed by Ctrl+W, or manually)
  2. Edit the sleepTime property to whatever you want

Dashboard

[!|p] ![[99 - Meta/Sample Images/Dashboard.png|Dashboard-r]]The dashboard is it's own separate markdown file, located in the folder 00 - Maps Of Content, [[00 - Maps Of Content/Dashboard|Dashboard.md]]. The cover/banner image for the Dashboard is stored in [[00 - Maps Of Content/Cover.png|Cover.png]].

You can change the cover image to whatever you like, and Obsidian will render it on top of the title. Just make sure that the new image has the name Cover.png. No plugins required!

Right below the title are a few useful links, like the [[03 - Resources/Pastebin|Pastebin]] and Today's Daily Note.

You can change this by simply editing the content specified in H2.

Projects Overview

The first section in the Dashboard is the 'Projects' tab. It shows an overview of all the 'projects' in your vault, with a 'project' being defined as any markdown file that lies under the 01 - Projects or 02 - Areas folder.

The Projects tab is further split into 'Recent Projects' and 'Finished Projects' -- Finished Projects just show all projects and is by default hidden, and Recent Projects being those with the additional #WIP (stands for Work in Progress) tag. (see [[01 - Projects/Video Project|Video Project Example]] for more info)

note: This requires the Bases core-plugin; which means it works natively in Obsidian! Just turn it on in the settings, and you're good to go.

Heatmap Calendar

The second section in the Dashboard is the 'Daily Trackers' Heatmap Calendar. It shows an overview of all the habit information that is specified in the Daily Notes, categorized into 3 tabs: ratings, sleep, and number of habits done.

note: This requires the Dataview plugin to work, as well as a custom made plugin designed to show heatmap calendars. you wont be able to directly download the latter, so if you want to copy this to your own vault, follow the instructions below:

  • Navigate to the .obsidian/plugins folder in this vault
  • Copy the heatmap-calendar-modified folder
  • Paste all the contents of the folder into the same location (.obsidian/plugins) your own vault

Each calendar displays the values of the past 45 days, color-coded according to the value provided. At the bottom a 'summary' is also displayed, showing the average rating/sleep time/number of habits per day, as well as how good or bad the current day is compared to average.

This one is a bit trickier to modify/customize yourself. It works out of the box, but you may need some programming knowledge if you want to change how the heatmap calendars are displayed.

Each heatmap calendar is secretly a dvjs code block, with a total of 6 customizable parameters:

renderHeatmapCalendarMinimal(
	dv, this.container, "04 - Daily", // do not change this!
	p => p.rating, // the value to display; ex: the *rating* property of a note's frontmatter
	(d, v) => dv.span(`[${v}](${d.toISOString().substring(0, 10)})`), // the display text
	"rainbow", // the color scheme; you can change this in the Heatmap Calendar settings
	[1, 2, 3, 4, 5], // what color each number should map to
	" stars", // the suffix in the 'summary' section
	45 // amount of days to display
)

Markdown Tweaks

(see [[99 - Meta/Custom Markdown|Custom Markdown]] for more information!)

How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

3

Forks

1

Last updated 2mo ago