Aurora background made possible with pure CSS. The blob continues to move smoothly, creating a fantastic atmosphere.
ピュアCSSで演出するオーロラ背景。訪問者を幻想的な表現で引き込みます。
Hero Section Background: Perfect for the background of the hero area of your landing page or splash page.
Pure CSS implementation: backdrop-filter not required. This can be achieved simply by applying filter: blur to the parent element of the blob.
Different delays and durations for multiple blobs: Setting each to prevent monotony of movement.
Content overlay: You can overlay content with z-index: 1 on top of the blob.
filter: blur(60px) on parent element: Improve performance by applying it to parent element instead of individual blobs.
Difference in wavelength from 8 to 13 seconds: Creating a natural sense of movement by not following the same rhythm.
radial-gradient to make it transparent from the center: Smooth color bleeding makes the soft light of the aurora style appear translucent.
.aurora-blob-1 { background: radial-gradient(ellipse, #f97316 0%, transparent 70%); }
.aurora-blob-2 { background: radial-gradient(ellipse, #ef4444 0%, transparent 70%); }
.aurora-blob-3 { background: radial-gradient(ellipse, #f59e0b 0%, transparent 70%); }
.aurora-blobs { opacity: 0.8; } /* 強め */
.aurora-blobs { opacity: 0.4; } /* 弱め */
<div class="aurora-wrap">
<div class="aurora-blobs">
<div class="aurora-blob aurora-blob-1"></div>
<div class="aurora-blob aurora-blob-2"></div>
<div class="aurora-blob aurora-blob-3"></div>
<div class="aurora-blob aurora-blob-4"></div>
</div>
<div class="aurora-content">
<h2>夜空に踊る</h2>
<p>ピュアCSSで演出するオーロラ背景。</p>
</div>
</div>
<style>
.aurora-wrap { position: relative; width: 100%; min-height: 400px; background: #030014; overflow: hidden; }
.aurora-blobs { position: absolute; inset: 0; filter: blur(60px); opacity: 0.65; }
.aurora-blob { position: absolute; border-radius: 50%; animation: aurora-move 10s ease-in-out infinite; }
.aurora-blob-1 { width: 400px; height: 300px; background: radial-gradient(ellipse, #6366f1 0%, transparent 70%); top: -100px; left: -100px; }
.aurora-blob-2 { width: 350px; height: 350px; background: radial-gradient(ellipse, #8b5cf6 0%, transparent 70%); top: -50px; right: -80px; animation-delay: -3s; animation-duration: 13s; }
.aurora-blob-3 { width: 300px; height: 250px; background: radial-gradient(ellipse, #06b6d4 0%, transparent 70%); bottom: -80px; left: 30%; animation-delay: -6s; animation-duration: 8s; }
.aurora-blob-4 { width: 250px; height: 300px; background: radial-gradient(ellipse, #ec4899 0%, transparent 70%); bottom: -60px; right: 10%; animation-delay: -2s; animation-duration: 11s; }
@keyframes aurora-move {
0%, 100% { transform: translate(0,0) scale(1); }
33% { transform: translate(30px,-20px) scale(1.05); }
66% { transform: translate(-20px,25px) scale(0.95); }
}
.aurora-content { position: relative; z-index: 1; text-align: center; padding: 3rem; }
</style> | Browser | Compatibility status |
|--------|-------|
| Chrome 43+ | ✅ Fully compatible |
| Firefox 16+ | ✅ Fully compatible |
| Safari 9+ | ✅ Fully compatible |
| Edge 79+ | ✅ Fully compatible |
Blue filters can affect performance on mobile, so consider stopping the animation with
animation: noneor adjustingmin-height.