@property CSS At-Rule

If this site has been useful, we’d love your support! Running this site takes time and resources, and every small contribution helps us keep creating valuable content. Consider buying us a coffee to keep things going strong!

Description

The @property at-rule is a CSS Houdini API that allows developers to explicitly define custom properties. It provides a number of benefits over the traditional way of defining custom properties using the var() function, including:


  • Property type checking and constraining: The @property at-rule allows developers to specify the type of values that a custom property can accept. This can help to prevent errors and ensure that custom properties are used consistently.

  • Setting default values: The @property at-rule allows developers to set default values for custom properties. This can be useful for cases where a custom property is not explicitly set on an element.

  • Defining whether a custom property can inherit values or not: The @property at-rule allows developers to specify whether a custom property can inherit values from its parent elements. This can be useful for controlling the cascade behavior of custom properties.

Syntax

@property <property-name> {
  <property-type> <initial-value>;
  <inherits> <true | false>;
}

Values

  • syntaxDescribes the allowable syntax for the property.
  • inheritsControls whether the custom property registration specified by @property inherits by default.
  • initial-valueSets the initial value for the property.

Example

@property --item-size {
syntax: "<percentage>";
inherits: true;
initial-value: 40%;
}

Browser Support

The following table will show you the current browser support for the at-rule @property.

Desktop
Edge Chrome Firefox Opera Safari
8585?7116.4
Tablets / Mobile
Chrome Firefox Opera Safari Samsung Webview
85x6016.41485

Last updated by CSSPortal on: 30th September 2023