Horizontal Blocks plugin: Layouts with blocks side-by-side

:brick: Horizontal Blocks Plugin

Bring Notion-style layouts with blocks side-by-side, resizable markdown blocks that support full Obsidian syntax including images, embeds, and internal links.


:sparkles: Features

  • :black_square_button: Side-by-side markdown blocks using horizontal code block
  • :straight_ruler: Resizable columns with a draggable divider
  • :brain: Dynamic layout — support for 2 or more columns using --- separator
  • :framed_picture: Auto-scaling images inside blocks
  • :floppy_disk: Block width persistence — remembers layout when you return

:rocket: Examples

Code 1:

horizontal ### Block 1 This is the left block. --- ### Block 2 This is the right block.

Preview 1:


Code 2:

horizontal ### Left Block This is the left block. --- ### Middle Block This is the middle block. --- ### Right Block This is the right block.

Preview 2:


Code 3:

horizontal ### Left Block This is free text - Item 1 - [ ] Item 2 - **Item 3** This is a ***formatted*** **text** --- ### Right Image Block ![[test_image.png]]

Preview 3:

Thank you.

1 Like

Thanks so much for your plugin. I think your idea is much better than what is implemented in the Markdown column plugin and its great!

1 Like

Version 1.1.0 - 2025-10-23

Added

  • New trigger command hblock as an alias to horizontal, enabling the same Notion-style horizontal layout using a shorter code block fence.

  • Live editing for page and section embeds inside blocks. Embedded markdown notes (e.g., ![[Note]] or ![[Note#Heading]]) can now be edited inline; changes are saved back to the source file, and section edits are merged precisely into the corresponding heading section.

  • Styling settings tab to customize horizontal blocks globally without CSS:

  • Divider: color, thickness, opacity, and style (solid | dashed | dotted | transparent), plus hover accent and drag-active highlight.

  • Blocks: background color, optional alternating shading (zebra), toggle borders, border radius, and border thickness.

  • Blocks: text color option to customize foreground text inside blocks.

  • Blocks: title text color option for block headers.

  • Spacing: inner padding and gap between blocks.

  • Toolbar: global visibility toggle for an optional .hblock-toolbar region.

  • Theme-aware mode to auto-inherit theme colors.

  • Per-block toolbar in each column with quick actions: width +/- controls, and per-block background/text color pickers (applies instantly and persists overrides per block).

  • Right-click context menu on blocks to toggle visibility settings globally (toolbar, borders, alternating shading).

Changed

  • Removed extra top and bottom spacing from embedded views to produce a cleaner, more compact layout inside horizontal blocks.

  • CSS refactor to use variables and global classes so themes/snippets can override styles; settings apply live without restart.

Notes

  • No breaking changes. The existing horizontal trigger remains fully supported.
1 Like

Hi! The new update is great, but I would like to add a few suggestions.

Setting the block colors is great, but it would be nice to have an option to make them completely transparent and also remove box-shadow.

When you set divider as transparent, it would be better if it still become visible on hover, makes easier to find it.

Embed blocks also have borders, maybe add the option to remove it too.

It’s all not super important, since it can be easily changed with css, but since you are already adding the style settings, maybe it is something to consider.

Also the sliders in the settings should have tooltips, so the user can see the actual numbers they are chosing.

1 Like

Thank you so much for your suggestions. It really helps. I will add it to my queue right away. Kindly be a with me for slow upgrades. Will try to release as soon as I can.

Congratulations on the update! I merged your update post into the original plugin thread (and removed the “new” from the original’s title) because we find it works best to have a single thread thread for each plugin.

Wow… I’ve been waiting for something like this for so many years