Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Component-Driven Design Systems Workshop
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Andrey Okonetchnikov
April 24, 2019
Education
240
0
Share
Component-Driven Design Systems Workshop
https://component-driven.io
Andrey Okonetchnikov
April 24, 2019
More Decks by Andrey Okonetchnikov
See All by Andrey Okonetchnikov
A Common Design Language
okonet
2
2.1k
Make Linting Great Again (Long version)
okonet
0
100
Modular CSS v2 (CSS-in-JS edition)
okonet
3
1.1k
Make Linting Great Again
okonet
0
180
Modular CSS — Agent Conf '17 Edition
okonet
3
400
Modular CSS
okonet
3
300
JavaScript для насыщенных пользовательских интерфейсов
okonet
0
130
Профессия "Front-end архитектор"
okonet
0
170
Other Decks in Education
See All in Education
From Participation to Outcomes
territorium
PRO
0
450
Curso de Consagração ao Sagrado Coração de Jesus - O Sagrado Coração na História (Aula 01)
cm_manaus
0
150
Course Review - Lecture 13 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
2.3k
Fulbright DAI 2025 學人經驗分享
joannie
0
840
JAWS-UG初心者支部#81 GWにEduJAWSと何か作ろうもくもく会!
otsuki
0
110
0415
cbtlibrary
0
180
Why the humanities may be your best career bet
figarospeech
0
180
[2026前期火5] 論理学(京都大学文学部 前期 第3回)「形式言語と四つのキーワード:メタ・構成・意味論・ハーモニー」
yatabe
0
420
Referendum Costituzionale Giustizia
nostradalmine
0
140
Modelamiento Matematico (Ingresantes UNI 2026)
robintux
0
280
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
signer
PRO
0
2.6k
「機械学習と因果推論」入門① 因果効果とは
masakat0
0
1.7k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
My Coaching Mixtape
mlcsv
0
130
The Curse of the Amulet
leimatthew05
1
12k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
550
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
740
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
KATA
mclloyd
PRO
35
15k
Transcript
Component-Driven Design Systems Workshop
component driven.io https://component-driven.io @okonetchnikov @iamsapegin @ComponentDriven
@okonetchnikov UI developer with an experience in both design and
development who specializes in interaction design, design systems and modern frontend development.
UI engineer working with web technologies since 1999. Creator of
react- styleguidist and component-driven- development @iamsapegin
bit.ly/cddwrkshp Workshop GitHub page
What’s on your mind?
Plan for today
Plan for today ✓ DS theory ✓ UI Inventory ✓
Introduction to CDD ✓ Design Tokens ✓ UI Primitives ✓ Layout & Whitespace Management ✓ UI Composition
Design language Typography Color Spacing UX
No whitespace Added whitespace Typography
Low contrast High contrast Color
Spacing No structure Structured content
Design language • Establishes the brand • Adds consistency •
Improves accessibility
Brand
Dropbox Yandex.Disk Brand
Consistency
Accessibility
Accessibility
How do we enforce design language?
Design Systems
“Design system defines a set of design- related rules as
a system of instructions that can be re-used across single or multiple products”
German government vs Austrian government
German federal government web-sites
German federal government web-sites
German federal government web-sites
Design system
Austrian federal government web-sites
Austrian federal government web-sites
Austrian federal government web-sites
Austrian federal government web-sites
No design system
Component-driven Design Systems
The Process 1. Analyze & Plan 2. Execute 3. Maintain
4. PROFIT!
1. Analyze & Plan
Where to start 1. Analyze & find problems (UI Inventory)
2. Document 3. Plan 4. Execute!
UI inventory process
UI inventory process
UI inventory process
UI inventory process
Document
Plan
https://bit.ly/2U3hdss
2. Execute Building styleguides
Styleguides
“Styleguide is a collection of rules, patterns and components that
are re- usable across single or multiple products.”
https://vueds.com/example/#!/Design%20Tokens
https://material-ui-next.com/style/color/
https://www.lightningdesignsystem.com/design-tokens/
https://vueds.com/example/#!/Design%20Tokens?id=all
https://ant.design/components/button/
https://react-bootstrap.github.io/components/buttons/
https://www.lightningdesignsystem.com/components/avatar/
https://dialogs.github.io/dialog-web-components/
http://jxnblk.com/rebass/getting-started
http://blueprintjs.com/docs/v2/#icons
Good styleguides • A common language for designers, developers, PMs
• Easy to use: good structure + relevant content • Styleguide = documentation • Easy to create & maintain • Always up-to-date
Styleguide generators
None
https://storybook.js.org
None
https://www.catalog.style
react-cosmos
https://github.com/react-cosmos/react-cosmos
None
https://react.feedly.com
npm start
Directory structure for component-driven development
Design Tokens
–https://www.lightningdesignsystem.com/design-tokens/ “Design tokens are the visual design atoms of the
design system — specifically, they are named entities that store visual design attributes”
Typography scale a a a a a a a a
a a a a a a a a a
http://webtypography.net/3.1.1
Naming • x-small small medium large x-large • xs, sm,
md, lg, xl • xs s m l xl • 0, 1, 2, 3, 4, 5 • alpha beta gamma delta epsilon
Linear progression Geometric progression Spacing scale
Spacing
https://design.lyft.com/re-approaching-color-9e604ba22c88 Color palettes
https://www.colorbox.io
https://colorsnapper.com
Color tokens
⚒ DesignTokens
UI Primitives
None
Button
Label Button Icon Input Avatar
Label Button Icon Input Avatar
Login Form
Label Button Icon Input Avatar
Search Toolbar
Label Button Icon Input Avatar
⚒ Primitives
Component variations <Button primary /> <Button secondary />
Component variations // Don't do this <Button primary /> <Button
secondary /> // Impossible state! <Button primary secondary />
Component variations // Do this instead! <Button variant="primary" /> <Button
variant="secondary" />
Accessing design tokens // Hard coded value styled.button`color: tomato;`
Accessing design tokens // Value from the static imported theme
import {colors} from './theme.js'; styled.button`color: ${colors.primary};`
Accessing design tokens // Value coming from the theme styled.button`
color: ${props => props.theme.colors.primary}; `
Accessing design tokens // Value coming from the theme (shorthand)
import {themeGet} from 'styled-system'; styled.button` color: ${themeGet('colors.primary')}; `
API for design tokens import { color } from 'styled-system';
const Text = styled.p`${color};` Text.defaultProps = { color: 'primary' } // Renders text with primary color <Text/> // Renders text with secondary color <Text color="secondary"/> https://styled-system.com/how-it-works
⚒ Whitespace & Layout
UI Patterns
None
–https://en.wikipedia.org/wiki/Design_pattern “A design pattern is the re-usable form of a
solution to a design problem.”
A Pattern Language: Towns, Buildings, Construction Christopher Alexander
http://ui-patterns.com/patterns/PasswordStrengthMeter
https://react.feedly.com/#inputsuggestionlist
Patterns • A great way to communicate • Suitable for
both designers & developers (and many others) • Solve particular design problems • Re-usable • …
3. Maintain
Process Development Product Design
Process Product Design & Development
Process Product Design & Development Styleguide
Process Design & Development Design System
Process Design & Development Design System
Benefits of CDD • Develop in isolation • Faster feedback
loop • See all possible states • Easier to refactor • Documentation!
Reasons for CDD • A common language for designers &
developers • Enforce design language & design system • Consistent UI • Scales: single or multiple products • Up-to-date documentation
How to start? • Don’t ask for permission, just start!
• Make a thing • Show it’s useful • Commit!
Discussion What problems are you facing…
Further reading
Atomic Design Brad Frost
Design Systems Alla Kholmatova
A Pattern Language: Towns, Buildings, Construction Christopher Alexander
The Elements of Typographic Style Robert Bringhurst
http://webtypography.net
• https://www.styled-components.com • github.com/jxnblk/styled-system • https://github.com/rebassjs/grid • https://github.com/rebassjs/space • https://github.com/sapegin/stack-styled
• github.com/jxnblk/macro-components
component driven.io https://component-driven.io @okonetchnikov @iamsapegin @ComponentDriven