Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Flashcard Canvas

Juan Carlos EsguerraJuan Carlos Esguerra35 downloads

Mindmaps on the canvas: boxes fit their text, Tab and Enter add connected boxes, and the map keeps itself tidy. Callout mode turns boxes into foldable flashcards with a study mode.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

Mindmaps on Obsidian's canvas, with an optional flashcard mode.

On any canvas, Flashcard Canvas makes boxes fit their text, lets you add connected boxes with Tab and Enter, and arranges the boxes as a tree along the arrows between them, keeping it tidy as you work.

Turn on callout mode for a canvas and its boxes become flashcards written as foldable callouts: the title is the question, the body the answer. Click the title to fold or unfold a card, and use study mode to hide every answer until you reveal it.

Everything stays in the .canvas file, as plain JSON Canvas boxes and arrows. Without the plugin, the canvas still opens in Obsidian as it was.

A sibling of Flashcard Bank, which keeps flashcards in your notes instead.

The mindmap, on every canvas

Boxes fit their text

A text box grows and shrinks to fit what it shows, after you edit it, change its width, or (in callout mode) fold or unfold it. Only the height changes.

  • Boxes you haven't touched keep their size. Opening a canvas never resizes anything; a box is fitted only after its text or width changes.
  • Only text boxes. Notes, images, PDFs and web pages keep the size you give them.
  • You can still make a box taller by dragging its bottom edge; it's fitted again only when its text or width changes.

Adding connected boxes

With a box selected (not being edited):

Key Adds
Tab A child: a new text box to its right, with an arrow from the selected box
Enter A sibling: a new text box right below it, under the same parent. A box without a parent gets a new box below it, unconnected.

The new box opens for editing. Any kind of box can be the parent: a text box, a note, an image. Both keys can be turned off in the settings, and both are commands too (Add a child box, Add a sibling box), so you can give them other hotkeys.

Turning the keys on means Enter no longer starts editing the selected box, as it does in a plain canvas. Double-click the box instead.

Layout

Tidy layout (the network icon in the canvas controls) arranges the boxes as a tree that follows the arrows: each box's children in a column to its right, stacked top to bottom and centered on it, and separate trees stacked below each other. Arrows from a box to its children are redrawn from its right side to their left side.

  • Siblings keep the top-to-bottom order they have, so dragging a box above its sibling and tidying swaps them.
  • A box with arrows from two parents is placed under one of them; the other arrow is drawn across.
  • The first tree's root stays where it is, so the map doesn't jump.
  • Groups stay where they are, and so does everything entirely inside a group. Moving those boxes would take them out of their group. A box that only partly overlaps a group is arranged like any other.

Keep tidy (the magnet icon) runs the same arrangement after every change: resizing, adding, deleting, linking, or dropping a dragged box. This is what makes the map reflow when a box's size changes. With it on, a box you drag elsewhere goes back into the tree; only its order among its siblings sticks. Turn it off to place boxes freely, and use Tidy layout when you want a cleanup.

Keep tidy is set per canvas. It starts on in new canvases (ones with no boxes when the plugin first opens them) and off in canvases that already have boxes, so installing the plugin never rearranges your existing canvases.

Callout mode

Turned on per canvas with the callout button (a square with a chevron) in the canvas controls, or the command Toggle callout mode for this canvas.

What counts as a card

A text box whose first line opens a foldable callout:

> [!pregunta]+ What is present value?
> The value today of money you will receive in the future.
  • The + or - after the type is what makes it a card: + means open (answer showing), - folded.
  • Any callout type works. New cards use the type from the settings (pregunta by default).
  • Other boxes on the canvas (plain text, notes, images) stay ordinary boxes, and take part in the layout as usual.

New cards

In callout mode, every new text box starts as a card, with the question placeholder selected so you can type straight away:

> [!pregunta]+ p
> a

That goes for boxes made by double-clicking the canvas, dragging a card from the bottom bar, or with Tab and Enter. Boxes you paste text into, and boxes already on the canvas, are not changed.

Folding

Click a card's title to fold or unfold it. The +/- in the card's text changes, so the folding is saved with the canvas, and the box resizes to fit. Fold all cards and Unfold all cards in the canvas controls (or the command palette) do it for every card on the canvas.

Study mode

Study mode (the graduation cap) hides every answer.

  • Click a card to reveal it, and again to hide it.
  • N, or the Next card button, reveals the next hidden card, following the arrows from the first box, level by level. Cards inside groups come last.
  • A badge at the top shows how many cards are revealed.

Study mode doesn't change the file. Cards shrink while their answers are hidden (and the map reflows if Keep tidy is on), but the canvas keeps saving the layout from before study mode, and leaving study mode puts every box back where it was. Folding, Tab and Enter, and the layout buttons are off while studying.

Colors

Box colors work as usual: the canvas colors the box's border and background, and in callout mode the callout keeps its own color. On top of that:

  • New boxes take the color of the box they come from. Tab gives the child its parent's color; Enter gives the sibling the color of the box you pressed it on.
  • Arrows take the color of the box they leave from.
  • Recoloring a box recolors the boxes below it in the tree, and the arrows leaving them. Only the tree counts: a box reached by a second arrow (one drawn across, see Layout) keeps its color. Boxes that aren't connected aren't touched. After that, you can still give any box below its own color.

