Releases: emarpiee/obsidian-style-manager
Release list
0.4.2
What's Changed
🔍 See exactly what will change before saving a preset
Saving your settings to an existing preset is a permanent action, and until now, you had to trust that it would do the right thing with no preview. Not anymore.
This release adds a visual change summary to the "Save to existing preset" confirmation dialog. Before anything is written, you'll see a breakdown of every setting that will be added, updated, or removed — and you can expand each group to inspect the exact values.
What's new
Change summary in the save confirmation dialog
When you save your current settings to an existing preset, the confirmation dialog now shows:
- 🟢 Added — settings that exist in your current config but not yet in the preset
- 🟡 Updated — settings that already exist in the preset but have a different value; shows the old value → new value inline
- 🔴 Removed — settings that exist in the preset but are no longer in your current config
- A "No changes to apply" notice if everything is already in sync
Each group is collapsible. Use the Expand all / Collapse all button to see the full detail at once.
What changed under the hood
The merge/overwrite toggle has been removed. Saving to an existing preset now always overwrites the selected scope, the diff summary is your safety net before confirming.
Changelog
- Add visual diff summary (Added / Updated / Removed cards) to save-to-preset confirmation
- Expandable cards show exact key–value pairs; updated settings display old → new
- Expand all / Collapse all toggle for all cards
- Inactive settings warning with Keep / Discard choice
- Cancel left, primary action right button order
- Remove merge option from save-to-existing flow
- build(deps-dev): bump js-yaml from 4.3.0 to 4.3.1 by @dependabot[bot] in #31
Full Changelog: 0.4.1...0.4.2
0.4.1
What's Changed
- fix: prevent reset button from wrapping off-screen in style headings by @emarpiee with @@mattsigal in #28
Full Changelog: 0.4.0...0.4.1
0.4.0
This release introduces exciting new features, helpful user interface updates, and important compatibility.
What's Changed
Preset Improvements
-
You can now save your current configurations directly into an existing preset to merge settings without starting from scratch.

-
When creating a new preset, the plugin will now prompt you to keep or discard orphaned keys to help keep your configuration clean.

-
Added quick search support for
@keysqueries inside the apply preset and toggle snippet suggestion modals.


Interface & Performance Updates
-
The Style Manager panel now opens in the left sidebar by default and uses a paintbrush icon.

-
Added a new active statistics and search results bar below the search rows in snippets, themes and presets tabs.




-
The status bar now displays the active styles count to match the tab badge count.

-
Improved snippet toggle performance to prevent unnecessary re-renders during bulk selections.
Settings & Preferences
- Added options to toggle the visibility of tab badges and customize the default open location of the panel.

Bug Fixes
- Resolved NotAllowedError and fixed style synchronization issues when opening settings in a popout window.
Full Changelog: 0.3.2...0.4.0
0.3.2
What's Change
- Toggle Snippet Modal: You can now quickly enable or disable CSS snippets directly from the Obsidian command palette.
Run the new commandStyle Manager: Toggle snippetto open a searchable menu showing all your snippets. - The search button in the CSS Editor is now always visible, allowing you to search and find text even when viewing files in read-only mode.
Smarter CSS Parser Error Locations
- When there's a syntax or formatting error in a CSS
@settingsblock, the Style Manager will now tell you the exact line number in your CSS file rather than a relative line number. - Clicking on a parser error log will now jump you directly to the correct line in the file.
Full Changelog: #21 0.3.1...0.3.2
0.3.1
What's Changed
- Memory Leak Resolutions, Lifecycle Fixes, & UX Improvements #20
- build(deps): override brace-expansion to ^2.1.2 to fix dependabot alert #19
- build(deps-dev): bump fast-uri from 3.1.3 to 3.1.4 #18
New Contributors
- @dependabot[bot] made their first contribution in #18
Full Changelog: 0.3.0...0.3.1
0.3.0
This release brings major improvements to how you manage your presets, alongside powerful new error-tracking capabilities to make styling your vault even easier.
What's New
Presets Management Enhancements
- Quick Import: Added a new 'Save & apply' button when pasting a JSON import directly in the Import Preset modal. 31551dc

- Enriched Suggest Modal: The Preset Suggest Modal now features date subtitles and descriptive badges. 9c4b4df
- Favorite Presets: Added a star icon to easily identify your favorite presets in the suggest modal. ab0605f

