zeeto tech exchange: design for scalability - ux

56
Design for Scalability Zeeto Tech Exchange

Upload: zeetoslides

Post on 06-Apr-2017

139 views

Category:

Design


0 download

TRANSCRIPT

Page 1: Zeeto Tech Exchange: Design for Scalability - UX

Design for Scalability

Zeeto Tech Exchange

Page 2: Zeeto Tech Exchange: Design for Scalability - UX

Zeeto Tech Exchange

Page 3: Zeeto Tech Exchange: Design for Scalability - UX

The Inaugural Series

• Nov – The Project / Technology Selection

• Dec – Cloud Hosting / Containers / Scheduling

• Jan – Microservices

• Feb – Design for Scalability

• Mar – Database Infrastructure

• Apr – Reporting and Analytics

• May – Lessons Learned

Page 4: Zeeto Tech Exchange: Design for Scalability - UX

Our Panel This Evening

Rahmeen SharyDirector of UX

Andre RecintoSr. Software Engineer

Page 5: Zeeto Tech Exchange: Design for Scalability - UX

Tonight’s Topic

How Pattern Librariesand Reusable Components Future

Proof Your Application

Page 6: Zeeto Tech Exchange: Design for Scalability - UX

Designing a Pattern Library

• Why Future Proof Your Application?

• Applying Atomic Design Principles

• Achieving Vertical Rhythm with Baseline Grids

• Defining UI Patterns in High-Fidelity

Page 7: Zeeto Tech Exchange: Design for Scalability - UX

Why Future Proof Your Application?

Page 8: Zeeto Tech Exchange: Design for Scalability - UX

What is Future Proofing?

Future proofing is the process of anticipating the future and developing methods of minimizing the effects of shocks and stresses of future events.

Page 9: Zeeto Tech Exchange: Design for Scalability - UX

Don’t Future Proof

Pros

• Instant gratification • Less financial investment

Cons

• Velocity slows over time • System is less established for new hires • Less global control over the design language • Reusability is an afterthought • Not able to iterate quickly as business and product requirements change

= Leads to scalability and maintainability issues

Page 10: Zeeto Tech Exchange: Design for Scalability - UX

Future Proof

Pros

• Pick up velocity over time • Maximize global control over the design language • Reusability is a primary focus • An established system is in place for new hires • Able to iterate quickly as business and product requirements change

Cons

• Can take longer to reach your MVP • There is a financial investment up front • Will take full buy-in from product, engineering, and the executive team

= Maximizes scalability, productivity, and maintainability

Page 11: Zeeto Tech Exchange: Design for Scalability - UX

Choose Your Path Wisely

Team A / The Doc Browns vs Team B / The Biffs

Page 12: Zeeto Tech Exchange: Design for Scalability - UX

Choose Your Path Wisely

Team A / The Doc Browns vs Team B / The Biffs

Page 13: Zeeto Tech Exchange: Design for Scalability - UX

Applying Atomic Design Principles

Page 14: Zeeto Tech Exchange: Design for Scalability - UX

Who Created Atomic Design?

Page 15: Zeeto Tech Exchange: Design for Scalability - UX

What is Atomic Design?

Brad describes atomic design as a methodology for creating a design system.

Page 16: Zeeto Tech Exchange: Design for Scalability - UX

What is a Design System?

A design system is a set of rules, guidelines, and guardrails that document and organize your design materials.

Often referred to as…

Style GuidesPattern LibrariesUI LibrariesComponent Libraries

Page 17: Zeeto Tech Exchange: Design for Scalability - UX

Why Use a Style Guide?

Style guides promote consistency across the UI which benefits designers, developers, and users alike.

• Designing without style guides leads to inconsistent UI

• Developers end up building these inconsistencies, which leads to scalability issues

• Helps us design patterns NOT pages

• Inconsistent design patterns can be confusing for users

Page 18: Zeeto Tech Exchange: Design for Scalability - UX

Living Style Guide

Can be a great tool for communicating design standards throughout an organization.

• Thoroughly documents and define usage for all UI patterns

• Helps keep product, design, developers, marketing, and executives on the same page

• Will help discourage random “one-off” requests

Page 19: Zeeto Tech Exchange: Design for Scalability - UX

Examples

Page 20: Zeeto Tech Exchange: Design for Scalability - UX

Examples

Page 21: Zeeto Tech Exchange: Design for Scalability - UX

What is Atomic Design?

Atomic design is a chemistry analogy that suggests our interfaces are made up of atoms and molecules that combine to create organisms.

Page 22: Zeeto Tech Exchange: Design for Scalability - UX

Let’s Talk Science

Page 23: Zeeto Tech Exchange: Design for Scalability - UX

What is Atomic Design?

“We’re not just designing pages, we’re designing systems of components.” – Stephen Hay

There are five distinct levels in atomic design:

Page 24: Zeeto Tech Exchange: Design for Scalability - UX

Atoms

Atoms are the basic building blocks of an interface.

