README file from
GithubUltra Zen Mode
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.
What it does
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.
How to activate
Three ways — use whichever feels natural:
- Ribbon button — click the glasses icon (🕶) in the left icon bar.
- Command palette — open it with
Ctrl/Cmd + P, search forToggle Zen Mode. - Hotkey — assign a keyboard shortcut in Settings → Hotkeys → Ultra Zen Mode: 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.
Settings
Open Settings → Ultra Zen Mode to choose exactly what gets hidden:
- Hide left sidebar — hides the icon ribbon and the sidebar panel on the left.
- Hide right sidebar — hides the sidebar panel on the right.
- Hide note properties — hides the YAML frontmatter / properties block at the top of a note.
- Hide note title — hides the large inline title above the note body.
- Hide status bar — hides the small bar at the very bottom of the window.
- Hide tab bar — hides the row of open-note tabs above the editor.
All toggles take effect the next time you enter Zen Mode, so you can experiment freely.
Installation
From the Community Plugin store (once published)
- Open Settings → Community plugins and disable Safe Mode if asked.
- Click Browse, search for Ultra Zen Mode, and install it.
- Enable the plugin with the toggle.
Manual installation
- Download
main.js,styles.css, andmanifest.jsonfrom the latest release. - Create the folder
.obsidian/plugins/ultra-zen-mode/inside your vault. - Copy the three files into that folder.
- Restart Obsidian (or reload plugins via Settings → Community plugins → Reload plugins).
- Enable Ultra Zen Mode in Settings → Community plugins.
Development
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.
How it works (technical overview)
Ultra Zen Mode is intentionally simple and fast. The entire logic lives in a single file, src/main.ts, and works in three steps:
- Activate — adds a set of CSS classes (e.g.
uzm-hide-left-sidebar) todocument.body. - Style —
styles.csscontains scoped rules that hide the target elements only while those classes are present. Nothing leaks outside of Zen Mode. - Deactivate — removes all classes and the floating button. The UI is instantly restored; no DOM manipulation required.
Because the approach is pure CSS class toggling, it is extremely fast and does not rely on timers, MutationObservers, or any polling.