Filters
The Filters section in the [Properties Panel](properties-panel.md) lets you apply CSS filter effects to an element without writing CSS by hand — blur, brightness, contrast, saturation, hue rotation...
The Filters section in the Properties Panel lets you apply CSS filter effects to an element without writing CSS by hand — blur, brightness, contrast, saturation, hue rotation, and more. Filters stack: each row in the section is one filter function, applied in order from top to bottom.
Adding a Filter
- Select an element on the canvas.
- Open the Filters section.
- Click + Add filter. A new row appears, defaulted to a modest blur so you can see the effect immediately.
Filter Kinds
Each row has a kind dropdown and a numeric value input. Pick a kind and the unit changes automatically:
| Kind | Unit | Range | What it does |
|---|---|---|---|
| Blur | px | 0–100 | Gaussian blur — higher = blurrier |
| Brightness | % | 0–200 | 100% = unchanged; <100% darker, >100% brighter |
| Contrast | % | 0–200 | 100% = unchanged; 0% flat grey; 200% high-contrast |
| Grayscale | % | 0–100 | Desaturate towards grey; 100% = fully grey |
| Hue rotate | deg | 0–360 | Rotate hues around the color wheel |
| Invert | % | 0–100 | Invert colors; 100% = fully inverted |
| Opacity | % | 0–100 | CSS filter opacity (distinct from the element opacity property — applied as part of the filter chain) |
| Saturate | % | 0–200 | 100% = unchanged; 0% flat grey; 200% supersaturated |
| Sepia | % | 0–100 | Sepia tone; 100% = fully sepia |
Multiple filters
Stacking filters compounds them. Order matters — blur(8px) brightness(120%) is not visually the same as brightness(120%) blur(8px). Rows render top-to-bottom in the CSS output, so
read the section from top down to predict the result.
To remove a filter, click the × on its row.
Backdrop Filter
A second filter chain that applies to the content behind the element rather than to the element itself. Most commonly used for "frosted glass" effects.
- Toggle Backdrop filter on at the bottom of the section.
- + Add backdrop filter to start a chain. Same kind list as the main filter row above.
- Backdrop filters only have a visible effect when the element has a partially transparent background — otherwise the element's own background obscures what would have been filtered.
A reminder hint appears in the section when backdrop is enabled.
Tips
- Filter on a parent element affects all of its children —
filter: blur(4px)on a card blurs its text and image together. Usebackdrop-filterfor "blur the layer behind" instead. - The output CSS emits everything as a single space-joined
filter:declaration:filter: blur(4px) brightness(120%) grayscale(20%); - Removing the last row drops the
filterdeclaration entirely (nofilter: noneleft behind). - Filter chains round-trip through
parseCode: edit them in your editor or via an AI agent and the panel rebuilds the rows from the file. Anything Scamp doesn't model — likedrop-shadow()orurl(#svg-filter)— survives verbatim through thecustomPropertiespassthrough.
Per-state and per-breakpoint filters
Filters honour the State Switcher and Breakpoints: change the active state or breakpoint, edit the Filters section, and the change lands in that scope's override instead of the base CSS. A small blue dot appears next to the section title when an override is active — right-click to reset.