SlideShare a Scribd company logo
1 of 23
Download to read offline
IMPLEMENTING A DESIGN
SYSTEM FROM THE
GROUND UP
Styleguide | Component Library
Andy Dover | github.com/adover
linkedin.com/in/andrewdover
1 FRONT END
DEVELOPERIn a sea of back end and full stack developers
BRAND
STYLGUIDE
MULTIPLE INTERNAL
& EXTERNAL
REQUIREMENTS
1 x App
Styles need to be able to
compile to be compatible
with native languages
2 x Websites
One internally managed and
one externally managed
∞ Internal Apps
Multiple apps of multiple
ages using anything from
jQuery to Kendo UI
1 FRONT END
DEVELOPER"But we don't want a design system"
VALUABLE LESSON #1
Learn how to sell the value of the
design system
BURNING
PLATFORM
BURNING
DESIRE
"Append Only" Stylesheets from 18
years of different developers
500kb bundled CSS file
Complete reimplimentations of visibly
similar functionality instead of reuse
Inconsistent code
Full site regression tests required for
any code change
No coding standards
Impossible to update branding
Multiple L&Fs and styles
IE6 - 10 vendor prefixes and hacks
Sad UX people, hacking away at stuff
Quick! Easy!
Declare once, apply everywhere
Consistency
Build pipeline with full optimisation and
autoformatting
Component isolation and test suites
IDE automated coding standards
(Prettier & StyleLint)
Update branding from one file
Up front implementation
Happy UX people!
A STYLEGUIDE
WAS BORN
/ component library
VALUABLE LESSON #2
Font declarations, grids and colours
does not a design system make
"DESIGN SYSTEM,
RIGHT AHEAD!"
Page Layout Templates
Elements Reacting to Other Elements
Internationalisation
Futureproofing
Documentation Automation
Accessibility
The easy stuff is the tip of the iceberg
Font Formats
Packaging & Hosting
Build Pipelines
Platform Requirements
Enforcing Constraints
Linting
Readmes
Baseline Grids
Library Architecture
Language & Approach
SIDENOTE
BASELINES,
SPACINGS,
PRESETS,
FTW
Sort it out early and save yourself a tonne of
headaches and iterations
colors: (
background: (
...
),
heading: (
light: map-get($colors, porcelain),
dark: map-get($colors, fun-green),
),
),
borders: (
default: 1px solid map-get($colors, silver-sand),
nav: 8px solid map-get($colors, fun-green),
),
spacing: (
default: (
h: 1rem,
v: 0.75rem,
),
medium: (
h: 2rem,
v: 1.5rem,
),
large: (
h: 4rem,
v: 3rem,
),
),
VALUABLE LESSON #3
Split your design system into multiple
layers to allow optimum reuse
YO DAWG
I HEARD YOU LIKE
LAYERS...
Components
JavaScript implementations
importing styles
Sandbox
Scenario-Driven component
development environment
Guide
Documentation built from
comments and readme files
Styles
CSS styles which can be
imported and reused
Configs
Agreed base colours and
spacing multipliers
VALUABLE LESSON #4
Pick your approach, live it, breathe it,
learn how to explain it to a 5 year old
ITCSS
Settings
Configurations, Variables, Transitions,
Animations, Presets
Functions, Mixins
Resets, Theme Imports,
Shared Libraries
HTML Tags, Singular UI
Elements (Cards,
Overlays etc.)
Banners, Accordions,
Navs, Notifications,
Popups, etc
Login, Navigation
Drawer, Tabsets
Page Flows
Tools
Global Imports
Elements Atoms
Objects Molecules
Components Organisms
Templates
Atomic
AUTOMATE ALL
THE THINGS
Sandboxing
StoryBook.js
Angular Playground
Documentation
JSDoc
SassDoc
CompoDoc
Calculations or building code blocks
SASS functions
Mixins
Webpack helpers
Asset copying and packaging
Bash Scripts
NPM Packages
Pipeline Builds
Choosing which npm script to run
ntl
VALUABLE LESSON #5
Build a Proof of Concept to break
your (and your designers) great ideas
AfterBefore
500kb Bundle Size 90kb Bundle Size
300+ Line height declarations 6 Line height declarations
THANKS!

