Slide 1

Slide 1 text

MOBILE WEB TEAM Cristiano Rastelli didoo.net / @areaweb

Slide 2

Slide 2 text

What we are going to talk about i. Atomic Design ii. Design Systems iii. React iv. Cosmos v. But… vi. Conclusions

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Cristiano Rastelli didoo.net / @areaweb Mobile Web Team

Slide 5

Slide 5 text

team.badoo.com

Slide 6

Slide 6 text

webdeldn.rocks codemotionworld.com

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Atomic Design by Brad Frost http://atomicdesign.bradfrost.com

Slide 9

Slide 9 text

The book about Atomic Design http://atomicdesign.bradfrost.com

Slide 10

Slide 10 text

“Atomic” approach to UI design

Slide 11

Slide 11 text

Our Sketch Design Library in Badoo

Slide 12

Slide 12 text

(which is not completely new) www.teehanlax.com/story/medium/

Slide 13

Slide 13 text

Atomic Design in one GIF

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Components http://atomicdesign.bradfrost.com ATOM MOLECULE ORGANISM TEMPLATE PAGE

Slide 16

Slide 16 text

Component Library LIBRARY COMPONENTS PAGE / APP https://medium.com/@wolframnagel/content-design-and-ui-mapping-in-a-nutshell-7dce5634afff

Slide 17

Slide 17 text

A design system is like a cake… People & Process Documentation UI Components

Slide 18

Slide 18 text

It’s a complex system! Design System Processes Components Dev Standards UI Presentation Layer Web Native Documentation Style Guide Voice & Tone Testing Content Strategy Design Principles Brand Visual Design Language Design Assets UI Kit Platforms https://blog.producthive.org/anatomy-of-a-design-system-7a6b0677bf5 DESIGN SYSTEM

Slide 19

Slide 19 text

The golden definition medium.com/eightshapes-llc/a-design-system-isn-t-a-project-it-s-a-product-serving-products-74dcfffef935 “A style guide is an artifact of a design
 process. A design system is a living,
 funded product with a roadmap
 and backlog, serving an ecosystem ” design system serving an ecosystem product Nathan Curtis

Slide 20

Slide 20 text

Companies with a Design System ACL - Airbnb - Alberta Government - Altinn - Ant Financial - Appear Here - Atlassian - Audi - Auth0 - Automattic/WordPress - Badoo - British Airways - Barnard Levit - Barricade - BBC - Bookatable - Bristol City Council - Buffer - Buzzfeed - CA Technologies - Carnegie Mellon - Channel 4 - City of Philadelphia - Clearleft - CloudFlare - CMS.gov - Co-Op - Code For America - DC Comics - Dell - Disqus - DoSomething.org - Dropbox - Drupal - Dubizzle - Duolingo - eBay - Editorially - edX - Envato - Estonia - Eurostar GLU - Facebook - Financial Times - Fontshop - Frontify - FutureLearn - GE Digital - GitHub - Google - GOV.uk - Greenpeace - Hailo - Harmony - Healthcare.gov - Help Scout - Heroku - Homify - HP Enterprise - IBM - Instacart - Khan Academy - Lasse Diercks - Liferay - Lonely Planet - Lost My Name - Mailchimp - Mapbox - Marvel - Mass.gov - Microsoft Office - Mixpanel - Money Advice Service - Morningstar - Mozilla/Firefox - NASA - National Geographic - National Instruments - Next - Nordnet - OpenTable - Oracle - Ordnance Survey - Pega Systems - Perch - Pivotal - Pluralsight - Priceline - Quicken Loans - Rackspace - Relais & Châteaux - Royal Canin - Salesforce - SAP - Seek - Shopify - Sky - Skype - Skyscanner - Snyk - South Tees Hospital - Spotify - Starbucks - Swiss Confederation - Texas State - The Guardian - The Times - ThermoFisher - ThinkUp - Time Warner Cable - Tourism Whistler - Tradeshift - Trello - Tuts+ - U.S. Design Standards - Uber - Ubuntu - University of Edinburgh - University of Manchester - University of Oxford - USAJobs - Ushahidi - uSwitch - VMware - Walmart - Weight Watchers - West Virginia University - Westpac GEL - WeWork - WhatsApp - Winstrap - WooCommerce - Yelp - 18F U.S. …and many, many, many more! Badoo

Slide 21

Slide 21 text

The benefits of a design system consistent/cohesive design language USERS alignment of processes DESIGN & ENGINEERING efficiency PRODUCT DESIGN & DEVELOPMENT living documentation VISUAL & TECHNICAL communication/collaboration ENTIRE COMPANY marketing/branding/hiring PR & COMMUNITIES

Slide 22

Slide 22 text

That’s how you feel…

Slide 23

Slide 23 text

To know more… Style Guides, Pattern Libraries, Design Systems and other amenities. Cristiano Rastelli Mobile Web Team https://speakerdeck.com/didoo/style-guides-pattern-libraries-design-systems-and-other-amenities

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

