Page MenuHomePhabricator

[OOUI] Make WikimediaUI theme compatible with 'rem' units and future versions Codex Design Tokens
Closed, DeclinedPublic5 Estimated Story PointsFeature

Description

Background

As of v.1.3.6 of Codex, the legacy build of Codex design tokens uses rems for size values. i.e:

@font-size-base: 1rem;

In order for OOUI to be compatible with this update, it has to be modified to support rem values.
Currently, if v.1.3.6 of Codex is used (and the CSS variable issues outlined in T363849 have been resolved) the following error prevents the build from generating:

Running "less:wikimediaui" (less) task
>> src/styles/elements/ButtonElement.less: [L40:C1] Incompatible units. Change the units or use the unit function. Bad units: 'em' and 'rem'.
Warning: Error compiling src/styles/elements/ButtonElement.less Use --force to continue.

Aborted due to warnings.

This error stems from somewhere in the .theme-oo-ui-buttonElement() mixin.

It was generated by using this POC patch and upgrading the version of Codex to 1.3.6.

User story

  • As a Wikimedia developer/maintainer, I strive to maintain consistency across interfaces by ensuring the same underlying design token values are used across interfaces.

Requirements

NOTE: This task is about enabling OOUI to use a newer version of Codex design tokens, but that version should not be changed yet.

The OOUI build should pass without error when using Codex v1.3.6.
Whether that means changing one instance of an em+rem unit addition or switch to rems in OOUI more broadly remains to be seen.

Design

  • No visual changes are expected from this change, however switching to rem's might have unintended consequences with regards to accessibility and font-sizes.

Acceptance criteria

  • The OOUI WikimediaUI theme is capable with successfully compiling using Codex v.1.3.6

Communication criteria - does this need an announcement or discussion?

  • Internal #front-end Slack channel

Related Objects

StatusSubtypeAssignedTask
Openovasileva
Openovasileva
Resolvedovasileva
ResolvedJdlrobson
Openovasileva
Resolvedovasileva
ResolvedJScherer-WMF
Resolvedovasileva
ResolvedSpikeSToyofuku-WMF
Openovasileva
Resolvedovasileva
ResolvedJdlrobson
Resolvedovasileva
ResolvedBUG REPORTJdlrobson
ResolvedBUG REPORTJScherer-WMF
ResolvedJdlrobson
DuplicateFeatureNone
ResolvedSpikeJdlrobson
ResolvedJdlrobson
Resolvedovasileva
ResolvedFeatureJdlrobson
DuplicateNone
ResolvedJdlrobson
Resolvedovasileva
DuplicateJdlrobson
ResolvedJdlrobson
DuplicateNone
ResolvedJdlrobson
ResolvedBUG REPORTovasileva
Resolvedovasileva
InvalidNone
InvalidJdlrobson
DuplicateNone
DuplicateNone
DuplicateNone
DuplicateNone
Resolvedovasileva
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
DuplicateJdlrobson
ResolvedJdlrobson
ResolvedJdlrobson
DeclinedJdlrobson
ResolvedSToyofuku-WMF
ResolvedJdlrobson
ResolvedKSarabia-WMF
ResolvedNone
OpenNone
Resolvedovasileva
ResolvedJdlrobson
ResolvedBUG REPORTJdlrobson
DuplicateBUG REPORTNone
ResolvedBUG REPORTovasileva
Openovasileva
ResolvedBUG REPORTovasileva
ResolvedBUG REPORTabi_
ResolvedBUG REPORT Nikerabbit
ResolvedBUG REPORTovasileva
ResolvedJdlrobson
ResolvedBUG REPORTJdlrobson
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
ResolvedFeatureNone
OpenNone
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
Resolvedovasileva
ResolvedBUG REPORTovasileva
ResolvedJdlrobson
ResolvedJdlrobson
ResolvedNone
ResolvedJdrewniak
Resolvedovasileva
ResolvedBUG REPORTovasileva
Resolvedovasileva
Resolvedovasileva
ResolvedJdlrobson
ResolvedJdlrobson
Resolvedovasileva
ResolvedJdrewniak
ResolvedJScherer-WMF
Resolvedovasileva
Resolvedovasileva
ResolvedBUG REPORTovasileva
ResolvedBUG REPORTovasileva
Stalledbwang
OpenKSarabia-WMF
Resolvedovasileva
OpenGMikesell-WMF
Resolvedovasileva
Resolvedovasileva
InvalidBUG REPORTNone
OpenNone
ResolvedBUG REPORTovasileva
In ProgressDTorsani-WMF
ResolvedVolker_E
Resolvedovasileva
OpenBUG REPORTGMikesell-WMF
DuplicateBUG REPORTNone
Resolvedovasileva
ResolvedJdlrobson
DeclinedFeatureegardner
DuplicateNone
Openovasileva
DuplicateBUG REPORTNone
DeclinedFeatureegardner
DuplicateCCiufo-WMF
Resolvedovasileva
ResolvedNBaca-WMF
DeclinedVolker_E

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

Change #1032083 had a related patch set uploaded (by Eric Gardner; author: Eric Gardner):

[oojs/ui@master] Update Codex to 1.4.0 and use rem units

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

So I was able to get OOUI to build successfully using Codex design tokens v1.4.0 (the first to include rem units) by updating the common.less file for the WikimediaUI theme as follows (the snippet is from the top of the file):

// WikimediaUI theme variables

@ooui-default-image-path: 'themes/wikimediaui/images';
@ooui-font-size-browser: 16; // assumed browser default of `16px`
@ooui-font-size-base: ( 0.875 / 1rem ); // equals `14px` at browser default of `16px`
@ooui-unit: rem;

I changed @ooui-font-size-base and @ooui-unit to use rem values, specifically.

I also had to change some inline unit calculations in the WikimediaUI widgets.less file.

This produces some visual changes on the demo page, so we may need to adjust some styles a little bit before this can move forward. I'll dig a bit deeper tomorrow.

Test wiki on Patch demo by EGardner (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/6fa409140a/w/

Test wiki on Patch demo by EGardner (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/0dfbce8572/w/

CCiufo-WMF changed the task status from Open to Stalled.May 28 2024, 5:55 PM
CCiufo-WMF subscribed.

Stalled pending support with QA.

@CCiufo-WMF is this editing QA or web team QA?

General QA across different features, according to the testing plan outlined in T364777. I will provide more context in that task.

@egardner I think we are better off also putting an equivalent to the current @ooui-unit variable as token into Codex, first idea sizing-unit or more limited font-sizing-unit.
I think, not only for the OOUI use case, but for themability that could be a good offering too.

Change #1032083 abandoned by Eric Gardner:

[oojs/ui@master] WikimediaUI theme: Update Codex Design Tokens to 1.4.0 and use `rem` units

Reason:

Abandoning this approach in favor of https://gerrit.wikimedia.org/r/c/oojs/ui/+/1041265

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