Page MenuHomePhabricator

Support dark mode in Content Translation skin
Closed, ResolvedPublic8 Estimated Story PointsBUG REPORT

Assigned To
Authored By
Jdlrobson
Jun 10 2024, 4:03 PM
Referenced Files
F101204814: image.png
Sep 1 2026, 7:26 AM
F99817816: image.png
Aug 24 2026, 8:37 AM
F99817811: image.png
Aug 24 2026, 8:37 AM
F99817786: image.png
Aug 24 2026, 8:37 AM
F99202028: image.png
Aug 20 2026, 3:44 AM
F99202008: image.png
Aug 20 2026, 3:44 AM
F99201998: image.png
Aug 20 2026, 3:44 AM
F96525909: image.png
Jul 30 2026, 2:27 PM

Description

Feature summary (what you would like to be able to do and where):
Since ContentTranslation uses its own skin, it doesn't support dark mode out of the box. Minerva and Vector 2022 support a dark mode theme using a class on the HTML element skin-theme-clientpref-dark / skin-theme-clientpref-os the value of which comes from a preference minerva-theme / vector-theme or by using mw.user.clientprefs.get('skin-theme'); for anonymous users.

Suggestion

  • For anons: ContentTranslation adds a class skin-theme-clientpref-day to the HTML element. This should allow it to benefit from any cookie that has been stored on the device.
  • For logged in users: Either ContentTranslation should have its own dark mode preference, or should read the preference from Vector 2022/Minerva.

Use case(s) (list the steps that you performed to discover that problem, and describe the actual underlying problem which you want to solve. Do not describe only a solution):

  • Some users prefer using a dark mode.

Benefits (why should this be implemented?):

  • Consistency with the rest of the site

Maintenance initiative

What needs to be prioritized:
Content Translation needs dark mode support in its own CX skin on Special:ContentTranslation. Vector 2022 and Minerva already support dark mode, but Content Translation uses a separate interface and does not automatically inherit the same behavior. Users who use dark mode elsewhere on the site currently get an inconsistent experience when they enter the translation workflow.

Scope:

  • Support dark mode in the main Content Translation interface.
  • Respect the relevant existing skin/client preference where technically appropriate.
  • Fix major dark mode visual issues in the CX interface, including unreadable text, broken contrast, and inconsistent theme behavior.
  • Document any remaining non-blocking visual issues as follow-up work.

Out of scope:

  • Typography customization through the accessibility menu.
  • Full accessibility menu integration for Content Translation.
  • Changing the Content Translation tool menu from a vertical column layout to a horizontal row layout.
  • General redesign or unrelated refactoring of the CX interface.

Work is completed when Content Translation can be used in dark mode without major visual regressions, unreadable text, broken contrast, or inconsistent theme behavior.

Why this is essential:
Content Translation is a user-facing editing tool, and its interface should be usable by people who rely on or prefer dark mode. Dark mode is already supported in the main site skins, so the current behavior leaves Content Translation as an exception.

This is an accessibility and product-quality issue. Dark mode can reduce visual fatigue for some users, and it is now part of the expected platform experience.

Finally, this will reduce tech debt by migrating to design tokens from hard coded or custom values.

What happens if we do not do it now:
Content Translation remains inconsistent with Vector 2022 and Minerva dark mode behavior.

The issue is also likely to remain visible as a recurring community request or bug report.

Dependencies / constraints:

  • The implementation needs to align with the existing dark mode/client preference behavior used by supported site skins where technically appropriate.
  • Design or product input may be needed to confirm acceptable dark mode behavior and resolve visual edge cases.

Estimated effort: 8 story points, medium uncertainty.

QA Plan

Test 1: Verify the following screens look good in both mobile and desktop devices:

  • Dashboard
  • Article selection
  • Article search
  • Section selection
  • Translation Editor
    • Mobile
    • Desktop
  • Publish & Review
    • Mobile

Test 2: Theme preference test

  • Verify that the automatic color scheme follows system scheme when automatic scheme is selected.
  • Verify that dark/light schemes preferences are applied properly

Test 3: Anonymous user preference test

  • Ensure anonymous user's theme preferences are retained - CX is not accessible by anonymous users.