More Related Content

Similar to Creating a CSS and JS design system from the ground up

Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt
Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt
Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt Ceph Community
 
Introduction to programming world
Introduction to programming worldIntroduction to programming world
Introduction to programming worldJaskaran Singh
 
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsLife Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsTristan Gomez
 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl DesignSven Efftinge
 
Enterprise Data Workflows with Cascading and Windows Azure HDInsight
Enterprise Data Workflows with Cascading and Windows Azure HDInsightEnterprise Data Workflows with Cascading and Windows Azure HDInsight
Enterprise Data Workflows with Cascading and Windows Azure HDInsightPaco Nathan
 
Important work-arounds for making ASS multi-lingual
Important work-arounds for making ASS multi-lingualImportant work-arounds for making ASS multi-lingual
Important work-arounds for making ASS multi-lingualAxel Faust
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim McKeeth
 
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpaces
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpacesNailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpaces
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpacesDevOpsDays Tel Aviv
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular KeynoteLukas Ruebbelke
 
Android Talks #3 Android Design Best Practices - for Designers and Developers
Android Talks #3 Android Design Best Practices - for Designers and DevelopersAndroid Talks #3 Android Design Best Practices - for Designers and Developers
Android Talks #3 Android Design Best Practices - for Designers and DevelopersDenis_infinum
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is NativeJustin Mancinelli
 
haXe - One codebase to rule'em all
haXe - One codebase to rule'em allhaXe - One codebase to rule'em all
haXe - One codebase to rule'em allTom Crombez
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamBrian Benz
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple PlatformsMike Hartington
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
20080115 04 - La qualimétrie pour comprendre et appréhender les SI
20080115 04 - La qualimétrie pour comprendre et appréhender les SI20080115 04 - La qualimétrie pour comprendre et appréhender les SI
20080115 04 - La qualimétrie pour comprendre et appréhender les SILeClubQualiteLogicielle
 
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...Infinum Android Talks #03 - Android Design Best Practices - for Designers and...
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...Infinum
 
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Codemotion
 

Similar to Creating a CSS and JS design system from the ground up (20)

Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt
Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt
Keynote: Building Tomorrow's Ceph - Ceph Day Frankfurt
 
Introduction to programming world
Introduction to programming worldIntroduction to programming world
Introduction to programming world
 
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsLife Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
 
Flutter
FlutterFlutter
Flutter
 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
 
Enterprise Data Workflows with Cascading and Windows Azure HDInsight
Enterprise Data Workflows with Cascading and Windows Azure HDInsightEnterprise Data Workflows with Cascading and Windows Azure HDInsight
Enterprise Data Workflows with Cascading and Windows Azure HDInsight
 
Important work-arounds for making ASS multi-lingual
Important work-arounds for making ASS multi-lingualImportant work-arounds for making ASS multi-lingual
Important work-arounds for making ASS multi-lingual
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpaces
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpacesNailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpaces
Nailing that Devops Interview - An Anti-guide. Nir Cohen, GigaSpaces
 
The REAL Angular Keynote
The REAL Angular KeynoteThe REAL Angular Keynote
The REAL Angular Keynote
 
Android Talks #3 Android Design Best Practices - for Designers and Developers
Android Talks #3 Android Design Best Practices - for Designers and DevelopersAndroid Talks #3 Android Design Best Practices - for Designers and Developers
Android Talks #3 Android Design Best Practices - for Designers and Developers
 
The Future of Cross-Platform is Native
The Future of Cross-Platform is NativeThe Future of Cross-Platform is Native
The Future of Cross-Platform is Native
 
haXe - One codebase to rule'em all
haXe - One codebase to rule'em allhaXe - One codebase to rule'em all
haXe - One codebase to rule'em all
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
One App, Multiple Platforms
One App, Multiple PlatformsOne App, Multiple Platforms
One App, Multiple Platforms
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
20080115 04 - La qualimétrie pour comprendre et appréhender les SI
20080115 04 - La qualimétrie pour comprendre et appréhender les SI20080115 04 - La qualimétrie pour comprendre et appréhender les SI
20080115 04 - La qualimétrie pour comprendre et appréhender les SI
 
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...Infinum Android Talks #03 - Android Design Best Practices - for Designers and...
Infinum Android Talks #03 - Android Design Best Practices - for Designers and...
 
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
Container orchestration: the cold war - Giulio De Donato - Codemotion Rome 2017
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 

