SlideShare a Scribd company logo
Perch, patterns, and old browsers.
Rachel Andrew @ Patterns Day
I am:
‣ co-founder of Perch CMS
‣ An invited Expert to the CSS Working Group
‣ A Google Developer Expert
‣ A wearer of too many hats
‣ Blogging at rachelandrew.co.uk, on Twitter as
@rachelandrew
Perch, Patterns and Old Browsers
Redesigning the Perch Control Panel.
Perch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
The Perch UI has to exist as a set of
independent components that can be
displayed in any order.
We needed a pattern library.
Why not use HTML and CSS?
▸ Lots of duplication - copying and pasting code around
▸ Slow to make changes across items using the same markup
▸ Had to encode markup for display and also keep that up to date
▸ Would be unlikely to keep it up to date after launch as changes were painful
Pattern library tooling
Requirements for a pattern library tool
▸ Somewhere to document design decisions
▸ A system to organise and separate components
▸ Something that would remain up to date once the product shipped
▸ Something we could make available to our third party add-on developers as a
reference for their Perch add-ons
Many systems at the time assumed we
were building a website.
Perch, Patterns and Old Browsers
We chose Fractal because:
▸ It didn’t assume the shape of our project - no assumption of a ‘homepage’ for example
▸ It left the organisation of components and naming up to us
▸ It didn’t dictate which build tools were used for the end CSS
▸ Allowed documentation to be stored alongside patterns
▸ Could export to HTML in order that we could make it available online
Pattern Library as Source of Truth.
Fractal is where the CSS for the Perch UI is
built.
Perch, Patterns and Old Browsers
Naming things is hard.
Perch, Patterns and Old Browsers
http://atomicdesign.bradfrost.com/chapter-2/
Perch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
Don’t stress about naming. It will become
clearer as you build.
Don’t be afraid to refactor, and choose a
tool that enables this.
Perch, Patterns and Old Browsers
Reduced Test Case First development
Perch supports right back to IE9.

* supports doesn’t mean ‘looks the same’
I didn’t worry about old browsers until
after we had built the UI.
Flexbox & Grid are so different. If you build
using old methods first you won’t take
advantage of their creative possibilities.
Start with solid markup.
Build your up to date experience using up
to date methods.
Then look at the browsers that don’t
support these newer methods.
Time spent dealing with old browsers, back to
IE9 for the Perch UI?

About a day.
When faced with a confusing broken mess,
we strip it back to a reduced test case.
Components are already a 

reduced test case.
Browser testing
Work in the Pattern Library to test and fix each component in
turn. Starting with the smallest version - in our case our
‘atoms’.
By the time you get to the main layouts you may find it all just
works.
If not, remember your layout is just another component, into
which other things sit.
Working pattern library first is a very good
way to start using new CSS.
Use Grid on a small element of your design.
.wrapper {
display: grid;
grid-gap: 10px;
margin: 0 auto;
grid-template-columns:
repeat(auto-fill, minmax(200px, 1fr));
grid-auto-rows:
minmax(150px, auto);
}
.tall-panel {
grid-row-end: span 2;
}
A grid component
Creating a grid with as many columns as
will fit. Items with a class of ‘tall-panel’
span two rows.
Perch, Patterns and Old Browsers
Perch, Patterns and Old Browsers
.wrapper {
display: flex;
flex-wrap: wrap;
}
.wrapper {
display: grid;
grid-gap: 10px;
margin: 0 auto;
grid-template-columns:
repeat(auto-fill, minmax(200px, 1fr));
grid-auto-rows:
minmax(150px, auto);
}
.panel {
margin-left: 5px;
margin-right: 5px;
flex: 1 1 200px;
}
.tall-panel {
grid-row-end: span 2;
}
@supports (display: grid) {
.wrapper > * {
margin: 0;
}
}
No Grid?
Use Flexbox as a fallback
Perch, Patterns and Old Browsers
Keep fallback code with the component in
the pattern library.
I 💖pattern libraries!
Designing a component seems less
overwhelming than designing a whole site.
Developing CSS in the Pattern Library
makes CSS more manageable.
Pattern library first keeps the build
process and the runtime process separate.
Components are reduced test cases.
Allowing you to more easily embrace new
techniques and deal with old browsers.
Choose tools that allow you to refactor the
pattern library as things change.
Make the pattern library the source of
truth and it can’t get out of date.
Links & Things
The Perch Pattern Library: 

http://patterns.perchcms.com
Fractal: 

http://fractal.build/
Atomic Design: 

http://atomicdesign.bradfrost.com/
Patterns on Grid by Example: 

https://gridbyexample.com/patterns/
Grid fallbacks and overrides cheatsheet: 

https://rachelandrew.co.uk/css/cheatsheets/grid-fallbacks
Thank you!
@rachelandrew



Resources and slides: https://rachelandrew.co.uk/speaking/event/patterns-day

More Related Content

PDF
Evergreen websites for Evergreen browsers
PDF
An Event Apart DC - New CSS Layout meets the Real World
PDF
Solving Layout Problems with CSS Grid & Friends - NordicJS
PDF
Confoo: You can use CSS for that!
PDF
What I discovered about layout vis CSS Grid
PDF
Laying out the future with grid & flexbox - Smashing Conf Freiburg
PDF
An Event Apart Seattle - New CSS Layout Meets the Real World
PDF
Web Summer Camp Keynote
Evergreen websites for Evergreen browsers
An Event Apart DC - New CSS Layout meets the Real World
Solving Layout Problems with CSS Grid & Friends - NordicJS
Confoo: You can use CSS for that!
What I discovered about layout vis CSS Grid
Laying out the future with grid & flexbox - Smashing Conf Freiburg
An Event Apart Seattle - New CSS Layout Meets the Real World
Web Summer Camp Keynote

What's hot (20)

PDF
New CSS Meets the Real World
PDF
Laracon Online: Grid and Flexbox
PDF
Solving Layout Problems with CSS Grid & Friends - WEBU17
PDF
Render Conf: Start using CSS Grid Layout Today
PDF
Making the most of New CSS Layout
PDF
CSS Grid Changes Everything About Web Layouts: WordCamp Europe 2017
PDF
GOTO Berlin - You can use CSS for that
PDF
Talk Web Design: Get Ready For CSS Grid Layout
PDF
CSS Grid Layout
PDF
Flexbox and Grid Layout
PDF
CSS Day: CSS Grid Layout
PDF
Introducing CSS Grid Layout
PDF
The Right Layout Tool for the Job
PDF
Future Layout & Performance
PDF
Frontend United: Start using CSS Grid Layout today!
PDF
AEA Chicago CSS Grid Layout
PDF
CSS Grid Layout
PDF
CSS Conf Budapest - New CSS Layout
PDF
CSS Grid Layout - All Things Open
PDF
The New CSS Layout - dotCSS
New CSS Meets the Real World
Laracon Online: Grid and Flexbox
Solving Layout Problems with CSS Grid & Friends - WEBU17
Render Conf: Start using CSS Grid Layout Today
Making the most of New CSS Layout
CSS Grid Changes Everything About Web Layouts: WordCamp Europe 2017
GOTO Berlin - You can use CSS for that
Talk Web Design: Get Ready For CSS Grid Layout
CSS Grid Layout
Flexbox and Grid Layout
CSS Day: CSS Grid Layout
Introducing CSS Grid Layout
The Right Layout Tool for the Job
Future Layout & Performance
Frontend United: Start using CSS Grid Layout today!
AEA Chicago CSS Grid Layout
CSS Grid Layout
CSS Conf Budapest - New CSS Layout
CSS Grid Layout - All Things Open
The New CSS Layout - dotCSS
Ad

Similar to Perch, Patterns and Old Browsers (20)