Page 25: Zeeto Tech Exchange: Design for Scalability - UX

Molecules

Molecules are groups of atoms bonded together to form fundamental units of an interface.

Page 26: Zeeto Tech Exchange: Design for Scalability - UX

Organisms

Organisms are groups of molecules or atoms joined together to form a relatively complex, distinct section of an interface.

Page 27: Zeeto Tech Exchange: Design for Scalability - UX

Templates

Templates are groups of organisms stitched together to form pages.

Page 28: Zeeto Tech Exchange: Design for Scalability - UX

Pages

Pages are specific instances of templates.

Page 29: Zeeto Tech Exchange: Design for Scalability - UX

Pattern Lab

Check out patternlab.io

Page 30: Zeeto Tech Exchange: Design for Scalability - UX

A Good Read

Page 31: Zeeto Tech Exchange: Design for Scalability - UX

Achieving Vertical Rhythm with Baseline Grids

Page 32: Zeeto Tech Exchange: Design for Scalability - UX

What is a Baseline Grid?

Defines a vertical rhythm by building vertical consistency into each layout.

Page 33: Zeeto Tech Exchange: Design for Scalability - UX

Horizontal Grid

We use a flexible 12 column grid.

Page 34: Zeeto Tech Exchange: Design for Scalability - UX

Baseline Grid

We use a 3px baseline grid.

Page 35: Zeeto Tech Exchange: Design for Scalability - UX

Why Use a Baseline Grid?

• Takes the guess work out of vertical spacing resulting in faster design cycles

• Helps refine vertical consistency between designers

• Breaks down our design patterns mathematically, encouraging them to “play nice together”

• Buttons, inputs, and selectors naturally end up with uniform height and text alignments

• Easily identify when your layout is OFF

Page 36: Zeeto Tech Exchange: Design for Scalability - UX

Take a Closer Look

• Define your baseline and set your type. (3px)

• All leading MUST be divisible by your baseline

Page 37: Zeeto Tech Exchange: Design for Scalability - UX

Set Your Type

Page 38: Zeeto Tech Exchange: Design for Scalability - UX

Block-Level Elements

All block-level elements MUST be divisible by your baseline.

Page 39: Zeeto Tech Exchange: Design for Scalability - UX

Block-Level Elements

All block-level elements MUST be divisible by your baseline.

Page 40: Zeeto Tech Exchange: Design for Scalability - UX

Layout

Page 41: Zeeto Tech Exchange: Design for Scalability - UX

Layout

Page 42: Zeeto Tech Exchange: Design for Scalability - UX

Defining UI Patterns in High-Fidelity

Page 43: Zeeto Tech Exchange: Design for Scalability - UX

Define Your Page Types

• Work with product and stakeholders to gather platform requirements

• Iterate on low-fidelity wireframes to identify reusable page types

Page 44: Zeeto Tech Exchange: Design for Scalability - UX

View/Manage Template

Page 45: Zeeto Tech Exchange: Design for Scalability - UX

Add/Edit Template

Page 46: Zeeto Tech Exchange: Design for Scalability - UX

Define Your Patterns

TypographyColorsButtonsFormsTablesUser Feedback

*All patterns MUST be divisible by your baseline

Page 47: Zeeto Tech Exchange: Design for Scalability - UX

Typography

Page 48: Zeeto Tech Exchange: Design for Scalability - UX

Colors

Page 49: Zeeto Tech Exchange: Design for Scalability - UX

Colors

A LESS/SASS color strategy can be a powerful way to control your design language without a lot of heavy lifting

• Give your brand colors non-color specific names @primary1-color, @primary2-color

• Have a strategy for your grays @gray9-color, @gray8-color, @gray7-color, etc... @gray1-color

• Global border and background classes @dark-border, @light-border, @dark-background, @light-background

• Global text classes @dark-text, @light-text, @white-text, @disabled-text , @error-text

Page 50: Zeeto Tech Exchange: Design for Scalability - UX

Buttons

Page 51: Zeeto Tech Exchange: Design for Scalability - UX

Buttons

• Define button types and sizes separately for more control

• ex. .primary-button + .lg-size + .expand

• Button types help avoid the Skittle conundrum

• .primary-button (Add)• .action-button (Save, Publish, Next, Continue, Log In, Sign Up)• .utility-button (Cancel)• .delete-button (Delete)• .control-button (Control Bar: Filter, Download, Export)• .disabled-button (Inactive Button State)

• Variable over fixed width to accommodate internationalization

Page 52: Zeeto Tech Exchange: Design for Scalability - UX

Forms

Page 53: Zeeto Tech Exchange: Design for Scalability - UX

Tables

Page 54: Zeeto Tech Exchange: Design for Scalability - UX

User Feedback

Page 55: Zeeto Tech Exchange: Design for Scalability - UX

Build Your Templates

Page 56: Zeeto Tech Exchange: Design for Scalability - UX

Build Your Templates