Loading video...

Video Failed to Load

Go Home

How to use the :where CSS selector to solve specificity problems ↓

61,881 views • 1 year ago •via X (Twitter)

10 Comments

Sebastiano Guerriero's profile picture
Sebastiano Guerriero1 year ago

As a general rule, I try to keep CSS selector specificity low. It simplifies code maintenance. In this example, you might use: '.cd-calendar-date:hover:not(.cd-calendar-date--selected) {}' to achieve the same result, but it creates high specificity, leading to potential override issues. The :where selector is handy because it lowers the specificity.

Shay Punter's profile picture
Shay Punter1 year ago

Honestly the :where operator is such an underrated operator, I am surprised that more people aren't using it. Lets you be very specific in terms of what you can style, very useful for use-cases like above!

Sebastiano Guerriero's profile picture
Sebastiano Guerriero1 year ago

💯

Alireza Bashiri's profile picture
Alireza Bashiri1 year ago

you're saving an entire generation from @tailwindcss

Oath's profile picture
Oath1 year ago

smart way of using :where, thanks for the tip

Alex K's profile picture
Alex K1 year ago

Great advice

ƨergey's profile picture
ƨergey1 year ago

Nice but hard to support, unless you comment this shit 😀 Prefer to have .active class

Sebastiano Guerriero's profile picture
Sebastiano Guerriero1 year ago

You’d still need the .active class (.cd-calendar-date—selected in this example). The :where operator only saves you some code because you wouldn’t need to override .class:hover with .active:hover

Eric Fortis's profile picture
Eric Fortis1 year ago

I rather .cd-calendar-date--selected, .cd-calendar-date--selected:hover {}

Sebastiano Guerriero's profile picture
Sebastiano Guerriero1 year ago

You can do that, but you’d need to override the .cd-calendar-date:hover style.

Related Videos