SlideShare uma empresa Scribd logo
1 de 72
OOCSS IN THE REAL WORLD 
A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
CBC.CA 
•9.1 million pages in Google 
•4.5 million visits per month 
•200 stories a day 
•24 UI developers
CBC.CA 
9.1 million pages in Google 
4.5 million visits per month 
200 stories a day 
24 UI developers 
+ 
Complexity
http://www.flickr.com/photos/samsushiro/8741594581
How can we do things better?
How can we do things better? 
OOCSS
OOCSS is a technique, not a technology
NICOLE SULLIVAN 
stubbornella.org
“Following our beloved best practices leads to bad outcomes every. single. time.” 
~Nicole Sullivan
OOCSS in the Real World: A Case Study from the CBC
.topstories ul.primary { float: left; width: 460px; } 
.topstories ul.secondary { float: right; width: 140px; } 
.topstories ul.secondary li { border-bottom: 1px solid #ccc; }
OOCSS in the Real World: A Case Study from the CBC
#editorspicks { 
background: #eee; border-top: 5px solid #ccc; } 
#editorspicks ul li { border-bottom: 1px solid #ccc; }
STATS 
Style sheets 
16 
float: left; 
78 
font-size: *; 
114 
width: 300px; 
34 
border-top: 5px solid #c4c4c4; 
7
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
.media
.media_reversed
Embrace visual semantics
OPERATION TWITTER BOOTSTRAP
THE PLAN 
1.Find a framework 
2.Use it
FRAMEWORKS 
•Twitter Bootstrap 
•OOCSS 
•inuit.css 
•Pure
OOCSS in the Real World: A Case Study from the CBC
OPERATION CBC BOOTSTRAP
THE PLAN 
1.Identify visual patterns 
2.Codify objects 
3.Get crazy with the classes
CHALLENGE 
RETRAINING YOUR GUT
BENEFIT 
GRIDS ARE A GATEWAY TO OOCSS
CHALLENGE 
NAMING IS HARD
OOCSS in the Real World: A Case Study from the CBC
.distinct
BENEFIT 
TIGHTER INTEGRATION WITH DESIGN
OOCSS in the Real World: A Case Study from the CBC
CHALLENGE 
FINDING THE RIGHT GRANULARITY
BENEFIT 
SEEING THE REUSE HAPPEN
.contentlist
.contentlist_grid
.repel
.videolink
OOCSS in the Real World: A Case Study from the CBC
BENEFIT 
A CMS PRODUCES STANDARDIZED CODE
CHALLENGE 
A CMS PRODUCES STANDARDIZED CODE
LINEUP ROLL 
News 
Sports
The greatest weakness of OOCSS is the tight coupling between HTML and design
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
OPERATION WIDOWMAKER
THE QUESTION 
How do we have 
•reusable objects, 
•fixed HTML, and 
•multiple themes?
THE ANSWER
SASS @extend 
Pre-compile 
Post-compile
LINEUP ROLL 
News 
Sports
OOCSS in the Real World: A Case Study from the CBC
news.scss 
sports.scss
LINEUP ROLL 
News 
Sports
Output 
SASS @extend 
OOCSS 
Core Library 
news.scss 
news.css 
sports.scss 
sports.css
CHALLENGE 
BUILD PROCESS IS MORE COMPLEX
CHALLENGE 
COMPILED CODE IS OBFUSCATED
OOCSS in the Real World: A Case Study from the CBC
BENEFIT 
“BACKWARDS COMPATIBLE”
OOCSS in the Real World: A Case Study from the CBC
BENEFIT 
OPTIMIZATION BECOMES CLEAR
OOCSS in the Real World: A Case Study from the CBC
OOCSS in the Real World: A Case Study from the CBC
PODIUM 
•Reusable 
•Scalable 
•Flexible 
•Themeable
STATS 
Style sheets 
16 
float: left; 
78 
font-size: *; 
114 
width: 300px; 
34 
border-top: 5px solid #c4c4c4; 
7
STATS 
Style sheets 
16 
11 
float: left; 
78 
47 
font-size: *; 
114 
94 
width: 300px; 
34 
3 
border-top: 5px solid #c4c4c4; 
7 
1
STATS 
Style sheets 
16 
11 
1 
float: left; 
78 
47 
9 
font-size: *; 
114 
94 
48 
width: 300px; 
34 
3 
1 
border-top: 5px solid #c4c4c4; 
7 
1 
1
RESOURCES 
Jonathan Snook SMACSS http://snook.ca 
Nicole Sullivan OOCSS http://stubbornella.org 
Harry Roberts inuit.css http://csswizardry.com 
Yandex BEM http://bem.info 
Jamie Strachan jamie.strachan@cbc.ca

Mais conteúdo relacionado

Semelhante a OOCSS in the Real World: A Case Study from the CBC

OOCSS in the Real World: A Case Study from the CBC with Jamie Strachan
OOCSS in the Real World: A Case Study from the CBC with Jamie StrachanOOCSS in the Real World: A Case Study from the CBC with Jamie Strachan
OOCSS in the Real World: A Case Study from the CBC with Jamie StrachanFITC
 
Building Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkBuilding Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkWebvanta
 
The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)Chris Mills
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSZoe Gillenwater
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Vadym Kazulkin
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....Aidan Foster
 
Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh Big Boxx Animation Academy
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFrédéric Harper
 
