Hello,
Now there are 1.5 ways of doing effects “on hover” and one for anything else (e.g.: :active or :visited).
1.5 “on hover” ways: interaction “color” on some elements and “link child interactions” to sync those interactions or use CSS.
Anything else: use CSS, no other way
There should be more convenient maintainable and customizable way.
My suggestion is to add state dropdown for every element and expose all properties which make sense to non-default (normal) CSS states. Dropdown could contain frequently used “common” states like :hover, :active, etc and place for entering custom selector like :target or ::selection.
Simple things should be simple. I don’t have to write custom CSS if I want to change box-shadow on hover.
Here’s UI mockup to better understand what I’m asking to implement: