You might not think that moving an underline a few pixels and altering its thickness is specifically cutting-edge or intriguing.
However it relies on two CSS houses, text-decoration-thickness and textual content-underline-offset, which have only not too long ago been introduced ïðîãðàììà äëÿ ñæàòèÿ ôîòî to some browsers.
As a consequence, we had to devote some time understanding exactly how these new houses labored, and no matter whether they had been experienced ample to use.
A quick primer on shorthand qualities
Just before we start digging in to the text-decoration residence, it’s valuable to understand a number of things about shorthand homes in CSS.
Quoting greatly from the superb overview of shorthand CSS houses on MDN Net Docs:
All through this post I’m also heading to use the expression ‘longhand’ to refer to homes that are not shorthand houses.
With that out the way, allow just take a transient vacation back again in time to see how the text-decoration home has changed.
So, you could use it to insert decoration to your textual content, but you had no control over its physical appearance – you have been constrained to a solid line with its colour and thickness based on the textual content.
CSS Text Decoration Module Amount three (2019)
CSS Text Decoration Module Amount three introduced new textual content-decoration-line, textual content-decoration-design and text-decoration-coloration houses.
Once more, it modifications the textual content-decoration shorthand residence to contain the new text-decoration-thickness.
Even so, the text-underline-offset home is intentionally excluded from the shorthand property, and has to be established individually:
As a outcome, the thickness, color and design are all reset to their preliminary user-agent defaults, and when hovering in excess of our url we just get a uninteresting default underline.
The exception to this is, once again, Safari, where text-decoration is not a shorthand property, and rather functions like a form of alias for text-decoration-line. As opposed to other browsers it does not established the other textual content-decoration-* properties back to first.