- Command Palette Integration: You can now open the Import Preset modal directly from the Obsidian Command Palette. 3d617fe
- Better Feedback: Applying presets now triggers individual success notifications so you know exactly what was applied. ceb66ba
Error Handling & Navigation
- Error Navigation & Caching: Your error logs are now persisted across theme changes, and you can click on errors in the log modal to jump straight to the offending line in the CSS editor. 9999d9b
Bug Fixes
- Fixed an issue that caused duplicate errors to appear in the log modal and improved the UI. 8949bfb
- Resolved scroll drift issues caused by color picker reflows by deferring scroll restoration. 69c36b7
- Fixed a bug by ensuring utility views only spawn a single instance. c97b3e9
Polish & Improvements
- UI Tweaks: Fixed text selection colors within the CSS editor for better contrast. fc4ddc1
- Notifications: Increased the default notification duration to 3000ms to give you more time to read them. dba61d6
- Responsive Layout: Adjusted the max-width breakpoint for preset items to 700px. f4a0667
- Under the Hood: Fixed an
obsidianmd/prefer-window-timerslinting warning. 27323e0
Documentation
- Updated the Presets guide and general installation instructions. 04dc26a
- Added a new Command Palette commands section to the README (sorted alphabetically). fb083bb
- Added comprehensive documentation covering the new jump-to-line navigation and persistent error tracking features. fdc7989
- Synced the README content and updated the Settings Header tooltip. dd2df74
- Updated the Import Preset modal screenshots. 5654819
0.2.3
What's New
- Swipe gestures in mobile editor — Removed the swipe-prevention patch that was blocking native horizontal swipe in the editor on mobile. You can now swipe freely within the editor view. e554531
#bypass for CSS variable generation — Using#as a value now uniformly bypasses CSS variable generation across all color fields, with updated fallbacks for consistency. 15a8eae
Bug Fixes
- Color picker cleanup on unload — The shared
.style-manager-color-picker-wrapperelement injected into the document body is now properly removed when the plugin unloads, preventing stale DOM elements from accumulating across reloads. 46b3e2f - Graceful handling of missing color formats — The CSS parser now validates color formats before processing and fails gracefully instead of throwing on malformed or missing format data. d634c96
UI & Style
- Theme-aware color picker shadows — Introduced a
--sm-cp-area-shadow-colorCSS variable scoped to boththeme-lightandtheme-dark, so picker shadows (dialog, sliders, thumb, area, sample) now render correctly in both themes instead of always defaulting to black. cfd677c - Mobile editor layout and spacing — Updated mobile editor layout, and removed a
.is-mobileflex-direction override onstyle-settings-itemthat was causing layout regressions on mobile. ad8ade2 - CodeMirror search panel specificity — Updated CSS class specificity for the CodeMirror search panel to prevent style conflicts. 9e0ce8c
Refactoring & Type Safety
- Tighter types in
CSSParserandStyleGenerator— Replaced loosely-typedanycallbacks with proper typed interfaces; removed dead-code guards; added safe casts to satisfy strict lint rules without breaking runtime behavior. e54c33b - Strict type error fixes — Resolved outstanding strict type checking errors and missing DOM typings across the codebase. 63d616a
- Obsidian UI guidelines compliance — Updated DOM element creation patterns and sentence casing to align with Obsidian's official plugin development guidelines. 9a1c2c1
CI / Tooling
- New lint & typecheck workflow — Added a dedicated GitHub Actions workflow that runs ESLint and TypeScript type checking on every push and pull request. e581e1c
- Updated Node.js and actions versions — Upgraded
actions/checkoutandactions/setup-nodeto v7 (Node 24 runtime), and updated all workflows to uselts/*instead of a pinned18.x. 2f65a88, 12e07c0 - CodeQL permissions fix — Addressed a CodeQL finding about missing workflow permissions. b87e2b5
- ESLint flat config migration — Migrated linting config to ESLint's flat config format and integrated the
obsidianmdESLint plugin. e049aa1 - Code cleanup and formatting — General code cleanup pass across the codebase. 4b1a2e9
Full Changelog: 0.2.2...0.2.3
0.2.2
0.2.2
- chore: add artifact attestation for release assets
Patch 0.2.1
- fix(deps): replace jszip with fflate to resolve obsidian scanner warn in #13
0.2.0 What's Changed
- Plugin Information: Added a new section to the Preferences tab providing essential plugin information and helpful links.
- Mobile Experience: Improved the mobile editing experience by preventing swipe events when the CSS editor is active, ensuring a smoother editing flow on touch devices.
Performance & Core Improvements
- Style Injection Engine: Migrated style generation and specific tools (BoxOutline, GarbledText) to use
CSSStyleSheet, significantly optimizing how styles are injected and updated. - CSS Optimization: Replaced expensive
:has()selectors with explicit classes to improve rendering performance. - Dependency Modernization:
- Migrated from
js-yamltoyamlfor more efficient CSS parsing. - Moved the color picker from a local library to a managed npm package for better maintainability.
- Migrated from
Stability & Type Safety
- Type System Overhaul: Implemented extensive type safety improvements across the UI and settings, including stricter
JSON.parseassertions and refined null checks. - Async Reliability: Standardized async function patterns and wrapped callbacks to eliminate floating promises, reducing potential race conditions and crashes.
- DOM Context: Updated DOM manipulations to use
activeDocumentinstead of the globaldocument, ensuring better compatibility with Obsidian's environment.
UI & UX Polish
- Layout Refinements: Optimized the phone layout and fixed formatting issues for a more consistent look across devices.
- UI Modernization: Updated markdown rendering and various UI utilities for a more contemporary feel.
- Component Tweaks: Refined the color picker reset button dimensions and sanitized logo HTML for better security and appearance.
Maintenance
- Bridge Improvements: Enhanced Obsidian bridge patches and improved localization support.
- State Management: Abstracted
localStorageaccess through a dedicated adapter to decouple services from the storage implementation. - General Cleanup: Updated dependencies, refined the plugin manifest description, and updated the README.
Full Changelog: 0.1.13...0.2.2
0.1.13
What's Changed
- feat(ui): enhance css editor and add informational text and filter in snippet and theme item. #11
- manifest: update plugin id
Full Changelog: 0.1.10...0.1.13
Hotfix 0.1.10
What's Changed
Full Changelog: 0.1.9...0.1.10