Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bulletproof your Design system

Bulletproof your Design system

Epic Web Conf - Salt Lake City, March 2025

Eva Ferreira

March 26, 2025
Tweet

More Decks by Eva Ferreira

Other Decks in Programming

Transcript

  1. Hi, I’m Eva! Front-end Engineer @ mabl Google Developer Expert

    & CSSConf Argentina organizer @evaferreira92
  2. Who likes it? Do you feel like it makes your

    work faster? Of better quality? Or… do you feel like it gets in the way? @evaferreira92
  3. It might include… • UI Style guide • UX Guidelines

    • Development Guidelines • Writing Guidelines • Component Library • Repositories • Processes • Working agreements • And much more…
  4. Design Systems empower Engineers and Designers To do their work

    better, faster and with higher quality. @evaferreira92
  5. Benefits • Achieves visual consistency • Avoids redundancy • Lowers

    the amount of work on new features • Fosters a shared vocabulary • Helps onboarding new team members
  6. Benefits • Achieves visual consistency • Avoids redundancy • Lowers

    the amount of work on new features • Fosters a shared vocabulary • Helps onboarding new team members
  7. Visual consistency Consistency is one of the most powerful usability

    principles: When things always behave the same, users don't have to worry about what will happen. Instead, they know what will happen based on earlier experience. Top 10 Mistakes in Web Design (nngroup.com)
  8. Unit tests • More confidence on your codebase • Spot

    bugs before they get to production • Use it as a way of documentation • Enables Continuous Integration (CI)
  9. Unit test it('renders with content', () => { render( <Alert>This

    is an alert</Alert> ); // Assert screen.getByText(This is an alert'); expectNoConsoleErrors(); });
  10. A11y on the Design System Take some pressure away from

    your Java developer. Let designers and Front-end engineers handle the heavy work.
  11. Unit + axe import { axe, toHaveNoViolations } from 'jest-axe';

    expect.extend(toHaveNoViolations); it('should not have a11y issues', async () => { const {container} = render(<App />); expect(await axe(container)).toHaveNoViolations() });
  12. Stories • Stories capture the rendered state of a component

    • It takes arguments that modify its state • Provides controls so non-engineers can play around with it
  13. Solidary “I made this for my team, I hope it

    works for yours” • Created based on the needs of one team • No scalability plans for other teams
  14. Centralized • Helps lots of teams and products • Evangelize

    and teach how to use it correctly • Lack of participation • Lack of visibility into the day-to-day of the projects and its needs
  15. Takeaways • Design Systems are an investment • They require

    time to build and to maintain • It’s a set of tools • With loads of benefits • And teamwork