Recently uploaded (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 

Creating a CSS and JS design system from the ground up

  • 1. IMPLEMENTING A DESIGN SYSTEM FROM THE GROUND UP Styleguide | Component Library Andy Dover | github.com/adover linkedin.com/in/andrewdover
  • 2. 1 FRONT END DEVELOPERIn a sea of back end and full stack developers
  • 3.
  • 4.
  • 6. MULTIPLE INTERNAL & EXTERNAL REQUIREMENTS 1 x App Styles need to be able to compile to be compatible with native languages 2 x Websites One internally managed and one externally managed ∞ Internal Apps Multiple apps of multiple ages using anything from jQuery to Kendo UI
  • 7. 1 FRONT END DEVELOPER"But we don't want a design system"
  • 8. VALUABLE LESSON #1 Learn how to sell the value of the design system
  • 9. BURNING PLATFORM BURNING DESIRE "Append Only" Stylesheets from 18 years of different developers 500kb bundled CSS file Complete reimplimentations of visibly similar functionality instead of reuse Inconsistent code Full site regression tests required for any code change No coding standards Impossible to update branding Multiple L&Fs and styles IE6 - 10 vendor prefixes and hacks Sad UX people, hacking away at stuff Quick! Easy! Declare once, apply everywhere Consistency Build pipeline with full optimisation and autoformatting Component isolation and test suites IDE automated coding standards (Prettier & StyleLint) Update branding from one file Up front implementation Happy UX people!
  • 10. A STYLEGUIDE WAS BORN / component library
  • 11. VALUABLE LESSON #2 Font declarations, grids and colours does not a design system make
  • 12. "DESIGN SYSTEM, RIGHT AHEAD!" Page Layout Templates Elements Reacting to Other Elements Internationalisation Futureproofing Documentation Automation Accessibility The easy stuff is the tip of the iceberg Font Formats Packaging & Hosting Build Pipelines Platform Requirements Enforcing Constraints Linting Readmes Baseline Grids Library Architecture Language & Approach
  • 14. BASELINES, SPACINGS, PRESETS, FTW Sort it out early and save yourself a tonne of headaches and iterations colors: ( background: ( ... ), heading: ( light: map-get($colors, porcelain), dark: map-get($colors, fun-green), ), ), borders: ( default: 1px solid map-get($colors, silver-sand), nav: 8px solid map-get($colors, fun-green), ), spacing: ( default: ( h: 1rem, v: 0.75rem, ), medium: ( h: 2rem, v: 1.5rem, ), large: ( h: 4rem, v: 3rem, ), ),
  • 15. VALUABLE LESSON #3 Split your design system into multiple layers to allow optimum reuse
  • 16. YO DAWG I HEARD YOU LIKE LAYERS... Components JavaScript implementations importing styles Sandbox Scenario-Driven component development environment Guide Documentation built from comments and readme files Styles CSS styles which can be imported and reused Configs Agreed base colours and spacing multipliers
  • 17. VALUABLE LESSON #4 Pick your approach, live it, breathe it, learn how to explain it to a 5 year old
  • 18.
  • 19. ITCSS Settings Configurations, Variables, Transitions, Animations, Presets Functions, Mixins Resets, Theme Imports, Shared Libraries HTML Tags, Singular UI Elements (Cards, Overlays etc.) Banners, Accordions, Navs, Notifications, Popups, etc Login, Navigation Drawer, Tabsets Page Flows Tools Global Imports Elements Atoms Objects Molecules Components Organisms Templates Atomic
  • 20. AUTOMATE ALL THE THINGS Sandboxing StoryBook.js Angular Playground Documentation JSDoc SassDoc CompoDoc Calculations or building code blocks SASS functions Mixins Webpack helpers Asset copying and packaging Bash Scripts NPM Packages Pipeline Builds Choosing which npm script to run ntl
  • 21. VALUABLE LESSON #5 Build a Proof of Concept to break your (and your designers) great ideas
  • 22. AfterBefore 500kb Bundle Size 90kb Bundle Size 300+ Line height declarations 6 Line height declarations