yuzuvalentine1 downloadsAdds a Cards Plus view to Bases: a card layout with extra features.
An Obsidian plugin that adds a Cards Plus view to Bases: a card layout like the built-in Cards view, as a base for extra features.
Requires Obsidian 1.13.0+ (Bases plugin API + declarative settings).
Cards (same as the built-in Cards view)
[[attachment.png]] links,  embeds, vault paths, external URLs, and colors ("#ff8800", rgb(...); quote hex values in YAML). For lists, the first item that resolves is used.localCover, fallback cover).Extras
collapsedGroups in the .base file), and renaming a collapsed group keeps it collapsed.tags, skipping tags a note already has (case-insensitive)property: value on every selected note, overwriting existing values. Type is Text / List / Number / Checkbox / Date / Date & time, and is guessed from existing values.src/main.ts Plugin entry: registers the view, command and settings tab
src/settings.ts Plugin settings tab (declarative settings API)
src/image.ts Resolves an image property to an image URL or color
src/bulk.ts Frontmatter edits: add tags, set/remove properties, rename group, delete
src/modals.ts Dialogs for the bulk actions
src/views/cards-plus/
CardsPlusView.ts The view class: wires the modules below together
options.ts View options (settings menu), defaults, reading the config
card.ts One card: title, properties, click / hover / right-click
cover.ts Card cover image, with fallback property
groups.ts Group headers: collapse, rename, "Select group"
selection.ts Select-mode state (no DOM)
toolbar.ts Select button in the Bases toolbar + the bulk-action bar
bulk-actions.ts Bulk actions on selected cards (dialog → edit)
styles.css View styles (loaded automatically by Obsidian)
manifest.json Plugin id/name/version (id = folder name in the vault)
esbuild.config.mjs Bundler; outputs main.js
scripts/install.mjs Copies main.js, manifest.json, styles.css into a vault
npm install # once
npm run build # type-check + production bundle -> main.js
npm run dev # watch mode: rebuilds main.js on every save
npm run lint # eslint with the official obsidianmd rules
Use a separate test vault for development, not your main vault.
The plugin goes in <vault>/.obsidian/plugins/bases-plus/ and needs main.js, manifest.json and styles.css.
One-off install:
npm run build
npm run install-plugin -- "C:\path\to\TestVault"
Dev loop (auto-copy on every rebuild):
$env:OBSIDIAN_VAULT = "C:\path\to\TestVault"
npm run dev
Then in Obsidian:
.base file → view picker → Add view → Cards Plus.Reloading after changes: run Reload app without saving from the command palette. Turning the plugin off and on does not rebuild a Bases view that is already open, so the old view code keeps running. The community plugin Hot-Reload (pjeby/hot-reload) can also reload automatically; the install script writes the .hotreload file it looks for.
Bump version in manifest.json (or run npm version patch), then npm run build, and attach main.js, manifest.json and styles.css to a GitHub release.