Composition Mode

by kazys varnelis
5
4
3
2
1
Score: 30/100

Description

Category: Creative & Writing Tools

The Composition Mode plugin turns the editor into a paginated page with a paper like layout and reduced interface chrome. It renders notes as stacked pages with configurable trim sizes, side and top margins, type size, image width, page gaps, background shade and stable zoom that does not reflow page breaks. Long prose paragraphs can split at word boundaries, manual page break markers are supported and each note remembers its zoom level. A bottom control bar exposes the main layout controls while active, and the plugin can hide tab headers and the status bar. It is still experimental, mainly tested with the Minimal theme on desktop, and complex elements such as Mermaid diagrams, tables and callouts may not paginate cleanly.

Reviews

No reviews yet.

Stats

5
stars
2,104
downloads
0
forks
31
days
31
days
31
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
1
total issues
1
open issues
0
closed issues
24
commits

Latest Version

a month ago

Changelog

Directory-scan cleanup: no filesystem access outside the vault API (diagnostic tracer removed from shipped code), :has() selectors replaced, and release assets now carry GitHub Actions build-provenance attestations.

README file from

Github

Composition Mode

A distraction-free writing mode for Obsidian that turns the editor into a paginated, paper-like page. Designed for long-form writing where you want to see your text the way it will eventually print, without chrome, sidebars, or line-length surprises.

Composition Mode in action — a paginated page on a neutral gray backdrop, with text column and embedded image

⚠️ New and experimental. This is a young plugin. It has primarily been tested with the Minimal theme on desktop. Other themes may produce visual quirks around image embeds, page-gap bars, or text column sizing. Bug reports welcome — please include your theme name and a screenshot.

What it does

  • Paper-like pages: Your note renders as a stack of pages separated by visible gaps, using the selected paper trim, margins, type size, and measured text width.
  • Book and manuscript page sizes ordered from smaller to larger: Trade 6 × 9, Academic 7 × 10, Letter, and A4.
  • Point-size type controls: Increase or decrease body text in typographic points from the command palette or bottom control bar.
  • Mid-paragraph pagination: Long prose paragraphs can split at word boundaries, so book-sized pages do not leave large blank areas just because a paragraph is too long.
  • Paginated view at any zoom: Uses CSS zoom to magnify without reflowing, so page breaks stay stable while you scale up or down.
  • Soft backdrop: A neutral gray behind the page, adjustable from light to near-black, to take the room out of your peripheral vision.
  • No status bar, no tab headers while active. If sidebars are open, they will show. I recommend closing them first.
  • Per-note zoom memory: Each note remembers its zoom level.

Limits

  • Pagination is an editor layout aid, not a print/PDF typesetter. It estimates text height from the live editor font metrics and inserts CodeMirror block widgets where page gaps should appear.
  • Plain prose paragraphs can split inside the paragraph at word boundaries. Headings, images, mixed image/text lines, and more complex blocks still prefer block-level breaks.
  • Images and text are the primary targets. Mermaid diagrams, tables, callouts, and other complex elements may not paginate perfectly yet.

Settings

Setting Default Notes
Paper size Letter Trade 6 × 9, Academic 7 × 10, Letter, or A4. Controls the page surface aspect ratio.
Show page breaks On Visible gray bar between pages; long prose paragraphs can split at word boundaries.
Words per page 400 Legacy target retained for compatibility. Current pagination is based on measured page geometry.
Page gap height 60 px Height of the gray gap between pages.
Default paper width 90% Percentage of viewport width the page occupies.
Max paper width 1400 px Absolute cap on page width. Prevents the page from ballooning on large external monitors.
Image width 100% Width of embedded images as a percentage of the text column. Centers automatically below 100%. Per-image overrides via ![[img.jpg|400]] still work.
Type size 12 pt Body text size in typographic points. Typical manuscript text is 12 pt; printed book interiors often land around 10–11 pt.
Side margin 1.25 in Left/right margin between paper edge and text column. Small book trims cap overly large margins to preserve a readable text block.
Top/bottom margin 1.0 in Vertical margin on each page. Small book trims cap overly large margins to preserve usable page depth.
Default background 35% 0 = light, 100 = near-black.
Enable debug mode Off Writes verbose pagination logs to working/composition-mode-page-break-debug.md.

Manual page breaks

Add either marker on its own line to force a page break before the next block:

<!-- pagebreak -->

or:

%%pagebreak%%

