Page MenuHomePhabricator

Mark non-<img> images with .mw-no-invert
Open, Needs TriagePublic

Description

... Darkmode should not have to maintain a list of CSS classes by every extension that uses background images.

More or less all the selectors listed here should be removed and replaced with the mw-no-invert classes being added directly:
https://github.com/wikimedia/mediawiki-extensions-DarkMode/blob/4d265fbfb987fb230ab61d736a2217cbcb7dda3a/resources/ext.DarkMode.less#L56-L67

See also T311835

Event Timeline

Change 953703 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/core@master] TitleOptionWidget: Mark thumbnails with mw-no-invert

https://gerrit.wikimedia.org/r/953703

Another problem with listing out the classes upstream, is downstream changes causing elements to become double inverted, such as is currently happening in the Vector 2022 search component:

image.png (173×422 px, 18 KB)

If this component were using mw-no-invert, it would be much clearer to developers when double inverting might be happening.

Change 953706 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/RelatedArticles@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953706

Change 953709 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/VisualEditor@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953709

Change 953710 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/ContentTranslation@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953710

Change 953709 merged by jenkins-bot:

[mediawiki/extensions/VisualEditor@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953709

Change 956844 had a related patch set uploaded (by Esanders; author: Esanders):

[design/codex@main] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/956844

Change 956882 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/MultimediaViewer@master] Add mw-no-invert class to MMV overlay

https://gerrit.wikimedia.org/r/956882

The use case for .mwe-math-element is slightly different. In that case we have formulae (text) being rendered as an <img>, which gets no-inverted, but as it is actually text we want it invert it.

The hack in place is that we invert the container so that the formula gets triple(!)-inverted.

We should introduce an .mw-invert class that can be used on an <img>, or other elements targeted generically for non-inversion, to force inversion.

Edit: This would also be used by .mw-kartographer-map, where we want to invert map tiles.

Change 956844 merged by jenkins-bot:

[design/codex@main] Add cdx-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/956844

Change 953710 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953710

Note that in https://gerrit.wikimedia.org/r/c/design/codex/+/956844/ it was decided to use an mw-agnostic name cdx-no-invert instead, per discussion there:

Eric Gardner
Is there some other way we could apply this class – say inside the Codex ResourceModule? So far we have tried to keep the Codex code MediaWiki-agnostic as a matter of principle.
I think a wiki-specific module stylesheet for Codex (and/or maybe skin-style overrides) might be a better place for rules like this to live.
Esanders
If the mw naming is a problem, we could use a codex variant e.g. "cdx-no-invert" (or whatever your naming scheme recommends), and then add that selector upstream to the dark mode implementation. Per the task, the dark mode implementation shouldn't be enumerating every selector in every extensions that produces a background image, but have a one selector for MW, one for Codex, one for OOUI, etc. seems reasonable.
Esanders
This would also help standalone Codex provide its own dark mode in the future.
Eric Gardner
I've updated this to be "cdx-no-invert" and I've stashed the name in the constants file along with a note about why this exists.

This will need to be added upstream.

Change 959744 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/Math@master] Add mw-invert class to <img> which generates text

https://gerrit.wikimedia.org/r/959744

Change 959745 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/Kartographer@master] Add mw-invert to map tiles

https://gerrit.wikimedia.org/r/959745

Change 959747 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DarkMode@master] Remove downstream selectors for non-inversion

https://gerrit.wikimedia.org/r/959747

Change 959748 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DarkMode@master] Introduce mw-invert

https://gerrit.wikimedia.org/r/959748

Change 959744 merged by jenkins-bot:

[mediawiki/extensions/Math@master] Add mw-invert class to <img> which generates text

https://gerrit.wikimedia.org/r/959744

Change 961452 had a related patch set uploaded (by VolkerE; author: VolkerE):

[mediawiki/core@master] Update Codex from v0.19.0 to v0.20.0

https://gerrit.wikimedia.org/r/961452

Change 953703 merged by jenkins-bot:

[mediawiki/core@master] TitleOptionWidget: Mark thumbnails with mw-no-invert

https://gerrit.wikimedia.org/r/953703

Change 963725 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/GrowthExperiments@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/963725

Change 956882 merged by jenkins-bot:

[mediawiki/extensions/MultimediaViewer@master] Add mw-no-invert class to MMV overlay

https://gerrit.wikimedia.org/r/956882

Change 953706 merged by jenkins-bot:

[mediawiki/extensions/RelatedArticles@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/953706

Change 963725 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Add mw-no-invert class to thumbnails

https://gerrit.wikimedia.org/r/963725

Change 959745 merged by jenkins-bot:

[mediawiki/extensions/Kartographer@master] Add mw-invert to map tiles

https://gerrit.wikimedia.org/r/959745

Change 959747 merged by jenkins-bot:

[mediawiki/extensions/DarkMode@master] Remove downstream selectors for non-inversion

https://gerrit.wikimedia.org/r/959747

Change 959748 merged by jenkins-bot:

[mediawiki/extensions/DarkMode@master] Introduce mw-invert

https://gerrit.wikimedia.org/r/959748

Change 1008885 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/Score@master] Add mw-invert class to images

https://gerrit.wikimedia.org/r/1008885

Change 1008889 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/wikihiero@master] Add mw-invert to images

https://gerrit.wikimedia.org/r/1008889