Sainsbury's Design System

Sainsbury's in-house system, covering five brands (Sainsbury's, Argos, Nectar, Habitat and Tu) with one headless component layer themed per brand through tokens.

Why we like it

Sainsbury's is a useful read on multi-brand because of how the system got there. Argos ran Bolt, a dev-first web components library with wide adoption but little design input. Sainsbury's ran Luna, a design-led library with accessibility guidance ahead of its component maturity. Rather than pick one, the team folded both into a unified system: a headless Global UI library at the core, with brand tokens layered on top via Token Studio so Sainsbury's, Argos, Nectar, Habitat and Tu each get a tuned output from the same components.

It's the sort of consolidation most retail groups put off because it's politically awkward, and the write-ups are candid about the trade-offs made along the way, which is why the system is worth following even if you'll never ship a loyalty card.

Where it fits

The Sainsbury's system fits large retailers running several consumer brands under one roof who need shared components without flattening the brands into each other. The multi-brand token architecture and the Figma-to-code pipeline through Token Studio are the parts most teams can learn from.

Good to know: Luna is being wound down in favor of Fable, the newer component library, so the public GitHub packages under jsainsburyplc/luna are a historical reference rather than an active project. The current thinking lives on the docs site.

Ideas to borrow

  1. 01.

    Architecture

    Build the core as a headless component layer and apply brand through tokens on top, so a merger of two existing libraries becomes a theming problem rather than a rewrite.

  2. 02.

    Governance

    When consolidating two sibling systems, keep the strengths of each (one's accessibility rigour, the other's developer adoption) rather than picking a winner, and name the trade-offs publicly as you go.

Screenshots

Fig. 1The color tokens page, with a tab for the Global defaults and one for each of Sainsbury's, Argos, Tu, Habitat and Nectar, and every token group labeled by its brand, category and type path.
Fig. 2The product card guidance rendered in the Argos theme through the site's floating theme selector, which restyles every live example for Sainsbury's, Argos, Habitat, Tu or Nectar.
Fig. 3The comparing brand voices page, which sets the same moment, such as a completed order or a login screen, side by side as Sainsbury's, Argos, Habitat and Nectar would each write it.

Further reading

Related