Add primitives above to build your filter pipeline
// combine svg filter primitives with live preview
Build SVG filter effects visually. Combine feBlend, feColorMatrix, feGaussianBlur, feDropShadow and more primitives with live preview and instant SVG export.
Add primitives above to build your filter pipeline
Click any primitive button (feGaussianBlur, feColorMatrix, etc.) to add it to your filter pipeline.
Adjust sliders and inputs for each primitive. Changes apply instantly to the live preview.
Copy the generated SVG filter code and paste it into your project's SVG or CSS.
SVG filter primitives are low-level building blocks for image effects defined in the SVG specification. By chaining them in a pipeline, you can create complex visual effects — blurs, color shifts, lighting, displacement, and compositing — without any external libraries.
SVG filter primitives are individual operations like blurring, color manipulation, blending, and displacement that can be chained together inside an SVG <filter> element to create complex visual effects applied to SVG elements or HTML elements via CSS.
Yes! You can reference an SVG filter from CSS using filter: url(#filterId) on any HTML element. Define the <filter> in an inline SVG in your HTML, then reference it by ID from your CSS.
feBlend applies Photoshop-style blend modes (multiply, screen, overlay, etc.) to combine two inputs. feComposite uses alpha compositing operations (over, in, out, atop, xor) to combine two image layers with more control over transparency.
feColorMatrix applies a 4x5 matrix transformation to the RGBA channels of an image. It can create effects like grayscale, sepia, saturation changes, hue rotation, and custom color shifts. The "type" attribute lets you use common presets or a full matrix.
feOffset shifts the image by dx/dy pixels and is commonly used to create shadow effects. By combining feOffset with feMerge, you can overlay the shifted (shadowed) version under the original image to create drop shadows without using feDropShadow.
feTurbulence generates Perlin noise or fractal noise textures procedurally — no image source needed. It's used to create cloud-like textures, paper grain effects, and when combined with feDisplacementMap, wavy distortion effects.
SVG filter primitives have excellent browser support across all modern browsers including Chrome, Firefox, Safari, and Edge. The main caveat is that complex filter pipelines can be GPU-intensive, so testing performance on mobile is recommended.
Primitives are chained using the in and result attributes. The output of one primitive (named via result) becomes the input (in) of the next. Special keywords like SourceGraphic and SourceAlpha refer to the original element being filtered.
SVG filters are one of the most powerful and underused features of web graphics. Unlike CSS filters, which offer a limited set of predefined effects, SVG filter primitives give you low-level access to an image processing pipeline — letting you build custom effects from scratch by chaining individual operations. This tool makes that process visual and interactive, so you can experiment in real time without writing XML by hand.
💡 Looking for high-quality SVG templates and UI kits? MonsterONE offers unlimited downloads of SVG assets, icon sets, and design templates — worth checking out for your next project.
Every SVG filter is a directed graph of primitive operations. Each primitive takes one or more inputs (referenced by the in and in2 attributes), processes them, and produces an output (named with the result attribute). The special input value SourceGraphic refers to the original element being filtered, and SourceAlpha refers to its alpha channel.
For example, a simple glow effect chains three primitives: first feGaussianBlur blurs a copy of the source, then feColorMatrix boosts the brightness of the blur, and finally feMerge composites the original image on top. The result is a luminous glow around the element.
feGaussianBlur is the most commonly used filter primitive. It applies a Gaussian blur to the input with a configurable standard deviation for X and Y axes independently. A value of 0 means no blur, and values above 10 create heavy diffusion effects. Using different stdDeviationX and stdDeviationY values creates directional motion-blur effects. feGaussianBlur is the starting point for glow effects, soft drop shadows, and depth-of-field simulations.
feColorMatrix transforms each pixel's RGBA values using a matrix multiplication. The matrix type can be:
Combining feColorMatrix with feGaussianBlur and feMerge is the recipe for classic duotone effects popular in modern UI design.
feBlend combines two input images using blend modes identical to those in Photoshop and CSS: normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, and luminosity. This lets you composite filtered versions of an image in sophisticated ways. For instance, blending a blurred version of an image using "screen" mode creates a natural-looking bloom effect.
feDropShadow is a convenience primitive that combines feGaussianBlur, feOffset, feFlood, feComposite, and feMerge into a single element. It creates a drop shadow with configurable offset (dx, dy), blur (stdDeviation), and color. Unlike the CSS box-shadow property, feDropShadow follows the actual shape of the element — including transparent areas and irregular SVG paths — making it ideal for icon shadows.
feTurbulence generates procedural noise — either Perlin turbulence or fractal noise — without any input image. The noise pattern is controlled by baseFrequency (how detailed the noise is), numOctaves (how many layers of detail), and seed (random variation). Combined with feDisplacementMap, which uses the color channels of one image to displace the pixels of another, you can create water ripple effects, heat haze distortion, wavy flag animations, and organic texture overlays.
While feDropShadow is convenient, manually building shadows with feOffset and feMerge gives more control. feOffset shifts the input by dx and dy pixels. feMerge composites multiple results in order, like stacking layers. By blurring the source alpha, offsetting it, and then merging the original on top, you can create shadows with independent blur and color controls — for instance, a tight near-shadow combined with a wide, faint far-shadow for a realistic 3D look.
SVG filters are rendered by the browser's GPU compositor, but complex pipelines can still impact performance. Key tips: use x="-10%" y="-10%" width="120%" height="120%" on your filter element to define how much extra space the filter can paint outside its bounding box (required for blur and shadow effects that extend beyond the element). Avoid large blur values (above 20) on frequently animated elements. On mobile, prefer feDropShadow over manual shadow construction for better GPU optimization. Consider using filter-primitive-subregion attributes to limit the area each primitive processes.
SVG filters defined in inline SVG can be applied to any HTML element with the CSS rule filter: url(#filterId). This bridges the gap between SVG's powerful filter capabilities and regular HTML content. You can apply a custom feColorMatrix duotone effect to a <img> tag, or add feTurbulence distortion to a heading — all via CSS. The filter updates instantly with CSS transitions if you animate SVG filter attribute values with CSS animations targeting SVG properties.