SlideShare una empresa de Scribd logo
Kelley Walker, Dominion Enterprises
Object Oriented CSS
a distillation of Nicole Sullivan’s approach
to building large, scalable, high traffic
sites and applications
Kelley Walker, Dominion Enterprises
OOCSS the Sullivan Way
Who is Nicole Sullivan?
www.stubbornella.org
Yahoo: scalability and focus on page speed
Full Six: a French firm experiencing a severe
shortage of senior level UI developers, but plenty of
graphic designers
Kelley Walker, Dominion Enterprises
Definitions
Modular: combinable, reusable, extensible
Light: one to many relationship between CSS and potential
layouts
Fast: Minimal HTTP requests and minimal size
Future-proof: maintainable, semantic, standards-oriented,
easy to redesign, prepared for future browsers
Adaptable: respectful of UX design and marketing restraints
Accessible: SEO, screen readers, variety of user agents,
users with disabilities (especially as the population ages),
and assistive technologies
Kelley Walker, Dominion Enterprises
Lego Land
Object oriented
Kelley Walker, Dominion Enterprises
1. Immature
2. Fragile
3. Re-use is Rare
What’s Wrong with CSS?
Kelley Walker, Dominion Enterprises
Sullivan’s Complaints
1) Coders are writing modules that are too
clever.
2) Can’t pull a module and use it elsewhere
because code is dependent on that location.
Kelley Walker, Dominion Enterprises
Questions
1. Is the code really too clever?
2. Is it possibly because she’s speaking from a
position of working with large organizations -- which
don’t typically allow time to write re-usable code?
3. In smaller agencies, might code re-use be more
likely because building entire sites with more
frequency?
4. OTOH, maybe agency environments might also
encourage tendency to try out new tricks – which
could mean you are not re-purposing when
possible?
Kelley Walker, Dominion Enterprises
CSS Doesn’t Suck
(We’re just doing it wrong)
 The way to do it right is to use Object
Oriented approaches to building modules,
pages, and entire Web sites.
Kelley Walker, Dominion Enterprises
What is Object Oriented CSS?
What does the “object” in
object-oriented mean?
An object exemplifies – is an exemplar of – a class.
A dog with a hat |= object
Kelley Walker, Dominion Enterprises
•Dog with a hat
•Dog with a bone
•Man with a bone
Kelley Walker, Dominion Enterprises
Each of those images constitutes a module,
not an object. The objects are the man and the
bone.
Do we mean this? Or this?
What about a man eating fish?
Kelley Walker, Dominion Enterprises
OOCCS: Two Characteristics
1). Separation of structure and skin
Create basic layouts – like wireframes – then
skin the layout.
2). Separation of container and content
Create module containers, then fill with
content objects: Header, footer, titles,
paragraphs, images, captions, etc.
Kelley Walker, Dominion Enterprises
Used to focus here:
ul{…}
ul li{…}
ul li a{…}
But, the architecture lives here:
ul{…}
ul li{…}
ul li a{…}
Kelley Walker, Dominion Enterprises
Objects are Lego-like components that can
be mixed and matched to build modules,
pages, Web sites.
Kelley Walker, Dominion Enterprises
This is a module
HEADING
Title Goes Here
Description text goes here. It has
the form of a paragraph and,
semantically, it is a paragraph.
This is an
Unordered list
Containing examples
These are objects
Kelley Walker, Dominion Enterprises
OOCSS Top Ten
1. Create Component
Library
2. Consistent
semantic styles
3. Design modules to
be transparent on
the inside
4. Be flexible
5. Use grids
6. Minimize selectors
7. Separate structure
and skin
8. Separate container
and content
9. Use reset and font
consistency style
sheets (@YUI)
10.Extend objects with
multiple classes
Kelley Walker, Dominion Enterprises
Do’s
 Do develop pages after all individual structural
elements have been identified
 Do build structural legos first
 Do use grids: grids control width; content
controls height
 Do abstract reusable elements
 Do style for exceptions
 Do set objects - not pages or modules
 Do set global defaults on content objects
