Blurring a background image is a powerful design technique that enhances readability and visual focus on foreground content. Whether you’re designing a login page, a card layout, or a hero section, applying a blur effect can create a clean, modern aesthetic. In this tutorial, we’ll walk you through how to blur a background image using pure CSS.
🖼️ Why Blur a Background Image?
Blurring background images helps in:
- Highlighting foreground text or elements.
- Creating a soft, elegant visual effect.
- Improving user experience and readability.
🔧 Method 1: Blurring the Entire Background Image
The simplest way to blur a background image is by applying the filter: blur()
property directly to the image or a pseudo-element behind the main content.
✅ Example using a <div>
with background image:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Blur Background Image</title>
<style>
body, html {
height: 100%;
margin: 0;
}
.blur-bg {
background-image: url('your-image.jpg');
background-size: cover;
background-position: center;
height: 100vh;
filter: blur(8px);
}
</style>
</head>
<body>
<div class="blur-bg"></div>
</body>
</html>
⚠️ Caveat:
The blur affects everything inside the .blur-bg
container, so this approach works best when the image is in its own separate layer.
💡 Method 2: Blurred Background Behind Clear Foreground Content
To keep content sharp while only blurring the background, you can layer two elements: a blurred background layer and a clear foreground content layer.
✅ Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Blurred Background with Clear Content</title>
<style>
body, html {
height: 100%;
margin: 0;
}
.background {
background-image: url('your-image.jpg');
background-size: cover;
background-position: center;
filter: blur(8px);
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.content {
position: relative;
z-index: 1;
color: white;
text-align: center;
padding-top: 200px;
font-size: 2rem;
}
</style>
</head>
<body>
<div class="background"></div>
<div class="content">
<h1>Welcome to Our Website</h1>
<p>This content stays sharp while the background is beautifully blurred.</p>
</div>
</body>
</html>
🧪 Tips for Better Results
- Use high-resolution background images to avoid pixelation after blurring.
- Use semi-transparent overlays to enhance contrast:
.overlay { background-color: rgba(0, 0, 0, 0.3); }
- Keep
filter: blur(px)
values between5px
and15px
for subtle, readable effects.
🧾 Conclusion
Blurring background images with CSS is a modern design technique that enhances visual appeal and readability without JavaScript or heavy libraries. By using CSS properties like filter: blur()
and positioning
, you can create professional, layered UI effects with minimal code.
Need more visual effects? Try combining blur()
with other filters like brightness()
, grayscale()
, or even CSS animations for dynamic experiences.