Skip to content

About

Create accessible, theme-native tabbed blocks for Markdown-renderable content in Obsidian.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

Tabsdown: related Markdown content organized in nested tabs.

Theme-native Markdown tabs for Obsidian. Works in Reading View and Live Preview on desktop and mobile.

Install in Obsidian Latest version CI status Report an issue Contributing License

Get started

Install and enable Tabsdown, then paste this into a note:

%% tabs %%
%% tab: Overview %%
Read the summary here.

%% tab: Checklist %%
- [ ] Review the details
- [ ] Update this note
%% endtabs %%

Keep each marker on its own line and give every tab a unique, non-empty label. A layout needs at least two tabs. Open Reading View to read it, or use Live Preview to read and edit it.

Watch Tabsdown in Obsidian Tabsdown walkthrough: create tabs with comment markers and write directly in Live Preview.

Editing

Click the active body, or focus its tab and press Down, to edit its Markdown. Arrows move into and out of the layout. Cmd/Ctrl+A selects the active body’s text, and Undo/Redo uses the note’s history. Escape restores the rendered body. Switching tabs keeps your edits; switching alone does not change the note.

The active body uses a plain Markdown editor, without Obsidian’s rich Live Preview or third-party suggestions. Incomplete layout syntax may reveal the note’s source. If the same note is open in multiple editing panes, close the extra editor before editing a tab.

Right-click a block to Add tab. Double-click a label to rename it; Enter saves and Escape cancels. Delete tab is in the tab’s context menu, requires confirmation, and is disabled when only two tabs remain.

Configuration

Use the block’s context menu for position, overflow, density, personality, palette, and alignment. To keep those settings in the source, put %% config: position=left, personality=rail %% before the first tab. Style Settings supplies global defaults.

Labels support bold, italic, strikethrough, inline code, and bundled Lucide icons, such as %% tab: icon:code Python %%. Other label Markdown stays literal.

Source formats

Bodies can contain embeds, queries, callouts, math, Mermaid, and compatible plugin blocks rendered by Obsidian. Nested layouts keep their own labels, settings, and active tabs. Marker and fenced layouts can nest inside each other.

For a fenced layout, use:

```tabsdown
tab: Overview
Read the summary here.
tab: Checklist
- [ ] Review the details
```

Keep tab: and optional config: lines at column zero. Use matching backtick or tilde fences and make the outer fence longer than any matching fences inside it. Source Mode exposes the complete layout syntax.

Guides

Install

Install with BRAT using grafanaKibana/obsidian-tabsdown, or copy main.js, manifest.json, and styles.css from the same release into <Vault>/.obsidian/plugins/tabsdown/. Reload Obsidian and enable Tabsdown.

Runs locally on desktop and mobile, with no network requests, telemetry, or account.

About

Create accessible, theme-native tabbed blocks for Markdown-renderable content in Obsidian.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages