alnpokrovsky59 downloadsConfigure which toolbar buttons are visible in Bases files and their embeds.
English | Русский
Configure which toolbar buttons are visible in Obsidian Bases — both in standalone .base files and in embedded bases inside notes. Add custom view-switcher buttons, hide what you don't use, and keep the UI clean.
.base file shows, from the plugin settings or directly from the file's YAML.![[file.base]] embeds inside Markdown notes.Not yet published. This section will be updated once the plugin is accepted into the Obsidian community catalogue.
main.js, manifest.json and styles.css from the latest release.<your-vault>/.obsidian/plugins/base-toolbar-config/..base file.X results).base YAMLThe plugin also reads a toolbar.hide block from the .base file itself. This is useful when you want the configuration to travel with the file (for example, when sharing it with others).
toolbar:
hide:
- search
- filter
- sort
views:
- type: table
name: "Main"
Both mechanisms work as a union: a button is hidden if it's listed in toolbar.hide or its toggle is enabled in the plugin settings. Unknown tokens are silently ignored.
| Token | Hides |
|---|---|
result-count |
The "X results" counter |
search |
The search button |
properties |
The properties menu |
filter |
The filter menu |
sort |
The sort menu |
group |
The group menu |
views |
The view switcher menu |
The same toolbar.hide rules apply to bases embedded inside notes:
![[projects.base]]
The plugin resolves the embed's src attribute to an actual .base file (including folder/file.base paths, #anchor suffixes and |alias forms) and applies the file's configuration to the embed.
Note: Bases created as inline
```basecode blocks are **not** affected — they aren't tied to a specific.basefile, so there is no configuration to read.
You can pin any view from a .base file as a toolbar button:
.base file.A Default Button can also be enabled, which jumps to a chosen view in one click.
Enable Custom view menu style under Interface to make the toolbar wrap gracefully when the panel is narrow. This is useful for embeds with very limited width.
All UI elements use standard Obsidian CSS variables (--background-modifier-hover, --interactive-accent, --text-normal, etc.), so they adapt to light/dark themes and community themes automatically.
If you want to override the plugin's own styles, use the following classes:
.my-base-btns-container — wrapper for injected buttons.my-base-btn — a single custom button.bvs-text-mode — applied when the button shows text.bth-hide-<token> — applied to the container when a button should be hidden (search, filter, sort, properties, result-count, group, views).bvs-hide-<token> — legacy aliases kept for backwards compatibilitygetSettingDefinitions() and setDestructive(), both introduced in 1.13).# Install dependencies
npm install
# Watch mode (rebuilds main.js on save)
npm run dev
# Production build
npm run build
# Lint
npm run lint
The built main.js must be copied into <your-vault>/.obsidian/plugins/base-toolbar-config/ along with manifest.json and styles.css.
src/
├── main.ts # Plugin entry: settings UI, toolbar logic, i18n wiring
└── i18n/
├── keys.ts # All translatable keys + module augmentation
├── index.ts # I18N service init + t() helper
└── locales/
├── en.ts
├── ru.ts
└── zh.ts
styles.css # Toolbar hiding + custom UI styles
manifest.json
HIDE_TOKEN_TO_CLASS and ALL_HIDE_CLASSES in src/main.ts.hideXxx to FileConfig, DEFAULT_FILE_CONFIG and applyConfigHideClasses.getSettingDefinitions().src/i18n/keys.ts and all locale files.MIT