Callout Studio

by niv20
5
4
3
2
1
Score: 35/100
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Manage callouts with custom types, Material icons, native context menu actions, and full light and dark mode color control.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Callout Studio

Callout Studio is the ultimate callout manager for Obsidian. It lets you create, edit, and style your own callout types, override the built-in ones, pick icons from large libraries, and keep callouts under control across your whole vault — all from a single settings tab.

Features

Custom callout types

  • Create new callout types with a display name, one or more IDs (aliases), an icon, and per-mode colors.
  • Edit any built-in or user-defined callout. Changes are reflected everywhere instantly via a live preview.
  • Delete user callouts. If a callout is in use across your vault, Callout Studio offers to replace it with another callout or convert the affected blocks to plain text instead of silently breaking notes.
  • Foldable callouts: choose Off, Open by default, or Closed by default per callout type.
  • Aliases: every callout can have multiple IDs. The autocomplete and the vault statistics treat aliases as the same logical callout.

Icons

Three icon sources, all selectable from one icon picker:

  • Lucide icons — Obsidian's built-in set (~1,300 icons). Always available offline.
  • Google Material Symbols — ~3,800 icons, with selectable style (Outlined / Filled / Rounded / Sharp) and weight (100 – 700).

You can also fine-tune each callout's icon size and horizontal/vertical offset.

Per-mode colors

  • Separate Light and Dark colors for every callout — Callout Studio honors Obsidian's current theme automatically.
  • Color presets: Obsidian's original callout palette plus extra curated presets.

Global callout style

These settings apply to all callouts:

  • Borders — pick which sides (top / right / bottom / left, or all) have a visible border.
  • Border thickness — width in pixels.
  • Title scale and Content scale — independent font scales for the title row and the body.
  • Corner rounding — border-radius in pixels.

Default fallback callout

When a note uses a callout ID that doesn't exist in the registry, Callout Studio styles it using the default fallback callout. You can pick which callout acts as the fallback in settings.

Vault discovery

Callout Studio keeps the registry in sync with what's actually used in your vault:

  • Large vaults: If your vault has 500 or more markdown files, the plugin will ask for your permission before performing a full initial scan. If you decline, files will be scanned individually as you open them.
  • New callout IDs typed in open notes are picked up automatically.
  • When you open the settings tab, in-memory editor buffers are scanned for unsaved IDs.
  • A Scan now button performs a one-shot vault scan that adds any unrecognized IDs as fallback rows so you can see them in the list and customize them.
  • Auto-created fallback rows that are never used and never customized are pruned automatically in the background.

Right-click context menu

Right-click on a callout in Reading view, Source mode, or Live Preview to get extra actions injected into Obsidian's native menu:

  • Edit callout settings
  • Open Callout Studio settings
  • Copy callout Markdown

Each item can be toggled on or off individually.

[! autocomplete

When you type [! inside a blockquote, Callout Studio shows a suggestion list of available callouts:

  • Optional icon previews next to each suggestion.
  • Optional color previews next to each suggestion.
  • Picking a suggestion inserts a complete callout header.
  • You can confirm a brand-new callout name on the spot — it will be added as a fallback row to the registry.

Editor commands

Callout Studio adds the following commands. No keyboard shortcuts are assigned by default; you can configure them from Settings → Hotkeys or from the in-plugin shortcut button.

  • Open settings — opens the Callout Studio settings tab.
  • Create new callout type — opens the callout editor.
  • Wrap in callout — wraps the current paragraph or selection in a callout, then triggers the autocomplete so you can pick a type.
  • Unwrap from callout — removes one callout level around the cursor or selection.

Vault insights & maintenance

  • Callout statistics — scans every Markdown file in the vault and lists every callout type with its usage count, file count, and source (built-in / custom / auto-fallback / CSS snippet / unknown).
  • Replace in vault — replace every occurrence of one callout ID with another, in one pass.
  • Convert to plain text — strip a callout while preserving its content as a normal paragraph block.

Import / export

  • Export all your custom callout definitions to a JSON file.
  • Import a JSON file produced by Callout Studio. The importer validates every entry, reports issues per row, and lets you import only the valid entries.
  • Import callout definitions detected in your vault's CSS snippets folder.

Reset

A single Reset everything action returns the plugin to defaults: removes user callouts, restores built-in callouts, resets global styles, and clears the downloaded Material SVG cache.

Localization

The plugin UI is available in English and Hebrew. The active language follows Obsidian's interface language automatically.

Permissions

Callout Studio uses a few Obsidian APIs that touch the vault and the system clipboard. Every use is local to your machine and tied to plugin functionality you can see and control:

  • Vault file enumeration (vault.getMarkdownFiles). Used to power the features listed under Vault discovery and Vault insights & maintenance above: the optional initial scan, the Scan now button, callout statistics, Replace in vault, Convert to plain text, and the pre-delete usage check that warns you before removing an in-use callout. The plugin reads file contents with the standard vault.cachedRead / vault.read APIs and never sends them anywhere.
  • Vault file modification (vault.modify). Only triggered when you explicitly run Replace in vault, Convert to plain text, or the editor commands (Wrap in callout / Unwrap from callout).
  • Clipboard access. Two narrow, user-initiated uses:
    • Copy callout Markdown writes the selected callout to your clipboard when you click the menu item.
    • The ID/alias input field reads a paste event's text so you can paste multiple comma- or space-separated IDs at once. Only the text you actively paste into that field is read; the clipboard is never read otherwise.

No vault content, clipboard data, or usage information is ever transmitted off your device.

Network usage and privacy

Callout Studio works offline by default and never sends any vault content anywhere. The Google Material Symbols icon list and search tags are bundled with the plugin, so opening and searching the Material tab does not fetch icon metadata from Google. The only network activity for Material icons happens on demand:

  • When the picker is open, the relevant Google Fonts stylesheet is loaded from https://fonts.googleapis.com/css2?... so the icon previews can render with the chosen style and weight.
  • When you actually pick a Material icon for a callout, the plugin downloads that single icon's SVG from https://fonts.gstatic.com/s/i/short-term/... and caches the SVG locally so the icon works offline and in PDF export.
  • On startup, if any callout already uses a Material icon whose SVG is missing from the local cache (e.g. after an import), the plugin downloads only those missing SVGs in the background.

If you never use Material icons, no network calls are made. Selected Material SVGs are cached inside the plugin's data.json and you can clear them at any time from settings. No telemetry or analytics is collected.

Install

  1. Open Settings → Community plugins in Obsidian.
  2. Search for Callout Studio and select Install, then Enable.

Manual install

  1. Download manifest.json, main.js, and styles.css from the latest GitHub release.
  2. Copy them into <Vault>/.obsidian/plugins/callout-studio/.
  3. Restart Obsidian and enable Callout Studio in Settings → Community plugins.

Development

npm install
npm run dev    # watch build
npm run build  # production build (typecheck + minified bundle)
npm run lint   # ESLint with the official obsidianmd plugin rules

Source lives under src/ and is bundled by esbuild into main.js. The release artifacts are main.js, manifest.json, and styles.css.

License

0BSD