Let's dig into the Omega Theme!
Let's dig into the Omega Theme!Let's dig into the Omega Theme!
Let's dig into the Omega Theme!Mediacurrent
 
Html5 Whats around the bend
Html5 Whats around the bendHtml5 Whats around the bend
Html5 Whats around the bendRaj Lal
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Buzzr: A "Cloud" Platform for Creating and Maintaining Websites
Buzzr: A "Cloud" Platform for Creating and Maintaining WebsitesBuzzr: A "Cloud" Platform for Creating and Maintaining Websites
Buzzr: A "Cloud" Platform for Creating and Maintaining WebsitesEd Sussman
 
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Tom Williams
 
Modern Web Boot Camp - BBCON 2015
Modern Web Boot Camp - BBCON 2015Modern Web Boot Camp - BBCON 2015
Modern Web Boot Camp - BBCON 2015Caleb Copper
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]David Wesst
 
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)Christopher Schmitt
 
Going Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
Going Full Throttle: How to Speed Time to Market on Marketing Campaign SitesGoing Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
Going Full Throttle: How to Speed Time to Market on Marketing Campaign SitesAcquia
 
Rapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapRapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapJosh Jeffryes
 

Semelhante a OOCSS in the Real World: A Case Study from the CBC (20)

OOCSS in the Real World: A Case Study from the CBC with Jamie Strachan
OOCSS in the Real World: A Case Study from the CBC with Jamie StrachanOOCSS in the Real World: A Case Study from the CBC with Jamie Strachan
OOCSS in the Real World: A Case Study from the CBC with Jamie Strachan
 
Building Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 FrameworkBuilding Responsive Websites with the Bootstrap 3 Framework
Building Responsive Websites with the Bootstrap 3 Framework
 
The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)
 
Highly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSSHighly Maintainable, Efficient, and Optimized CSS
Highly Maintainable, Efficient, and Optimized CSS
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
 
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
A Responsive Design Case Study - What We Did Wrong Building ResponsiveDesign....
 
Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh Responsive web designing course in Chandigarh
Responsive web designing course in Chandigarh
 
Http _css-tricks
Http  _css-tricksHttp  _css-tricks
Http _css-tricks
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web Design
 
Let's dig into the Omega Theme!
Let's dig into the Omega Theme!Let's dig into the Omega Theme!
Let's dig into the Omega Theme!
 
Html5 Whats around the bend
Html5 Whats around the bendHtml5 Whats around the bend
Html5 Whats around the bend
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Buzzr: A "Cloud" Platform for Creating and Maintaining Websites
Buzzr: A "Cloud" Platform for Creating and Maintaining WebsitesBuzzr: A "Cloud" Platform for Creating and Maintaining Websites
Buzzr: A "Cloud" Platform for Creating and Maintaining Websites
 
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
Autodesk Knowledge Network: A Knowledge Ecosystem Approach to Integrated Cont...
 
Responsive web-design
Responsive web-designResponsive web-design
Responsive web-design
 
Modern Web Boot Camp - BBCON 2015
Modern Web Boot Camp - BBCON 2015Modern Web Boot Camp - BBCON 2015
Modern Web Boot Camp - BBCON 2015
 
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
Rich and Beautiful: Making Attractive Apps in HTML5 [Wpg 2013]
 
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)
[HEWEBAR 2012] Beyond Desktop Browsing (HTML5)
 
Going Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
Going Full Throttle: How to Speed Time to Market on Marketing Campaign SitesGoing Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
Going Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
 
Rapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapRapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with Bootstrap
 

Último

UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 

Último (20)

UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 

OOCSS in the Real World: A Case Study from the CBC

Notas do Editor

  1. Caveat: still applies to mobile
  2. Audience Poll
  3. 5
  4. 20
  5. 40