Bases Freeze Panes keeps the header row and first column in view

Scroll a wide base and the column names and note names stay put, like Freeze Panes in a spreadsheet.

MIT · no telemetry · core features free

A Reading log base scrolled to the right, where the file name column stays on the left and the other columns slide under it.
Open larger
version
1.1.1
released
downloads
3
review
Passed
health
Excellent
license
MIT
platforms
Desktop, Mobile
obsidian
1.13.4 or later

Tested on desktop with Obsidian 1.13.4 and 1.14.4.

Directory facts fetched from community.obsidian.md/users/theluckystrike.

About Bases Freeze Panes

You have a base with more columns or rows than fit on the screen and lose track of which row you're editing.

Scroll down and the column names stay at the top. Scroll to the right and the note names stay on the left, so you always know which row you're editing. It works in base files, in bases embedded in notes and in base code blocks.

The plugin changes how the table looks on screen and nothing else. Your notes and base files stay exactly as they are.

Scrolling a wide base down and to the right while the header row and the file name column stay putPlay demo

Free features

Frozen header and first column in base files

Open a base file with more columns than fit on the screen and scroll to the right. The first column stays where it was, and a thin line marks its edge. The header row gets a solid background, so rows never show through it.

A base file scrolled down and to the right with the header row and the file name column in place.
Open larger

Embedded bases keep their header

A base embedded in a note normally grows to the full height of its rows, so the note scrolls and the header scrolls away. The plugin gives embedded tables a maximum height, 500 pixels by default. A taller table scrolls inside this box, and its header sticks to the top.

A base embedded in a note scrolls inside its own box, and its header row sticks at the top.
Open larger

Reading view, live preview and code blocks

Freezing works wherever a table view of a base shows up in a note. That covers embedded base files, base code blocks, live preview and reading view.

A base code block in reading view with the header row and the first column frozen.
Open larger

Solid cells in light and dark themes

Frozen cells must cover the cells that slide under them. The plugin paints them with the background colors of your theme, for normal rows, the header, the hovered row and the summary rows.

The frozen cells stay solid in the light theme.
Open larger

Choices for one file

The command "Turn frozen panes on or off for the current file" is free and changes one base or note only. A second command sets 0 to 3 frozen columns for one file, and that one needs Pro. The plugin stores each choice under the file path and moves it when you rename the file.

A picker titled Frozen columns for this file, with the default and 0 to 3 frozen columns as choices.
Open larger

The free version freezes the header row and one column.

Pro features

Pro costs $5 a month or $15 one time through GitHub Sponsors. One sponsorship turns on Pro in all 15 plugins.

Two or three frozen columns Pro

Freeze 2 or 3 columns, for example the file name and the author of a book. Each frozen column keeps its own width and place. To choose which columns come first, change the column order in the base.

Two frozen columns keep the file name and the author of each book in view while the other columns scroll.
Open larger

Pinned last column Pro

Turn on "Freeze the last column" and the last column stays at the right edge of the table. The middle columns scroll between the frozen columns. Use it for a status, a total or a due date.

The last column of a wide base stays at the right edge while the middle columns scroll.
Open larger

Set up Bases Freeze Panes

needs

  • Obsidian 1.13.4 or later
  • The core plugin Bases, turned on
  • Only table views of a base have rows and columns to freeze. Cards and list views stay as they are.

steps

  1. Turn on the plugin. Every table view of a base now has a frozen header row and one frozen column.

  2. Open a wide base and scroll down and to the right.

  3. To compare with the normal table, run the command "Turn frozen panes on or off", and run it again to turn freezing back on.

  4. For Pro, sponsor on GitHub, then open the settings and select "Sign in with GitHub".

Why this exists

Three forum requests ask for frozen columns and headers in Bases, with 81 votes in total. The largest, topic 101429, has 39 votes, and two people there say their CSS workarounds failed.

How to freeze columns in an Obsidian Bases table

How it compares

A CSS snippet
A CSS snippet can't keep the first column, because the core table draws only the columns that are in view. Bases Freeze Panes keeps those cells on the page and pins them.

Questions about Bases Freeze Panes

Why does my CSS snippet for a sticky first column not work in Bases?

The core table draws only the cells that are in view, to stay fast with large bases. After you scroll right, the cells of the first column no longer exist on the page. The plugin tells the table to keep the frozen cells, and then pins them.

Does Bases Freeze Panes change my base files or notes?

No. It writes only its own settings file, data.json in the plugin folder.

What happens to frozen columns after an Obsidian update?

The Bases table has no public interface for this, so the plugin checks that the table looks as expected before it changes anything. If a future update changes the table, the columns are no longer frozen and the settings tab says so. The header row keeps working.

Can I freeze columns in cards or list views?

No. Only table views have rows and columns to freeze.

Why is the outline of the selected cell missing in a frozen column?

The core app draws that outline in a separate layer that doesn't know about frozen columns. You can still click and edit the cell.

Network use

Until you select "Sign in with GitHub" in the settings, Bases Freeze Panes makes no network requests. After sign in, it asks GitHub whether your account sponsors theluckystrike, at most once every 7 days or when you select Refresh. It sends no note content or file names, and the GitHub token stays in the secret storage of Obsidian on your device.

Read the full network disclosure

Bases Freeze Panes 1.1.1, MIT license

MIT · no telemetry · core features free