Wikidata/Wikibase Design System�Why devs and designers love it
Vision
Optimise design and engineering processes and achieve overall consistency in the Wikidata/Wikibase platforms by replacing the current Front End with modular, reusable Vue components that are based on a single visual source of truth.
Why a system
Using a Design System as a foundation for component development allows us to...
Design tokens
A systemic approach requires setting in advance the design direction that will guide component implementation.
Design principles are encoded in agnostic (JSON) design tokens: property/value pairs used to style components.
Design tokens
The Wikimedia Design Style Guide is our design source of truth. To ensure alignment, we base our global tokens on wikimedia-ui-base variables.
Components
To achieve consistency, the design of components must be solely based on the consolidated design principles: tokens are used as a common language during handover.
Why we love tokens
Bridging the gap between development and design
Accessible inventory
Along with the design system comes a way to showcase what it contains (in Storybook)
Tokens influence each other
.button {
color: #000;
}
$wmf-wmui-color-base10: #202122;
// global
$color.base.10: $wmf-wmui-color-base10;
// alias
$font.color.base.value: $color.base.10;
// component-level token
$wikit-Button-color: $font.color.base;
.button {
color: $wikit-Button-color;
}
before
after
$wmf-wmui-color-base10: #2021223;
// global
$color.base.10: $wmf-wmui-color-base10;
// alias
$font.color.base.value: $color.base.10;
// component-level token
$wikit-Button-color: $font.color.base;
.button {
color: $wikit-Button-color;
}
Tokens self-document
.input {
color: #000;
}
.button {
color: #000;
}
// ...
// component-level token
$wikit-Input-color: $font.color.somethingelse;
$wikit-Button-color: $font.color.base;
.input {
color: $wikit-Input-color;
}
.button {
color: $wikit-Button-color;
}
before
after
Explanations are part of the deliverable
Decoupling design from technology
How did we
make this happen?
Tooling
Everything in version control
Everything pushed to Github - all roles are empowered
Visual Testing
Design System in action
Documentation
VIELEN DANK!