Design Systems Team

From mediawiki.org

Mission[edit]

Through engagement with WMF staff, partners and volunteers, the Design Systems Team develops an overarching strategy for frontend design and engineering across Wikimedia. This includes building and maintaining a design system platform for wikis that provides shared services of tools and guidelines for building user interfaces in an efficient, scalable, and equitable way.

This work supports audiences that are critical to developing new knowledge experiences by ensuring that they are successful in creating, maintaining, and extending frontend features across Wikimedia with consistency and ease.

Vision[edit]

Provide a comprehensive, reusable, extensible way to build frontends on Wikimedia platforms by creating a universal design style guide and a shared development kit that codifies the design principles and guidelines in a library of UI components.

Mw-current-ds.png

Current state of frontend development

  • Many user-interface libraries used by different teams and projects
  • Redundant effort for designers and engineers
  • Inconsistent designs
  • Inconsistent standards for contribution
  • Challenging to onboard
  • UIs depend on coupled backend logic
Ms-after-ds.png

Ideal future-state of frontend development

  • Less feature redundancy
  • Consistent user experience across all Wikimedia projects
  • Web-accessible and multilingual by default
  • Standardized browser and device support
  • Faster onboarding
  • Faster software upgrades
  • Systems thinking: teams make an impact outside of immediate focus area

Work Streams[edit]

Wikimedia Design System & Codex UI Library[edit]

The Wikimedia Design System is the place where all of the components and patterns that designers use to create products are systematically organized, in such a way that they are easy to find, modify and create new parts. The design system is grounded in a set of principles and guidelines designed with for consistency, efficiency, web accessibility and internationalization by default.

Codex is the frontend development toolkit used for implementing the Wikimedia Design Style Guide in code. Codex provides engineers with UI components that are built in JavaScript (Vue.js), design tokens to store data for design values, and user-facing documentation.

Frontend Technology[edit]

Wikimedia's medium-term Platform Evolution plan set out to prioritize modern engineering practices, performance, and ease-of-use for contributors of varying experience levels. As a result, the Design Systems Team organized the Vue.js Developer Summit which led to the decision to adopt Vue.js as the official programming framework for MediaWiki.

Initiative OKRs[edit]

The following long-term goals speak to our values and commitment to supporting Wikimedia contributors and product teams. Specific metrics are open to adjustments as the Design System deploys to various partnerships.

Running Metrics[edit]

  • 100% of right-to-left (RTL) languages on Wikipedia are supported in Codex
  • 100% of Codex components are fully conformant with Web Content Accessibility Guidelines 2.1 level AA (WCAG)
  • 100% of net-new Wikimedia projects with user interfaces are designed using the design system

Target Metrics[edit]

  • At least 3 product teams at Wikimedia commit to adopting the Design System as their primary method for building UIs in FY2022-23
  • Increase community contributions to web products by 50% via design system contributions
  • Increase contributor satisfaction around the UI component building process by 25%
  • Increase contributor velocity of building UI components by 20%

Service Level Agreements (SLAs)[edit]

  • There is no substantial increase in article page load time as a result of using Codex
  • There is no loss in reading or editing capabilities for any population as a result of Vue software upgrades

Contribution Guidelines[edit]

We welcome contributions from everyone! There are several ways to contribute:

  • Adding or commenting on tasks in our project management system, Phabricator (links below)
  • Contributing to the design process
  • Suggesting new components and design tokens
  • Writing and submitting code
  • Reviewing code
  • Updating and expanding library documentation

Contributions to Codex are covered by the Code of Conduct for Wikimedia technical spaces.

How to stay up-to-date[edit]

To keep all those interested in using or contributing to Codex up-to-date on topics of design, development, roadmaps, and releases, the Design Systems Team will:

  • Use Phabricator to publicly track the work, giving others the opportunity to subscribe to tasks, add comments, or claim tasks.
  • Keep our team page up-to-date with information about our work and how to contact us
  • Include release notes with every release and send minor+ release summaries out to the following mailing lists:
  • Document technical decisions about the library in the ADRs section.

Task tracking[edit]

Work on the library is tracked on the Design-Systems-Team workboard in Phabricator.

I want to know the status of something

Check the workboard to see if a task exists for that work. If so, the task will be in the column that represents its current status. If not, you can create a task (see below) or contact us.

I want to request a feature

You are welcome to create new tasks with the Codex and Design-Systems-Team tags. New tasks will go into our backlog column and will be triaged regularly. Please remember that Codex is maintained by a nonprofit—we won't be able to meet all feature requests, and it might take time to get to your request.

I want to follow parts of your work

Create a Phabricator account and add yourself as a subscriber to a task to get notified when updates are made.

I want to contribute to a task

Great! Create or claim a task as soon as you decide to work on it. This will help avoid overlapping, duplicate, or conflicting work. If you're creating a task, add as much detail as you can about the scope of the task: for example, what needs to be completed before the task can be considered "done"?

FY2021-2022 Roadmap[edit]

FY2021-2022 Roadmap
Timeline Goal Description Status
Q3 Codex is available as a prototype for testing and feedback Make Codex Alpha available on MediaWiki and NPM as a prototype (unstable release for testing) Yes Done
Q3 Codex Alpha testing is complete Test the the design system with Abstract Wikipedia team to gather feedback, resolve bugs, and iterate on Codex Yes Done
Q4 Manual testing and QA strategy for Codex is in place There is a working strategy in place for Codex components to be tested for functional requirements and visual regressions

T306180

In progress In progress
Q4 Collaborators have the tools and information they need to onboard seamlessly to the design system and Codex Design system contribution guidelines, code of conduct, and design tokens are finalized in Figma and Codex In progress In progress

FY2022-2023 Roadmap[edit]

FY2022-2023 Roadmap
Timeline Goal Description Status
Q1 Web Team is able to adopt Codex Deploy TypeaheadSearch to production (target deployment: July 19-21 train)

T297025

In progress In progress
Q2 WMDE is established as a key stakeholder and collaborator on Codex Explore opportunities within Wikidata and/or WMDE's Technical Wishes team In progress In progress
Q2, Q3, Q4 Revisit Codex collaboration opportunities with WMF product teams Tracked internally, to be added to the Roadmap
Q2 All WMF designers are trained to work with the design system Starting in May 2022 In progress In progress
Q3 MediaWiki Vue projects are upgraded to Vue 3 Requires collaboration with partner teams identified in T289017 and deprecation of IE11 (reaches end of life in June 2022)

Team[edit]

  • Sarai Sánchez, UX & Product designer (team member from Wikimedia Deutschland)


All Subpages[edit]