Tillitsdone
down Scroll to discover

CSS mask-clip Control Element Masking

Learn how to use the CSS mask-clip property to control the area affected by a mask.

Discover available options like content-box, padding-box, and border-box.
thumbnail

Introduction

The mask-clip CSS property determines which parts of an element are affected by a mask. This feature works across the latest devices and browser versions (as of December 2023), though it might not function on older devices or browsers. Understanding mask-clip is key for web developers and designers to create visually appealing and interactive web pages.

This property offers precise control over which parts of an element are masked, enhancing sophisticated designs. By defining the area where the mask applies, developers can ensure that only specific portions of an element are masked while others remain visible. This is particularly useful for creating intricate layouts and animations in web design.

The mask-clip property is a powerful tool in CSS, offering flexibility to create innovative and engaging web experiences. Mastering mask-clip can significantly enhance the visual appeal and functionality of websites.

Specification

The mask-clip property is defined in the CSS Masking Module Level 1 specification. This property is crucial for controlling how masks are applied to elements on a web page. The CSS Masking Module Level 1 outlines the standard behavior and values associated with mask-clip, ensuring consistent implementation across different browsers and platforms.

Understanding the specification is important for web developers aiming to leverage the full potential of masking techniques in their projects. The specification provides clear guidelines on how to use mask-clip effectively, detailing the various values and their effects. This includes standard values like content-box, padding-box, border-box, and more, as well as non-standard values for specific use cases.

By adhering to the guidelines set forth in the CSS Masking Module Level 1, developers can ensure that their use of mask-clip is compatible and functional across a wide range of devices and browsers. This not only enhances the visual consistency of web designs but also improves the overall user experience.

For further details, refer to the official CSS Masking Module Level 1 specification.

Syntax

The mask-clip property in CSS is used to specify the area affected by a mask. The syntax for this property is straightforward and allows for various values to be applied. Here’s a breakdown of how to use mask-clip in your CSS:

/* <coord-box> values */
mask-clip: content-box;
mask-clip: padding-box;
mask-clip: border-box;
mask-clip: fill-box;
mask-clip: stroke-box;
mask-clip: view-box;
/* Keyword values */
mask-clip: no-clip;
/* Non-standard keyword values */
-webkit-mask-clip: border;
-webkit-mask-clip: padding;
-webkit-mask-clip: content;
-webkit-mask-clip: text;
/* Multiple values */
mask-clip: padding-box, no-clip;
mask-clip: view-box, fill-box, border-box;
/* Global values */
mask-clip: inherit;
mask-clip: initial;
mask-clip: revert;
mask-clip: revert-layer;
mask-clip: unset;

Explanation of Syntax Components

  • <coord-box> values: These values define the area of the element to be affected by the mask. Options include content-box, padding-box, border-box, fill-box, stroke-box, and view-box.
  • Keyword values: The no-clip value indicates that the painted content is not clipped.
  • Non-standard keyword values: These are vendor-prefixed values (e.g., -webkit-mask-clip) that behave similarly to the standard values but are specific to certain browsers.
  • Multiple values: You can specify multiple values, separated by commas, to apply different clipping behaviors simultaneously.
  • Global values: These values include inherit, initial, revert, revert-layer, and unset, which are used to handle inheritance and resetting of the property.

Understanding the syntax of mask-clip allows web developers to precisely control how masks are applied to elements, enhancing the visual design and interactivity of web pages.

Values

The mask-clip CSS property accepts a range of values that determine the area affected by a mask. These values dictate which parts of an element are clipped by the mask, providing fine-grained control over the visual presentation. Here’s a detailed look at each of the values you can use with mask-clip:

content-box

The painted content is clipped to the content box. This means that only the content area of the element is affected by the mask, excluding padding, border, and margin.

padding-box

The painted content is clipped to the padding box. This includes the content area and the padding of the element, but not the border or margin.

border-box

The painted content is clipped to the border box. This includes the content area, padding, and border of the element, but not the margin.

fill-box

The painted content is clipped to the object bounding box. This is particularly useful for SVG elements, where the fill area of the element is considered.

stroke-box

The painted content is clipped to the stroke bounding box. This is also useful for SVG elements, where the stroke area of the element is considered.

view-box

Uses the nearest SVG viewport as the reference box. If a viewBox attribute is specified for the element creating the SVG viewport, the reference box is positioned at the origin of the coordinate system established by the viewBox attribute, and the dimension of the reference box is set to the width and height values of the viewBox attribute.

no-clip

The painted content is not clipped. This value ensures that the mask does not restrict any part of the element.

border

This keyword behaves the same as border-box. It is a non-standard value and is typically used with vendor prefixes like -webkit-mask-clip.

padding

This keyword behaves the same as padding-box. It is a non-standard value and is typically used with vendor prefixes like -webkit-mask-clip.