Commands

Command Does
Tidy layout Arranges the boxes once
Toggle keep tidy for this canvas
Add a child box / Add a sibling box Same as Tab and Enter
Toggle callout mode for this canvas
Fold all cards / Unfold all cards Sets - or + on every card (callout mode)
Toggle study mode Callout mode
Reveal the next card In study mode

Settings

Setting Default Meaning
Add boxes with the keyboard On Tab and Enter add child and sibling boxes
Keep tidy in new canvases On Keep tidy for canvases with no boxes when the plugin first opens them. Canvases that already had boxes start with it off
Callout mode
Callout type pregunta The type in > [!type]+
Question placeholder p The title of a new card
Answer placeholder a The body of a new card
New cards start open On New cards start with + (on) or - (off)

Callout mode and Keep tidy for each canvas are kept in the plugin's settings, by file path, and follow the canvas when you rename or move it.

The callout type has no special look unless your theme or a CSS snippet gives it one; otherwise Obsidian shows it like a plain note callout.

Installation

From Obsidian: Settings → Community plugins → Browse, search for Flashcard Canvas, install it, then enable it.

Manually: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/flashcard-canvas/, then enable Flashcard Canvas in Settings → Community plugins.

It requires Obsidian 1.7.2 or later. It makes no network requests.

If you also use another plugin that makes the canvas work like a mindmap or resizes canvas boxes (Canvas Mindmap, Node Auto Resize, the auto-resize option of Advanced Canvas), turn it off: two plugins handling Tab and Enter, or both resizing boxes, get in each other's way. After turning one off, restart Obsidian, since some of them stay attached to canvases that are already open.

How it works

Obsidian's canvas has no public API for plugins, so this plugin works with the canvas's internal objects, the way other canvas plugins do. It checks for each internal method before using it, so if a future Obsidian version changes them, a feature stops working instead of the canvas breaking. If something stops working after an Obsidian update, that's the likely reason.

File Role
src/callout.ts Pure card logic, no Obsidian imports: recognizing a card, its fold marker, the template, where the title is.
src/layout.ts Pure layout logic, no Obsidian imports: which boxes are arranged, the tree from the arrows, tidy positions, study order, arrow sides.
src/board.ts Everything on one open canvas: fitting boxes, Tab and Enter, Tidy layout and Keep tidy, callout mode (folding, study mode), the canvas controls.
src/main.ts Plugin entry: hooks into the canvas (new boxes, saves, loading), commands, per-canvas preferences.
src/internals.ts The parts of the canvas's internal objects the plugin uses.
src/settings.ts Settings and their tab.

Development

Requires Node.js 20 or later.

npm install
npm run dev     # rebuild main.js on every change
npm run build   # typecheck, then a production build of main.js
npm run lint    # ESLint with Obsidian's plugin rules
npm test        # unit tests for src/callout.ts and src/layout.ts

To release, bump the version (npm version patch, or minor / major) and push with git push --follow-tags. The release workflow builds the plugin and attaches main.js, manifest.json and styles.css to a draft release; publish it from the repository's Releases page. Obsidian reviews each new release automatically.

License

MIT

HealthExcellent
ReviewSatisfactory
About
Create mindmaps on Canvas with text boxes that auto-fit their content and automatically arrange into tidy tree layouts along arrows. Turn on callout mode to convert boxes into foldable flashcards (title = question, body = answer) and use study mode to hide answers until you reveal them; add connected child or sibling boxes for quick expansion.
CanvasFlashcards
Details
Current version
1.0.0
Last updated
Last week
Created
2 weeks ago
Updates
1 release
Downloads
35
Compatible with
Obsidian 1.7.2+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Ko-fi
Author
Juan Carlos EsguerraJuan Carlos Esguerrajcesguerram
GitHubjcesguerram
juan-carlos-esguerra-miranda
Blueskyesguitos.bsky.social
  1. Community
  2. Plugins
  3. Canvas
  4. Flashcard Canvas

Related plugins

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Spaced Repetition

Fight the forgetting curve by reviewing flashcards & entire notes.

Flashcards

Anki integration.

Yanki

Sync flashcards from a folder in your vault to Anki. Pure Markdown syntax. No fuss.

ZettelFlow

Build guided Canvas workflows, read PDFs and EPUBs, and turn highlights into cited notes connected to your local Zettelkasten and knowledge graph.

LearnKit

A native study system for your Obsidian vault. LearnKit turns notes into durable knowledge with flashcards, spaced repetition, tests, and more.

Awesome Flashcard

Handy Anki integration.

Canvas Send to Back

Move cards in canvas to the top or behind all other cards.

Enhanced Canvas

Syncs Canvas node connections with properties in note, automating document relationship management.

Draw in Canvas

Draw freehand annotations on Obsidian JSON Canvas files.