Pretty Properties

by Anareaty
5
4
3
2
1
Score: 61/100

Description

The Pretty properties plugin transforms how frontmatter metadata appears by adding visual flair and interactivity. You can embed cover images, banners, and icons directly into the metadata area, with customizable shapes, placements, and sizes. It supports colorful styling for list values, tags, text fields, and even dates-allowing you to visually distinguish metadata at a glance. It also offers progress bars for number fields, relative date coloring, and clickable property values for instant search. For power users, it integrates with Bases (still experimental) and TaskNotes, syncing task counts into note properties. The plugin also includes several quality-of-life touches, like the ability to hide properties or apply custom CSS to pill elements.

Reviews

  • Ganessh Kumar R P
    Reviewed on Dec 28th, 2025
    No review text provided.

Stats

339
stars
266,464
downloads
21
forks
360
days
88
days
142
days
9
total PRs
4
open PRs
3
closed PRs
2
merged PRs
133
total issues
49
open issues
84
closed issues
211
commits

Latest Version

README file from

Github

Pretty properties

This plugin makes properties in notes and bases more visually appealing with images, colors and custom visual elements.

The main features:

  • add custom colors to properties and tags;
  • insert cover image near the metadata block;
  • add banner and icon to the note;
  • hide specific properties from the note;
  • set custom date format for date properties;
  • show number property as progress-bar;
  • apply your own custom formatting to any property using the template language.

book note

Table of contents

Cover image

Add image near the metadata block to save space in the note. Works great for book notes, people profiles etc. You can change the shape and size of the image.

To add cover image you can use command "Select cover image" from the command pallete. Then you can select a local image from your vault or add a link to the external image. You can set specific folder in the settings to look for the local cover images.

Adding the cover will add the "cover" property to your note. Do not delete the property, it is needed for the image to show. You can hide the property instead.

In the settings you can add more then one cover property. If you put them into a note, only the first one will be rendered, but you can use the different cover properties in different notes if you wish so.

