The CSS cascade includes
user origin declarations which are rules provided by the user itself, for example user stylesheets applied by web extensions. The current priority of
author origins is specced as follows:
A author’s declaration wins over a same-specificity user declaration except when
!important is involved at which point the priority is reversed. This issue has in the past lead to browser extensions to insert their userstyles as the last
author sheets which introduces the issue that two author sheets (the page’s own and the userstyle) have to fight for specificity which is a source of issues.
I propose that the ordering of
user origin sheets to be put above
author sheets like this:
This new ordering would banish having to use
!important everywhere in userstyles and would also remove the necessity to fight for specificity with the target page’s styles.
user origin stylesheets are a mostly unused concept today, only Firefox >= 53 allows web extensions to insert such sheets, Chrome will likely get the API option on
tabs.insertCSS for it in 66, but until then, extensions can only insert
author origin stylesheets.
Some more detail about the behaviour of extensions here. It’s a pretty old page, but most info on there is still valid today.