Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Info

Notes in blue to be expanded.

What are we trying to achieve?

...

  • The design system must be flexible and work with any brand.

Changing CSS variables (not tokens) in manual way

2. Internationalisation

  • The design system must support internationalisation

    • RTL

    • Long languages

    • Character based languages

...

  • Dettol Germany offers both a German version and an English version. Because German has longer words, they want to reduce the heading sizes on the German language but not on the English language.

  • Vanish Arabia offers both English and Arabic language versions, but on the Arabic site the text size is larger and we don’t allow bolding.

Each component supports RTL via HTML lang tag and has supporting css

  • See direction in storybook

3. Theming - Changes that affect the whole site

...

  • Finish wants to support a “Dark Mode” theme which changes all of the colours across the entire site to darker versions – but still maintains “green” for Eco, etc (see context).

Brand creates new CSS file with new css values, hands to a developer to implement

mode and context are delivered through component prop.

...

  • .

...

4. Context (not to be confused with theme) - Style part of a site differently than the rest

...

  • Schiff Vitamins is a multi-brand site which has pages for Neuriva and Mucinex. The Mucinex content needs to reflect the Mucinex brand; the Neuriva pages need to reflect the Neuriva brand

  • Finish wants to apply a specific colour palette for each product range. So a teaser for “Eco” has different token values to a teaser for “Quantum Ultimate”

  • Dettol Germany offers both a German version and an English version. Because German has longer words, they want to reduce the heading sizes on the German language but not on the English language.

...

Work out what the process is for the 3 levels of overrides.

  • We’re not using theme provider we’re using css variables

5. Maintenance

  • Brands must be able to adjust their themes & sites (on initial setup and in-life) with cost and time efficiencies. I.e minimise hands on effort.

  • Developer's time must be protected by reducing the amount of manual effort required for theming and automating as much as possible.

Manual intervention is done by developers. There are a lot of tokens, it will take several days to apply tokens. There is no automation. Automation comes next.

6. Propagation

  • When new components and tokens are available. Brands must have a way to obtain these new items with no breaking changes.

  • When the Design System Team decide a component or token is no longer needed, we must be able to depreciate that item and propagate that decision to all websites with no breaking changes.

  • All brands must have the ability to make use of any new component or token we create. I.e We don’t create brand specific components and tokens in the base design system.

Manual developer intervention to update component versions + tokens

Brands can react, but don’t need to, and then get a developer to make the change.

This is a back end responsibility

7. Performance & accessibility

  • Theming must meet Reckitt’s performance and accessibility standards

...

  • .

7. Performance & accessibility

  • Theming must meet Reckitt’s performance and accessibility standards

...

What theming capability does the MVP have?

Info

Updated 15/08/22 after the Theming discussion.
CDS - Theming discussion-20220812_110249-Meeting Recording.mp4

  • As of now we have no token capability. We are using CSS variables

    • In the future we will look at token management which will deliver the development efficiency that we need.

  • We are going live without tokens

#

Requirement

MVP capability

Status/Notes/Gaps

1

Must be able to deliver for multiple brands

  • Brands can change CSS variables

  • Brands can choose to use component variants that align more to their brand style

Status
colourGreen
titleMet

2

Internationalisation

  • Each component supports RTL via HTML lang tag and has supporting css.

    • But if a developer uses right or left instead of start and end the browser will honour the explicit declaration and the lang tag has no effect

  • Components that need internationalisation also have props for alignment

Status
colourGreen
titleMet

3

Theming - Changes that affect the whole site

Theming is currently handled by changing CSS variables and the ability to add CSS classes which group multiple CSS variable changes together.

  1. Brands must decide in advance what colours they want within within their sites and where the colours are used.

  2. A developer is required to take these decisions and create new CSS files which override the base design system component css declarations

  3. The developer imports the relevant CSS files into specific page and component JS files to override any styles.

Status
colourGreen
titleMet

  • The ability to allow users to switch between light and dark mode needs to be investigated.

4

Context - Style part of a site differently than the rest

  • This is handled the same way as theme

    • Developers create CSS classes which override one or more base CSS variables

    • This class is passed to the component via the className prop.

Status
colourGreen
titleMet

Work out what the process is for the 3 levels of overrides.

  • We’re not using theme provider we’re using css variables

  • We are confusing mode and theme again - Nick to follow up

5

Maintenance

  • All aspects of theming requires manual intervention by developers.

“There are a lot of tokens, it will take several days to recolour everything…”

Status
colourRed
titleNot met

  • There probably are ways to add automation outside of the theming capability of the MVP

    • Exporting tokens from CSS

    • Excel macros

    • custom scripts

  • Automation comes next.

  • There is no automation.

    • Automation will depend on where the source of truth is.

6

Propagation

  • Propagation is done manually.

  • The design system team need to communicate deprecated components and tokens in release notes and other sources.

  • Brands will need to request developer intervention to update component versions.

  • All versions of components are kept in external registry, even depreciated versions to avoid build failures.

  • Propagation and maintenance is a back end responsibility.

Status
colourRed
titleNot met

  • We can’t force any changes that fix security or accessibility issues without a brand initiating and paying for those changes.

7

Performance & accessibility

Note

Not discussed

What is our ambition - post MVP?

tdb