Page MenuHomePhabricator

Replace WikimediaUI Base variables with Codex design tokens in OOUI
Closed, ResolvedPublic8 Estimated Story Points

Description

Background

Codex design tokens are available now as npm package in version 1.0.
They are much more powerful and comprehensive and are aimed to replace WikimediaUI Base.

OOUI is the project with the most extensive use of WikimediaUI Base vars as it was actually the source idea for it.
As we're touching a number of files and among all changes towards Codex design tokens usage also replace very few values that are close, but not 1:1 equivalent, this task is providing the venue to discuss possible visual amendments.

Goal

Replace all calls of the former variable files @import ( reference ) '../../../node_modules/wikimedia-ui-base/wikimedia-ui-base.less'';
While at it, also provide best practice usage of Codex design tokens – but only in CSS property categories that are already in use. For example colors shouldn't be directly referenced in code (don't: color: @wmui-color-base30;, do: color: @color-subtle)

Developer/designer notes
  • color: @wmui-color-base30; (#72777d) is replaced by color: @color-subtle (#54595d) as only disabled and placeholder elements receive 72777d in Codex latest token definition. See also T331403
  • Luckily(?) we don't feature media query width values, that changed in Codex in OOUI. (Two minor specific demo values that won't change are in)
Roll-out strategy
  1. Replaced two size variable notations as min-size-* were touched upon in a different task (to close that out)
  2. Introduce and replace WikimediaUI Base with deprecation token layer from Codex
  3. Replace equal variables where applicable in sub-grouped patches for better review-ability.
Acceptance criteria for done
  • Replace all OOUI calls to WikimediaUI Base @import ( reference ) '../../../node_modules/wikimedia-ui-base/wikimedia-ui-base.less'
    • Replace all WikimediaUI Base deprecated variables in favor of Codex tokens and remove 'deprecated-aliases-wikimedia-ui-base.less' import
  • Remove WikimediaUI Base variables dependency
  • Replace possibly close static values, where applicable

Event Timeline

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

[oojs/ui@master] styles, themes: Replace deprecated `size-*` vars

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

Change 971520 merged by jenkins-bot:

[oojs/ui@master] styles, themes: Replace deprecated `size-*` vars

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

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

[oojs/ui@master] WikimediaUI theme, build: Replace WikimediaUI Base with Codex tokens

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

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

[oojs/ui@master] themes: Replace `background-color-*` variables with category tokens

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

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

[oojs/ui@master] themes: Replace `color-*` variables with category tokens

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

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

[oojs/ui@master] themes: Replace `opacity-*` variables with category tokens

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

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

[oojs/ui@master] Replace `border-*` variables with category tokens

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

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

[oojs/ui@master] WikimediaUI theme: Replace `box-shadow-*` variables with category tokens

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

Change 971548 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme, build: Replace WikimediaUI Base with Codex tokens

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

Change 971552 merged by jenkins-bot:

[oojs/ui@master] themes: Replace `background-color-*` variables with category tokens

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

Change 971588 merged by jenkins-bot:

[oojs/ui@master] themes: Replace `color-*` variables with category tokens

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

Change 971592 merged by jenkins-bot:

[oojs/ui@master] themes: Replace `opacity-*` variables with category tokens

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

Change 971594 merged by jenkins-bot:

[oojs/ui@master] themes: Replace `border-*` variables with category tokens

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

Change 971603 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Replace `box-shadow-*` variables with category tokens

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

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

[oojs/ui@master] WikimediaUI theme: Fix two regressions in background color

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

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

[oojs/ui@master] WikimediaUI theme: Remove theme overriding variables for ToggleSwitch

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

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

[oojs/ui@master] WikimediaUI theme: Replace padding static values by Codex tokens

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

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

[oojs/ui@master] WikimediaUI theme: Replace leftover deprecated `box-shadow` var

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

We can't remove WikimediaUI Base Less file from OOUI as long as the ResourceLoader module is used. :{

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

[oojs/ui@master] WikimediaUI theme: Remove deprecated tokens file

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

We can't remove WikimediaUI Base Less file from OOUI as long as the ResourceLoader module is used. :{

Hmm, why not?

I assume you're talking about this: https://gerrit.wikimedia.org/g/mediawiki/core/+/ddb43d3046dce6bda0ca27cbfaffc2418bd949bb/resources/Resources.php#2991

I think we could remove that at any time – I don't really know why it was added there, but I am pretty sure it doesn't do anything. The Less file only defines variables, which aren't used by the OOUI ResourceLoader module, and which can't be accessed by any other module (unless it also includes the file).

Change 973388 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Fix two regressions in background color

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

We can't remove WikimediaUI Base Less file from OOUI as long as the ResourceLoader module is used. :{

Hmm, why not?

I assume you're talking about this: https://gerrit.wikimedia.org/g/mediawiki/core/+/ddb43d3046dce6bda0ca27cbfaffc2418bd949bb/resources/Resources.php#2991

I think we could remove that at any time – I don't really know why it was added there, but I am pretty sure it doesn't do anything. The Less file only defines variables, which aren't used by the OOUI ResourceLoader module, and which can't be accessed by any other module (unless it also includes the file).

Indeed. When I look at https://codesearch-beta.wmcloud.org/search/?q=oojs-ui-core.styles&files=&excludeFiles=&repos= folks are doing numerous (wild) things in reference.

Change 973389 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Remove theme overriding variables for ToggleSwitch

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

Change 973391 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Replace padding static values by Codex tokens

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

Change 973392 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Replace leftover deprecated `box-shadow` var

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

Change 973393 merged by jenkins-bot:

[oojs/ui@master] WikimediaUI theme: Remove deprecated tokens file

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

Change 980958 had a related patch set uploaded (by Anne Tomasevich; author: Anne Tomasevich):

[mediawiki/core@master] Update OOUI to v0.48.3

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

Change 980958 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.48.3

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

Reopening as there is one reference to deprecated aliases still in the build process of OOUI.

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

[oojs/ui@master] build: Remove obsolete deprecated WikimediaUI Base token alias file

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

Change 988110 merged by jenkins-bot:

[oojs/ui@master] build: Remove obsolete deprecated WikimediaUI Base token alias file

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

Change 989237 had a related patch set uploaded (by LWatson; author: LWatson):

[mediawiki/core@master] Update OOUI to v0.48.4

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

Change 989237 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.48.4

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