CSS Masking

What is CSS Masking?

CSS Masking is a way to hide or reveal parts of an element using images or gradients—kind of like putting a stencil or cut-out over it.

Imagine you have a photo, but you only want a heart-shaped portion of it to be visible. With CSS masks, you can do that—no Photoshop needed!

Why Use CSS Masking?

Basic Syntax of CSS Masking

.element {
                      mask-image: url('shape.png');
                      mask-repeat: no-repeat;
                      mask-position: center;
                    }

You can also use the -webkit- prefix for better browser support:

.element {
                      -webkit-mask-image: url('shape.png');
                      -webkit-mask-repeat: no-repeat;
                      -webkit-mask-position: center;
                    }

Types of CSS Masking

1. Image Masking

Using an image as a mask where black = transparent, white = visible, and gray = partial opacity.

Example:

HTML (relevant part)

<div class="masked-box">Hello  mkcoder.com!</div>

CSS (relevant part)

.masked-box {
                      width: 300px;
                      height: 300px;
                      background: url('your-image.jpg') center/cover;
                      -webkit-mask-image: url('heart-shape.png');
                      -webkit-mask-repeat: no-repeat;
                      -webkit-mask-position: center;
                      -webkit-mask-size: cover;
                    }

Example in action:

Hello mkcoder.com!

Try it with any black-and-white PNG mask!

2. Gradient Masking

Using gradients as a mask—great for smooth transitions or fade effects.

Example:

HTML (relevant part)

<div class="gradient-mask">Hover Me</div>

CSS (relevant part)

.gradient-mask {
                      width: 300px;
                      height: 100px;
                      background: linear-gradient(to right, #ff6b6b, #f7f1e3);
                      color: white;
                      -webkit-mask-image: linear-gradient(to right, transparent 0%, black 100%);
                      -webkit-mask-repeat: no-repeat;
                    }

Example in action:

Hover Me

This makes the text or image gradually fade out.

3. Text Masking

If you want your text to appear filled with an image—this is a sweet trick!

Example:

HTML (relevant part)

<h1 class="image-text"> mkcoder.com</h1>

CSS (relevant part)

.image-text {
                      font-size: 100px;
                      font-weight: bold;
                      background: url('texture.jpg') center/cover;
                      color: transparent;
                      -webkit-background-clip: text;
                      -webkit-text-fill-color: transparent;
                    }

Example in action:

mkcoder.com

Not a mask technically, but a similar idea using background-clip.

Advanced Masking: Combining Shapes

You can combine multiple masks for complex designs using:

mask-composite: intersect | exclude | add | subtract;

Example:

.element {
                      -webkit-mask-image: url(circle.png), url(star.png);
                      -webkit-mask-composite: intersect;
                    }

This combines both masks where they overlap.

Browser Support

Most modern browsers support basic CSS masks, but for maximum compatibility, always use the -webkit- prefix.

Real-Life Example for mkcoder.com

Say you’re building a profile card for your mkcoder.com user dashboard. You can use masking to add a fancy cut-out photo effect like this:

HTML (relevant part)

<div class="profile-pic"></div>

CSS (relevant part)

.profile-pic {
                      width: 200px;
                      height: 200px;
                      background: url('user-photo.jpg') center/cover;
                      -webkit-mask-image: url('circle-mask.png');
                      -webkit-mask-size: cover;
                    }

Example in action:

This makes the photo appear in a perfect circle or any custom shape you prefer.

🛠️ Tips for Beginners

Cool Mask Ideas to Try

Practice Challenge for You

Create a card with a background image, apply a gradient mask on hover, and reveal a hidden message below the masked section.

Let me know when you're done—I’ll review it like your coding Bhai!

Conclusion

CSS Masking is a powerful technique that brings your website to life—without heavy graphics editing. Whether it’s for fun hover effects, creative image reveals, or dynamic layouts, mastering this feature will make you stand out in the web dev world.

So, Bhai—keep practicing, keep experimenting, and don't forget to test your ideas on mkcoder.com and make it shine!

Try it Yourself