SlideShare a Scribd company logo
Should rolling your own
be the way you roll?
Respond15, 2015.03.19
Ben Buchanan / @200okpublic
Like any tech agenda...
know what you're aiming for
have a way to roll it out
get social buy-in
t
Photo: https://www.flickr.com/photos/booleansplit/3782726220
RWD ♥ UI Libraries
Libraries help...
●
Consistent design & interaction
●
Code re-use & portability
●
Centralised dev & testing
●
Rapid updates
Performance
●
Remove duplication
●
Replace heavy old libraries
●
Allow modular loading (http2 will love this!)
RWD limits
●
Media queries are limited
●
Significant context is often the parent
Solutions?
●
Flexbox
●
Whole-page patterns
●
Judicious JS tweaks
●
Polyfill eg. css-element-queries
●
Client side MVC (heaviest)
Just chuck in a library? Awesome!
Photo: https://www.flickr.com/photos/eschipul/4160817135
All options require work.
Beware the "which library" bikeshed.
It's not just a keel and aIt's not just a keel and a
hull and a deck and sails.hull and a deck and sails.
That's what a shipThat's what a ship needsneeds
but what a shipbut what a ship isis......
is freedom.is freedom.
"Which library are we using?"
vs
"What is our design language?"
Have you ever defined your design language?
Define a palette
Legacy codebase (112+)
#000000 #0000ee #0000ff #0066cc #0066ee #0071b5 #0087c0 #0099cc #00ff00 #0782c1
#0a6332 #1392e9 #139ff7 #189de1 #19478a #1a1718 #212121 #221e1f #222222 #333333
#383838 #3875d7 #3e3c3d #444444 #44aee2 #4668c5 #474747 #4a4c4a #4b4d4b #4c4c4c
#518013 #551a8b #555555 #595959 #5f6062 #666666 #696b6d #75b81b #777777 #807e7f
#808080 #828282 #84bd39 #919191 #979797 #999999 #9fa0a1 #a01f13 #a0a0a0 #a0a6ad
#a1a1a1 #aaaaaa #aeb3b9 #b5b5b5 #b6b6b6 #b81b75 #b83b1d #b9b9b9 #babcbe #bcbbb9
#bfbfbf #c0c0c0 #cccccc #cfd1cf #d0d2d0 #d3d3d3 #d4d4d4 #d6d7d8 #d7d7d7 #d7d8d7
#dddddd #dedede #dfdfdf #e0e0e0 #e3e3e3 #e4e0d8 #e4e4e4 #e5e5e5 #eaeaea #ebeae7
#ebebeb #ececec #ed1c24 #eddab7 #ededed #eeeeee #efeeed #eff0ef #f0dddd #f1f2f2
#f1f9e7 #f2f1ef #f2f2f2 #f3f3f3 #f4f4f4 #f5ecdb #f7f7f7 #f8f8f8 #fafabb #fafafa
#fcfcfc #fe57a1 #feffde #ff0000 #ff7e00 #ff9900 #ffaaaa #ffccba #ffff00 #ffff99
#fffffc #ffffff ...
UI Libraries: should rolling your own be the way you roll?
UI Libraries: should rolling your own be the way you roll?
Definition sets a target.
UI Libraries: should rolling your own be the way you roll?
UI Libraries: should rolling your own be the way you roll?
Create a common language for your UI.
≡
OK. Now you can choose a library.
Broad approaches
●
Off the shelf
●
Bespoke
●
Plunder
UI Libraries: should rolling your own be the way you roll?
Why namespace?
●
Existing libraries?
●
Uncontrolled code – plugins, ads?
●
Fresh build or side-by-side rollout?
Off the shelf
●
Use without modification
●
Reskin & configure
●
Trades off flexibility
One size does not fit all.
You will probably end up forking the library.
You need to change your product.
Do other people
want the change?
A new version of the library is out.
Can you use
the new version?
Submit patch.
 Definitely! 
Submit patch
anyway?
 Maybe 
Did your patch
get accepted?
 Wait   Yes 
You have now forked.
 No 
 Yes! Finally! 
 No 
Update.
 Yes   No 
 Time passes 
Solve your own problems.
Bespoke
●
Building everything gives 100% control
●
It's expensive though!
Plunder
●
Take the best bits
●
Modify to your liking
●
Build bespoke for the gaps
Some tips...
●
Normalise the code
●
Build & test outside your product
●
Set a lean API
●
Templates != API
So you have a library. Now what?
Social impact
●
Empower designers
●
Engage frontenders
●
Free backenders
●
Reassure Ops and PMs
UI Libraries: should rolling your own be the way you roll?
Create an ecosystem, not a library.
Design ecosystem
●
Living style guide
●
Hi-fi rapid prototypes
●
Supporting artefacts:
●
Code templates
●
Graphics and prototyping templates
●
Dash docsets
Portable, usable design gets used.
UI Libraries: should rolling your own be the way you roll?
know what you're aiming for
have a way to roll it out
get social buy-in
your design language
informs your library
and their creation builds buy-in
Create a design ecosystem which
simply includes responsive design.
Thank you.
GNU Terry Pratchett

More Related Content

PPTX
Developing mobile apps with f sharp
PDF
WordPress in NOT English - WordCamp Hamburg 2014
PDF
WordCamp Birmingham 2015 - Theme building workshop
ODP
Build a Bootstrap WordPress theme
PPTX
Introduction to the Software Development world
PDF
Tech Thursdays: Building Products
PPTX
Node.js Web Apps @ ebay scale
PDF
Organizing Your PHP Projects (2010 ConFoo)
Developing mobile apps with f sharp
WordPress in NOT English - WordCamp Hamburg 2014
WordCamp Birmingham 2015 - Theme building workshop
Build a Bootstrap WordPress theme
Introduction to the Software Development world
Tech Thursdays: Building Products
Node.js Web Apps @ ebay scale
Organizing Your PHP Projects (2010 ConFoo)

Similar to UI Libraries: should rolling your own be the way you roll? (20)

PDF
About javascript libraries
PDF
10 Building Blocks for Enterprise JavaScript
PDF
Organinzing Your PHP Projects (2010 Memphis PHP)
PDF
Building businesspost.ie using Node.js
PDF
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
PDF
Session at Oredev 2016.
PDF
Play framework: lessons learned
PDF
Code Reuse Made Easy: Uncovering the Hidden Gems of Corporate and Open Source...
PDF
Calling all modularity solutions
PDF
Slovenian Oracle User Group
PDF
Build a Startup with Clojure(Script)
PPTX
Webdevcon Keynote hh-2012-09-18
PDF
Server Side Javascript
PDF
Practical guide for front-end development for django devs
KEY
Future of PHP
PDF
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
PDF
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
PPT
3stages Wdn08 V3
PDF
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
PDF
Rapid prototyping
About javascript libraries
10 Building Blocks for Enterprise JavaScript
Organinzing Your PHP Projects (2010 Memphis PHP)
Building businesspost.ie using Node.js
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
Session at Oredev 2016.
Play framework: lessons learned
Code Reuse Made Easy: Uncovering the Hidden Gems of Corporate and Open Source...
Calling all modularity solutions
Slovenian Oracle User Group
Build a Startup with Clojure(Script)
Webdevcon Keynote hh-2012-09-18
Server Side Javascript
Practical guide for front-end development for django devs
Future of PHP
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
3stages Wdn08 V3
MTC Spring 2013 - crossplatform woes - robert virkus - 2013-03-13
Rapid prototyping
Ad

More from Ben Buchanan (7)

PDF
Clickable DIVs and other icebergs
PDF
Things designers and developers should know (WDS18)
PDF
The Naming Of Things
ODP
ARIA: beyond accessibility
ODP
Half Of The Next Thing
ODP
Sydjs: static site generators
ODP
ARIA (SydJS lightning talk)
Clickable DIVs and other icebergs
Things designers and developers should know (WDS18)
The Naming Of Things
ARIA: beyond accessibility
Half Of The Next Thing
Sydjs: static site generators
ARIA (SydJS lightning talk)
Ad

Recently uploaded (20)

PDF
WebRTC in SignalWire - troubleshooting media negotiation
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPT
tcp ip networks nd ip layering assotred slides
PPTX
newyork.pptxirantrafgshenepalchinachinane
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PPTX
artificial intelligence overview of it and more
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PPTX
artificialintelligenceai1-copy-210604123353.pptx
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PPTX
Digital Literacy And Online Safety on internet
PDF
Exploring VPS Hosting Trends for SMBs in 2025
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PPT
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
WebRTC in SignalWire - troubleshooting media negotiation
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Tenda Login Guide: Access Your Router in 5 Easy Steps
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
tcp ip networks nd ip layering assotred slides
newyork.pptxirantrafgshenepalchinachinane
SASE Traffic Flow - ZTNA Connector-1.pdf
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
artificial intelligence overview of it and more
Introuction about ICD -10 and ICD-11 PPT.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
artificialintelligenceai1-copy-210604123353.pptx
Slides PDF The World Game (s) Eco Economic Epochs.pdf
Introuction about WHO-FIC in ICD-10.pptx
Paper PDF World Game (s) Great Redesign.pdf
Digital Literacy And Online Safety on internet
Exploring VPS Hosting Trends for SMBs in 2025
Module 1 - Cyber Law and Ethics 101.pptx
FIRE PREVENTION AND CONTROL PLAN- LUS.FM.MQ.OM.UTM.PLN.00014.ppt
522797556-Unit-2-Temperature-measurement-1-1.pptx

UI Libraries: should rolling your own be the way you roll?