Layer Basics
Layers are the foundation of non-destructive editing in Paint Forge. Every layer is a hybrid: it contains both a raster canvas (for pixel-based tools like brushes and erasers) and a vector objects array (for shapes, text, and paths). Vector objects render on top of the raster content within the same layer.
Layers are ordered from bottom to top — the layer at the bottom of the panel is drawn first, and each successive layer composites on top. Every layer has independent controls for:
- Visibility (eye icon) — toggle whether the layer is rendered
- Lock (padlock icon) — prevent accidental edits
- Opacity (0 - 100%) — controls overall layer transparency
- Blend Mode — determines how the layer composites with layers below it
Press 0–9 on your keyboard to quickly set layer opacity. 0 sets 100%, 1 sets 10%, 2 sets 20%, and so on. When objects are selected with the Select tool, the same keys set object opacity instead.
Layer Types
Regular Layers
The default layer type. A regular layer has its own raster canvas where pixel tools paint directly, plus an ordered list of vector objects (shapes, text, images, paths) that render on top of the raster data. Most editing work happens on regular layers.
Adjustment Layers
An adjustment layer holds a filter configuration rather than image content of its own. The filter is applied non-destructively to the composite of all layers below it, so you can change or remove it at any time without altering any pixels. Paint Forge supports 13 adjustment layer types:
| Adjustment Type | Description |
|---|---|
| Brightness/Contrast | Adjusts overall brightness and contrast of the image. |
| Curves | Per-channel tonal control via a draggable spline curve. |
| Levels | Remaps input/output tonal range with gamma control. |
| Exposure | Simulates camera exposure adjustment (EV stops). |
| Hue/Saturation | Shifts hue, adjusts saturation and lightness. |
| Color Balance | RGB shifts weighted by tonal range (shadows, midtones, highlights). |
| Vibrance | Boosts under-saturated colors while protecting already-saturated ones. |
| Channel Mixer | Remaps RGB channels via a 3x3 matrix with constant offset. Includes monochrome preset. |
| Selective Color | Per-hue CMYK adjustments across 9 color ranges with relative or absolute method. |
| Gradient Map | Maps image luminance to a user-defined color gradient. |
| Threshold | Converts the image to pure black and white at a configurable luminance cutoff. |
| Posterize | Reduces the number of color levels per channel, creating flat color bands. |
| Invert | Inverts all color channels, producing a photographic negative effect. |
Add an adjustment layer from Image > Add Adjustment Layer or the + dropdown in the Layers panel. They are auto-named sequentially (e.g. “Curves 1”, “Curves 2”).
Group Layers
A group layer acts as a folder that contains child layers. Groups do not have raster content of their own, but they carry their own opacity, blend mode, and optional mask that affect all children collectively. See the Layer Groups section below for details.
Blend Modes
Blend modes control how a layer's pixels combine with the composite of the layers below. Paint Forge supports 23 blend modes organized into six groups. Blend modes can be set per-layer (via the Layers panel) and per-object (via the Properties panel).
Normal Group
Standard compositing with no special blending.
| Internal Key | Display Name | Rendering |
|---|---|---|
source-over | Normal | Native Canvas 2D composite |
Darken Group
Each channel keeps the darker value between the layer and the composite below.
| Internal Key | Display Name | Rendering |
|---|---|---|
darken | Darken | Native Canvas 2D composite |
multiply | Multiply | Native Canvas 2D composite |
color-burn | Color Burn | Native Canvas 2D composite |
Lighten Group
Each channel keeps the lighter value between the layer and the composite below.
| Internal Key | Display Name | Rendering |
|---|---|---|
lighten | Lighten | Native Canvas 2D composite |
screen | Screen | Native Canvas 2D composite |
color-dodge | Color Dodge | Native Canvas 2D composite |
lighter | Linear Dodge (Add) | Native Canvas 2D composite |
Contrast Group
Increases or decreases contrast depending on the underlying tones.
| Internal Key | Display Name | Rendering |
|---|---|---|
overlay | Overlay | Native Canvas 2D composite |
hard-light | Hard Light | Native Canvas 2D composite |
soft-light | Soft Light | Native Canvas 2D composite |
vivid-light | Vivid Light | Software pixel blending |
linear-light | Linear Light | Software pixel blending |
pin-light | Pin Light | Software pixel blending |
hard-mix | Hard Mix | Software pixel blending |
Comparative Group
Computes the mathematical difference or ratio between layers.
| Internal Key | Display Name | Rendering |
|---|---|---|
difference | Difference | Native Canvas 2D composite |
exclusion | Exclusion | Native Canvas 2D composite |
subtract | Subtract | Software pixel blending |
divide | Divide | Software pixel blending |
Component Group
Blends individual HSL components (hue, saturation, or luminosity) from one layer onto another.
| Internal Key | Display Name | Rendering |
|---|---|---|
hue | Hue | Native Canvas 2D composite |
saturation | Saturation | Native Canvas 2D composite |
color | Color | Native Canvas 2D composite |
luminosity | Luminosity | Native Canvas 2D composite |
Blend Mode Features
- Recent blend modes — the last 5 blend modes you used appear at the top of the dropdown for quick access.
- Favorite blend modes — click the star icon next to any blend mode to favorite it. Up to 10 favorites are shown in a dedicated section of the dropdown.
- Blend mode presets — save and load named combinations of blend mode + opacity for frequently used layer styles.
The six software-blended modes (Subtract, Divide, Vivid Light, Linear Light, Pin Light, Hard Mix) use per-pixel math because they are not natively supported by the Canvas 2D API. They are slightly slower than native modes on very large canvases.
Layer Operations
| Operation | Shortcut | Description |
|---|---|---|
| Add Layer | Creates a new empty regular layer above the active layer. | |
| Delete Layer | Removes the active layer and selects the nearest remaining layer. | |
| Duplicate Layer | Creates an identical copy of the active layer including raster data, vector objects, and masks. | |
| Reorder Layers | Drag and drop layers in the Layers panel to change their stacking order. | |
| Merge Layer Down | Ctrl+E | Merges the active layer into the layer directly below it. |
| Merge Visible Layers | Ctrl+Shift+E | Composites all visible layers into the bottom-most visible layer and removes the others. This is destructive. |
| Merge Visible to New Layer | Ctrl+Shift+Alt+E | Non-destructive stamp: composites all visible layers into a new layer on top while leaving the originals untouched. |
| Flatten Image | Renders the full composite (raster, vector, adjustments, masks, blend modes, and background) into a single flat raster layer. All other layers are removed. | |
| Rasterize Layer | Burns all vector objects on the active layer into the raster canvas. The layer's blend mode and opacity are preserved. | |
| Layer Via Copy | Ctrl+J | Copies the pixel selection content to a new layer inserted above the source layer. The original layer is untouched. |
| Layer Via Cut | Ctrl+Shift+J | Cuts the pixel selection content to a new layer inserted above the source layer. The selected area is erased from the source. |
| Delete Hidden Layers | Removes all layers whose visibility is currently off. Available from the Image menu and command palette. | |
| Delete Empty Layers | Removes all layers that contain no raster pixels and no vector objects. Available from the Image menu and command palette. |
Opacity Shortcuts
When no objects are selected, press 0–9 to set the active layer's opacity (0 = 100%, 1 = 10%, 5 = 50%, etc.). When objects are selected with the Select tool, the same keys control object opacity instead.
Color Labels
Assign a color label to any layer for visual organization. Eight label colors are available: red, orange, yellow, green, blue, purple, pink, and gray. The label appears as a colored dot and left-side accent bar in the Layers panel. You can also filter layers by color label using the extended search syntax color:red in the Layers panel search bar.
Layer Groups
Groups act as folders that organize related layers together. A group has its own opacity and blend mode, which are applied to the composited result of all its children.
- Create a group with Ctrl+G or via Image menu.
- Drag layers into or out of a group in the Layers panel.
- Remove a layer from its group via Image menu or command palette (layer:removefromgroup) — the layer is promoted to the top level without losing its content.
- Collapse or expand individual groups, or use Collapse All / Expand All from the Layers panel toolbar.
- Ungroup a group (Ctrl+Shift+G) to dissolve the folder and promote all children to the parent level.
- Group opacity and blend mode affect all child layers collectively.
- Groups can have their own layer mask (see Layer Masks below).
- Nested groups are supported — groups within groups.
- Select all objects on the active layer via Edit > Select All on Layer (command palette: selection:selectalllayer).
Auto-Organize Layers
The Auto-Organize feature (available from the Layers panel toolbar, Image menu, or command palette) analyzes your top-level layers and groups them by content type into folders: Text, Raster, Shapes, and Adjustments. You can choose which categories to group via checkboxes before applying.
Layer Masks
A layer mask is a grayscale canvas attached to a layer that controls the visibility of each pixel. White pixels in the mask are fully visible, black pixels are fully hidden, and gray values produce partial transparency.
Mask Controls
| Feature | Description |
|---|---|
| Add / Remove Mask | Add a mask via Image > Mask > Add Mask. New masks start as all-white (fully visible). Remove a mask to discard it entirely. |
| Mask Density (0 - 1) | Controls the overall strength of the mask. At density 1, the mask is fully applied. At 0, the mask has no effect (layer is fully visible). |
| Mask Feather (0 - 50px) | Softens the edges of the mask by applying a blur. Higher values produce smoother transitions between masked and unmasked areas. |
| Mask Visibility Toggle | Temporarily disable the mask without removing it. Useful for comparing the layer with and without its mask. |
| Mask Editing Mode | When enabled, painting tools draw on the mask canvas instead of the raster canvas. Paint white to reveal and black to hide. |
| Invert Mask | Flips all mask values (white becomes black and vice versa), reversing which areas are visible. |
| Copy Mask | Copies the mask data from one layer to another via Image > Mask > Copy Mask to Below. |
| Mask from Selection | Creates or replaces the layer mask using the current pixel selection. Selected areas become white, unselected become black. |
| Selection from Mask | Converts the layer mask into a pixel selection. White mask areas become selected, black become deselected. |
| Toggle Mask Editing (Ctrl+\) | Keyboard shortcut to quickly toggle mask editing mode on the active layer without clicking the mask thumbnail. |
| View Mask Solo | Alt+click the mask thumbnail to view the mask in grayscale isolation. Alt+click again to return to normal composite view. |
Quick Mask Mode
Press Q to enter Quick Mask Mode. In this mode, a temporary grayscale canvas is created at document size. If a pixel selection already exists, it is rendered as white on black onto this canvas. You can then use any painting tool to refine the selection: paint white to add to the selection, black to remove from it. A semi-transparent red overlay previews the mask on the canvas.
Press Q again (or switch to a non-painting tool) to exit Quick Mask Mode. The canvas luminance is converted back into a pixel selection mask. The Status Bar shows a “Quick Mask” indicator while the mode is active.
Alpha Lock
Alpha Lock restricts painting tools so they can only affect pixels that already have non-zero alpha (i.e., existing content). Transparent areas remain transparent regardless of brush strokes. This is useful for recoloring or texturing shapes without painting outside their boundaries.
- Toggle per-layer via the Grid3x3 icon in the Layers panel.
- Works with all raster painting tools (brush, eraser, spray, calligraphy, blur, sharpen, dodge/burn, smudge, clone stamp, healing brush, color replace, fill).
- Implemented via alpha channel snapshot/restore: the original alpha is captured before each stroke and restored afterward.
- Optimized with region-based restore for strokes that affect a small portion of the canvas.
Alpha Lock is independent of layer masks. You can use both on the same layer — the mask controls visibility while alpha lock controls paint boundaries.
Adjustment Layers
Adjustment layers are the primary way to apply non-destructive color and tonal corrections. Unlike applying a filter directly to a raster layer (which permanently modifies pixels), an adjustment layer stores only the filter configuration. It is applied live to the composite of all layers below it during rendering.
| Type | Key | What It Controls |
|---|---|---|
| Brightness/Contrast | brightness-contrast | Brightness (-100 to 100) and contrast (-100 to 100) sliders. |
| Curves | curves | Draggable control points per channel (RGB, Red, Green, Blue). Monotone cubic Hermite spline interpolation. 5 built-in presets. |
| Levels | levels | Input black/white points, gamma midtone slider, and output range. Per-channel or combined. |
| Exposure | exposure | Exposure value in EV stops. Works with highlights and shadows sliders. |
| Hue/Saturation | hue-saturation | Global hue rotation, saturation boost/cut, and lightness shift. |
| Color Balance | color-balance | Cyan-Red, Magenta-Green, Yellow-Blue shifts independently for shadows, midtones, and highlights. |
| Vibrance | vibrance | Vibrance (smart saturation) and saturation sliders. |
| Channel Mixer | channel-mixer | Red/Green/Blue output channels each controlled by R/G/B input percentages plus constant. Monochrome preset zeroes cross-channels. |
| Selective Color | selective-color | Adjust Cyan, Magenta, Yellow, Black amounts for Reds, Yellows, Greens, Cyans, Blues, Magentas, Whites, Neutrals, and Blacks. |
| Gradient Map | gradient-map | Luminance mapped to gradient stops with configurable blend strength. 5 built-in gradient presets. |
| Threshold | threshold | Single threshold slider (0-255). Pixels above the threshold become white; below become black. |
| Posterize | posterize | Levels slider (2-8). Controls how many distinct color levels per channel are preserved. |
| Invert | invert | No controls — toggles a full channel inversion on or off. |
Adjustment Layer Features
- Clipping masks supported: an adjustment layer can be clipped to the layer directly below it, affecting only that layer instead of the entire composite.
- Copy / Paste adjustment settings between adjustment layers via Image menu or command palette (layer:copyadjustment / layer:pasteadjustment).
- Adjustment presets: save, load, export, and import named adjustment configurations. Access via the preset picker in the adjustment layer config panel.
- Auto-named sequentially (e.g. "Curves 1", "Levels 2") to avoid ambiguity when multiple adjustment layers of the same type exist.
- Adjustment layers can be reordered, hidden, or deleted like any other layer.
- Each adjustment type has its own configuration panel with sliders and visual editors (e.g. the Curves editor with interactive control points).
- A floating Adjustment Dialog (Edit menu or command palette) lets you apply individual adjustments without creating a full adjustment layer.
Use Ctrl+R to repeat the last applied filter or adjustment — it reapplies the exact same settings without opening any dialog.
Layer Comps
Layer Comps are lightweight named snapshots that capture the visibility, opacity, and lock state of every layer. They let you quickly switch between different configurations of your layer stack without duplicating layers or flattening.
- Create a comp to save the current visibility, opacity, and lock state of all layers.
- Restore a comp to instantly return all layers to that saved state.
- Rename or delete comps as your project evolves.
- Each comp stores a small thumbnail preview for quick identification.
- Up to 10 layer comps per project.
- Persisted to localStorage alongside the auto-save.
Cycle through your saved layer comps with Shift+Arrow Left and Shift+Arrow Right when no objects are selected. The comp name and index are shown in a toast notification as you cycle.
Layer comps are ideal for presenting design alternatives to clients — save one comp per variation, then cycle through them during review.
Layer Solo Mode
Solo mode lets you isolate a single layer by hiding everything else. Alt+click the eye (visibility) icon of any layer to solo it. All other layers are hidden and the soloed layer's eye icon turns amber to indicate solo mode.
Alt+click the eye icon again to unsolo and restore the previous visibility state of all layers. You can also use Image > Show All Layers to make every layer visible and exit solo mode at the same time.
Solo mode is especially useful when working in complex documents with many layers — it lets you see and edit one layer in complete isolation without manually toggling dozens of visibility switches.
Mask Solo Mode
Mask solo mode lets you view a layer's mask in isolation as a grayscale preview, making it easier to inspect and paint fine mask details. Alt+click the mask thumbnail in the Layers panel to enter mask solo mode. The canvas shows the mask as grayscale (white = visible, black = hidden) and hides all other layer content.
Alt+click the mask thumbnail again to exit mask solo mode and restore the normal composite view. The mask itself is not modified by entering or exiting solo mode.
Clipping Masks
A clipping mask clips a layer's content to the alpha channel of the layer directly below it. Pixels in the clipped layer are only visible where the layer beneath has non-transparent content. This is a powerful non-destructive technique for containing edits within a shape or selection.
- Toggle clipping mask via the layer context menu or the Layer > Clipping Mask option in the Layers panel.
- A clipped layer is shown with a downward arrow indicator and indented thumbnail in the Layers panel.
- Multiple layers can be clipped to the same base layer by stacking them consecutively above it.
- Adjustment layers can also be clipped — they then only affect the single layer below them instead of the entire composite.
- The base layer's opacity and blend mode affect the entire clipping group.
Clipping masks are ideal for applying textures, gradients, or adjustments to a specific shape without painting a mask. For example, place a texture layer above a shape layer and enable clipping — the texture will only appear inside the shape.