@property (Typed Custom Properties)
HC · Modern CSSsyntax
@property --name {
syntax: "<type>";
inherits: true | false;
initial-value: value;
}example
@property --gradient-angle {
syntax: "<angle>";
inherits: false;
initial-value: 0deg;
}
.gradient-box {
--gradient-angle: 0deg;
background: linear-gradient(var(--gradient-angle), #3b82f6, #8b5cf6);
transition: --gradient-angle 0.5s ease;
}
.gradient-box:hover {
--gradient-angle: 180deg;
}Note @property registers a custom property with a specific type, enabling the browser to animate it. Without registration, custom properties are strings that cannot be transitioned. Supported types include <color>, <length>, <angle>, <number>, <percentage>.