Kelley Walker, Dominion Enterprises
Do’s
This is the norm:
.error{ most of the code goes here }
These are exceptions:
div.error{…;}
p.error{…;}
span.error{…;}
Kelley Walker, Dominion Enterprises
Don’ts
Depending on the cascade is not Object Oriented CSS:
h3{color:black;}
.weathermodule h3 {color:red;}
.nav_tabs h3{color:blue;}
Instead, she argues for a global definition of
heading tags:
h1, .h1{…}, h2, .h2{…}, h3, .h3{…}, h4, .h4{…},
h5, .h5{…}, h6, .h6{…}
Kelley Walker, Dominion Enterprises
Don’ts
 Don’t specify elements (only if it’s an exception)
div.myclass{…}
instead, use:
.myclass{…}
 Don’t use IDs - reserve for use as javascript
hooks
Kelley Walker, Dominion Enterprises
Don’ts
Don’t use height alignment in the design
Bowralite marica
Mahewu's nondecisiveness bisetous sexly nonurgently gutteral
tingidae politei amphioxidae fibromyomectomy admiredly.
Uninsolated topepo balbusard aristocraticism falcular gmelinites.
Centrodorsally boghole armadilla subarborescence prederived
distater deliquiate.
Semicardinal subslots legative plasmode
langsettle tummer preboyhood's, outma
laprop hydroguret runagado, reexpression
abatage's disomatic. Heteroside harten
braggadocian cattlefold indiadem pathetic
is todo ally porcelanic xanthophyl.
Semicardinal subslots legative plasmo
langsettle tummer preboyhood's, outma
laprop hydroguret runagado, reexpress
abatage's disomatic. Heteroside harten
braggadocian cattlefold indiadem pathetic
is todo ally porcelanic xanthophyl.
Kelley Walker, Dominion Enterprises
Semicardinal subslots legative plasmode
langsettle tummer preboyhood's, outma
laprop hydroguret runagado, reexpression
abatage's disomatic. Heteroside harten
braggadocian cattlefold indiadem pathetic
is todo ally porcelanic xanthophyl.
Because… when your content is dynamic….
Bowralite marica
Mahewu's nondecisiveness bisetous sexly nonurgently gutteral
tingidae politei amphioxidae fibromyomectomy admiredly.
Uninsolated topepo balbusard aristocraticism falcular gmelinites.
Centrodorsally boghole armadilla subarborescence prederived
distater deliquiate.
Semicardinal subslots legative plasmo
langsettle tummer preboyhood's, outma
laprop hydroguret runagado, reexpress
abatage's disomatic. Heteroside harten
braggadocian cattlefold indiadem pathetic
is todo ally porcelanic xanthophyl.
Kelley Walker, Dominion Enterprises
Communicating Object
Oriented CSS:
Kelley Walker, Dominion Enterprises

Más contenido relacionado

Similar a An introduction to Object Oriented CSS

Rock Solid CSS Architecture
Rock Solid CSS ArchitectureRock Solid CSS Architecture
Rock Solid CSS Architecture
John Need
 
HTML Tour - Buenas prácticas en el desarrollo web
HTML Tour - Buenas prácticas en el desarrollo webHTML Tour - Buenas prácticas en el desarrollo web
HTML Tour - Buenas prácticas en el desarrollo web
Plain Concepts
 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
Eric Carlisle
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform Apps
FITC
 
Sass Essentials at Mobile Camp LA
Sass Essentials at Mobile Camp LASass Essentials at Mobile Camp LA
Sass Essentials at Mobile Camp LA
Jake Johnson
 
Is everything we used to do wrong?
Is everything we used to do wrong?Is everything we used to do wrong?
Is everything we used to do wrong?
Russ Weakley
 
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin..."Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
Yandex
 
What’s Up, EDoc?!
What’s Up,EDoc?!What’s Up,EDoc?!
What’s Up, EDoc?!
STC-Philadelphia Metro Chapter
 
Organize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksOrganize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS Tricks
Andolasoft Inc
 
960 grid psd
960 grid psd960 grid psd
960 grid psd
Raju Nag
 
Design patterns
Design patternsDesign patterns
Design patterns
nisheesh
 
Sitting in the Driver's Seat
Sitting in the Driver's SeatSitting in the Driver's Seat
Sitting in the Driver's Seat
Jack Moffett
 
Evolution of CSS
Evolution of CSSEvolution of CSS
Evolution of CSS
Ecaterina Moraru (Valica)
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
Ashlimarie
 
Intermediate Dreamweaver (2007)
Intermediate Dreamweaver (2007)Intermediate Dreamweaver (2007)
Intermediate Dreamweaver (2007)
Matteo Wyllyamz
 
Thinkful - Frontend Crash Course - Intro to HTML/CSS
Thinkful - Frontend Crash Course - Intro to HTML/CSSThinkful - Frontend Crash Course - Intro to HTML/CSS
Thinkful - Frontend Crash Course - Intro to HTML/CSS
TJ Stalcup
 
III - Better angularjs
III - Better angularjsIII - Better angularjs
III - Better angularjs
WebF
 
Content sharing with Umbraco (codegarden usa 2008)
Content sharing  with Umbraco (codegarden usa 2008)Content sharing  with Umbraco (codegarden usa 2008)
Content sharing with Umbraco (codegarden usa 2008)
Douglas Robar
 
Aside, within HTML5 + CSS
Aside, within HTML5 + CSSAside, within HTML5 + CSS
Aside, within HTML5 + CSS
GooseAndSqurirrel
 
The CSS Handbook
The CSS HandbookThe CSS Handbook
The CSS Handbook
jackchenvlo
 

Similar a An introduction to Object Oriented CSS (20)

Rock Solid CSS Architecture
Rock Solid CSS ArchitectureRock Solid CSS Architecture
Rock Solid CSS Architecture
 
HTML Tour - Buenas prácticas en el desarrollo web
HTML Tour - Buenas prácticas en el desarrollo webHTML Tour - Buenas prácticas en el desarrollo web
HTML Tour - Buenas prácticas en el desarrollo web
 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform Apps
 
Sass Essentials at Mobile Camp LA
Sass Essentials at Mobile Camp LASass Essentials at Mobile Camp LA
Sass Essentials at Mobile Camp LA
 
Is everything we used to do wrong?
Is everything we used to do wrong?Is everything we used to do wrong?
Is everything we used to do wrong?
 
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin..."Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
"Responsive Web Design: Clever Tips and Techniques". Vitaly Friedman, Smashin...
 
What’s Up, EDoc?!
What’s Up,EDoc?!What’s Up,EDoc?!
What’s Up, EDoc?!
 
Organize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksOrganize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS Tricks
 
960 grid psd
960 grid psd960 grid psd
960 grid psd
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Sitting in the Driver's Seat
Sitting in the Driver's SeatSitting in the Driver's Seat
Sitting in the Driver's Seat
 
Evolution of CSS
Evolution of CSSEvolution of CSS
Evolution of CSS
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Intermediate Dreamweaver (2007)
Intermediate Dreamweaver (2007)Intermediate Dreamweaver (2007)
Intermediate Dreamweaver (2007)
 
Thinkful - Frontend Crash Course - Intro to HTML/CSS
Thinkful - Frontend Crash Course - Intro to HTML/CSSThinkful - Frontend Crash Course - Intro to HTML/CSS
Thinkful - Frontend Crash Course - Intro to HTML/CSS
 
III - Better angularjs
III - Better angularjsIII - Better angularjs
III - Better angularjs
 
Content sharing with Umbraco (codegarden usa 2008)
Content sharing  with Umbraco (codegarden usa 2008)Content sharing  with Umbraco (codegarden usa 2008)
Content sharing with Umbraco (codegarden usa 2008)
 
Aside, within HTML5 + CSS
Aside, within HTML5 + CSSAside, within HTML5 + CSS
Aside, within HTML5 + CSS
 
The CSS Handbook
The CSS HandbookThe CSS Handbook
The CSS Handbook
 

Más de Kelley Howell

Working Together: the UX role in a Scaled Agile Framework
Working Together: the UX role in a Scaled Agile FrameworkWorking Together: the UX role in a Scaled Agile Framework
Working Together: the UX role in a Scaled Agile Framework
Kelley Howell
 
User Story Mapping for Minimum Lovable Products
User Story Mapping for Minimum Lovable ProductsUser Story Mapping for Minimum Lovable Products
User Story Mapping for Minimum Lovable Products
Kelley Howell
 
UX Research Team @ Homes.com
UX Research Team @ Homes.comUX Research Team @ Homes.com
UX Research Team @ Homes.com
Kelley Howell
 
Coding qualitative data for non-researchers
Coding qualitative data for non-researchersCoding qualitative data for non-researchers
Coding qualitative data for non-researchers
Kelley Howell
 
Why Net Promoter Scoring
Why Net Promoter ScoringWhy Net Promoter Scoring
Why Net Promoter Scoring
Kelley Howell
 
Building a UX Research Program
Building a UX Research ProgramBuilding a UX Research Program
Building a UX Research Program
Kelley Howell
 
UX is not UI
UX is not UIUX is not UI
UX is not UI
Kelley Howell
 
Devcon 2013: Understanding Search Behavior
Devcon 2013: Understanding Search BehaviorDevcon 2013: Understanding Search Behavior
Devcon 2013: Understanding Search Behavior
Kelley Howell
 
You should test that: How to use A/B testing in product design
You should test that: How to use A/B testing in product designYou should test that: How to use A/B testing in product design
You should test that: How to use A/B testing in product design
Kelley Howell
 
Application Design - Part 1
Application Design - Part 1Application Design - Part 1
Application Design - Part 1
Kelley Howell
 
Lead conversions: It's all in the detail page
Lead conversions: It's all in the detail pageLead conversions: It's all in the detail page
Lead conversions: It's all in the detail page
Kelley Howell
 
Stop Creating Awesome UX (Make awesome users instead)
Stop Creating Awesome UX (Make awesome users instead)Stop Creating Awesome UX (Make awesome users instead)
Stop Creating Awesome UX (Make awesome users instead)
Kelley Howell
 
Understanding Users: Using metrics and surveys to understand our consumers
Understanding Users: Using metrics and surveys to understand our consumersUnderstanding Users: Using metrics and surveys to understand our consumers
Understanding Users: Using metrics and surveys to understand our consumers
Kelley Howell
 
Product Personas: Getting to No
Product Personas: Getting to NoProduct Personas: Getting to No
Product Personas: Getting to No
Kelley Howell
 
Understanding the Search User Experience @
Understanding the Search User Experience @Understanding the Search User Experience @
Understanding the Search User Experience @
Kelley Howell
 
Mobile for Business: Opportunity is Knocking
Mobile for Business: Opportunity is KnockingMobile for Business: Opportunity is Knocking
Mobile for Business: Opportunity is Knocking
Kelley Howell
 
Results from our survey of UI/UX needs
Results from our survey of UI/UX needsResults from our survey of UI/UX needs
Results from our survey of UI/UX needs
Kelley Howell
 
Microformats Workshop (2009)
Microformats Workshop  (2009)Microformats Workshop  (2009)
Microformats Workshop (2009)
Kelley Howell
 
Application Design - Part 2
Application Design - Part 2Application Design - Part 2
Application Design - Part 2
Kelley Howell
 
Storymapping, personas, and scenarios
Storymapping, personas, and scenariosStorymapping, personas, and scenarios
Storymapping, personas, and scenarios
Kelley Howell
 

Más de Kelley Howell (20)

Working Together: the UX role in a Scaled Agile Framework
Working Together: the UX role in a Scaled Agile FrameworkWorking Together: the UX role in a Scaled Agile Framework
Working Together: the UX role in a Scaled Agile Framework
 
User Story Mapping for Minimum Lovable Products
User Story Mapping for Minimum Lovable ProductsUser Story Mapping for Minimum Lovable Products
User Story Mapping for Minimum Lovable Products
 
UX Research Team @ Homes.com
UX Research Team @ Homes.comUX Research Team @ Homes.com
UX Research Team @ Homes.com
 
Coding qualitative data for non-researchers
Coding qualitative data for non-researchersCoding qualitative data for non-researchers
Coding qualitative data for non-researchers
 
Why Net Promoter Scoring
Why Net Promoter ScoringWhy Net Promoter Scoring
Why Net Promoter Scoring
 
Building a UX Research Program
Building a UX Research ProgramBuilding a UX Research Program
Building a UX Research Program
 
UX is not UI
UX is not UIUX is not UI
UX is not UI
 
Devcon 2013: Understanding Search Behavior
Devcon 2013: Understanding Search BehaviorDevcon 2013: Understanding Search Behavior
Devcon 2013: Understanding Search Behavior
 
You should test that: How to use A/B testing in product design
You should test that: How to use A/B testing in product designYou should test that: How to use A/B testing in product design
You should test that: How to use A/B testing in product design
 
Application Design - Part 1
Application Design - Part 1Application Design - Part 1
Application Design - Part 1
 
Lead conversions: It's all in the detail page
Lead conversions: It's all in the detail pageLead conversions: It's all in the detail page
Lead conversions: It's all in the detail page
 
