SlideShare une entreprise Scribd logo
1  sur  127
Télécharger pour lire hors ligne
Decoupling the Front-end with
Modular CSS
Julie Cameron
@jewlofthelotus
#OSCON 2015
bit.ly/decoupling-css
DERP.
@jewlofthelotus | #OSCON
@jewlofthelotus | #OSCON
articulate.com@jewlofthelotus | #OSCON
girldevelopit.com@jewlofthelotus | #OSCON
OOCSS
@jewlofthelotus | #OSCON
Got CSS?
@jewlofthelotus | #OSCON
@jewlofthelotus | #OSCON
#cascade {
div.is {
span.delicate {
position: absolute !important;
}
}
}
@jewlofthelotus | #OSCON
@jewlofthelotus | #OSCON
“It’s almost a challenge to find a development
team that’s working on a codebase that’s more
than a couple of years old where the CSS isn’t
the most frightening and hated part of that
system.”
Andy Hume - CSS for Grownups
@jewlofthelotus | #OSCON
TOP DOWN CSS
=
REPETITION & BLOAT
@jewlofthelotus | #OSCON
SELECTOR MISUSE
=
SPECIFICITY HELL
@jewlofthelotus | #OSCON
BLOAT
+
BAD SELECTORS
=
BAD PERFORMANCE
@jewlofthelotus | #OSCON
!IMPORTANT
=
THE DEVIL
@jewlofthelotus | #OSCON
NONE OF THIS IS
SCALABLE OR
MAINTAINABLE.
A hot mess is what it is…
@jewlofthelotus | #OSCON
TOP
DOWN
OVERLY
SPECIFIC
CSS
HTML@jewlofthelotus | #OSCON
WE’VE BEEN
COUPLING OUR
HTML & CSS
@jewlofthelotus | #OSCON
WE’VE BEEN
COUPLING OUR
HTML & CSS
And sometimes our CSS & JavaScript.
@jewlofthelotus | #OSCON
WE’VE BEEN
COUPLING OUR
HTML & CSS
And sometimes our CSS & JavaScript. …and Feature Specs, too.
@jewlofthelotus | #OSCON
Coupled CSS Selectors
@jewlofthelotus | #OSCON
STOP USING
CSS SELECTORS
FOR NON-CSS
Data Attributes. FTW.
@jewlofthelotus | #OSCON
Functionality Selectors
@jewlofthelotus | #OSCON
START USING
MODULAR CSS
@jewlofthelotus | #OSCON
WHY?
@jewlofthelotus | #OSCON
MODULAR
@jewlofthelotus | #OSCON
PREDICTABLE
@jewlofthelotus | #OSCON
MAINTAINABLE
@jewlofthelotus | #OSCON
SCALABLE
@jewlofthelotus | #OSCON
DRY
@jewlofthelotus | #OSCON
ORGANIZED
@jewlofthelotus | #OSCON
Modular Solutions
• OOCSS
• BEM
• SMACSS
• Atomic Design
• CSS for Grownups
• CCSS
• DRY CSS
• and many more…
@jewlofthelotus | #OSCON
Object Oriented Cascading Stylesheets
OOCSS
https://github.com/stubbornella/oocss/wiki
@jewlofthelotus | #OSCON
A scalable, maintainable,
semantic, and predictable
approach to writing CSS.
@jewlofthelotus | #OSCON
OOCSS was created by Nicole Sullivan
while working for Facebook.
She created a reusable CSS module
called the “media object” to save
hundreds of lines of code.
stubbornella.org
@jewlofthelotus | #OSCON
The Media Object
“a content block containing a fixed-size
media element (e.g. image or video) along
with other variable-size content (e.g. text)”
https://github.com/stubbornella/oocss/wiki
AKA a Facebook status.
@jewlofthelotus | #OSCON
A Media Object
Media to the left and some
variable length content to
the right.
img.png
@jewlofthelotus | #OSCON
The Foundation of Modular CSS
OBJECTS
@jewlofthelotus | #OSCON
Objects are the
abstraction of repetition.
@jewlofthelotus | #OSCON
Object Makeup
1. HTML - one or more nodes of the DOM
https://github.com/stubbornella/oocss/wiki/FAQ
@jewlofthelotus | #OSCON
Object Makeup
1. HTML - one or more nodes of the DOM
https://github.com/stubbornella/oocss/wiki/FAQ
2. CSS that styles those nodes
@jewlofthelotus | #OSCON
Object Makeup
1. HTML - one or more nodes of the DOM
https://github.com/stubbornella/oocss/wiki/FAQ
2. CSS that styles those nodes
3. JavaScript functionality tied to those nodes
@jewlofthelotus | #OSCON
Modules with Variations
.btn
@jewlofthelotus | #OSCON
Modules with Variations
.btn
.btn—primary .btn-small
CSS
.btn:hover
@jewlofthelotus | #OSCON
Modules with Variations
.btn
.btn.is—disabled .btn.is-active
CSS
JS
.btn—primary .btn-small
CSS
.btn:hover
@jewlofthelotus | #OSCON
Module Components
Object aka module / component / block .btn, .media
@jewlofthelotus | #OSCON
Module Components
Object aka module / component / block .btn, .media
Child Objects .media__img, .media__body
Relationships
@jewlofthelotus | #OSCON
Module Components
Object aka module / component / block .btn, .media
Modifiers .media—-inline, .media__img—-right
CSS Design Variations
Child Objects .media__img, .media__body
Relationships
@jewlofthelotus | #OSCON
Module Components
Object aka module / component / block .btn, .media
Modifiers .media—-inline, .media__img—-right
CSS Design Variations
States .media—-collapsed, .media.is-active
CSS / JS Design Adjustments
Child Objects .media__img, .media__body
Relationships
@jewlofthelotus | #OSCON
BEST
PRACTICES
@jewlofthelotus | #OSCON
SINGLE
RESPONSIBILITY
Do one thing well and one thing only.
@jewlofthelotus | #OSCON
.CLASSES
.CLASSES
.CLASSES
Take that, specificity!
@jewlofthelotus | #OSCON
NAMING
CONVENTIONS
Just breathe. Everything is going to be okay.
@jewlofthelotus | #OSCON
PICK A SYSTEM
BE CONSISTENT
@jewlofthelotus | #OSCON
Naming Formats
.modulename
.moduleName
.module-name
.module_name
.bem——style
.bem_ _style
@jewlofthelotus | #OSCON
Naming Patterns
How do you identify children? States? Modifiers?
.objectChild
.object-child
.object_child
.object_ _child
.myObject—childObj
.object.is—active
.objectModifier
.object-modifier
.object_modifier
.object——modifier
.myObj-modClass
.object.active
@jewlofthelotus | #OSCON
BEM
.block__element——modifier
http://bem.info
@jewlofthelotus | #OSCON
.block .media
@jewlofthelotus | #OSCON
.block .media
.block__element .media_ _img
@jewlofthelotus | #OSCON
.block .media
.block__element .media_ _img
.block——modifier .media——inline
@jewlofthelotus | #OSCON
.block .media
.block__element .media_ _img
.block——modifier .media——inline
.block__element——modifier .media_ _img——right
@jewlofthelotus | #OSCON
SEMANTIC
VS
PRESENTATIONAL
NAMING
Uh oh…
@jewlofthelotus | #OSCON
Presentational Naming
Describes how the object looks.
.grid_ _col——9
.btn——small
.border——all
.color——red
.float——left
.border——thick
@jewlofthelotus | #OSCON
Semantic Naming
Describes what the object is.
.bookmark
.article
.callToAction
.error
.article_ _title
.article——flagged
@jewlofthelotus | #OSCON
Fewer Semantic Classes
DRY HTML
VS
DRY CSSMany Presentational Classes
@jewlofthelotus | #OSCON
NO ONE KNOWS
WHAT THEY’RE
DOING.
@jewlofthelotus | #OSCON
2 Principles
of OOCSS
@jewlofthelotus | #OSCON
Separation of
STRUCTURE
from
SKIN
1ST PRINCIPLE
@jewlofthelotus | #OSCON
Structure Vs. Skin
@jewlofthelotus | #OSCON
Structure Vs. Skin
Define repeating “invisible” patterns
as reusable structures.
What makes a button look like a button?
@jewlofthelotus | #OSCON
Structure Vs. Skin
Define repeating “invisible” patterns
as reusable structures.
What makes a button look like a button?
Define repeating visual patterns
as reusable skins.
What makes these buttons look different?
@jewlofthelotus | #OSCON
Structure
Repeating “invisible” patterns.
What makes a button look like a button?
@jewlofthelotus | #OSCON
Structure
Repeating “invisible” patterns.
What makes a button look like a button?
@jewlofthelotus | #OSCON
Skin
Repeating visible patterns.
What makes these buttons look different?
@jewlofthelotus | #OSCON
Skin
Repeating visible patterns.
What makes these buttons look different?
@jewlofthelotus | #OSCON
Structure + Skin
@jewlofthelotus | #OSCON
Structure + Skin
.btn .btn—primary
.btn—small
.btn—block
.btn—inverse
@jewlofthelotus | #OSCON
Separation of
CONTAINER
from
CONTENT
2ND PRINCIPLE
@jewlofthelotus | #OSCON
Container Vs. Content
Objects should look the same
no matter where you put them.
@jewlofthelotus | #OSCON
Location Dependent Styles
@jewlofthelotus | #OSCON
Location Dependent Styles
@jewlofthelotus | #OSCON
Location Dependent Styles
@jewlofthelotus | #OSCON
Better?
@jewlofthelotus | #OSCON
Separation Of
Container & Content
What is the container?
@jewlofthelotus | #OSCON
Separation Of
Container & Content
What is the container?
@jewlofthelotus | #OSCON
Separation Of
Container & Content
What is the content?
@jewlofthelotus | #OSCON
Separation Of
Container & Content
Abstract reusable styles into a new object.
@jewlofthelotus | #OSCON
With OOCSS, we’re encouraged to give
more forethought to what is common
among different elements, then separate
those common features into modules, or
objects, that can be reused anywhere.
Louis Lazaris — Smashing Magazine
@jewlofthelotus | #OSCON
OOCSS
Structure vs. Skin
Container vs. Content
@jewlofthelotus | #OSCON
CLASSITIS
@jewlofthelotus | #OSCON
HTML <3 CSS
@jewlofthelotus | #OSCON
HTML <3 CSSCSS
STYLE
@jewlofthelotus | #OSCON
The Semantics Debate
• Do classes actually have “semantic” value?
@jewlofthelotus | #OSCON
The Semantics Debate
• Do classes actually have “semantic” value?
• To whom are classes semantic to?
@jewlofthelotus | #OSCON
The Semantics Debate
• Do classes actually have “semantic” value?
• To whom are classes semantic to?
• Should we stick with one way or the other?
@jewlofthelotus | #OSCON
Presentational
Arguments
• Classes have NO meaning to the browser.
@jewlofthelotus | #OSCON
Presentational
Arguments
• Classes have NO meaning to the browser.
• Classes ARE semantic to developers.
@jewlofthelotus | #OSCON
Presentational
Arguments
• Classes have NO meaning to the browser.
• Classes ARE semantic to developers.
• Content describes itself, classes don’t need to.
@jewlofthelotus | #OSCON
Semantic
DRY HTML
VS
DRY CSSPresentational
@jewlofthelotus | #OSCON
SMACSSScalable & Modular Architecture with CSS
http://smacss.com
Jonathan Snook
@jewlofthelotus | #OSCON
CATEGORIZATION
@jewlofthelotus | #OSCON
• Base
• Layout
• Module
• State
• Theme
SMACSS Categories
@jewlofthelotus | #OSCON
CSS Resets
+
Default Styles
What things should generally look like.
SMACSS Base Objects
@jewlofthelotus | #OSCON
Containers
+
Grids
Hold the modules together.
SMACSS Layout Objects
#IDs for single use “major” components
.classes for reusable “minor” components
@jewlofthelotus | #OSCON
Reusable Parts
+ 

