Skip to content

Visual Formatting

All content written to Obsidian should follow these rules. Visuals > prose. Always.

Content typeFormatWhy
Process, flow, workflowmermaid diagramShows sequence and branching visually
Comparing options, structured dataTableScannable rows > bullet lists
Key insight that must stand outCallout (color = meaning)Color-coded boxes pop visually
Long reference, occasional accessFoldable callout [!info]-Progressive disclosure — collapsed by default
Critical term or value==highlight==Draws eye to the key thing
Important phrase in a paragraph**bold**Layer 2 emphasis
Actionable items- [ ] checkboxesNEVER inside callouts (rendering bug)
Reusing content across notes![[Note#Section]] embedSee related content in place — no context switching
Rejected option or old approach~~strikethrough~~Visual “considered but not chosen” signal
Internal meta-notes%%comment%%Hidden in reading view — keeps notes visually clean
Connecting notes[[wikilinks]]Group in ## Related section
Architecture decisionADR formatTL;DR → Problem → Options table → Decision
Everything elseShort paragraphs (1-2 sentences)--- between major sections

Every note should follow this skeleton:

  1. YAML frontmatter — type, status, tags
  2. > [!abstract] TL;DR — one-sentence summary at top (Layer 4)
  3. Emoji headings — instant visual categorization
  4. Visual content — diagrams, tables, callouts
  5. ## Related — wikilinks to connected notes
---
type: bug | feature | reference | daily | decision | cheatsheet
status: active | resolved | archived | in-progress
tags: []
created: YYYY-MM-DD
related: []
---
  • H1 (#): Document title only (one per file)
  • H2 (##): Major sections — Status, Today’s Work, Meetings, Notes, Root Cause, Fix/Options, Key Files, Related
  • H3 (###): Subsections — Completed, In Progress, Blocked
CalloutColorUse for
[!abstract]TealTL;DR summary — put at top of every note
[!tip]CyanBest practices, recommendations
[!warning]OrangeGotchas, risks, things that can go wrong
[!danger]RedBlockers, critical issues, breaking changes
[!question]YellowOpen decisions needing input
[!info]BlueContext, background, explanations
[!success]GreenCompleted items, confirmations
[!bug]RedBug reports
[!example]PurpleCode examples, scenarios
[!failure]RedWhat went wrong, post-mortems
[!quote]GrayCitations, references
[!todo]BlueActionable items

Foldable: [!info]- collapsed, [!info]+ expanded. Use for long code or reference that clutters the note.

Use instead of writing paragraphs about processes:

  • flowchart LR / flowchart TB — workflows, data flows, decision trees
  • sequenceDiagram — request/response, multi-actor interactions
  • graph TD — architecture, dependency relationships
  • gantt — timelines, project schedules
  • pie — proportions, status breakdowns

Obsidian-specific gotchas:

GotchaWrongRight
Line breaks in node labels["Text\nMore"] — renders literal \n["Text<br/>More"] — actual line break
Dark theme colorsfill:#22c55e,color:#fff — bright green, white text washes outfill:#4ade80,color:#052e16 — softer green, dark text for contrast
Node text readabilityHigh-saturation fills with white textUse lighter fills with dark text (e.g., color:#052e16 on green, color:#172554 on blue)

Dark-theme-safe color palette:

MeaningFillStrokeText
Done / success#4ade80#22c55e#052e16
In progress#60a5fa#3b82f6#172554
Warning / open#fbbf24#f59e0b#451a03
Blocked / error#f87171#ef4444#450a0a
Neutral#94a3b8#64748b#0f172a
Accent / purple#c084fc#a855f7#3b0764

Each time you revisit a note, compress it one layer:

LayerActionObsidian syntax
1Capture rawDaily note / paste
2Bold key sentences**bold**
3Highlight critical terms==highlight==
4Executive summary> [!abstract] at top
5Create deliverableSeparate linked note

Pull content from other notes inline — no duplication, always up-to-date:

  • ![[Note]] — embed entire note
  • ![[Note#Section]] — embed a specific heading section
  • ![[Note#^block-id]] — embed a single block/paragraph

Use embeds to pull key diagrams, decisions, or root causes into daily notes. Ideal for referencing a mermaid diagram or ADR summary without copy-pasting.

  • Tasks: - [ ] unchecked, - [x] completed — OUTSIDE callouts
  • Links: Wikilinks [[Note]] for internal, [text](url) for external
  • Embeds: ![[Note#Section]] to transclude content inline (see above)
  • Strikethrough: ~~text~~ for rejected options, old approaches, superseded decisions
  • Comments: %%hidden text%% invisible in reading view — use for internal meta-notes, TODOs for yourself
  • Code blocks: Always specify language, use foldable [!example]- for long blocks
  • Tags: #meeting, #technical, #bug, #architecture
  • Whitespace: --- between major sections for visual breathing room

ADR Format (Architecture Decisions / Bug Reports)

Section titled “ADR Format (Architecture Decisions / Bug Reports)”
> [!abstract] TL;DR
> One sentence: what was decided/found and why
## Status
## Problem / Goal
## Root Cause (if bug)
## Options Considered (table)
## Decision
## Key Files
## Related