Create, customize, and export beautiful blob shapes for your website
border-radius with 8 individual corner values, simulating SVG-like path distortion. The algorithm generates random control points around a circular path, with smoothness controlling the deviation amplitude.
CSS Blobs (border-radius method): Best for performant, animated organic shapes that need CSS transitions or animations. Lightweight for UI elements that resize responsively. Limited to convex shapes with continuous curves.
SVG Blobs: Recommended for complex concave shapes, detailed illustrations, print media, or when you need perfect scaling at any resolution. SVG offers more precise path control but requires different animation techniques.
| Feature | CSS Border-Radius | CSS Animations | CSS Gradients |
|---|---|---|---|
| Chrome 4+ | Full Support | Full Support | Full Support |
| Firefox 3+ | Full Support | Full Support | Full Support |
| Safari 5+ | Full Support | Full Support | Full Support |
| Edge 12+ | Full Support | Full Support | Full Support |
Animating border-radius triggers CSS paint operations. For 60fps animations:
transform for scale/position animations instead of border-radius when possibleFor complex blobs (8+ curves), apply will-change: border-radius; to hint browser optimizations:
.blob {
will-change: border-radius;
/* Only use when animating */
}
@media (prefers-reduced-motion)aria-hidden="true" or role="presentation"Copy the generated CSS into your stylesheet. For responsive designs:
/* Use relative units for responsive blobs */
.blob-container {
width: min(300px, 90vw);
aspect-ratio: 1; /* Maintain shape */
}
/* Or use viewport units */
.responsive-blob {
width: 20vw;
height: 20vw;
max-width: 300px;
max-height: 300px;
}
// React component with dynamic blob
function DynamicBlob({ complexity, smoothness }) {
const borderRadius = generateBlobCSS(complexity, smoothness);
return (
<div
className="blob"
style={{
borderRadius,
background: 'linear-gradient(135deg, #667eea, #764ba2)'
}}
/>
);
}
Solution: Use aspect-ratio: 1 or maintain equal width/height percentages. CSS border-radius values are percentage-based relative to each dimension.
Solution: Reduce complexity (3-5 curves), increase smoothness (60%+), or use SVG with CSS transforms instead of border-radius animation.
Solution: CSS gradients fill the bounding box, not the blob shape. For gradient following contour, use SVG with gradient fills or CSS mask with gradient background.
For more advanced shape generation, explore our CSS zig zag border Generator for complex polygons, or the CSS Gradient Generator for advanced gradient configurations.
Last updated: March 2025 | Compatibility verified for modern browsers (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)