Stop Creating Awesome UX (Make awesome users instead)
Stop Creating Awesome UX (Make awesome users instead)Stop Creating Awesome UX (Make awesome users instead)
Stop Creating Awesome UX (Make awesome users instead)
 
Understanding Users: Using metrics and surveys to understand our consumers
Understanding Users: Using metrics and surveys to understand our consumersUnderstanding Users: Using metrics and surveys to understand our consumers
Understanding Users: Using metrics and surveys to understand our consumers
 
Product Personas: Getting to No
Product Personas: Getting to NoProduct Personas: Getting to No
Product Personas: Getting to No
 
Understanding the Search User Experience @
Understanding the Search User Experience @Understanding the Search User Experience @
Understanding the Search User Experience @
 
Mobile for Business: Opportunity is Knocking
Mobile for Business: Opportunity is KnockingMobile for Business: Opportunity is Knocking
Mobile for Business: Opportunity is Knocking
 
Results from our survey of UI/UX needs
Results from our survey of UI/UX needsResults from our survey of UI/UX needs
Results from our survey of UI/UX needs
 
Microformats Workshop (2009)
Microformats Workshop  (2009)Microformats Workshop  (2009)
Microformats Workshop (2009)
 
Application Design - Part 2
Application Design - Part 2Application Design - Part 2
Application Design - Part 2
 
Storymapping, personas, and scenarios
Storymapping, personas, and scenariosStorymapping, personas, and scenarios
Storymapping, personas, and scenarios
 

Último

System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 

Último (20)

System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 

