CSS, artık JavaScript olaylarını dinlemek zorunda kalmadan durumları yönetmemize olanak tanıyan psudo-sınıflarla dolup taşıyor. Örneğin, :hover psudo-sınıfı, pointerenter ve pointerleave olayları arasındaki anı yakalarken, :active psudo-sınıfı tıklama anını temsil eder. Bu psudo-sınıflar, aslında birer durum belirteci olsa da, JavaScript olay dinleyicilerine benzer bir işlev görüyor. Ayrıca, Animation Triggers spesifikasyonundaki event-trigger önerisi, animasyonları tetiklemek için olayları dinlemeyi vaat ediyor.
:focus ve :focus-visible psudo-sınıfları, JavaScript'teki focus ve blur olaylarına benzer. Ancak :focus-visible, klavye kullanımı gibi durumlarda odak göstergesinin ne zaman görüneceğine karar verir. JavaScript'te bu durumu kontrol etmek için element.matches(':focus-visible') kullanabilirsiniz. Ayrıca :focus-within ve :has() gibi daha karmaşık seçiciler, ebeveyn-çocuk ilişkilerini yönetmeyi kolaylaştırır.
Form elemanları için :valid, :invalid, :user-valid ve :user-invalid gibi psudo-sınıflar, kullanıcı etkileşimine göre geçerlilik durumunu gösterir. JavaScript'te bu durumları checkValidity() veya ValidityState ile kontrol edebilirsiniz. :autofill psudo-sınıfı ise otomatik doldurma durumunu yakalar ve bunun için JavaScript'te temiz bir yöntem yoktur.
Medya elemanları için yeni psudo-sınıflar ( :buffering, :muted, :paused, :playing ) sayesinde