Details

Other Assignee
abi_
Related Changes in Gerrit:
SubjectAuthorRepoBranchLines +/-
Huei Tanmediawiki/extensions/ContentTranslationmaster+9 -0
Abijeet Patromediawiki/extensions/ContentTranslationmaster+3 -4
Abijeet Patromediawiki/extensions/ContentTranslationmaster+8 -1
Abijeet Patromediawiki/extensions/ContentTranslationmaster+0 -1
Abijeet Patromediawiki/extensions/ContentTranslationmaster+0 -1
Abijeet Patromediawiki/extensions/ContentTranslationmaster+10 -1
Abijeet Patromediawiki/extensions/ContentTranslationmaster+23 -12
Abijeet Patromediawiki/extensions/ContentTranslationmaster+24 -7
Nik Gkountasmediawiki/extensions/ContentTranslationmaster+7 K -7 K
Abijeet Patromediawiki/extensions/ContentTranslationmaster+9 -7
Nik Gkountasmediawiki/extensions/ContentTranslationmaster+2 K -2 K
Santhoshmediawiki/extensions/ContentTranslationmaster+2 -7
Santhoshmediawiki/extensions/ContentTranslationmaster+10 -8
Santhoshmediawiki/extensions/ContentTranslationmaster+0 -57
Santhoshmediawiki/extensions/ContentTranslationmaster+21 -0
Santhoshmediawiki/extensions/ContentTranslationmaster+10 -0
Santhoshmediawiki/extensions/ContentTranslationmaster+70 -68
Santhoshmediawiki/extensions/ContentTranslationmaster+3 -3
Santhoshmediawiki/extensions/ContentTranslationmaster+101 -82
Santhoshmediawiki/extensions/ContentTranslationmaster+94 -1
Jon Harald Søbymediawiki/extensions/ContentTranslationmaster+11 -24
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1306171 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Adapt ContentTranslation editor colors to dark mode

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

few more issues noticed while testing the patches:

image.png (516×1,018 px, 166 KB)
image.png (523×1,072 px, 111 KB)
image.png (518×1,016 px, 277 KB)

we can merge the patches in and address these in follow up patches

Change #1306177 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Invert the wordmark logo in dark mode

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

Change #1306178 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Invert OOUI icons in dark mode

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

Change #1307989 had a related patch set uploaded (by Santhosh; author: Santhosh):

[mediawiki/extensions/ContentTranslation@master] Replace hardcoded colors in PublishFeedback.vue with Codex design tokens

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

Change #1308005 had a related patch set uploaded (by Santhosh; author: Santhosh):

[mediawiki/extensions/ContentTranslation@master] Replace color values of RecentEditEntrypointInvitation with Codex tokens

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

Change #1308014 had a related patch set uploaded (by Santhosh; author: Santhosh):

[mediawiki/extensions/ContentTranslation@master] Avoid overriding codex chip component colors

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

Change #1308014 abandoned by Santhosh:

[mediawiki/extensions/ContentTranslation@master] Avoid overriding codex chip component colors

Reason:

It seems all highlights are missing when this patch applied

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

Change #1307989 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Replace hardcoded colors in PublishFeedback.vue with Codex design tokens

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

Change #1308005 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Replace color values of RecentEditEntrypointInvitation with Codex tokens

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

abi_ set the point value for this task to 8.

image.png (521×1,073 px, 86 KB)

The separator between the suggested MT and the article preview is not distinct enough

image.png (567×1,032 px, 48 KB)

The background for the publish feedback could be darker which would make the text more readable.

Change #1310021 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260713

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

Change #1310021 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260713

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

Change #1311431 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Use Codex tokens for colors that were invisible in dark mode

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

Few screenshots from my local machine with the patch applied

image.png (542×1,097 px, 95 KB)

image.png (509×1,082 px, 180 KB)

Change #1311431 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Use Codex tokens for colors that were invisible in dark mode

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

Needs another CX build to deploy the follow-ups.

Change #1312434 had a related patch set uploaded (by Nik Gkountas; author: Nik Gkountas):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260720

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

Change #1312434 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260720

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

User bar icons are not very visible vs. vector:

image.png (2,006×207 px, 35 KB)

image.png (3,845×207 px, 30 KB)

The categories label is not readable:

image.png (2,733×211 px, 47 KB)

image.png (2,733×211 px, 46 KB)

Change #1313919 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Fix Categories header visibility in night mode

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

Change #1313920 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Invert Echo notification badges in skin night mode

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

Change #1313919 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Fix Categories header visibility in night mode

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

Change #1313920 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Invert Echo notification badges in skin night mode

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

I've been doing some testing on test.wikipedia.org. I've updated the ticket based on my findings. I could use another pair of eyes to review things.

(1) IME dark mode style missing on dashboard/New translation

image.png (2,898×950 px, 154 KB)

(2) missing the background dark mode (cx-translation-dashboard / sx-translation-confirmer-view ) on Dashbaord
it works fine in new translation page sx-article-search-view

cx-translation-dashboardsx-article-search-viewsx-translation-confirmer-view
image.png (2,954×1,502 px, 442 KB)
image.png (2,948×1,442 px, 403 KB)
image.png (2,954×1,462 px, 609 KB)

Change #1321956 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Fix dark mode styling for the input method (IME) selector

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

Change #1321957 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Fix light backdrop behind language selector dialog in dark mode

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

Change #1321959 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Fix dark mode styling for the input method (IME) selector

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

Change #1321960 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] Fix light backdrop behind language selector dialog in dark mode

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

Change #1321956 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Fix dark mode styling for the input method (IME) selector

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

Change #1321957 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Fix light backdrop behind language selector dialog in dark mode

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

(1) IME dark mode style missing on dashboard/New translation

image.png (2,898×950 px, 154 KB)

(2) missing the background dark mode (cx-translation-dashboard / sx-translation-confirmer-view ) on Dashbaord
it works fine in new translation page sx-article-search-view

cx-translation-dashboardsx-article-search-viewsx-translation-confirmer-view
image.png (2,954×1,502 px, 442 KB)
image.png (2,948×1,442 px, 403 KB)
image.png (2,954×1,462 px, 609 KB)

These issues are fixed and the patches are merged. Waiting for production deployment.

Change #1321960 abandoned by Abijeet Patro:

[mediawiki/extensions/ContentTranslation@master] Fix light backdrop behind language selector dialog in dark mode

Reason:

In favor of I097cb3ab5d3d33f77392f6661661a992d8a3064c

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

Change #1321959 abandoned by Abijeet Patro:

[mediawiki/extensions/ContentTranslation@master] Fix dark mode styling for the input method (IME) selector

Reason:

In favor of I6e083f8300f45f76e0c6824da759428867e15a86

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

(1) IME dark mode style missing on dashboard/New translation

image.png (2,898×950 px, 154 KB)

(2) missing the background dark mode (cx-translation-dashboard / sx-translation-confirmer-view ) on Dashbaord
it works fine in new translation page sx-article-search-view

cx-translation-dashboardsx-article-search-viewsx-translation-confirmer-view
image.png (2,954×1,502 px, 442 KB)
image.png (2,948×1,442 px, 403 KB)
image.png (2,954×1,462 px, 609 KB)

These issues are fixed and the patches are merged. Waiting for production deployment.

Actually a CX build needs to be created. I'll do that this week.

Change #1326253 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260817

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

Change #1326253 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] CX3 Build 1.0.0+20260817

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

Two more issues found (posting here for the visibility)

(1) ULS opened by IME is not dark mode (it is not ULSv2, create another to fix this)

image.png (1,170×2,166 px, 600 KB)

(2) Media dialog panel

light x dark modedark mode in commons
image.png (2,936×2,106 px, 1 MB)
image.png (2,510×2,060 px, 1 MB)

The ULS IME issue we can ignore. We'll handle it as part of ULS tickets. The latter would be nice to fix (transparent images should have white background).

Change #1329226 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/ContentTranslation@master] Fix dark mode for media result widget thumbnail

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

The latter would be nice to fix (transparent images should have white background).

done and patch submitted

more issues found but not dark mode related, ticket here https://phabricator.wikimedia.org/T436074

Change #1329226 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Fix dark mode for media result widget thumbnail

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