You can also edit the cover property manually instead of using the command. The plugin supports various types of data that can be pasted into a property and rendered as cover image:

  • wikilinks: ![[My cover]] or [[My cover]];
  • markdown links: ![My cover](https://raw.githubusercontent.com/anareaty/pretty-properties/HEAD/My%20cover.png) or [My cover](My%20cover.png);
  • raw URL links: https://...;
  • raw file links: file://...;
  • base64-encoded images: data:image/...base64...;
  • links to youtube videos (will be rendered as video previews);
  • Any custom text (if it is not recognised as one of the above, it will be rendered as Markdown).

You can add custom formatting template to a cover property, so the property data is transformed before rendering.

Right-click on the cover to change it's shape, position or select another image. You can use initial shape with 3 custom widths, vertical, horizontal, square and circle. You can set the custom width for every shape in the settings.

[!NOTE]
Cover shapes would look a bit different in narrowed windows or on devices with small screen. This is intentional to make them look more neat in the limited space.

Changing position allows you to place the cover on the left, right, top or bottom of the metadata block. You can set the default position in the settings.

person profile note

Banner

You can add banners to your notes. To do so run command "Select banner image". It will add the "banner" property to your note. Right-click on the banner to change the banner image or it's position.
You can set specific folder to look for the local banner images.

You can edit the banner property manually. There are the supported kinds of property data for banners:

  • wikilinks: ![[My cover]] or [[My cover]];
  • markdown links: ![My cover](https://raw.githubusercontent.com/anareaty/pretty-properties/HEAD/My%20cover.png) or [My cover](My%20cover.png);
  • raw URL links: https://...;
  • raw file links: file://...;
  • base64-encoded images: data:image/...base64....

If you are using some other banner plugin, like Pixel Banner or Simple Banner, it may conflict with the Pretty Properties' banners. To avoid this you can go to the settings and turn the banner feature off. Alternatively you can just change the banner property. This way you can use Pretty Properties' banners in some notes and the different plugin's banners in another notes.

note with banner

Icon

You can add icons alongside tha banner or just on their own. To do this run the command "Select icon". This will ad the "icon" property to you note. For the icon you can use images, built-in Obsidian icons or any symbols, including emoji. You can set a specific folder to look for local icon images.

You can edit the icon property manually. There are the supported kinds of property data for icons:

  • for image icons:
    • wikilinks: ![[My cover]] or [[My cover]];
    • markdown links: ![My cover](https://raw.githubusercontent.com/anareaty/pretty-properties/HEAD/My%20cover.png) or [My cover](My%20cover.png);
    • raw URL links: https://...;
    • raw file links: file://...;
    • base64-encoded images: data:image/...base64...;
  • for SVG icons add the name of the icon, for example star;
  • any other text will be rendered as is, you can use it to add the one or several emojis or some additional title. Just keep in mind that the icon text will not wrap, so don't make it too long.

In the settings you can select the opion to show icon inside the inline title instead of the top of the note.

base

Hiding properties

If you have many properties in the note, you may want to hide some of them while keeping the others visible. This plugin makes it easy. Click on the property icon and select "Hide property" in menu. If you want to see it again, run command "Toggle reveal / hide all hidden properties". After that you will see the hidden properties and can mark them as not hidden.

Banner, cover and icon properties can be hidden or revealed from the menus opened by right-clicking on the banner / cover / icon image.

You can also mark the property to only be hidden if it is empty. Or you can set all empty properties to be hidden by default in the settings.

Additionally you can hide the properies header and property adding button. There is also an option to hide the whole metadata block if all properties in it are hidden.

If you are using the keyboard navigation, all hidden elements will be temporarily revealed when you focus on them with keyboard. I allows you to edit any properties without unhiding them.

property menu with hide option

Colored properties and tags

You can assign their own colors to the property values. It includes list properties, text properties and tags. Assigning colors to tags affects both frontmatter tags and inline tags inside the note.

To change the color of the list or tag property open the color menu by right-clicking on the property pill. To change the color of the text property hover over property value to reveal the color button. Remember, then the color assigned to the specific text, so if you edit the text the color may disappear.

Chosing the "Select color" option will affect both text color and the background of the property pill. By default the text color is set to have the same hue as the background color but with enough contrast to be readable. Chosing the "Select text color" option will only change the text color independently of the background.

In the color selection menu you can chose from the set of the rainbow colors and the accent color that are defined by you theme. You can also chose a custom color from the color picker. Finally you can chose the options "none" or "default". "None" will make the property background transparent and the property text the same as the regular text color. "Default" will return the property colors to those that are defined by your theme.

You can edit the color menu by adding your own saved custom colors and disable the theme colors you don't want to use.

You can also add you own styling to the properties via CSS. For this each property element get special data-attribute containing the actual value. It can be used for styling like this:

[data-property-pill-value="my-list-property-value"] {    /* my styles */}
[data-property-value="my-text-property-value"] {    /* my styles */}
[data-property-value="my-tag-value"] {    /* my styles */}

If you are using Pretty Properties alongside the Notebook Navigator plugin, you can enable sync the property colors of two plugins. You can set the options to change Notebook Navigator colors when Pretty Properties colors are edited, or change Pretty Properties colors when Notebook Navigator colors are edited, or both.

Relative date colors

Every date property gets an attribute "data-relative-date" with the possible values being "past", "present" and "future". It allows to style dates differently based of their relation to the current time. You can add some css yourself or you can select the colors from the pickers in the settings to mark past, present and future dates.

date colors

Relative date attributes are not updated automatically as the time pass. If the time have come for the "present" date to be turned into the "past" date, you need to reopen the note to change the color.

Custom date formats

You can select custom formats for the date and datetime properties. Set format in the settings using the moment.js syntax. 

custom dates

Custom dates in bases are disabled by default, because they can make bases slower. You can turn them on in settings (an alternative could be a formula in bases like datetime_property.format("YYYY-MM-DD HH:mm:ss")).

Formatting templates

The formatting settings is an experimental feature that allow you to display properties differently by replacing the value with a special template. This allows you to for example store a number property that represents a duration in seconds (eg. 829), but render it visually as a human readable duration (eg. 13m 49s). This avoids having to store the same value twice in a note in multiple formats.

property-formatting.png

You can set the formatting templates in the plugin settins. The template should be written using Handlebars, a templating language similar to Obsidian's built in date/time template syntax. The syntax uses double curly braces around helper names. Arguments are passed as space-separated values and can be nested. Pretty Properties adds {{propertyValue}} and {{propertyName}}, which will be replaced by the respective content.

Supported helpers

Currently supported helper packages are:

Additionally to make some functionality more easily accessible Pretty properties also adds custom helpers:

{{durationAbbreviated}}**

Converts a duration into an abbreviated format, omitting leading zero units.

Params:

  • time {Number}: The input value
  • unit {String}: The unit of the input value
  • returns {String}
{{durationFormatted}}

Turns a duration into the specified format. Params:

  • time {Number}: The input value
  • unit {String}: The unit of the input value
  • format {Boolean}: Optional. See dayjs
  • returns {String}
{{durationHumanized}}

Converts a duration into a natural-sounding string. Params:

  • time {Number}: The input value
  • unit {String}: The unit of the input value
  • withSuffix {Boolean}: Optional. Will add "in " at the front or " ago" at the end.
  • returns {String}

Example Templates

Show a duration originally in seconds as human readable (eg. 829 -> in 14 minutes):

{{durationHumanized propertyValue "s" true}}

Show a duration originally in seconds as a clock (eg. 829 -> 00:13:49):

{{durationFormatted propertyValue "seconds" "HH:mm:ss"}}

Show a duration originally in seconds as abbreviated (eg. 829 -> 00h 13m 49s):

{{durationFormatted propertyValue "seconds" "HH"}}h {{durationFormatted propertyValue "seconds" "mm"}}m {{durationFormatted propertyValue "seconds" "ss"}}s

Show a steamid property as an iframe (to render cover as iframe add this template to the cover setting instead of the property format settings):

<iframe src="https://store.steampowered.com/widget/{{propertyValue}}" frameborder="0" width="100%" height="190"></iframe>

markdown-cover

Progress bars

Right-click on the number property icon to add simple progress bar to any number property. By default maximum value of progress bar is 100 and property value is treated as percent. If you want to add custom number as progress maximum, you need to add additional number property to the note and in the first property menu select the option "Set max progress from another property".

Progress bars are not supported in bases, because you can create progress-bars using regular base formulas. Here is a couple of examples of formulas you can use (or you can write your own).

Progress-bar formula:

if( note["maxProperty"], html("<progress class='metadata-progress' max='" + 
note["maxProperty"] + "' value='" + 
if(note["valueProperty"], note["valueProperty"], 0) + 
"' aria-label='" + 
if(note["maxProperty"], (if(note["valueProperty"], note["valueProperty"], 0) / note["maxProperty"] * 100).round(), " ") + " %" + 
"' data-tooltip-position='top' data-tooltip-delay='500'>"), "")

Progress circle formula:

if(note["maxProperty"], html("<div class='metadata-circle-progress'  style='background: radial-gradient(closest-side, var(--background-primary) 64%, transparent 65% 100%), conic-gradient(var(--color-accent-1) " + if(note["maxProperty"], (if(note["valueProperty"], note["valueProperty"], 0) / note["maxProperty"] * 100).round(), 0) + "%" + ", var(--background-secondary) 0);' aria-label='" + 
if(note["maxProperty"], (if(note["valueProperty"], note["valueProperty"], 0) / note["maxProperty"] * 100).round(), " ") + " %" + 
"' data-tooltip-position='top' data-tooltip-delay='500'></div>"), "")

progress bar

Selection buttons

You can add selection buttons to the text properties. Clicking the button opens dropdown menu that allows you to select from predefined options. It can be useful, for example, to quickly switch between note statuses.

To add selection button go to the additional elements settings and add the rule for the selected property. You can add different sets of options based on the note folder. For example, in the "Books" folder your "status" property can have options "want to read", "reading" and "finished", but in the "Tasks" folder you statuses can be "to do", "done" or anything else.

If the property is added to the list but have no rules, selection button will show all it's existing values instead. These values can not be filtered. Clicking on the property directly, instead of the button, will show the original selection dropdown.

If you Ctrl+click on any property value, the plugin will open search for this value in the search tab (works only on desktop). If the property value is a link you should click outside the link.

base

Extra features

There are couple of the extra features added mostly to reuse the existing code. They will be not developed furter but you may find them useful.

  1. Commands in command pallette to insert a local image or an emoji into a note. Let you chose an image or emoji from the visual selection menu, the same as used when you select a cover or an icon.

  2. When you right-click on an inline tag in a note in the editor menu added the option to quickly delete the tag.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Binary File Manager
5 years ago by qawatake
An Obsidian plugin to manage binary files
Auto Card Link
4 years ago by Nekoshita Yuki
Media DB Plugin
4 years ago by Moritz Jung
A plugin that can query multiple APIs for movies, series, anime, games, music and wiki articles, and import them into your vault.
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
Meta Bind Plugin
4 years ago by Moritz Jung
A plugin for Obsidian to make your notes interactive with inline input fields, metadata displays, and buttons.
Note aliases
4 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
Text Progress Bar
4 years ago by Michael Adams
Low-fi text-based progress bar for Obsidian
Page Properties
4 years ago by Anton Bualkh
A plugin that adds Logseq-like page tags to Obsidian
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
Multi Properties
3 years ago by fez-github
Plugin for Obsidian that allows user to add properties to multiple notes at once.
File Index
3 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
Additional Icons
3 years ago by Matthew Turk
Add additional iconsets to Obsidian
Metadata Icon
3 years ago by Benature
change metadata entry icon
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Live Variables
2 years ago by Hamza Ben Yazid
Define variables in your note's properties and reuse them throughout your content.
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Dataview
6 years ago by Michael Brenan
A data index and query language over Markdown files, for https://obsidian.md/.
Supercharged Links
5 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Metadata Extractor
5 years ago by kometenstaub
Obsidian Plugin that provides metadata export for use with third-party apps.
Update time on edit
5 years ago by beaussan
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Fold Properties
2 years ago by James Alexandre
Adds Fold/Unfold Properties Function to Folder Context Menu
ExMemo Assistant
2 years ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
KoReader Highlight Importer
2 years ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Frontmatter Markdown Links
2 years ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Boardgame Search
2 years ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Sentinel
2 years ago by Giorgos Sarigiannidis
A plugin for Obsidian that allows you to update properties or run commands based on document visibility changes.
Current File Tags
2 years ago by Trung Tran
Dataview Autocompletion
2 years ago by Daniel Bauer
NetClip
2 years ago by Elhary
this plugin is for Obsidian that allows you to browse the web and clip webpages directly into your vault.
Media Companion
2 years ago by Nick de Bruin
Explorer Colors
2 years ago by Scott Van der Zwet
Set cascading colors for files and folders in Obsidian.
Fold Properties By Default
2 years ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Combo Colors
2 years ago by Kevin Bowen
Automatically apply color to fighting game combo notations in Obsidian.
LLM Tagger
2 years ago by David Jayatillake
Paste Image Into Property
2 years ago by Nito
My Thesaurus
2 years ago by Mara-Li
A plugin that auto tags file based on contents and a csv file or a Markdown table (inspired by https://github.com/pmartinolli/MyThesaurus)
Content Cards
2 years ago by leo
Insert content cards in Markdown, such as timeline, highlightblock, target card, book information card, music information card, movie information card, photoes ablum, business card, content subfield, countdown, SWOT,BCG.
AI Tagger Universe
2 years ago by Hu Nie
An intelligent Obsidian plugin that leverages AI to automatically analyze note content and suggest relevant tags, supporting both local and cloud-based LLM services.
Note Favicon
2 years ago by mdklab
Obsidian plugin – Show Favicon from Metadata
File Title Updater
2 years ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
Kanban Status Updater
2 years ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
Simple File Info
2 years ago by Lukas Capkovic
Another Name
a year ago by Jiyuan Wang
Add a subheading to your note in Obsidian
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
Countdown To
a year ago by Gui Cattani
A countdown/progress Obsidian widget using progressbar.js
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
Sidebar Highlights
a year ago by trevware
Symbol linking
a year ago by Evan Bonsignori ; Mara-Li
Adds ability to link with any trigger in Obsidian. Each trigger can limit linking to specific folders or file.
Frontmatter Metadata Link Classes
a year ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Discrete
a year ago by shkarlsson
Papers
a year ago by William Liang
An obsidian plugin to retrieve and import research papers.
Note Codes
a year ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
Book Clipper
10 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Conditional Properties
9 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
Frontmatter to HTML Attributes
7 months ago by Tarek Saier
Note Progressbar
6 months ago by Ryoma Kawahara
Snipd Official
5 months ago by snipd-app
Better Export PDF
4 months ago by l1xnan
Obsidian PDF export enhancement plugin
April Automatic Timelines
4 months ago by april-gras
Simple timeline generator plugin for story tellers using obsidian
Bases Toolbox
3 months ago by Grub Basket
Adds Quality of Life features to Obsidian Bases
Property Panels
3 months ago by Eva Chen
Display and edit Obsidian frontmatter properties in configurable panels that stay inside the note's scrollable content.
Image Manager
2 months ago by David V. Kimball
Insert, rename, and sort external images by transforming them into local files within your notes.