Skip to content

Releases: emarpiee/obsidian-kambas

0.2.1

Choose a tag to compare

@github-actions github-actions released this 15 Sep 12:42
86cf1c6

Bug Fixes & Improvements

GIF Controls & Transform Fixes

  • Flip Transformation Support: Fixed an issue where horizontal (kambas-img-flip-h) and vertical (kambas-img-flip-v) flipping CSS transforms were not applied to canvas-rendered GIFs when GIF controls were enabled.
  • Native Image Visibility Restoration: Resolved a issue where toggling off GIF controls caused canvas-rendered GIFs stored in the vault to visually disappear (leaving an empty container). This update now properly restores native <img> elements upon control unmount/disabling.

Grayscale Palette Copying

  • Dynamic Hex-to-Grayscale Color Copying: Fixed an issue where opening the color palette picker before enabling grayscale mode would copy the original node hex color instead of the grayscale color. Palette color copying now dynamically checks the active grayscale state and computes the grayscale hex value on the fly (hexToGrayscale).

Full Changelog: 0.2.0...0.2.1

0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 10:30
dd82f86

What's Change

Take full interactive control over animated GIF nodes directly on your canvas:

obsidian-kambas-gif-control
  • Interactive Scrubber & Playback: Play/pause, step frame-by-frame, scrub through animation timelines, or change playback speeds (0.25x, 0.5x, 1.0x, 1.5x, 2.0x).
  • Frame Extraction: Extract any single frame from an animated GIF as a static image saved directly to your vault or embedded inline within your .canvas file.
  • Multi-Select Synchronization: Play, pause, step, or seek across multiple selected GIF nodes simultaneously.

⚙️ Toggle GIF Controls via Settings or Command Palette

Want a clean, distraction-free canvas view? You can now enable or disable GIF controls on demand:

  • Command Palette Action: Run Toggle GIF controls on/off in the Command Palette to show or hide controls instantly.
  • Plugin Setting: Toggle Enable GIF controls in Obsidian Settings > Kambas.
  • Instant Clean Up: Toggling off immediately cleans up active playback toolbars without affecting canvas node rendering.

🎨 UI & Layout Polish

  • Fixed Frame Counter Jitter: Stabilized the frame counter badge using tabular numeric alignment (font-variant-numeric: tabular-nums) and fixed minimum widths to prevent toolbar layout shifting when stepping between single and double-digit frame numbers.
  • Orphan Toolbar Fix: Prevented stale floating toolbars from persisting when deselecting GIF nodes or interacting with the canvas Tag Filter panel.
  • Native Theme Styling: Aligned all toolbars, scrubbers, and controls with native Obsidian CSS design variables for consistent light/dark theme styling.

Full Changelog: 0.1.2...0.2.0

0.1.2

Choose a tag to compare

@github-actions github-actions released this 13 Sep 11:57
2b5c847

What's Change

  • Selection Zoom-to-Fit: Instantly zoom to fit single or multi-node selections using a hotkey (Space by default). Pressing the hotkey again toggles back to the canvas overview.
  • Enhanced Tag Management: Dynamic canvas hover highlighting for tagged items, custom tag colors, native context menus (Rename, Recolor, Delete), and active filter indicators on the canvas toolbar.
  • Loupe Inspector Tool: Magnify canvas image details with customizable smooth panning controls.
  • Media Naming & WebP Optimization: Complete control over vault media placement with customizable numbering formats (01, I, A) and a WebP compression quality slider.

🏷️ Tag Panel & Canvas Filtering

  • Canvas Hover Highlighting: Hovering over tags highlights matching canvas items using native Obsidian styling tokens.
  • Native Context Menus: Replaced inline delete buttons with native menus offering Rename, Recolor, and Delete options.
  • Toolbar & Filter Controls: Added a direct Clear Filters toolbar action, visible active filter counts, and chip management above the filter input.
  • Custom Tag Colors: Color-code tags via the new TagColorModal.
  • Panel Configuration: Added auto-close settings and layout constraints for cleaner side panels.

🔍 Selection Zoom & Visual Inspection

  • Smart Zoom-to-Fit: Single key shortcut (Space) to frame selected nodes cleanly without zooming while editing text.
  • Loupe Inspector: Detailed canvas inspection tool with customizable dampening and smoothing settings.

🖼️ Media Workflow & Compression

  • Batch Naming Modal (MediaFilenameModal): Customize naming prefixes and choose between zero-padded numbers (01), Roman numerals (I), or letters (A) when organizing media into vault folders.
  • WebP Compression Slider: Adjust image compression quality directly from settings (automatically skips vector SVGs and animated GIFs).
  • Away Mode (Read-Only): Toggling Away Mode automatically locks the canvas into Obsidian’s native read-only state.

