Pretty Properties

by Anareaty
5
4
3
2
1
Score: 60/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

343
stars
285,091
downloads
23
forks
320
days
1
days
102
days
10
total PRs
5
open PRs
3
closed PRs
2
merged PRs
135
total issues
48
open issues
87
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 Lucide 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 lucide 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 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 */}

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 Meta Bind scroll input for a number field:

{{propertyValue}} (`INPUT[slider(addLabels(true)):someNumber]`)

meta-bind

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

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.
Additional Icons
3 years ago by Matthew Turk
Add additional iconsets to Obsidian
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.
Another Name
a year ago by Jiyuan Wang
Add a subheading to your note in Obsidian
April Automatic Timelines
3 months ago by april-gras
Simple timeline generator plugin for story tellers using obsidian
Auto Card Link
4 years ago by Nekoshita Yuki
Auto Tag
3 years ago by Control Alt
Easily generate relevant tags for your Obsidian notes.
Bases Board
13 days ago by flowing-abyss
Kanban and gallery views for Obsidian Bases.
Bases Toolbox
a month ago by Grub Basket
Adds Quality of Life features to Obsidian Bases
Better Export PDF
3 months ago by l1xnan
Obsidian PDF export enhancement plugin
Binary File Manager
5 years ago by qawatake
An Obsidian plugin to manage binary files
Boardgame Search
2 years ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Book Clipper
9 months ago by Hossein Fardmohammadi
Save book details from websites into your notes
Bulk Exporter
3 years ago by symunona
Bulk export Markdown filtered, renamed and sorted by front matter metadata into a new structure.
Combo Colors
2 years ago by Kevin Bowen
Automatically apply color to fighting game combo notations in Obsidian.
Conditional Properties
8 months ago by Diego Eis
Automate frontmatter property updates in your Obsidian notes using simple conditional rules.
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.
Copy Metadata
3 years ago by wenlzhang
An Obsidian plugin to copy metadata to clipboard and insert it into file name.
Countdown To
a year ago by Gui Cattani
A countdown/progress Obsidian widget using progressbar.js
Current File Tags
2 years ago by Trung Tran
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
Dataview
6 years ago by Michael Brenan
A data index and query language over Markdown files, for https://obsidian.md/.
Dataview Autocompletion
2 years ago by Daniel Bauer
Discrete
a year ago by shkarlsson
ExMemo Assistant
2 years ago by ExMemo AI
Using LLMs to manage files and generating metadata such as tags and summaries.
Explorer Colors
2 years ago by Scott Van der Zwet
Set cascading colors for files and folders in Obsidian.
File Index
3 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
File Title Updater
a year ago by wenlzhang
An Obsidian plugin that synchronizes titles between filename, frontmatter, and first heading in your notes.
Fold Properties
2 years ago by James Alexandre
Adds Fold/Unfold Properties Function to Folder Context Menu
Fold Properties By Default
2 years ago by Tommy Bergeron
Always have editor/metadata properties folded by default.
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
Frontmatter Markdown Links
2 years ago by mnaoumov
Obsidian Plugin that adds support for markdown links in frontmatter
Frontmatter Metadata Link Classes
a year ago by Varvara Zmeeva / zmeeva.io
Enhanced internal links with automatic classnames based on frontmatter metadata.
Frontmatter to HTML Attributes
6 months ago by Tarek Saier
GitHub Integration
a year ago by Kirill Zhuravlev
Plugin that fetch your github stars into notes
Image Manager
a month ago by David V. Kimball
Insert, rename, and sort external images by transforming them into local files within your notes.
Image Metadata
2 years ago by alexeiskachykhin
Adds image metadata editing capabilities to Obsidian
Kanban Status Updater
a year ago by Ankit Kapur
Obsidian plugin that automatically updates the note property when card is moved to a column.
KoReader Highlight Importer
2 years ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Linked Data Vocabularies
3 years ago by kometenstaub
Add linked data to the YAML of your Obsidian notes.
Live Variables
2 years ago by Hamza Ben Yazid
Define variables in your note's properties and reuse them throughout your content.
LLM Tagger
2 years ago by David Jayatillake
Media Companion
2 years ago by Nick de Bruin
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.
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.
Metadata Auto Classifier
2 years ago by Beomsu Koh
AI-powered Obsidian plugin that automatically classifies and generates metadata (tags, frontmatter) for your notes.
Metadata Extractor
5 years ago by kometenstaub
Obsidian Plugin that provides metadata export for use with third-party apps.
Metadata Icon
3 years ago by Benature
change metadata entry icon
Metadata Menu
4 years ago by mdelobelle
For data management enthusiasts : type and manage the metadata of your notes.
Metadata Validator
14 days ago by flowing-abyss
Manifest-driven metadata validation for Obsidian.
MetaEdit
5 years ago by Christian B. B. Houmann
MetaEdit for Obsidian
Multi Properties
3 years ago by fez-github
Plugin for Obsidian that allows user to add properties to multiple notes at once.
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)
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.
Note aliases
4 years ago by Pulsovi
This plugin manages wikilinks aliases and save them on the aliases list of the linked note
Note Codes
a year ago by Ezhik
Reference your Obsidian notes from anywhere with simple 4-character codes.
Note Favicon
a year ago by mdklab
Obsidian plugin – Show Favicon from Metadata
Note Progressbar
5 months ago by Ryoma Kawahara
Note UID Generator
a year ago by Valentin Pelletier
Allow you to automatically generate UID for the notes in your vault.
Notes dater
3 years ago by Paul Treanor
Adds created_on and updated_on dates of the active note to status bar
Onto Tracker
2 years ago by Jacob Hart
Plugin for obsidian allowing project management with ontologies.
Page Properties
3 years ago by Anton Bualkh
A plugin that adds Logseq-like page tags to Obsidian
Papers
a year ago by William Liang
An obsidian plugin to retrieve and import research papers.
Paste Image Into Property
2 years ago by Nito
PixNote
15 days ago by Sofia Milton
Property Panels
a month ago by Eva Chen
Display and edit Obsidian frontmatter properties in configurable panels that stay inside the note's scrollable content.
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.
Sidebar Highlights
a year ago by trevware
Simple File Info
a year ago by Lukas Capkovic
Snipd Official
4 months ago by snipd-app
Supercharged Links
5 years ago by mdelobelle
obsidian plugin to add attributes and context menu options to internal links
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.
Text Progress Bar
4 years ago by Michael Adams
Low-fi text-based progress bar for Obsidian
Update Time
2 years ago by Sébastien Dubois
Obsidian plugin that updates front matter to include creation and last update times
Update time on edit
5 years ago by beaussan
Virus Total Enrichment
2 years ago by ytisf
An Obsidian plugin to enrich a note with VirusTotal API.
Watched-Metadata
2 years ago by Nail Ahmed
Watches for changes in metadata and updates the note content accordingly.