Technology News

Interpolating Numeric CSS Variables

We can make variables in CSS pretty easily:

:root { --scale: 1;
}

And we can declare them on any element:

.thing { transform: scale(var(--scale));
}

Even better for an example like this is applying the variable on a user interaction, say :hover:

:root { --scale: 1;
} .thing { height: 100px; transform: scale(var(--scale)); width: 100px;
} .thing:hover { --scale: 3;
}

But if we wanted to use that variable in an animation… nada.

:root { --scale: 1;
} @keyframes scale { from { --scale: 0; } to { --scale: 3; }
} /* Nope! */
.thing { animation: scale .25s ease-in; height: 100px; width: 100px;
}

That’s because the variable is recognized as a string and what we need is a number that can be interpolated between two numeric values. That’s where we can call on @property to not only register the variable as a custom property, but define its syntax as a number:

@property --scale { syntax: "<number>"; initial-value: 1; inherits: true;
}

Now we get the animation!

You’re going to want to check browser support since @property has only landed in Chrome (starting in version 85) as of this writing. And if you’re hoping to sniff it out with @supports, we’re currently out of luck because it doesn’t accept at-rules as values… yet. That will change once at-rule()becomes a real thing.

UI design inspiration: Top 5 illustrations trends in 2023 designers should know
WEP Nxt – An Initiative to Nurture Women Entrepreneurship in India

Related Articles

Best Types Of Packages Travel Agencies Should Offer

best-types-of-packages-travel-agencies-should-offer
Packages-Travel-Agencies-Should-Offer Today, everyone is focusing on travelling. The governments of the most powerful countries in the world are promoting tourism. This increasing phenomenon of tourism and travelling has itself resulted…

Digital marketing vs. growth marketing

Digital marketing vs. growth marketing
Digital marketing and growth marketing are two concepts that are frequently used interchangeably. The two strategies do differ significantly, though. Growth marketing is a data-driven strategy that emphasizes customer acquisition…