Repository navigation
Releases: sevryng/calloutcustomizer
Release list
v1.0.5
Fixed
- A callout's icon no longer stays stale after customizing it. Live Preview's callout widget only fully rebuilds on a type change, so an icon/colour-only edit just patched
data-callout-metadatain place - the colour updated reactively via CSS, but the icon glyph (drawn by Obsidian's own JS) didn't redraw until the callout was edited again. The plugin now finds the live DOM node right after writing the edit and redraws it directly.
Full Changelog: 1.0.4...1.0.5
v1.0.4
Fixed
- Duplicate entries could appear in the "Callout type" right-click submenu if
data.jsonever ended up with two custom types sharing the same id (from an old build, a manual edit, or a sync merge conflict). Settings are now deduped by id on load.
Changed
- README: the plugin is now listed in Obsidian's community plugin directory, so the "Installing" section points there instead of saying "not yet listed."
Full Changelog: 1.0.3...1.0.4
v1.0.3
No user-facing changes. This release hardens the project's CI and test coverage after the load-breaking regression that was fixed in 1.0.2.
Changed
- CI now runs
npm testas part of the lint workflow - the test suite previously never gated a commit. - Added test coverage for
styles.ts'sStyleManager, the module responsible for the 1.0.1 regression that broke plugin load. Tests coverload()(style element creation, icon rules, colour rules),registerColor()deduplication, andunload(). - Fixed a stale doc comment in
styles.tsthat still described the reverted constructable-stylesheet approach as current. - Backfilled
CHANGELOG.mdwith the1.0.1and1.0.2entries that were missing.
Full Changelog: 1.0.2...1.0.3
v1.0.2
v1.0.1
v1.0.0
Right-click any callout to change its icon, color, title, and fold state - without writing CSS.
Customizations are stored inline in the note as ordinary callout metadata, so every callout can look different and the styling travels with the file through sync, export, and Git.
markdown
[!note|i:telescope c:e41bde]- Field notes
Collapsed by default, pink, with a telescope icon.
What's in it
Every Lucide icon your Obsidian build ships - 1,900+, searchable by name and by Lucide's own tag metadata, so typing favorite finds star. Grouped into 46 categories.
Any color, from theme-aware swatches, a color picker, or a hex field.
Custom SVG icons. Paste markup or pick an .svg from your vault. Input is sanitized to a whitelist of shape elements - scripts, event handlers, and external references are stripped - and a live preview shows the result before you commit to it.
Presets and custom callout types. A preset styles one callout at a time and lives in the markdown. A custom callout type becomes a real > [!corgi] written to a CSS snippet, so it restyles every callout of that type at once and keeps working even with the plugin disabled. The dialog explains the trade-off as you choose.
A right-click menu that works on rendered callouts. Obsidian's own callout menu fires no public event, so this rebuilds it as a superset - Obsidian's Edit and Callout type, plus customize, presets, recent icons, fold, and reset.
Commands for customizing the current callout, cycling fold state, and removing customization.
Installing
Not in the community plugin list yet.
Manual: download main.js, manifest.json, and styles.css below into /.obsidian/plugins/callout-customizer/, then Settings → Community plugins → Reload plugins and enable it.
BRAT: add sevryng/calloutcustomizer as a beta plugin.
Requirements
Obsidian 1.5.0 or later. Works on desktop and mobile.
Known limitations
Custom callout types need the CSS snippet enabled. The plugin writes it and offers a button to turn it on; you can also enable callout-customizer under appearance settings.
Rendered-callout right-click replaces Obsidian's menu. It reimplements both native items and bails out whenever anything is ambiguous - outside an editor, in reading view, or with text selected. This is the piece most likely to need attention after a major Obsidian update. Turn off "Add item to the right-click menu" in settings to disable it entirely.
Icon categories are derived, not official. Lucide publishes categories.json only in its GitHub repo, so grouping comes from each icon's official tag metadata. Drop the real categories.json into the plugin folder as lucide-categories.json to override.
Settings aren't searchable on Obsidian 1.13+. The declarative settings API isn't adopted yet; see the README for why.
Credits
Icons from Lucide, ISC licensed.
Full Changelog: https://github.com/sevryng/calloutcustomizer/commits/1.0.0