PDF
CSS pattern libraries
PDF
Advanced CSS Troubleshooting
PDF
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
PDF
960 grid psd
PDF
Accessibility in Pattern Libraries
PPT
Css best practices style guide and tips
PPT
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
PDF
Adobe MAX 2008: HTML/CSS + Fireworks
PDF
Simply Responsive CSS3
PDF
CSS for design systems
PDF
Pure CSS By Yahoo
PDF
CSS Best Practices
PDF
CSS3 - is everything we used to do wrong?
PDF
React Storybook, Atomic Design, and ITCSS
PDF
CSS3: Ripe and Ready to Respond
PDF
CSS3: Ripe and Ready
PDF
Intro to CSS3
KEY
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
PDF
Modern UI Architecture_ Trends and Technologies in Web Development
PDF
CSS The Definitive Guide Visual Presentation for the Web 4th Edition Eric A. ...
CSS pattern libraries
Advanced CSS Troubleshooting
Scalable CSS You and Your Back-End Coders Can Love - @CSSConf Asia 2014
960 grid psd
Accessibility in Pattern Libraries
Css best practices style guide and tips
Cssbestpracticesjstyleguidejandtips 150830184202-lva1-app6892
Adobe MAX 2008: HTML/CSS + Fireworks
Simply Responsive CSS3
CSS for design systems
Pure CSS By Yahoo
CSS Best Practices
CSS3 - is everything we used to do wrong?
React Storybook, Atomic Design, and ITCSS
CSS3: Ripe and Ready to Respond
CSS3: Ripe and Ready
Intro to CSS3
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Modern UI Architecture_ Trends and Technologies in Web Development
CSS The Definitive Guide Visual Presentation for the Web 4th Edition Eric A. ...
Ad

More from Rachel Andrew (17)

PDF
All Day Hey! Unlocking The Power of CSS Grid Layout
PDF
SmashingConf SF: Unlocking the Power of CSS Grid Layout
PDF
Unlocking the Power of CSS Grid Layout
PDF
The Creative New World of CSS
PDF
Into the Weeds of CSS Layout
PDF
Solving Layout Problems with CSS Grid & Friends - DevFest17
PDF
Graduating to Grid
PDF
View Source London: Solving Layout Problems with CSS Grid & Friends
PDF
DevFest Nantes - Start Using CSS Grid Layout today
PDF
Start Using CSS Grid Layout Today - RuhrJS
PDF
404.ie: Solving Layout Problems with CSS Grid & Friends
PDF
Google Developers Experts Summit 2017 - CSS Layout
PDF
New CSS Layout Meets the Real World
PDF
Where does CSS come from?
PDF
CSS Grid for html5j
PDF
Grid and Flexbox - Smashing Conf SF
PDF
CSS Grid Layout for Frontend NE
All Day Hey! Unlocking The Power of CSS Grid Layout
SmashingConf SF: Unlocking the Power of CSS Grid Layout
Unlocking the Power of CSS Grid Layout
The Creative New World of CSS
Into the Weeds of CSS Layout
Solving Layout Problems with CSS Grid & Friends - DevFest17
Graduating to Grid
View Source London: Solving Layout Problems with CSS Grid & Friends
DevFest Nantes - Start Using CSS Grid Layout today
Start Using CSS Grid Layout Today - RuhrJS
404.ie: Solving Layout Problems with CSS Grid & Friends
Google Developers Experts Summit 2017 - CSS Layout
New CSS Layout Meets the Real World
Where does CSS come from?
CSS Grid for html5j
Grid and Flexbox - Smashing Conf SF
CSS Grid Layout for Frontend NE

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Cloud computing and distributed systems.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Cloud computing and distributed systems.
Reach Out and Touch Someone: Haptics and Empathic Computing
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Understanding_Digital_Forensics_Presentation.pptx

