- Add run-workflow button to the LayerForge fullscreen editor and route it
through ComfyUI's native queue action when available.
- Switch fullscreen toolbar tooltips to the centralized tooltip manager.
- Generalize zoom-snapshot caching to viewport-snapshot caching so panning
can reuse the composited scene bitmap; schedule pan viewport updates
per display frame and clean up pending animations on teardown/blur.
- Preserve a stale processed-image fallback during transform/crop/wheel
transitions and always show the blend-area effect when enabled.
- Raise toast notifications to z-index 2147483647 so they stay above the
fullscreen editor and other application overlays.
- Convert keyboard shortcuts help button to persistent click-toggle tooltip
- Add interactive, persistent, and onDismiss options to TooltipManager
- Dismiss persistent tooltips on outside pointerdown or Escape key
- Add delayed hide for interactive tooltips when leaving the target
- Update tooltip CSS for scrolling, interactive pointer-events, and text mode
Replace scattered inline tooltip implementations across canvas_view,
custom_shape_menu, layers_panel, batch_preview_manager, and notifications
with a single shared TooltipManager class.
- New src/utils/tooltip_manager.ts (and compiled js/utils/tooltip_manager.js)
provides observeRoot/bindTooltips/setTooltip/showTooltip/hideTooltip API
- Migrate title attributes to data-tooltip and normalize via MutationObserver
- Rename tooltip CSS from .lf-painter-tooltip/.lf-layerforge-tooltip to
.lf-global-tooltip and raise z-index to 1000001
- Remove duplicate matting-specific tooltip styles from canvas_view.css
- Update generated js/ outputs to match src/ changes
Use transparent canvas backgrounds, rgba styling, and CSS custom properties
(--lf-canvas-fill, --lf-surface-border, --lf-controls-surface,
--lf-layers-surface, --lf-surface-shadow) so the editor's native color tints
the node underneath. CanvasRenderer now clears the canvas each frame and
reads the fill from CSS, avoiding alpha buildup and keeping the UI readable.
Refactors all custom CSS class names to include an 'lf-' prefix
(e.g. .painter-button -> .lf-painter-button, .clipboard-switch -> .lf-clipboard-switch).
This isolates LayerForge styles within the ComfyUI DOM and prevents
CSS namespace collisions with other custom nodes or host page styles.
Changes span src/ TypeScript source files and src/css/ stylesheets.
Introduce a three-state checkbox in CanvasLayersPanel header to control visibility of all layers at once. Supports automatic state updates and integrates with renderLayers() for seamless layer management.
Fixed LayerForge fullscreen mode displaying behind ComfyUI interface elements by increasing z-index from 111 to 999999. Fullscreen mode now properly overlays all UI components as intended.
Added updateButtonStates() to enable/disable delete button based on selection
Updated control setup and selection handlers to call this method
Added CSS for disabled button state and tooltip
Delete button now disables when no layers are selected; all other panel features unchanged
Moved all inline styles from CanvasLayersPanel.ts to layers_panel.css
Updated TypeScript to load external CSS and removed injectStyles()
Replaced inline styles with CSS classes in UI methods
Ensured all panel features and interactions work as before
Improved code maintainability and consistency with project structure
Moved all blend mode menu styles from CanvasLayers.ts to a dedicated CSS file. Replaced inline styles with CSS classes and preserved all functionality.
I updated src/css/custom_shape_menu.css with new styles for a modern look and feel, and I refactored src/CustomShapeMenu.ts to use a new HTML structure for the checkboxes that works with the updated CSS. The menu should now be fully functional with the new design.
moved all CSS from src/CustomShapeMenu.ts to a new file src/css/custom_shape_menu.css and updated the TypeScript file to use the external stylesheet. This improves code organization and maintainability.
Moved inline CSS from CanvasView.js to a dedicated canvas_view.css file and added dynamic stylesheet loading. Extracted tooltip and shortcut HTML into separate template files and implemented a ResourceManager utility for loading stylesheets and templates. Updated CanvasInteractions.js and CanvasView.js to use the new resource management and template loading approach, improving maintainability and modularity.