content

This keyword behaves the same as content-box. It is a non-standard value and is typically used with vendor prefixes like -webkit-mask-clip.

text

This keyword clips the mask image to the text of the element. It is a non-standard value and is typically used with vendor prefixes like -webkit-mask-clip.

Multiple Values

You can specify multiple values separated by commas to apply different clipping behaviors simultaneously. For example:

mask-clip: padding-box, no-clip;
mask-clip: view-box, fill-box, border-box;

Global Values

Global values include inherit, initial, revert, revert-layer, and unset. These values are used to handle inheritance and resetting of the property.

  • inherit: Inherits the value from the parent element.
  • initial: Sets the property to its initial value.
  • revert: Reverts the property to the value specified by the user-agent stylesheet.
  • revert-layer: Reverts the property to the value specified by the user-agent stylesheet for the current layer.
  • unset: Resets the property to its natural value, which means it acts as inherit if the property is inheritable or initial if not.

Understanding and utilizing these values effectively allows web developers to create sophisticated and visually appealing designs, enhancing the overall user experience.

Formal Definition

The mask-clip CSS property is defined to determine the area of an element that is affected by a mask. This property is crucial for controlling the visibility of elements and ensuring that only specific parts are masked. Here’s a detailed formal definition of the mask-clip property:

Initial Value

  • Initial Value: border-box

By default, the mask-clip property is set to border-box, which means that the mask is applied to the entire area of the element, including the content, padding, and border, but not the margin.

Applies To

  • Applies To: All elements
  • In SVG: It applies to container elements excluding the <defs> element and all graphics elements.

The mask-clip property can be applied to any HTML element to control the area affected by the mask. In SVG, it is particularly useful for container elements and graphics elements, except for the <defs> element.

Inherited

  • Inherited: No

The mask-clip property is not inherited from the parent element. This means that each element must have its own mask-clip value specified if you want to control the masking behavior individually.

Computed Value

  • Computed Value: As specified

The computed value of the mask-clip property is the value that is explicitly set in the CSS. There is no additional computation or modification of the value beyond what is specified.

Animation Type

  • Animation Type: Discrete

The mask-clip property does not support smooth transitions or animations. Changes to the mask-clip value will result in discrete steps rather than gradual transitions.

Formal Syntax

mask-clip =
[<coord-box> | no-clip]#
<coord-box> =
<paint-box> | view-box
<paint-box> =
<visual-box> | fill-box | stroke-box
<visual-box> =
content-box | padding-box | border-box

Explanation of Syntax Components

  • <coord-box>: This can be any of the <paint-box> values (content-box, padding-box, border-box, fill-box, stroke-box) or view-box.
  • no-clip: This keyword indicates that the painted content is not clipped.
  • Multiple values: You can specify multiple values separated by commas.

Understanding the formal definition of the mask-clip property is essential for web developers aiming to control the masking behavior of elements precisely. This property offers a powerful way to enhance the visual design and interactivity of web pages, ensuring that only specific parts of elements are affected by masks.

Examples

Let’s explore some practical examples to understand how the mask-clip property can be applied in CSS. These examples will demonstrate how to use various values of mask-clip to achieve different clipping effects.

Example 1: Clipping a Mask to the Border Box

In this example, we will clip a mask to the border box of an element. This means that the mask will affect the content, padding, and border of the element.

HTML

<!DOCTYPE html>
<html>
<head>
<style>
.geeks {
width: 50%;
height: 100px;
background: green;
border: 5px solid red;
padding: 10px;
-webkit-mask-image: url('image.svg');
mask-clip: border-box;
}
</style>
</head>
<body>
<div class="geeks">
Website is a Computer Science portal.
</div>
</body>
</html>

Example 2: Clipping a Mask to the Padding Box

In this example, we will clip a mask to the padding box of an element. This means that the mask will affect the content and padding of the element but not the border.

HTML

<!DOCTYPE html>
<html>
<head>
<style>
.geeks {
width: 50%;
height: 100px;
background: green;
border: 5px solid red;
padding: 10px;
-webkit-mask-image: url('image.svg');
mask-clip: padding-box;
}
</style>
</head>
<body>
<div class="geeks">
Website is a Computer Science portal.
</div>
</body>
</html>

Example 3: Clipping a Mask to the Content Box

In this example, we will clip a mask to the content box of an element. This means that the mask will only affect the content area of the element, excluding the padding and border.

HTML

<!DOCTYPE html>
<html>
<head>
<style>
.geeks {
width: 50%;
height: 100px;
background: green;
border: 10px solid red;
padding: 10px;
-webkit-mask-image: url('image.svg');
mask-clip: content-box;
}
</style>
</head>
<body>
<div class="geeks">
Website is a Computer Science portal.
</div>
</body>
</html>