Install

  1. In Obsidian: Settings → Community plugins → Browse, search for Composition Mode.
  2. Install and enable.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Drop them into <your vault>/.obsidian/plugins/composition-mode/.
  3. Reload Obsidian, enable the plugin under Community Plugins.

Use

  • Open a note and toggle Composition Mode from the command palette. No default hotkey ships; assign one under Settings → Hotkeys (Mod + Shift + C works well).
  • A control bar appears on mouseover at the bottom edge: zoom, type size, paper size, page breaks, side/top margins, background, and word count.
  • Exit via the Exit button in the control bar, or press Escape.

Commands

All commands appear under the "Composition Mode:" prefix in the palette.

  • Toggle
  • Reset zoom
  • Zoom in / Zoom out
  • Increase type size / Decrease type size
  • Toggle status bar

Known limitations

  • Desktop only. The isolation layer relies on DOM nodes that mobile Obsidian lays out differently.
  • Theme-dependent rendering. Tested mainly with Minimal. Other themes may:
    • Show visible slivers between the page-gap bar and the paper edge.
    • Clip or misalign the page-gap bar's horizontal bleed.
    • Render image embeds at unexpected widths.
    • Override the paper background with a theme-specific color.
  • No live preview toggle. The plugin operates on source/live-preview modes; switching to reading view while composition mode is active is untested.

Changelog

See CHANGELOG.md.

License