An introduction to Object Oriented CSS

  • 2. Object Oriented CSS a distillation of Nicole Sullivan’s approach to building large, scalable, high traffic sites and applications
  • 3. Kelley Walker, Dominion Enterprises OOCSS the Sullivan Way Who is Nicole Sullivan? www.stubbornella.org Yahoo: scalability and focus on page speed Full Six: a French firm experiencing a severe shortage of senior level UI developers, but plenty of graphic designers
  • 4. Kelley Walker, Dominion Enterprises Definitions Modular: combinable, reusable, extensible Light: one to many relationship between CSS and potential layouts Fast: Minimal HTTP requests and minimal size Future-proof: maintainable, semantic, standards-oriented, easy to redesign, prepared for future browsers Adaptable: respectful of UX design and marketing restraints Accessible: SEO, screen readers, variety of user agents, users with disabilities (especially as the population ages), and assistive technologies
  • 5. Kelley Walker, Dominion Enterprises Lego Land Object oriented
  • 6. Kelley Walker, Dominion Enterprises 1. Immature 2. Fragile 3. Re-use is Rare What’s Wrong with CSS?
  • 7. Kelley Walker, Dominion Enterprises Sullivan’s Complaints 1) Coders are writing modules that are too clever. 2) Can’t pull a module and use it elsewhere because code is dependent on that location.
  • 8. Kelley Walker, Dominion Enterprises Questions 1. Is the code really too clever? 2. Is it possibly because she’s speaking from a position of working with large organizations -- which don’t typically allow time to write re-usable code? 3. In smaller agencies, might code re-use be more likely because building entire sites with more frequency? 4. OTOH, maybe agency environments might also encourage tendency to try out new tricks – which could mean you are not re-purposing when possible?
  • 9. Kelley Walker, Dominion Enterprises CSS Doesn’t Suck (We’re just doing it wrong)  The way to do it right is to use Object Oriented approaches to building modules, pages, and entire Web sites.
  • 10. Kelley Walker, Dominion Enterprises What is Object Oriented CSS? What does the “object” in object-oriented mean? An object exemplifies – is an exemplar of – a class. A dog with a hat |= object
  • 11. Kelley Walker, Dominion Enterprises •Dog with a hat •Dog with a bone •Man with a bone
  • 12. Kelley Walker, Dominion Enterprises Each of those images constitutes a module, not an object. The objects are the man and the bone. Do we mean this? Or this? What about a man eating fish?
  • 13. Kelley Walker, Dominion Enterprises OOCCS: Two Characteristics 1). Separation of structure and skin Create basic layouts – like wireframes – then skin the layout. 2). Separation of container and content Create module containers, then fill with content objects: Header, footer, titles, paragraphs, images, captions, etc.
  • 14. Kelley Walker, Dominion Enterprises Used to focus here: ul{…} ul li{…} ul li a{…} But, the architecture lives here: ul{…} ul li{…} ul li a{…}
  • 15. Kelley Walker, Dominion Enterprises Objects are Lego-like components that can be mixed and matched to build modules, pages, Web sites.
  • 16. Kelley Walker, Dominion Enterprises This is a module HEADING Title Goes Here Description text goes here. It has the form of a paragraph and, semantically, it is a paragraph. This is an Unordered list Containing examples These are objects
  • 17. Kelley Walker, Dominion Enterprises OOCSS Top Ten 1. Create Component Library 2. Consistent semantic styles 3. Design modules to be transparent on the inside 4. Be flexible 5. Use grids 6. Minimize selectors 7. Separate structure and skin 8. Separate container and content 9. Use reset and font consistency style sheets (@YUI) 10.Extend objects with multiple classes
  • 18. Kelley Walker, Dominion Enterprises Do’s  Do develop pages after all individual structural elements have been identified  Do build structural legos first  Do use grids: grids control width; content controls height  Do abstract reusable elements  Do style for exceptions  Do set objects - not pages or modules  Do set global defaults on content objects
  • 19. Kelley Walker, Dominion Enterprises Do’s This is the norm: .error{ most of the code goes here } These are exceptions: div.error{…;} p.error{…;} span.error{…;}
  • 20. Kelley Walker, Dominion Enterprises Don’ts Depending on the cascade is not Object Oriented CSS: h3{color:black;} .weathermodule h3 {color:red;} .nav_tabs h3{color:blue;} Instead, she argues for a global definition of heading tags: h1, .h1{…}, h2, .h2{…}, h3, .h3{…}, h4, .h4{…}, h5, .h5{…}, h6, .h6{…}
  • 21. Kelley Walker, Dominion Enterprises Don’ts  Don’t specify elements (only if it’s an exception) div.myclass{…} instead, use: .myclass{…}  Don’t use IDs - reserve for use as javascript hooks
  • 22. Kelley Walker, Dominion Enterprises Don’ts Don’t use height alignment in the design Bowralite marica Mahewu's nondecisiveness bisetous sexly nonurgently gutteral tingidae politei amphioxidae fibromyomectomy admiredly. Uninsolated topepo balbusard aristocraticism falcular gmelinites. Centrodorsally boghole armadilla subarborescence prederived distater deliquiate. Semicardinal subslots legative plasmode langsettle tummer preboyhood's, outma laprop hydroguret runagado, reexpression abatage's disomatic. Heteroside harten braggadocian cattlefold indiadem pathetic is todo ally porcelanic xanthophyl. Semicardinal subslots legative plasmo langsettle tummer preboyhood's, outma laprop hydroguret runagado, reexpress abatage's disomatic. Heteroside harten braggadocian cattlefold indiadem pathetic is todo ally porcelanic xanthophyl.
  • 23. Kelley Walker, Dominion Enterprises Semicardinal subslots legative plasmode langsettle tummer preboyhood's, outma laprop hydroguret runagado, reexpression abatage's disomatic. Heteroside harten braggadocian cattlefold indiadem pathetic is todo ally porcelanic xanthophyl. Because… when your content is dynamic…. Bowralite marica Mahewu's nondecisiveness bisetous sexly nonurgently gutteral tingidae politei amphioxidae fibromyomectomy admiredly. Uninsolated topepo balbusard aristocraticism falcular gmelinites. Centrodorsally boghole armadilla subarborescence prederived distater deliquiate. Semicardinal subslots legative plasmo langsettle tummer preboyhood's, outma laprop hydroguret runagado, reexpress abatage's disomatic. Heteroside harten braggadocian cattlefold indiadem pathetic is todo ally porcelanic xanthophyl.
  • 24. Kelley Walker, Dominion Enterprises Communicating Object Oriented CSS:
  • 25. Kelley Walker, Dominion Enterprises

Notas del editor

  1. Create components that can be reused anywhere within a site and between sites: navigation, forms, information modules. Name elements semantically using microformats or style- and location-independent naming conventions. Transparent on the inside Use flexible designs whenever possible Make use of grid design patterns such as the YUI Grid Library While you want to make selectors do the work, you may also need to write more mark up to maximize page speed 10. <div class=“mymodule”> should be a basic module container used repeated throughout a site. To style it up slightly differently, extend the class: <div class=“myModule weatherInfo”> or <div class = “myModule saveSearchForm”>