Subclasses
(Modifiers)
The good stuff.
SMACSS Modules
@jewlofthelotus | #OSCON
Tacked on to layout
& module objects
Indicate a JavaScript dependency.
SMACSS State Objects
!important is allowed and even recommended!
@jewlofthelotus | #OSCON
Tacked on to layout
& module objects
Indicate a JavaScript dependency.
SMACSS State Objects
!important is allowed and even recommended!
Module-specific
State objects
Include module name & reside with it.
pseudo & @media query states included.
@jewlofthelotus | #OSCON
Themes can
apply to all other
object types
In the case that your site has multiple
holistic themes.
SMACSS Themes
@jewlofthelotus | #OSCON
ATOMIC
DESIGN
http://bradfrost.com/blog/post/atomic-web-design
Brad Frost
@jewlofthelotus | #OSCON
ASSEMBLING
@jewlofthelotus | #OSCON
Atomic Design
atoms molecules organisms templates pages
@jewlofthelotus | #OSCON
Atomic Design
atoms molecules organisms templates pages
+@jewlofthelotus | #OSCON
The basic building
blocks of matter.
Single element. Global styles.
Atoms
@jewlofthelotus | #OSCON
Groups of atoms
bonded together.
Simple combinations built for reuse.
Molecules
@jewlofthelotus | #OSCON
Groups of molecules
joined together.
Complex, distinct sections of an interface.
Organisms
@jewlofthelotus | #OSCON
http://patternlab.io
A collection of tools to help you create
atomic design systems.
Pattern Lab
WHAT
NOW?
@jewlofthelotus | #OSCON
ORGANIZE
OPTIMIZE
REPEAT@jewlofthelotus | #OSCON
ITERATING ON
ABSTRACTION
@jewlofthelotus | #OSCON
FINDING THE RIGHT
GRANULARITY
@jewlofthelotus | #OSCON
ESTABLISH
CONVENTIONS
@jewlofthelotus | #OSCON
DOCUMENT
EVERYTHING
@jewlofthelotus | #OSCON
ARCHITECT A
STYLEGUIDE
@jewlofthelotus | #OSCON
UTILIZE A CSS
PREPROCESSOR
@jewlofthelotus | #OSCON
STOP USING
CSS SELECTORS
FOR NON-CSS
@jewlofthelotus | #OSCON
http://github.com/davidtheclark/scalable-css-reading-list
http://bit.ly/dc-scrl
LEARN
MORE
@jewlofthelotus | #OSCON
Questions?
Decoupling the Front-end with
Modular CSS
Julie Cameron
@jewlofthelotus
#OSCON 2015
bit.ly/decoupling-css