🌐 Localization & Popout Windows

  • 100% i18n Translation: Full localization coverage across all supported UI languages for new modals, tools, and settings.
  • Multi-Window Support: Resolved hotkey and double-click zoom behaviors in popout/secondary windows.

🛠️ Fixes & Polish

  • Fixed live rendering of embedded Base64 images upon conversion.
  • Preserved node tags and properties when converting vault media embeds.
  • Standardized tag metrics terminology to "Items" across the UI.

Full Changelog: 0.1.1...0.1.2

0.1.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 23:57
85b6d23

What's Change

This release introduces one-click palette color exporting, active filter indicators, native canvas card color filtering, refined HSV extraction settings, and canvas rendering stability fixes.


🎨 Color Palette & Swatch Export

Quickly extract and export dominant color swatches directly from image nodes:

  • One-Click Swatch Copy: A new Copy all button in the color palette overlay allows you to copy all extracted dominant hex values to your clipboard at once.
  • Customizable Format Separator: Configure how copied swatches are delimited under Settings > Kambas > Palette color separator (e.g. , , newline \n, space , or custom characters).

🔍 Enhanced Canvas Filtering & Active Indicators

The Filter Panel has been upgraded to provide clearer visual feedback and broader node coverage:

  • Active Filter Tab Badges: A subtle indicator dot now highlights the Tags or Colors tab headers whenever active include or exclude filters are applied in that view, keeping filter state transparent at a glance.
  • Native Card Color Filtering: The Colors tab can now optionally include native Obsidian canvas card colors (Red, Orange, Yellow, Green, Cyan, Purple, Gray), enabling unified color filtering across both media and text/card nodes.
  • Refined HSV Extraction:
    • Minor Accent Colors: Choose whether to include low-coverage accent colors or maintain focus strictly on primary dominant colors.
    • Color Display Customization: Toggle text color names on or off next to swatches in the filter list.
    • Intuitive Action Labeling: The manual extraction button has been updated to Scan canvas colors for clearer context.

🛠️ Improvements & Fixes

Canvas & Node Rendering

  • Virtualized Node Image Flip: Resolved an issue where horizontal/vertical flip CSS classes detached when virtualized canvas nodes re-rendered during rapid panning or scrolling.

UI & Accessibility

  • Search & Panel Controls: Enhanced contrast and hover feedback for the search clear (×) and panel header close buttons.
  • Count Pluralization: Standardized node count badges across filter lists (1 item vs N items).
  • Tooltip Refinements: Eliminated duplicate tooltip triggers on the color palette action bar.

⚙️ Configuration Reference

Setting Description Default
Palette color separator Custom delimiter for copied palette hex codes (paletteCopySeparator). ,
Include accent colors Include low-coverage minor accent colors in HSV extraction (colorIncludeAccents). false
Display color names Display text color names alongside swatches in filter list (colorShowName). true
Include card colors Include native Obsidian canvas card border/background colors in filter panel (colorIncludeNodeColor). false

Full Changelog: 0.1.0...0.1.1

0.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 16:54
f310954

What's Change

Version 0.1.0 introduces advanced visual asset organization capabilities for Obsidian Canvas. This release features dual-tab visual filtering by tags and extracted dominant colors, contextual node awareness, cross-highlighting, and enhanced media management for PureRef-style visual reference boards.


Key Features

1. Color Extraction & Palette Filtering

  • HSV Color Classification: Automatically analyzes image pixel data to categorize canvas assets into 13 distinct chromatic and neutral color spectrums (Black, Gray, White, Red, Orange, Yellow, Green, Teal, Cyan, Blue, Indigo, Purple, Pink).
  • Multi-Palette Attribution: Supports multiple color bucket associations per image asset.
  • Configurable Extraction Modes: Offers Auto (background extraction upon opening the panel), Manual (on-demand extraction), and Disabled modes within plugin settings.

2. Dual-Tab Filtering Engine (Include / Exclude Logic)

  • Three-State Filter Evaluation: Supports Neutral, Include, and Exclude states per filter row. The Exclude state takes precedence over Include rules, allowing targeted sub-filtering.
  • In-View Contextual Intelligence: Dynamically counts and displays co-occurring tags and color spectrums present on currently visible viewport nodes, automatically prioritizing relevant filter options.
  • Bidirectional Cross-Highlighting:
    • Hovering over a color category renders a color-coded glow overlay across matching canvas image nodes.
    • Hovering over an image node highlights its corresponding color buckets in the Filter Panel while dimming non-associated rows.

