Page MenuHomePhabricator

Design System Foundation: Define & Implement Critical "Global" Visual Styles
Closed, ResolvedPublic

Description

Background/Goal

Define & create the "global" visual styles for the design system, that will handle 90% of needs.

User stories
  • As a designer, I need to understand what visual styles are considered to be "global" styles.
  • As a designer, I need to be able to see the design specifications of each "global" style in order to incorporate into my designs.
  • As a designer, I need "global" styles to be available in tokens so I can easily integrate into design implementation.
Considerations
  • Much of this work is in flight or completed already. This ticket is meant to link up related tickets and centralize them.
Requirements
  • We define a clear list of "global" visual styles to incorporate into the design system that account for 90% of feature style needs
  • Each "global" visual style category has its own ticket to track design and implementation (and linked to this ticket)
  • All "global" styles category descriptions and principles are documented here: https://doc.wikimedia.org/codex/main/design-tokens/overview.html in respect to https://design.wikimedia.org/style-guide/visual-style.html
  • Each "global" visual style category has its own specs in Figma (aka separate from specific components) (T295991)
  • "Global" visual styles categories are translated to Figma styles (when applicable) and applied to OOUI and Codex design components (T295606)
  • Each "global" style has been shared with the overall Wikimedia Product Design team
Acceptance criteria
  • Users can find a publicly available list of "global" styles in the code demo
  • Design contributors can access "global" styles in the design specs
Test scenarios

[to come]

Related Objects

StatusSubtypeAssignedTask
ResolvedNone
OpenNone
Resolved alexhollender_WMF
OpenNone
OpenNone
ResolvedJdlrobson
DeclinedBUG REPORTNone
Resolvedbmartinezcalvo
Resolvedbmartinezcalvo
ResolvedVolker_E
ResolvedVolker_E
ResolvedVolker_E
ResolvedVolker_E
Resolvedldelench_wmf
ResolvedVolker_E
Resolved EUdoh-WMF
Resolved Sarai-WMDE
Resolved DAbad
ResolvedVolker_E
Resolvedbmartinezcalvo
Resolved KieranMcCann
OpenNone
DuplicateNone
ResolvedVolker_E
Resolved DAbad
ResolvedVolker_E
Resolved DAbad
Resolved Sarai-WMDE
ResolvedCatrope
OpenNone
Resolvedovasileva
ResolvedBUG REPORTVolker_E
ResolvedVolker_E
ResolvedVolker_E
ResolvedVolker_E
ResolvedVolker_E
Resolved Sarai-WMDE
ResolvedVolker_E
Resolvedbmartinezcalvo
ResolvedCatrope
Resolved DAbad
ResolvedVolker_E
Resolvedbmartinezcalvo

Event Timeline

DAbad changed the task status from Open to In Progress.Jul 28 2022, 10:29 PM
DAbad triaged this task as High priority.

Here is a technical question that came up while thinking about how we should handle a "Link" component (T313507):

Should Codex include a stylesheet for these global visual rules (typographic styles, grid system, breakpoints, etc) that could be used independently of the Vue components?

I personally would defer from this approach and rather offer Codex tokens (via the Codex library in MediaWiki for example) being able to be consumed independently from technical framework.
A stylesheet makes already a number of assumptions, like selectors used, that would be more problematic to implement, to maintain and hinders adoption.

Codex tokens have a number of advantages:

  • They can be applied anywhere including non-stylesheet based environments like apps, or more easily in different stylesheet flavors (CSS, pre-processors)
  • They are simpler centrally maintainable
  • In pre-processors, they're only output when used, which is a huge performance advantage

I personally would defer from this approach and rather offer Codex tokens (via the Codex library in MediaWiki for example) being able to be consumed independently from technical framework.
A stylesheet makes already a number of assumptions, like selectors used, that would be more problematic to implement, to maintain and hinders adoption.

My concern is that there may be cases where multiple tokens need to be used together to achieve the correct visual style – for example links need multiple colors for all the various states, etc. If end-users must track down all the correct tokens one-by-one to create the correct style on their end, it creates opportunities for inconsistencies to creep in.

Maybe distributing LESS mixins (something @Catrope had suggested originally) would be a good solution here – then we can still avoid making assumptions in terms of selector rules, but we can package a group of tokens together to make things easier on the consumer. Need a button? Just drop in the "button" mixin. Same goes for basic text styles, links, and (eventually) responsive layout rules.

This comment was removed by Volker_E.

I'd be interested to get @bmartinezcalvo and @Sarai-WMDE response on “Users can find a publicly available list of "global" styles supported by the design system”
From my point of view this is aimed to be (and already for all available groups) covered by tokens demo.

I'd be interested to get @bmartinezcalvo and @Sarai-WMDE response on “Users can find a publicly available list of "global" styles supported by the design system”
From my point of view this is aimed to be (and already for all available groups) covered by tokens demo.

I agree that's covered by the demo, yes. Also since the second point refers to Figma. I assume that the checkbox is there to reflect completion of said critical global styles if marked.

I'd be interested to get @bmartinezcalvo and @Sarai-WMDE response on “Users can find a publicly available list of "global" styles supported by the design system”
From my point of view this is aimed to be (and already for all available groups) covered by tokens demo.

I agree that's covered by the demo, yes. Also since the second point refers to Figma. I assume that the checkbox is there to reflect completion of said critical global styles if marked.

Updated task description to specify that our global styles will be available in both the code demo and the design specs.

Volker_E updated the task description. (Show Details)

Successfully resolved.