Example 4: Clipping a Mask to the View Box (SVG)

In this example, we will clip a mask to the view box of an SVG element. This means that the mask will be applied to the entire SVG viewport.

HTML

<!DOCTYPE html>
<html>
<head>
<style>
.geeks {
width: 50%;
height: 100px;
background: green;
border: 10px solid red;
padding: 10px;
-webkit-mask-image: url('image.svg');
mask-clip: view-box;
}
</style>
</head>
<body>
<div class="geeks">
Website is a Computer Science portal.
</div>
</body>
</html>

Example 5: Using Multiple Values

In this example, we will use multiple values for the mask-clip property to apply different clipping behaviors simultaneously.

HTML

<!DOCTYPE html>
<html>
<head>
<style>
.geeks {
width: 50%;
height: 100px;
background: green;
border: 10px solid red;
padding: 10px;
-webkit-mask-image: url('image.svg');
mask-clip: padding-box, no-clip;
}
</style>
</head>
<body>
<div class="geeks">
Website is a Computer Science portal.
</div>
</body>
</html>

These examples illustrate how the mask-clip property can be used to control the area affected by a mask, enabling web developers to create sophisticated and visually appealing designs. By experimenting with different values, you can achieve a wide range of clipping effects to enhance the visual presentation of your web pages.

Browser Compatibility

The mask-clip CSS property is a great tool for web developers, but not all browsers support it equally. Here’s a quick rundown of which browsers support this feature:

Supported Browsers

  • Chrome: Supported from version 1.
  • Edge: Supported from version 79.
  • Opera: Supported from version 15.
  • Safari: Supported from version 15.4.
  • Firefox: Supported from version 53.

Unsupported Browsers

  • Internet Explorer: Not supported.

Vendor Prefixes

For some browsers, you might need to use vendor-prefixed versions of the mask-clip property:

  • WebKit-based browsers (like Safari and some versions of Chrome):
    -webkit-mask-clip: border;
    -webkit-mask-clip: padding;
    -webkit-mask-clip: content;
    -webkit-mask-clip: text;

Browser Compatibility Table

BrowserVersion
Chrome1
Edge79
Opera15
Safari15.4
Firefox53
Internet ExplorerNot Supported

Notes on Compatibility

  • Test your web designs across different browsers and versions to ensure they look and work consistently.
  • For older browsers or those with limited support, consider using feature detection and fallback solutions.
  • Regularly check browser compatibility tables to stay informed about the latest features and updates.

Additional Resources

For more information, check out these resources:

  • Clipping and Masking in CSS: Learn more about clipping and masking with this guide from CSS-Tricks. [Clipping and Masking in CSS]WebsiteUrl
  • CSS Masking Module Level 1: Read the official specification for detailed information on the mask-clip property. [CSS Masking Module Level 1]WebsiteUrl
  • MDN Web Docs: Find extensive documentation and tutorials on CSS properties, including mask-clip. [MDN Web Docs on mask-clip]WebsiteUrl
  • Web Design Trends: Stay updated with the latest trends and techniques in web design.
  • SVG Basics: Understand the basics of SVG to make the most of the mask-clip property in your web designs.

These resources will help you understand the mask-clip property better and create more sophisticated web designs.

icons/logo-tid.svg

Talk with CEO

Ready to bring your web/app to life or boost your team with expert Thai developers?
Contact us today to discuss your needs, and let’s create tailored solutions to achieve your goals. We’re here to help at every step!
🖐️ Contact us
Let's keep in Touch
Thank you for your interest in Tillitsdone! Whether you have a question about our services, want to discuss a potential project, or simply want to say hello, we're here and ready to assist you.
We'll be right here with you every step of the way.
Contact Information
rick@tillitsdone.com+66824564755
Find All the Ways to Get in Touch with Tillitsdone - We're Just a Click, Call, or Message Away. We'll Be Right Here, Ready to Respond and Start a Conversation About Your Needs.
Address
9 Phahonyothin Rd, Khlong Nueng, Khlong Luang District, Pathum Thani, Bangkok Thailand
Visit Tillitsdone at Our Physical Location - We'd Love to Welcome You to Our Creative Space. We'll Be Right Here, Ready to Show You Around and Discuss Your Ideas in Person.
Social media
Connect with Tillitsdone on Various Social Platforms - Stay Updated and Engage with Our Latest Projects and Insights. We'll Be Right Here, Sharing Our Journey and Ready to Interact with You.
We anticipate your communication and look forward to discussing how we can contribute to your business's success.
We'll be here, prepared to commence this promising collaboration.
Frequently Asked Questions
Explore frequently asked questions about our products and services.
Whether you're curious about features, warranties, or shopping policies, we provide comprehensive answers to assist you.