I am a title

Web “Components”

Slide 26

Slide 26 text

I am a title

Web “Components” COMPOSITION

Slide 27

Slide 27 text

A common ground

Slide 28

Slide 28 text

A common language “card”

Slide 29

Slide 29 text

The advent of React

Slide 30

Slide 30 text

Predominantly React React No frameworks Vanilla Multiple jQuery Angular Vue Other https://adele.uxpin.com/

Slide 31

Slide 31 text

To know more… https://medium.com/seek-blog/a-unified-styling-language-d0c208de2660

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Demo

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Codebase

Slide 37

Slide 37 text

Design Tokens { "global": { "type": "token", "category": "bricks" }, "props": { "TOKEN_BRICK_BORDER_RADIUS_CIRCLE": { "value": "50%" }, "TOKEN_BRICK_BORDER_RADIUS_SQUARED": { "value": "11.4%" } } }

Slide 38

Slide 38 text

React

Slide 39

Slide 39 text

CSS +

Slide 40

Slide 40 text

Folders structure DESIGN TOKENS (JSON) UI COMPONENTS (React) STYLE GUIDE
 (React Web App)

Slide 41

Slide 41 text

Things to notice React • we generally have only pure components (this is a UI library) • we split components is sub-components (our files are generally quite small, and if they’re not then is a “code smell” for us) • we use prop-types for type checking (and documentation) CSS • we use BEM notation for the classnames • classnames are “name-spaced” to avoid conflicts • extensive use of design tokens as Sass variables (when appropriate)

Slide 42

Slide 42 text

A simple component

Slide 43

Slide 43 text

A simple component

Slide 44

Slide 44 text

A complex component

Slide 45

Slide 45 text

A complex component

Slide 46

Slide 46 text

Some numbers 10k + 5k 36 + 98 180 70% Lines of JS + CSS code Components (Main + Sub) UI Coverage Visual Regression Tests

Slide 47

Slide 47 text

Visual Regression Testing diff after before https://speakerdeck.com/nikhilverma/visual-regression-testing-from-a-tool-to-a-process

Slide 48

Slide 48 text

The full story https://badootech.badoo.com/from-zero-to-cosmos-part-1-2d080fe35bf2

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

“Direction” of componentization https://medium.com/ge-design/ges-predix-design-system-8236d47b0891 ATOM MOLECULE ORGANISM TEMPLATE PAGE Atomic Design by Brad Frost Atomic Design at GE (Predix Design System)

Slide 51

Slide 51 text

The “atomic” problem Jina Anne, Nathan Curtis, Trent Walton, 
 Adam Morse, and many others “Everything is a component.”

Slide 52

Slide 52 text

Flat navigation structure Flat folder structure Keep everything flat!

Slide 53

Slide 53 text

(We used a “fake” categorisation) quark atom molecule organism layout other QUARK ATOM MOLECULE FEATURE LAYOUT OTHER

Slide 54

Slide 54 text

Two distinct kind of components “Layout” Composition “Content”

Slide 55

Slide 55 text

Web “Components” COMPOSITION

I am a title

Slide 56

Slide 56 text

How to look at your components /1 When in doubt,
 break down a component * but not too much, or you’ll end up with “dust” of components break down

Slide 57

Slide 57 text

How to look at your components / 2 “Expected” component Component A ➔ (“Layout”) Component B ➔ (“Content”)

Slide 58

Slide 58 text

Gall’s Law on complex systems https://medium.com/@didoo/systemantics-a778c4247cbb

Slide 59

Slide 59 text

Gall’s Law on complex systems “A complex system that works is invariably found to
 have evolved from a simple system that worked. A complex system designed from scratch never works
 and cannot be patched up to make it work.
 You have to start over with a working simple system. ” complex system evolved from a simple system from scratch never works working simple system cannot be patched up

Slide 60

Slide 60 text

How much UI coverage? https://twitter.com/nathanacurtis/status/969197119730061313

Slide 61

Slide 61 text

How much coverage? https://twitter.com/resmini/status/912373274323103751

Slide 62

Slide 62 text

Component's average cost https://twitter.com/nathanacurtis/status/971110575114801152

Slide 63

Slide 63 text

Evangelisation https://medium.com/related-works-inc/the-people-part-of-design-systems-a5b54eea24f4

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

Atomic Design is just the beginning Start here End here

Slide 66

Slide 66 text

The complexity is in the connections http://www.didoo.net/2015/07/modules-components-and-systems/

Slide 67

Slide 67 text

"Nothing is particularly hard
 if you divide it in small jobs." HENRY FORD

Slide 68

Slide 68 text

Cristiano Rastelli didoo.net / @areaweb Mobile Web Team

Slide 69

Slide 69 text

The theme used for these slides it’s been heavily inspired by the amazing, refreshing, superlative work done by Maria Arenas (Tandem Design NYC) for the campaign of Alexandria Ocasio Cortez. See: www.maaarenas.com CREDITS