Marcos4k downloadsEnter a distraction-free zen mode by hiding sidebars, properties, title and status bar. Works on desktop and mobile.
A lightweight Obsidian plugin that clears the screen so you can read and write without distractions. One tap hides everything you don't need; a floating button brings it all back the moment you want it.
Works on desktop, tablet, and mobile.
When you activate Zen Mode, Ultra Zen Mode hides the parts of the Obsidian interface that aren't your content:
| Element | Hidden by default |
|---|---|
| Left sidebar (ribbon + panel) | ✅ |
| Right sidebar | ✅ |
| Note properties / frontmatter | ✅ |
| Tab bar | ✅ |
| Status bar | ✅ |
| Inline note title | ❌ (optional) |
A small floating exit button appears in the bottom-right corner of the screen. It stays out of your way (very transparent) until you hover or tap it, then it comes forward so you can exit Zen Mode with one click.
Three ways — use whichever feels natural:
Ctrl/Cmd + P, search for Toggle Zen Mode.To exit, click the floating button that appears in the bottom-right corner, or use any of the three methods above again.
Open Settings → Ultra Zen Mode to set up zen mode. Changes apply immediately, even while zen mode is on, except Full screen on activation, which applies the next time you enter zen mode.
0 uses your theme's width.0 keeps your normal size.For a distraction-free writing setup, turn off Switch to reading mode, then turn on Hide other open documents, Fade other lines and Darken screen edges, and pick a Zen theme.
If Obsidian closes while zen mode is on, your own theme, line length and sidebar layout are restored the next time it starts.
main.js, styles.css, and manifest.json from the latest release..obsidian/plugins/ultra-zen-mode/ inside your vault.Requirements: Node.js ≥ 18 and npm.
# Clone and install dependencies
git clone https://github.com/MarckFp/ultra-zen-mode
cd ultra-zen-mode
npm install
# Watch mode — rebuilds on every file save
npm run dev
# Production build (minified, no sourcemap)
npm run build
The plugin is written 100% in TypeScript — no JavaScript source files. The build pipeline is:
src/main.ts → esbuild (via esbuild.config.ts + tsx) → main.js
Copy main.js, styles.css, and manifest.json into your vault's plugin folder to test locally.
Ultra Zen Mode is intentionally simple and fast. The entire logic lives in a single file, src/main.ts, and works in three steps:
uzm-hide-sidebars) and a few CSS variables (line width, font size, fade and vignette values) to document.body, and adds the floating button and the vignette overlay.styles.css contains scoped rules that apply only while those classes are present. Nothing leaks outside of Zen Mode.Most of the work is CSS class toggling. A few things need app settings instead: the zen theme, readable line length and the sidebar swipe gestures. Before changing them, the plugin saves the original values in the vault's local storage on this device. If Obsidian quits while zen mode is on, those values are restored on the next start.
Obsidian has no public API for themes or app config, so src/main.ts reaches those internals through one small wrapper, ObsidianInternals.