Contenu connexe

Tendances

Component Driven Design and Development
Component Driven Design and DevelopmentComponent Driven Design and Development
Component Driven Design and DevelopmentCristina Chumillas
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)Zoe Gillenwater
 
ACSS: Rethinking CSS Best Practices
ACSS: Rethinking CSS Best PracticesACSS: Rethinking CSS Best Practices
ACSS: Rethinking CSS Best PracticesRenato Iwashima
 
Basics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointBasics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointSahil Gandhi
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceNicole Sullivan
 
CSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreRuss Weakley
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 
[Access U 2010] HTML5 & Accessibility
[Access U 2010] HTML5 & Accessibility[Access U 2010] HTML5 & Accessibility
[Access U 2010] HTML5 & AccessibilityChristopher Schmitt
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Holger Bartel
 
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
 
Prototyping w/HTML5 and CSS3
Prototyping w/HTML5 and CSS3Prototyping w/HTML5 and CSS3
Prototyping w/HTML5 and CSS3Todd Zaki Warfel
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucksTim Wright
 
網頁程式設計
網頁程式設計網頁程式設計
網頁程式設計傳錡 蕭
 

Tendances (20)

Component Driven Design and Development
Component Driven Design and DevelopmentComponent Driven Design and Development
Component Driven Design and Development
 
CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)CSS Lessons Learned the Hard Way (Generate Conf)
CSS Lessons Learned the Hard Way (Generate Conf)
 
[PSU Web 2011] HTML5 Design
[PSU Web 2011] HTML5 Design[PSU Web 2011] HTML5 Design
[PSU Web 2011] HTML5 Design
 
ACSS: Rethinking CSS Best Practices
ACSS: Rethinking CSS Best PracticesACSS: Rethinking CSS Best Practices
ACSS: Rethinking CSS Best Practices
 
Basics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPointBasics of Front End Web Dev PowerPoint
Basics of Front End Web Dev PowerPoint
 
[O'Reilly] HTML5 Design
[O'Reilly] HTML5 Design[O'Reilly] HTML5 Design
[O'Reilly] HTML5 Design
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance
 
CSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and more
 
Css3
Css3Css3
Css3
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
HTML5 & CSS3 Flag
HTML5 & CSS3 FlagHTML5 & CSS3 Flag
HTML5 & CSS3 Flag
 
[Access U 2010] HTML5 & Accessibility
[Access U 2010] HTML5 & Accessibility[Access U 2010] HTML5 & Accessibility
[Access U 2010] HTML5 & Accessibility
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
 
BEM it!
BEM it!BEM it!
BEM it!
 
The benefits of BEM CSS
The benefits of BEM CSSThe benefits of BEM CSS
The benefits of BEM CSS
 
Bootstrap [part 2]
Bootstrap [part 2]Bootstrap [part 2]
Bootstrap [part 2]
 
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
 
Prototyping w/HTML5 and CSS3
Prototyping w/HTML5 and CSS3Prototyping w/HTML5 and CSS3
Prototyping w/HTML5 and CSS3
 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucks
 
網頁程式設計
網頁程式設計網頁程式設計
網頁程式設計
 

En vedette

Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Piro Shiki
 
SassConf: Managing Complex Projects with Design Components
SassConf: Managing Complex Projects with Design ComponentsSassConf: Managing Complex Projects with Design Components
SassConf: Managing Complex Projects with Design ComponentsJohn Albin Wilkins
 
THETAでモバイルVRコンテンツ開発
THETAでモバイルVRコンテンツ開発THETAでモバイルVRコンテンツ開発
THETAでモバイルVRコンテンツ開発kazuya noshiro
 
クラウド会計ソフトFreee 初期設定ガイド
クラウド会計ソフトFreee 初期設定ガイドクラウド会計ソフトFreee 初期設定ガイド
クラウド会計ソフトFreee 初期設定ガイドfreee株式会社
 
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSObject-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSLi-Wei Lu
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかIchito Nagata
 

En vedette (6)

Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
 
SassConf: Managing Complex Projects with Design Components
SassConf: Managing Complex Projects with Design ComponentsSassConf: Managing Complex Projects with Design Components
SassConf: Managing Complex Projects with Design Components
 
THETAでモバイルVRコンテンツ開発
THETAでモバイルVRコンテンツ開発THETAでモバイルVRコンテンツ開発
THETAでモバイルVRコンテンツ開発
 
クラウド会計ソフトFreee 初期設定ガイド
クラウド会計ソフトFreee 初期設定ガイドクラウド会計ソフトFreee 初期設定ガイド
クラウド会計ソフトFreee 初期設定ガイド
 
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSSObject-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
Object-Oriented CSS 從 OOCSS, SMACSS, BEM 到 AMCSS
 
H2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのかH2O x mrubyで人はどれだけ幸せになれるのか
H2O x mrubyで人はどれだけ幸せになれるのか
 

Similaire à Decoupling the Front-end with Modular CSS

Object Oriented CSS for rapid, scalable and maintainable development
Object Oriented CSS for rapid, scalable and maintainable developmentObject Oriented CSS for rapid, scalable and maintainable development
Object Oriented CSS for rapid, scalable and maintainable developmentGraeme Blackwood
 
We Need to Talk About CSS
We Need to Talk About CSSWe Need to Talk About CSS
We Need to Talk About CSSSean Durham
 
OOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetupOOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetupBrian Cavalier
 
Rock Solid CSS Architecture
Rock Solid CSS ArchitectureRock Solid CSS Architecture
Rock Solid CSS ArchitectureJohn Need
 
OOCSS for JavaScript Pirates jQcon Boston
OOCSS for JavaScript Pirates jQcon BostonOOCSS for JavaScript Pirates jQcon Boston
OOCSS for JavaScript Pirates jQcon BostonJohn Hann
 
Style Guide Driven Development: All Hail the Robot Overlords!
Style Guide Driven Development: All Hail the Robot Overlords!Style Guide Driven Development: All Hail the Robot Overlords!
Style Guide Driven Development: All Hail the Robot Overlords!John Albin Wilkins
 
Object oriented css graeme blackwood
Object oriented css graeme blackwoodObject oriented css graeme blackwood
Object oriented css graeme blackwooddrupalconf
 
Object oriented css. Graeme Blackwood
Object oriented css. Graeme BlackwoodObject oriented css. Graeme Blackwood
Object oriented css. Graeme BlackwoodPVasili
 
How to develop a CSS Framework
How to develop a CSS FrameworkHow to develop a CSS Framework
How to develop a CSS FrameworkOlivier Besson
 
Design and CSS
Design and CSSDesign and CSS
Design and CSSnolly00
 
CSMess to OOCSS: Refactoring CSS with Object Oriented Design
CSMess to OOCSS: Refactoring CSS with Object Oriented DesignCSMess to OOCSS: Refactoring CSS with Object Oriented Design
CSMess to OOCSS: Refactoring CSS with Object Oriented DesignKate Travers
 
Build with Express
Build with ExpressBuild with Express
Build with ExpressJin Su Park
 
CSS Best Practices
CSS Best PracticesCSS Best Practices
CSS Best Practicesnolly00
 

Similaire à Decoupling the Front-end with Modular CSS (20)

What is Modular CSS?
What is Modular CSS?What is Modular CSS?
What is Modular CSS?
 
Object Oriented CSS for rapid, scalable and maintainable development
Object Oriented CSS for rapid, scalable and maintainable developmentObject Oriented CSS for rapid, scalable and maintainable development
Object Oriented CSS for rapid, scalable and maintainable development
 
We Need to Talk About CSS
We Need to Talk About CSSWe Need to Talk About CSS
We Need to Talk About CSS
 
OOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetupOOCSS for Javascript pirates at jQueryPgh meetup
OOCSS for Javascript pirates at jQueryPgh meetup
 
Rock Solid CSS Architecture
Rock Solid CSS ArchitectureRock Solid CSS Architecture
Rock Solid CSS Architecture
 
OOCSS for JavaScript Pirates jQcon Boston
OOCSS for JavaScript Pirates jQcon BostonOOCSS for JavaScript Pirates jQcon Boston
OOCSS for JavaScript Pirates jQcon Boston
 
Style Guide Driven Development: All Hail the Robot Overlords!
Style Guide Driven Development: All Hail the Robot Overlords!Style Guide Driven Development: All Hail the Robot Overlords!
Style Guide Driven Development: All Hail the Robot Overlords!
 
OOCSS
OOCSSOOCSS
OOCSS
 
Object oriented css graeme blackwood
Object oriented css graeme blackwoodObject oriented css graeme blackwood
Object oriented css graeme blackwood
 
Object oriented css. Graeme Blackwood
Object oriented css. Graeme BlackwoodObject oriented css. Graeme Blackwood
Object oriented css. Graeme Blackwood
 
Css framework
Css frameworkCss framework
Css framework
 
How to develop a CSS Framework
How to develop a CSS FrameworkHow to develop a CSS Framework
How to develop a CSS Framework
 
Css framework
Css frameworkCss framework
Css framework
 
Design and CSS
Design and CSSDesign and CSS
Design and CSS
 
CSMess to OOCSS: Refactoring CSS with Object Oriented Design
CSMess to OOCSS: Refactoring CSS with Object Oriented DesignCSMess to OOCSS: Refactoring CSS with Object Oriented Design
CSMess to OOCSS: Refactoring CSS with Object Oriented Design
 
The Cascade is Dead
The Cascade is DeadThe Cascade is Dead
The Cascade is Dead
 
Introducing jee7 – jsf 2
Introducing jee7 – jsf 2Introducing jee7 – jsf 2
Introducing jee7 – jsf 2
 
Build with Express
Build with ExpressBuild with Express
Build with Express
 
CSS Best Practices
CSS Best PracticesCSS Best Practices
CSS Best Practices
 
Atomic design
Atomic designAtomic design
Atomic design
 

Dernier

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 

Dernier (20)

『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 

Decoupling the Front-end with Modular CSS