MIT — see LICENSE.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Better Word Count
6 years ago by Luke Leppan
Counts the words of selected text in the editor.
Emoji Toolbar
6 years ago by oliveryh
An Obsidian plugin to quickly add emojis into your notes
Image in Editor
5 years ago by Ozan Tellioglu
This Obsidian plugin to view Images, Transclusions, iFrames and PDF Files within the Editor without a necessity to switch to Preview.
Novel Word Count
4 years ago by Isaac Lyman
Obsidian plugin. Displays a word count or other statistic for each file, folder and vault in the File Explorer pane.
Longform
5 years ago by Kevin Barrett
A plugin for Obsidian that helps you write and edit novels, screenplays, and other long projects.
Smart Composer
2 years ago by Heesu Suh
AI chat assistant for Obsidian with contextual awareness, smart writing assistance, and one-click edits. Features vault-aware conversations, semantic search, and local model support.
Typewriter Scroll
6 years ago by death_au
Typewriter Scroll Obsidian Plugin
Relative Line Numbers
6 years ago by Nadav Spiegelman
Typewriter Mode
2 months ago by davisriedel
Typewriter Mode is a plugin that adds typewriter scrolling (current line stays at a fixed position on the screen), a highlight for the current line, dimming of unfocused paragraphs and more to Obsidian.
Gemini Scribe
2 years ago by Allen Hutchison
An obsidian plugin to interact with Google Gemini
PodNotes
4 years ago by Christian B. B. Houmann
PodNotes is a plugin for Obsidian that helps the user write notes on podcasts.
Typing Assistant
3 years ago by Jambo
Typing Assistant is a plugin that improves writing efficiency and provides a user experience similar to that of【Notion】
Daily Notes Editor
4 years ago by boninall
A plugin for you to edit a bunch of daily notes in one page(inline), which works similar to Roam Research's default daily note view.
Autocomplete
6 years ago by Yeboster
Obsidian plugin to provide text autocomplete
ProZen
4 years ago by Moskvitin
Obsidian plugin for going FULL screen
Fantasy name generator
3 years ago by Lukewh
Writing Goals
3 years ago by James Lynch
Set yourself dynamic writing goals for notes and folders to help you hit your long form writing targets with Obsidian.
Keep the Rhythm
2 years ago by Ezben
An Obsidian plugin to visualize how much you write with a heatmap.
Stille
5 years ago by Michael Lee
🌗 Stille — An Obsidian plugin that helps you focus on your writing, a section at a time.
Daily Stats
6 years ago by Dhruvik Parikh
Plugin to view your daily word count across all notes in your Obsidian.md vault.
Word Sprint
5 years ago by Andrew Lombardi
Obsidian Word Sprint plugin
Dialogue
5 years ago by Jakub Holub
Dialogue plugin for Obsidian.md
Helix Keybindings
4 months ago by obsidian-helix
Use Helix keybindings inside Obsidian.md
CookLang Editor
5 years ago by death_au/cooklang
Edit and display Cooklang recipes in Obsidian
Canvas2Document
2 years ago by slnsys
Plugin for Obsidian to convert a complete Canvas to a long form document
Font Size Adjuster
3 years ago by Ryota Ushio
An Obsidian.md plugin to adjust font size via commands.
Dangerzone Writing
6 years ago by Alexis Rondeau
A plugin that forces you to write for X seconds. If you pause for more than 5 seconds, everything you've written in this note is DELETED.
Orthography
6 years ago by denisoed
The Obsidian plugin for checking grammar and correcting spelling errors in text.
Auto Split
5 years ago by James Sartelle
Open notes with side-by-side editor & preview
Writing
4 years ago by johackim
Write and format your next book directly from Obsidian
Readability Score
3 years ago by zuchka
score the readability of your Obsidian documents using the Flesch Reading Ease (FRE) formula
Bases Paginator
2 months ago by sean2077
A plugin for Obsidian that adds a paginated table view with column filtering capabilities to Obsidian Bases.
Focus Active Sentence
3 years ago by artisticat
Highlight the active sentence in Obsidian.md
Yesterday
3 years ago by Dominik Mayer
Obsidian plugin providing Yesterday journaling support
Paper Importer
2 years ago by Zhe Chen
An Obsidian plugin to facilitate importing papers from arXiv
digital paper
3 years ago by Daniel Fernandes
turn off backspace and undo, like writing with a pen on real paper.
Min3ditorHotkeys
6 years ago by Davor Sauer
Obsidian plugin adding minimal editor hotkeys
Chinese Novel Assistant
2 months ago by pingo888
A set of small features designed to make writing Chinese novels more convenient.
YourPulse - Your Writing Activity Visualised
2 years ago by Jiri Sifalda
YourPulse.cc - Obsidian.md plugin that turns your vault into a reflection of your creativity, and put your writing on steroids 💪
Kill and Yank
4 years ago by INOUE Takuya
Obsidian plugin to enable kill and yank in editor
Write Good
2 years ago by Mark Hesketh
Obsidian plugin to help improve writing style
Proofreader
a year ago by pseudometa (aka Chris Grieser)
AI-based proofreading and stylistic improvements for your writing. Changes are inserted as suggestions directly in the editor, similar to suggested changes in word processing apps.
Nova
7 months ago by Shawn Duggan
Nova - AI plugin for Obsidian that edits your documents directly through natural conversation. Stop copying from chat, start collaborating with AI.
Storyclock Viewer
3 years ago by Jonathan Fisher
Obsidian plugin for creating a storyclock
MathLive in Editor Mode
2 years ago by MizarZh
MathLive input in editor mode.
Asciidoctor editor
2 years ago by dzruyk
Obsidian asciidoc editor plugin
WordCraft
a year ago by Daniel Fernandes
Find rhymes, synonyms, and describing words from within Obsidian. Designed for songwriting and poetry.
Dialogue Mode
2 years ago by Patrick Chiang
Typographer
10 months ago by René Coignard
Enhances typography with smart quotes, custom text replacements and auto-pairing characters.
Inscribe
a year ago by Ahmet Ildirim
Obsidian plugin for inline autocompletion with AI
Editor Autofocus
3 years ago by Mgussekloo
Typezen
2 years ago by Ilgam Gabdullin
Plugin for obsidian which lets you turn zen mode instantly
Hemingway Mode
2 years ago by Joaquín Bernal
Reverse Prompter
2 years ago by Ryan Halliday
Let AI generate prompts to keep you writing
Japanese Manuscript Counter
8 months ago by Yo Fujii
Power Editor
a month ago by Power Plugins
Format any note from a toolbar, selection bubble, or slash menu: WYSIWYG editing, block drag handles, image resizing, dictation, and AI edits, all staying plain Markdown.
Brain Dump Mode
2 years ago by yesjinu
Obsidian plugin - DISABLE your delete key and eliminate hesitation!
Source Mode Styling
7 months ago by Chris Howard
Obsidian plugin. Provides a customisable raw look in source mode using a monospace font to clearly differentiate from Live Preview.
Musical Text
2 years ago by Tynan Purdy
Encourage writing with rhythm by highlighting sentences according to wordcount.
AI Revisionist
2 years ago by Synaptic Labs
My Typewriter Line
10 months ago by dmo-code
WPM Reading Time - How Long to Read This Text
5 months ago by Santi Younger
Calculate reading time estimates for selected text using your own reading speed in Words Per Minute.
Long sentence highlighter
a year ago by Robert Meißner
Dangerous Mode
9 months ago by Vansh Kumar
most dangerous writing app in obsidian
Blog AI Generator
2 years ago by Gareth Ng
Obsidian Plugin: generate blog via AI based on the current note.