3. Smart Tagging & Metadata Preservation

  • Batch Tag Formatting: Inputting comma-separated text automatically sanitizes and formats entries into standardized kebab-case tag attributes.
  • Inline & File Conversion Safety: Preserves all custom kambasTags and metadata during conversions between embedded Base64 data URIs and vault attachment files.
  • Tag Badge Customization: Supports configurable badge placement (Outside-Below or Inside-Bottom-Left) and global badge visibility toggling via the Obsidian Command Palette.

Enhancements & Workflow Improvements

  • Selection Guard: Restricts standard rubber-band selections and Ctrl+A / Cmd+A actions to active nodes only, preventing accidental mutation of filtered/dimmed assets.
  • Viewport Auto-Zoom: Toggling filter items automatically centers and scales the viewport to frame matching nodes. Auto-zoom behavior can be toggled via plugin settings or command palette.
  • Panel Ergonomics: Added container bounds clamping on resize, sticky search header, undo/redo state synchronization, and enlarged delete touch targets.

Technical & Fixes

  • Fixed inline CSS overrides on canvas nodes that previously interfered with filter dimming opacity.
  • Optimized accent color extraction palette depth calculations.
  • Corrected canvas alignment coordinate leakage during active filtering.

For detailed installation instructions and documentation, please refer to the Kambas README.

Full Changelog: 0.0.6...0.1.0

0.0.6

Choose a tag to compare

@github-actions github-actions released this 11 Sep 23:21
0fc198e

What's Change

Added

  • Color palette extraction — Extract dominant colors from any image node and display them as a configurable swatch overlay (3–10 swatches) via a new Color palette context menu command and kambasPalette metadata.
  • Swap media modal — New Swap media… command replaces the current image or video node with another from your vault, a local file, or directly from your clipboard, preserving position and natural aspect ratio.
  • Instant canvas live reload — Media swaps and transform changes now refresh the canvas immediately without requiring a manual reload.

Changed

  • Updated all i18n labels from "image" to "media" across all supported locales for broader media type support (videos, embeds).
  • Grayscale filter now propagates to node container elements
  • Multi-select transform commands (flip/grayscale/palette) now use consistent on/off behavior instead of independent per-node toggling.

Fixed

  • Grayscale filter not applying correctly across node types in multi-select scenarios.
  • Multi-select image transforms toggling independently per node instead of uniformly.
  • Transforms not persisting for virtualized nodes when scrolling into view.
  • Paste position not capturing synchronous mouse coordinates for accurate media placement under cursor.

Maintenance

  • Resolved all linter and typecheck errors for npm run health.
  • Bumped minAppVersion to 1.13.0.

Full Changelog: 0.0.5...0.0.6

0.0.5

Choose a tag to compare

@github-actions github-actions released this 07 Sep 00:37
69251cf

Kambas Initial Release

PureRef-like Workflows & Embedded Media for Obsidian Canvas

Kambas transforms Obsidian Canvas into a PureRef-like visual environment tailored for mood boards, visual brainstorming, reference boards, and portable canvas notes, without cluttering your vault attachment directory.


🎨 Key Features

  • Inline Base64 Data URI Embedding: Choose on paste/drop whether to save image attachments to your vault or embed them directly into the .canvas file JSON. Create 100% self-contained visual boards that can be moved, backed up, or shared independently.
  • Non-Destructive Image Manipulations:
    • Flip Horizontal / Vertical: Mirror canvas image cards along the X or Y axis.
    • Grayscale Toggle: Apply quick CSS grayscale filters for blueprinting or color-neutral reference viewing.
    • Reset to Original Size: Restore modified images back to their natural width and height with a single click.
  • Universal Node Transparency: Adjust opacity from 0% to 100% across image cards, text notes, file embeds, and canvas groups.
  • Media Attachment Management: Batch convert vault file nodes into embedded Base64 cards (with optional deletion of source attachments), or move/copy referenced assets to target vault folders.
  • Clean Canvas View: Hide raw Data URI / Base64 header banners on embedded cards for a clutter-free board layout.
  • Keyboard Canvas Navigation: Smooth keyboard-driven panning (WASD / Arrow keys) and zooming (+ / -) with customizable speed controls.

🛠 Metadata Persistence

All visual transformations (flips, filters, opacity, original bounds) are stored in each node's unknownData block inside the .canvas JSON file. Visual states persist across devices, vault syncs, and Obsidian restarts without altering your underlying image files.


📦 Installation

Manual Installation:

  1. Download main.js, manifest.json, and styles.css from the assets section below.
  2. Place all three files into your vault under .obsidian/plugins/obsidian-kambas/.
  3. Reload Obsidian and enable Kambas under Settings > Community Plugins.

💖 Support Development

If Kambas improves your visual workflow in Obsidian, feel free to support ongoing development on Ko-fi or PayPal.