Morph Blob - Liquid SVG Shape Animation Component
Beautiful liquid SVG blobs that continuously morph and flow like organic shapes. Features multiple shape variants (organic, smooth, spiky, wave), gradient colors, glow effects, and customizable animation speed. Perfect for backgrounds, avatars, loaders, and creative UI accents.
Installation
npx shadcn@latest add "https://ui-struct.vercel.app/r/morph-blob"
Usage
import MorphBlob from "@/components/ui/morph-blob";
gradientColors={['#8B5CF6', '#EC4899']}
Preview
Watch the blob continuously morph and flow like liquid.
import MorphBlob from './morph-blob';
export default function MorphBlobDefault() {
<div className="flex items-center justify-center min-h-[400px] p-8 bg-neutral-950 rounded-2xl mx-4">
gradientColors={['#8B5CF6', '#EC4899']}
Shape Variants
Four different blob shape styles for various aesthetics.
| Variant | Description |
|---|
organic | Natural, irregular shapes |
smooth | Soft, flowing transitions |
spiky | Sharper, more angular edges |
wave | Wavy, undulating forms |
Colors & Gradients
Solid colors, gradients, and glow effects.
| Gradient Direction | Effect |
|---|
horizontal | Left to right |
vertical | Top to bottom |
diagonal | Corner to corner |
Layered Blobs
Stack multiple blobs for depth and visual richness.
Background Effect
Create stunning hero sections with blob backgrounds.
✨ Introducing v2.0Beautiful Liquid
Backgrounds
Create stunning visual effects with morphing SVG blobs that flow and animate smoothly.
Card Accents
Use blobs as decorative elements in cards.
Lightning Fast
Optimized performance with instant load times and smooth animations.
Pro Plan$29/mo
- ✓ Unlimited projects
- ✓ Priority support
- ✓ Custom domains
- ✓ Analytics
Avatar Backgrounds
Dynamic backgrounds for user avatars.
Loading States
Creative loading indicators with morphing blobs.
Animation Speed
Control how fast the blob morphs.
Props
| Prop | Type | Default | Description |
|---|
className | string | '' | Additional CSS classes |
size | number | 300 | Width and height in pixels |
color | string | '#8B5CF6' | Solid fill color |
gradientColors | [string, string] | - | Gradient start/end colors |
gradientDirection | 'horizontal' | 'vertical' | 'diagonal' | 'diagonal' | Gradient direction |
duration | number | 8 | Animation cycle in seconds |
blur | number | 0 | Blur amount in pixels |
glow | boolean | false | Enable glow effect |
glowIntensity | number | 20 | Glow blur radius |
variant | 'organic' | 'smooth' | 'spiky' | 'wave' | 'organic' | Shape style |
Creative Tips
Background Composition
// Multiple blobs with different positions and opacities
<div className="relative overflow-hidden">
<div className="absolute -top-20 -left-20 opacity-40">
<MorphBlob size={400} gradientColors={['#3B82F6', '#8B5CF6']} blur={3} />
<div className="absolute -bottom-20 -right-20 opacity-40">
<MorphBlob size={400} gradientColors={['#EC4899', '#F97316']} blur={3} />
- Use
blur sparingly as it can impact performance
- Larger
size values may slow down animations
- Consider reducing
particleCount on mobile devices
Full Code