Perch, Patterns and Old Browsers

  • 1. Perch, patterns, and old browsers. Rachel Andrew @ Patterns Day
  • 2. I am: ‣ co-founder of Perch CMS ‣ An invited Expert to the CSS Working Group ‣ A Google Developer Expert ‣ A wearer of too many hats ‣ Blogging at rachelandrew.co.uk, on Twitter as @rachelandrew
  • 4. Redesigning the Perch Control Panel.
  • 9. The Perch UI has to exist as a set of independent components that can be displayed in any order.
  • 10. We needed a pattern library.
  • 11. Why not use HTML and CSS? ▸ Lots of duplication - copying and pasting code around ▸ Slow to make changes across items using the same markup ▸ Had to encode markup for display and also keep that up to date ▸ Would be unlikely to keep it up to date after launch as changes were painful
  • 13. Requirements for a pattern library tool ▸ Somewhere to document design decisions ▸ A system to organise and separate components ▸ Something that would remain up to date once the product shipped ▸ Something we could make available to our third party add-on developers as a reference for their Perch add-ons
  • 14. Many systems at the time assumed we were building a website.
  • 16. We chose Fractal because: ▸ It didn’t assume the shape of our project - no assumption of a ‘homepage’ for example ▸ It left the organisation of components and naming up to us ▸ It didn’t dictate which build tools were used for the end CSS ▸ Allowed documentation to be stored alongside patterns ▸ Could export to HTML in order that we could make it available online
  • 17. Pattern Library as Source of Truth.
  • 18. Fractal is where the CSS for the Perch UI is built.
  • 25. Don’t stress about naming. It will become clearer as you build.
  • 26. Don’t be afraid to refactor, and choose a tool that enables this.
  • 28. Reduced Test Case First development
  • 29. Perch supports right back to IE9. * supports doesn’t mean ‘looks the same’
  • 30. I didn’t worry about old browsers until after we had built the UI.
  • 31. Flexbox & Grid are so different. If you build using old methods first you won’t take advantage of their creative possibilities.
  • 32. Start with solid markup.
  • 33. Build your up to date experience using up to date methods.
  • 34. Then look at the browsers that don’t support these newer methods.
  • 35. Time spent dealing with old browsers, back to IE9 for the Perch UI? About a day.
  • 36. When faced with a confusing broken mess, we strip it back to a reduced test case.
  • 37. Components are already a 
 reduced test case.
  • 38. Browser testing Work in the Pattern Library to test and fix each component in turn. Starting with the smallest version - in our case our ‘atoms’. By the time you get to the main layouts you may find it all just works. If not, remember your layout is just another component, into which other things sit.
  • 39. Working pattern library first is a very good way to start using new CSS.
  • 40. Use Grid on a small element of your design.
  • 41. .wrapper { display: grid; grid-gap: 10px; margin: 0 auto; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); grid-auto-rows: minmax(150px, auto); } .tall-panel { grid-row-end: span 2; } A grid component Creating a grid with as many columns as will fit. Items with a class of ‘tall-panel’ span two rows.
  • 44. .wrapper { display: flex; flex-wrap: wrap; } .wrapper { display: grid; grid-gap: 10px; margin: 0 auto; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); grid-auto-rows: minmax(150px, auto); } .panel { margin-left: 5px; margin-right: 5px; flex: 1 1 200px; } .tall-panel { grid-row-end: span 2; } @supports (display: grid) { .wrapper > * { margin: 0; } } No Grid? Use Flexbox as a fallback
  • 46. Keep fallback code with the component in the pattern library.
  • 48. Designing a component seems less overwhelming than designing a whole site.
  • 49. Developing CSS in the Pattern Library makes CSS more manageable.
  • 50. Pattern library first keeps the build process and the runtime process separate.
  • 51. Components are reduced test cases. Allowing you to more easily embrace new techniques and deal with old browsers.
  • 52. Choose tools that allow you to refactor the pattern library as things change.
  • 53. Make the pattern library the source of truth and it can’t get out of date.
  • 54. Links & Things The Perch Pattern Library: 
 http://patterns.perchcms.com Fractal: 
 http://fractal.build/ Atomic Design: 
 http://atomicdesign.bradfrost.com/ Patterns on Grid by Example: 
 https://gridbyexample.com/patterns/ Grid fallbacks and overrides cheatsheet: 
 https://rachelandrew.co.uk/css/cheatsheets/grid-fallbacks
  • 55. Thank you! @rachelandrew
 
 Resources and slides: https://rachelandrew.co.uk/speaking/event/patterns-day