SlideShare a Scribd company logo
1 of 151
Download to read offline
Scalable and Modular CSS FTW!	

          ī€‚e Legend of the Birth of MetaCoax




/	
 Ā *	
 Ā Denise	
 Ā R.	
 Ā Jacobs	
 Ā 
Future.	
 Ā Innova6on.	
 Ā Technology.	
 Ā Crea6vity.	
 Ā 
Amsterdam,	
 Ā Netherlands	
 Ā 
18	
 Ā February	
 Ā 2013	
 Ā */	
 Ā 
Tweeting tall tales	

I am:	

@denisejacobs	

	

This ļ¬ne event is:	

@ļ¬tc #FITCAms	

	

And Iā€™m telling the tale of:	

#metacoax
And tell stories about CSS
I like to make stuff
The Legend of the Birth of MetaCoax
chapter 1
Problems in Poƫsia	

	

chapter 2
The Teachings of the Masters	

	

chapter 3
Insights and Epiphanies	

	

chapter 4
Ousting Selector Evil 	

	

chapter 5
Triumph!
Chapter 1
Problems in Poƫsia
You know how all stories startā€¦	





                             http://www.flickr.com/photos/lorenjavier/7324305636/
There was a Kingdom called Poƫsia	





                              http://www.flickr.com/photos/drobnikm/525835032/
Emperor Eric
On the surface, all was ļ¬neā€¦	





                                  http://www.flickr.com/photos/trodel/3801987960/
Behind the cityā€™s wallsā€¦	





                              http://www.flickr.com/photos/kathrynvjones/3737219448/
It was a nightmare of dis-organization	





                                http://www.flickr.com/photos/torley/4096277982/
Top architects and designers	





                              http://www.flickr.com/photos/massgovernor/7345462040/
Who hired builders	





                        http://www.flickr.com/photos/8533266@N04/4457182603/
Some believed in masteryā€¦	





                               http://www.flickr.com/photos/statuelibrtynps/6276757947/
Others were not of that mind	





                             http://www.flickr.com/photos/anotherjesse/243020629/
Put together with whatever was handy	





                               http://www.flickr.com/photos/laughingsquid/142398084
Shabby new structures	





                           http://www.flickr.com/photos/cbnsp/6605969807/
They didnā€™t start off evil	





                                http://www.flickr.com/photos/dr_john2005/3934871670/
ā€¦but they slowly became so over time	





                               http://www.flickr.com/photos/dr_john2005/3935163348/
Follow suit and try to ļ¬t in
Fight by trying to become !important	





                             http://www.flickr.com/photos/stuckincustoms/6199442617/
He sent out his two most trusted aidesā€¦	





                                http://www.flickr.com/photos/bbsc30/168832715/
They traveled far and wideā€¦	





                                 http://www.flickr.com/photos/annegirl/435308460/
And found the prophet Marcot	





                             http://www.flickr.com/photos/axsdeny/2607122395/
The gospel of Responsive
He spoke of a championne	





                              http://www.flickr.com/photos/44085287@N05/4055807492/
They traveled south to Mijamiā€¦	





                                    Photo: Denise Jacobs
To ļ¬nd Djieh and Djinn!
Chapter 2
The Teachings of the Masters
They went deep into the canyons	





               http://www.flickr.com/photos/gods-art/6622668251/
The Dry Wind appeared to them	





              http://www.flickr.com/photos/gods-art/6622669139/
DRY CSS	




http://www.slideshare.net/jeremyclarke/dry-css-a-
dontrepeatyourself-methodology-for-creating-
efļ¬cient-uniļ¬ed-and-scalable-stylesheets
DRY CSS	



ā€œDonā€™t Repeat Yourselfā€	

	

Never repeat a style/property deļ¬nitionā€¦ever.
DRY CSS: Thinking	



When looking at making a style declaration for a
selector, always have an answer to the question	

Why isnā€™t this part of a group?ā€ 	

Then ļ¬gure out how to make it one.
DRY CSS: Approach	


Groups deļ¬ne shared properties. 	

	

Group selectors with shared properties, rather than
deļ¬ning them separately. 	

	

While the groups have many selectors, each
property/value pair is deļ¬ned only once.
DRY CSS: How	


ā€¢ā€Æ Name the groups based on their role in the design	

	

ā€¢ā€Æ Use the name as an ID at the top of the list and a
    class at the bottom	


ā€¢ā€Æ Group selectors that share properties above the
   properties they share
For example	

#LIGHT-WHITE-BACKGROUND,!
.translation,!
.entry .wp-caption,!
#full-article .entry img,!
.recent-comment .comment-text,!
.roundup h3,!
.post-header-sharing,!
#post-categories td.label,!
#post-archive roundup h3,!
.subscription-manager ol,!
.light-white-background!
{!
   background-color: #fff;!
   border-color: #ccc;!
}!
http://www.slideshare.net/jeremyclarke/dry-css-a-dontrepeatyourself-methodology-for-creating-efficient-unified-and-scalable-stylesheets
The Ninja	





               http://www.flickr.com/photos/branditressler/2912153888/
OOCSS	




Object Oriented CSS	

	

https://github.com/stubbornella/oocss/wiki
Was ruthless
Outcome	



    CSS bytes/page	

   HTML bytes/page	




    19%	

               44%	

       decrease	

          decrease
OOCSS: Signs you need it	



ā€¢ā€Æ Large number of ļ¬‚oats = bad grid	

	

ā€¢ā€Æ Large number of margins = you need a reset css	

	

ā€¢ā€Æ Large number of font-size  !important = 
    cascade is not being leveraged
OOCSS: The Gist	

ā€¢ā€Æ Employ DRY	

	

ā€¢ā€Æ Separate structure and presentation	


ā€¢ā€Æ Modularize
OOCSS: Doā€™s	

ā€¢ā€Æ Use CSS grids	


ā€¢ā€Æ    Keep selector chains as short as possible	

	

ā€¢ā€Æ    Give rules the same weight/strength	

	

ā€¢ā€Æ    Use hr as a page section delimiter	

	

ā€¢ā€Æ    Style classes rather than elements
OOCSS: Donā€™ts	

ā€¢ā€Æ Avoid attaching classes to elements	


ā€¢ā€Æ Avoid using IDs as styling hooks, use them for JS
   hooks and page anchors	


ā€¢ā€Æ Avoid the descendent selector	


ā€¢ā€Æ Donā€™t over-semanticize class names	

	

ā€¢ā€Æ Avoid classnames that are related to the appearance
    of the style
OOCSS: The process	

1.ā€Æ Determine the site-wide ā€œlegosā€ (ie, reusable
    pieces)	

2.ā€Æ Separate	

  ā€“ā€Æ Container and Content 	

  ā€“ā€Æ Structure and Skin 	

  ā€“ā€Æ Contour and Background 	

  ā€“ā€Æ Objects and Mix-ins 	

3.ā€Æ Mix and match container and content objects to
    achieve high performance design.	

4.ā€Æ Skin for visual difference
OOCSS: The Media Module	





                  http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
OOCSS: The Media Module	

!-- media -- !
div class=media !
 !img class=fixedMedia
src=myImg.png / !
 !div class=text !
 !... !
 !/div !
/div!
OOCSS: The Media Module	

/* ====== media ====== */!
.media {margin:10px;}!
.media, .bd {overflow:hidden;
_overflow:visible; zoom:1;}!
.media .img {float:left; margin-
right: 10px;}!
.media .img img{display:block;}!
.media .imgExt{float:right; margin-
left: 10px;}!
The Lumberjack	





                    http://www.flickr.com/photos/stikeymo/308546507/
SMACSS	




Scalable and Modular Architecture for CSS	

	

https://smacss.com/
SMACSS: Style categories	



ā€¢ā€Æ   Base	

ā€¢ā€Æ   Layout	

ā€¢ā€Æ   Module	

ā€¢ā€Æ   State	

ā€¢ā€Æ   Theme
SMACSS: Curb your enthusiasm	




Selectors should be ā€œshallowā€ instead of ā€œdeepā€	

	

Strive for the shallowest possible.
SMACSS: Deep selector	




div#childrens-footer
div#col2.column div.bestRight
p.bestTitle !
SMACSS: Shallow selector	





p.bestTitle !
SMACSS: Shallow selectors 101	


ā€¢ā€Æ Avoid tag selectors for common elements unless
    completely predictable.	

	

ā€¢ā€Æ Use class names as the right-most (key) selector	


ā€¢ā€Æ Use the child selector
SMACSS: On ā€œclassitisā€	


Youā€™re better off adding classes to the elements in
question and repeating the class in the HTML than
having overly-speciļ¬c styles.	

	

Instead of being classitis, using multiple classes
clariļ¬es intent and increases the semantics of
elements in question.
SMACSS: Module candidates	


ā€¢ā€Æ   Nav bars	

ā€¢ā€Æ   Carousels	

ā€¢ā€Æ   Dialogs	

ā€¢ā€Æ   Widgets	

ā€¢ā€Æ   Tables	

ā€¢ā€Æ   icons
SMACSS: States	



State changes can be notated by class names like	

	

.is-active!
.is-collapsed!
.btn-pressed!
SMACSS: Whatā€™s in a name?	

an example module:	

.example!
	

a callout module:	

.callout!
	

a callout module with a collapsed state:	

.callout.is-collapsed!
SMACSS: Words of Wisdom	




ā€œConstrain, but donā€™t choke.	

	

Consider selector performance, but donā€™t waste too
much time on it.ā€
The Brit	





              http://www.flickr.com/photos/31363949@N02/6958447097/
CSS For Grown Ups	



https://speakerdeck.com/u/andyhume/p/css-for-
grown-ups-maturing-best-practises	

	

http://schedule.sxsw.com/2012/events/
event_IAP9410 (audio)
He lived his own nightmare	





                                http://www.flickr.com/photos/djrue/4835062638/
CSS For Grown Ups	




Donā€™t style pages, style modules.	

	

Have a style module library that you can reuse.
CSS For Grown Ups	


Think of your styles as being in layers:	

ā€¢ā€Æ document ā€“ from HTML code, element selectors	

ā€¢ā€Æ base styles	

ā€¢ā€Æ module styles	

ā€¢ā€Æ layout styles
CSS For Grown Ups	



Easy determination:	

A tag as part of the selector = a document style	

	

If you create a class for it, you release it from the tag
and make it a module style.
CSS For Grown Ups: Donā€™t	


ā€¦make modules variations based on IDs, base them
on classes instead	

	

#sidebar .promo-box = bad 	

	

.promo-box { ... } = okay!
	

.promo-box-light { ... } = better!
CSS For Grown Ups: Modules	

.promo-box!
	

Related/sub-styles: moduleā€™s name extended with
two dashes 	

.promo-box--eco!
	

javascript class preļ¬xed with js:	

.js-login!
CSS For Grown Ups: Typography	



	

.h-headline!
.h-subheadline!
.h-byline!
.h-promo!
CSS For Grown Ups: Helpers	



ā€œSurgical layout helpersā€ which are things like
paddings, margins, and gutters as separate classes. 	

	

.margin-top {margin-top: 1em;}!
Chapter 3
Insights and Epiphanies
The Masters all speak the same truths	





                               http://www.flickr.com/photos/s4xton/2425718415/
Their teachings	

ā€¢ā€Æ    Ids? Not so much.	

	

ā€¢ā€Æ    Classes? Aww yeah!	

	

ā€¢ā€Æ    With selectors, less is more	

	

ā€¢ā€Æ    Get your module on	

	

ā€¢ā€Æ    Naming conventions? !Important
Can be simpliļ¬ed to this:	



ā€¢ā€Æ Structure and Inform	


ā€¢ā€Æ Reduce	

	

ā€¢ā€Æ Recycle and Reuse
Structure and Inform	





                          http://www.flickr.com/photos/trvance/3138749670/
Structure and Inform	


ā€¢ā€Æ Utilize a naming convention to establish structure
   and meaning	


ā€¢ā€Æ Categorize styles in the document or into multiple
   documents	


ā€¢ā€Æ Employ grids for consistent page structure
Reduce	





            Photo: Denise Jacoba
Reduce	


ā€¢ā€Æ Eliminate inline styles	

	

ā€¢ā€Æ Write the shortest chain of elements possible in
    selectors 	

	

ā€¢ā€Æ Drop elements: as qualiļ¬ers and selectors	

	

ā€¢ā€Æ Choose classes over ids
Recycle  Reuse	





                     http://www.flickr.com/photos/epsos/5575089139/
Recycle  Reuse	


ā€¢ā€Æ Leverage the cascade better to cut down on
    redundant style declarations	

	

ā€¢ā€Æ Modularize page components to reuse throughout
    site	


ā€¢ā€Æ Extend modules through subclassing
They ļ¬gured out the key!	





               http://www.flickr.com/photos/karent/3673326282/
What do you do when you build?	





                             http://www.flickr.com/photos/mdave/2878687949/
Exactly!	





              http://www.flickr.com/photos/chriscoyier/5269340772/
What should we call it? Hmmmā€¦	


measure twice, cut once css Ć ļƒ 	

	

mtco css Ć ļƒ 	

	

meta coa css Ć ļƒ 	

	

MetaCoax!
And thus, MetaCoax was born!	

         	

         	

         { Measure twice: cut once; }
Djiejh and Djinn went to PoĆ«siaā€¦	





               http://www.flickr.com/photos/trodel/3801987960/
Chapter 4
Ousting Selector Evil
Institute change in 3 phases	





                 .flickr.com/photos/boklm/486646798/
(1) Initial phase	




ā€¢ā€Æ Optimize selectors 	


ā€¢ā€Æ Reduce the redundant
Optimize Selectors 	



	

ā€¢ā€Æ Eliminate qualiļ¬er selectors [oocss]	


ā€¢ā€Æ Eliminate the middleman	

	

ā€¢ā€Æ Have the shortest chain possible [oocss, smacss]
Qualiļ¬ed selectors	




       div#!            div.!

    1259	

 836
Eliminate qualiļ¬er selectors	


Selectors like 	

div#widget-nav div#widget-nav-
slider ul li div.name span!
	

Could easily be simpliļ¬ed into 	

#widget-nav-slider .name span!
	

with the exact same outcome.
Eliminate the middleman	


If you must use a descendent selector, then eliminate
all unnecessary elements in it:	

.widget li a!
	

would become	

.widget a!
Have the shortest chain possible	



For example, instead of 	

#toc  LI  A!
	

itā€™s better to create a class, such as 	

.toc-anchor!
Reduce the Redundant	



ā€¢ā€Æ Leverage the cascade by relying on inheritance
   [oocss] 	


ā€¢ā€Æ Review, revise and reduce !important 
   [oocss, smacss]
Leverage the cascade with inheritance	

color!
font-family !
font-size    !!
font-style!
font-variant !!
font-weight !!
font!
line-height !!
list-style-image   !!
list-style-position   !!
list-style-type !!
list-style!
text-align!
text-indent !!
text-transform!
visibility!
white-space!
word-spacing!
Not using the cascade	




       font!          font-size!

     100	

                112
Review, revise and reduce !important 	





If there are a lot of styles that are !important thenā€¦
UR DOINā€™ IT WRONG
For exampleā€¦	



          !important!

              126
(2) Intermediate phase	

ā€¢ā€Æ Clear the cruft	


ā€¢ā€Æ Create preliminary portable styles [cfgu]	


ā€¢ā€Æ Begin instituting modules based on design patterns
   [oocss, smacss, cfgu]	


ā€¢ā€Æ Institute a Grid [oocss]
Clear the cruft	


ā€¢ā€Æ Eliminate inline styles  decrease use of span	

	

ā€¢ā€Æ Eliminate styles that rely on qualiļ¬ers high in the
    DOM [oocss]	


ā€¢ā€Æ Use classnames as key selector [smacss]	

	

ā€¢ā€Æ Create preliminary portable styles [cfgu]
Eliminate styles that rely on qualiļ¬ers high
in the DOM	


body.video div#lowercontent
div.children.videoitem.hover
a.title { !
background: #bc5b29; !
color: #fff !important; !
text-decoration: none; !
}!
Too high in the DOM	



               body#!

              936
Create preliminary portable styles	




ā€¢ā€Æ Typographic classes for headings, etc.[cfgu] 	

	

ā€¢ā€Æ Surgical layout helpers [cfgu]
Is surgery necessary?	




    margin-top!       margin-bottom!


      189	

               112
Institute a Grid	




ā€¢ā€Æ Use CSS3 box-sizing	

	

ā€¢ā€Æ Make the grid and images ļ¬‚uid
Bad grid	




        width!   margin!


      327	

     738
Good grid	

.l-col-1-1   {float:none;}!
.l-col-1-2   {width:50%; *width:43%; }!
.l-col-1-3   {width:33.33333%; *width:32.33333%;}!
.l-col-2-3   {width:66.66666%; *width:65.66666%;}!
.l-col-1-4   {width:25%; *width:23%; }!
.l-col-3-4   {width:75%; *width:72%;}!
.l-col-1-5   {width:20%; *width:19%;}!
.l-col-2-5   {width:40%; *width:39%;}!
.l-col-3-5   {width:60%; *width:59%;}!
.l-col-4-5   {width:80%; *width:79%;}!
.l-col-1-6   {width:16.6%; *width:15.6%;}!
Make the grid and images ļ¬‚uid	



img {!
max-width: 100%;!
height: auto;!
}!
(3) Advanced phase	



ā€¢ā€Æ Continue modularizing page elements 
   [ocss, smacss, cfgu]	


ā€¢ā€Æ Continue cleaning-up selectors and styles	

	

ā€¢ā€Æ Separate CSS ļ¬les by category [smacss]
Chapter 5
Triumph!
Structure	





               http://www.flickr.com/photos/joebehr/6349047969/
Inbred selectors banished	





                               http://i31.photobucket.com/albums/c351/Rasey07/twins.jpg
Ended the Speciļ¬city Wars	





                           http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html
Ready for a responsive future	





                               http://www.flickr.com/photos/digitalfrance/98314057/
New best practices	





                        http://www.flickr.com/photos/torley/2761300969/
Reset with Normalize.css	





                              http://necolas.github.com/normalize.css/
Use a better Clearļ¬x	



Still using this?	

	

div class=clear/div!
ā€¦!
.clear { clear: both; }!
The New Clearļ¬x	

/* For modern browsers */!
.cf:before, .cf:after {    !
  content:;    !
display: table;!
}Ā !
!
.cf:after { clear: both;}Ā !
!
/* For IE 6/7 (trigger hasLayout) */!
.cf { *zoom:1; } !
And a better Divider	

Seriously?	

!
divĀ class=divider/div!
ā€¦!
div.dividerĀ {!
border-top:Ā 1px solid #ABAA9A;!
clear:Ā both;!
}!
The Ninja says	





hr !
ā€¦And Image replacement	



.hide-text {!
text-indent: 100%;!
white-space: nowrap;!
overflow: hidden;!
}!
Use an icon element	


Instead of this:	

	

li class=favorite!
span class=icon favorite/span!
span id=favorite-poem-insert-
point class=favorite/span!
/li!
Use an icon element	

Do this:	

	

pi class=icon icon-comment/i23
comments/p!
...!
.icon {background-image:
url( sprites.png ); }!
!
.icon-comments {background-position: 0
-30px; } !
Share the Love	





                    http://www.flickr.com/photos/meggers/2378288736/
Just revamping the code isnā€™t enoughā€¦	



ā€œEven the cleanest code gets ruined by the ļ¬rst non-
expert to touch it.ā€	

	

- Nicole Sullivan, 
The Cascade, Grids, Headings, and Selectors from an
OOCSS Perspective
Website styleguide	





                        http://www.flickr.com/photos/littlemad/5729783584/
Styleguide Creation Process	

1.ā€Æ Determine the unique elements and components
    that will be in the styleguide. Also notate the main
    colors for text, header, links, and buttons.	


2.ā€Æ Start styling the core elements of the pages:
    headings, links, tables, blockquotes, unordered and
    ordered lists, and forms. 	


3.ā€Æ Style the components that override the base styles,
    such as search boxes, breadcrumb navigation, themed
    buttons, and variations in modules. Include
    interaction styles: hover, focus, active states.
Styleguide creation process	


4.ā€Æ Add layout last and put the components into
    place. Each layout could be presented as a
    separate document.	


5.ā€Æ Document your coding process: naming
    conventions and the thinking behind decisions of
    grouping, classifying components, etc.
So everyone can access the treasures	





                               http://www.flickr.com/photos/lecercle/514344657/
With the knowledge of The Masters
The code has been improved!	





                             http://www.flickr.com/photos/clspeace/2143292403/
Srsly!	




            Start!   Finish!


      7500	

 2250
And made PoĆ«siaā€¦	





                      http://www.flickr.com/photos/drobnikm/525835032/
(You know how Iā€™m going to end this)	





                              http://www.flickr.com/photos/sonialuna/2942020058/
Character list and Resources
The Marcot	





ā€¦is Ethan Marcotte, the creator and author of
Responsive Web Design (RWD)	

http://ethanmarcotte.com/	

twitter.com/beep	

                                            http://www.flickr.com/photos/localcelebrity/7907876246/
The Dry Wind	





ā€¦is Jeremy Clarke, the developer of DRY CSS.	

http://simianuprising.com/	

twitter.com/jeremyclarke
The Ninja	





ā€¦is Nicole Sullivan, the creatrice of Object
Oriented CSS (OOCSS)	

http://www.stubbornella.org/	

twitter.com/stubbornella	

                                               http://www.flickr.com/photos/localcelebrity/6025912453/
The Lumberjack	





ā€¦is Jonathan Snook, the creator and author
of Scalable and Modular CSS (SMACSS)	

http://snook.ca/  http://smacss.com	

twitter.com/snookca	

                                             http://www.flickr.com/photos/splat/3742596419/
The Brit	





ā€¦is Andy Hume, the creator of CSS for Grown
Ups (I like to shorten this to CFGU).	

http://andyhume.net	

twitter.com/	

                                         http://www.flickr.com/photos/angryamoeba/4674320039/
Djinn	





ā€¦is Jennifer Dixon, front-end developer
extraordinaire	

http://jdcoding.com	

twitter.com/jenniration
Illustrations by	





Lorenzo Grandi	

LorenzoGrandi.it
My books	





The CSS Detective             Smashing Books #3            InterAct With 
 Guide	

                     #3 1/3	

                        Web Standards:
	

                           	

                              	

CSSDetectiveGuide.com      SmashingBook.com	

              InterActWithWebStandards.com
twitter.com/cssdetective	

                                    twitter.com/waspinteract	

                              	

                              My chapter: 	

                  	

                              ā€œStorytelling in Webdesignā€
And I amā€¦	





DeniseJacobs.com	

denise@denisejacobs.com	

twitter.com/denisejacobs
Now I really mean it!
Thank You!	





                http://www.flickr.com/photos/theredproject/3302110152/

More Related Content

What's hot

Creative Collaboration FTW! - Delight Conference 2016
Creative Collaboration FTW! -  Delight Conference 2016Creative Collaboration FTW! -  Delight Conference 2016
Creative Collaboration FTW! - Delight Conference 2016Denise Jacobs
Ā 
I see what you mean
I see what you meanI see what you mean
I see what you meanDiane Cordell
Ā 
The eyes have it
The eyes have itThe eyes have it
The eyes have itDiane Cordell
Ā 
A Thousand Voices: The Power of Storytelling
A Thousand Voices: The Power of StorytellingA Thousand Voices: The Power of Storytelling
A Thousand Voices: The Power of StorytellingDiane Cordell
Ā 
Social media for teaching, learning, and researching
Social media for teaching, learning, and researchingSocial media for teaching, learning, and researching
Social media for teaching, learning, and researchingCristina Costa
Ā 
The Creativity (R)Evolution - High Five Conference 2016
The Creativity (R)Evolution - High Five Conference 2016The Creativity (R)Evolution - High Five Conference 2016
The Creativity (R)Evolution - High Five Conference 2016Denise Jacobs
Ā 
Creating Better Together - Adobe Max 2016
Creating Better Together - Adobe Max 2016Creating Better Together - Adobe Max 2016
Creating Better Together - Adobe Max 2016Denise Jacobs
Ā 
Letā€™s Rawk The Web - A Manifesto
Letā€™s Rawk The Web - A ManifestoLetā€™s Rawk The Web - A Manifesto
Letā€™s Rawk The Web - A ManifestoDenise Jacobs
Ā 
Co-Create: Creating Better Together - Clarity Conference 2019
Co-Create: Creating Better Together - Clarity Conference 2019Co-Create: Creating Better Together - Clarity Conference 2019
Co-Create: Creating Better Together - Clarity Conference 2019Denise Jacobs
Ā 
Social Bookmarking
Social BookmarkingSocial Bookmarking
Social Bookmarkingegriffin
Ā 
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...Samantha Starmer
Ā 
Lets Get Visual Itsc
Lets Get Visual ItscLets Get Visual Itsc
Lets Get Visual ItscDean Shareski
Ā 
White Space Creativity - Creative Mornings Miami
White Space Creativity - Creative Mornings MiamiWhite Space Creativity - Creative Mornings Miami
White Space Creativity - Creative Mornings MiamiDenise Jacobs
Ā 
Drawing On Walls N Voice2008
Drawing On Walls N Voice2008Drawing On Walls N Voice2008
Drawing On Walls N Voice2008Nancy Wright White
Ā 
Managing Your Professional Identity 1215439550849180 8
Managing Your Professional Identity 1215439550849180 8Managing Your Professional Identity 1215439550849180 8
Managing Your Professional Identity 1215439550849180 8jasonhian
Ā 
Managing Your Professional Identity
Managing Your Professional IdentityManaging Your Professional Identity
Managing Your Professional IdentityAlison Kerwin
Ā 
Charlie Bit My Finger and Why it Really, Really Matters
Charlie Bit My Finger and Why it Really, Really MattersCharlie Bit My Finger and Why it Really, Really Matters
Charlie Bit My Finger and Why it Really, Really MattersDean Shareski
Ā 
The Secret Revolution (Keene State College)
The Secret Revolution (Keene State College)The Secret Revolution (Keene State College)
The Secret Revolution (Keene State College)Alan Levine
Ā 
Thinking About Visuals in Online Communities and Facilitation
Thinking About Visuals in Online Communities and FacilitationThinking About Visuals in Online Communities and Facilitation
Thinking About Visuals in Online Communities and FacilitationNancy Wright White
Ā 
Unitarian Universalists Social Media for Youth
Unitarian Universalists Social Media for YouthUnitarian Universalists Social Media for Youth
Unitarian Universalists Social Media for YouthEd Schipul
Ā 

What's hot (20)

Creative Collaboration FTW! - Delight Conference 2016
Creative Collaboration FTW! -  Delight Conference 2016Creative Collaboration FTW! -  Delight Conference 2016
Creative Collaboration FTW! - Delight Conference 2016
Ā 
I see what you mean
I see what you meanI see what you mean
I see what you mean
Ā 
The eyes have it
The eyes have itThe eyes have it
The eyes have it
Ā 
A Thousand Voices: The Power of Storytelling
A Thousand Voices: The Power of StorytellingA Thousand Voices: The Power of Storytelling
A Thousand Voices: The Power of Storytelling
Ā 
Social media for teaching, learning, and researching
Social media for teaching, learning, and researchingSocial media for teaching, learning, and researching
Social media for teaching, learning, and researching
Ā 
The Creativity (R)Evolution - High Five Conference 2016
The Creativity (R)Evolution - High Five Conference 2016The Creativity (R)Evolution - High Five Conference 2016
The Creativity (R)Evolution - High Five Conference 2016
Ā 
Creating Better Together - Adobe Max 2016
Creating Better Together - Adobe Max 2016Creating Better Together - Adobe Max 2016
Creating Better Together - Adobe Max 2016
Ā 
Letā€™s Rawk The Web - A Manifesto
Letā€™s Rawk The Web - A ManifestoLetā€™s Rawk The Web - A Manifesto
Letā€™s Rawk The Web - A Manifesto
Ā 
Co-Create: Creating Better Together - Clarity Conference 2019
Co-Create: Creating Better Together - Clarity Conference 2019Co-Create: Creating Better Together - Clarity Conference 2019
Co-Create: Creating Better Together - Clarity Conference 2019
Ā 
Social Bookmarking
Social BookmarkingSocial Bookmarking
Social Bookmarking
Ā 
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...
Don't Be a Digital Dinosaur: Design for the Space Between - Infocamp 2010 Ple...
Ā 
Lets Get Visual Itsc
Lets Get Visual ItscLets Get Visual Itsc
Lets Get Visual Itsc
Ā 
White Space Creativity - Creative Mornings Miami
White Space Creativity - Creative Mornings MiamiWhite Space Creativity - Creative Mornings Miami
White Space Creativity - Creative Mornings Miami
Ā 
Drawing On Walls N Voice2008
Drawing On Walls N Voice2008Drawing On Walls N Voice2008
Drawing On Walls N Voice2008
Ā 
Managing Your Professional Identity 1215439550849180 8
Managing Your Professional Identity 1215439550849180 8Managing Your Professional Identity 1215439550849180 8
Managing Your Professional Identity 1215439550849180 8
Ā 
Managing Your Professional Identity
Managing Your Professional IdentityManaging Your Professional Identity
Managing Your Professional Identity
Ā 
Charlie Bit My Finger and Why it Really, Really Matters
Charlie Bit My Finger and Why it Really, Really MattersCharlie Bit My Finger and Why it Really, Really Matters
Charlie Bit My Finger and Why it Really, Really Matters
Ā 
The Secret Revolution (Keene State College)
The Secret Revolution (Keene State College)The Secret Revolution (Keene State College)
The Secret Revolution (Keene State College)
Ā 
Thinking About Visuals in Online Communities and Facilitation
Thinking About Visuals in Online Communities and FacilitationThinking About Visuals in Online Communities and Facilitation
Thinking About Visuals in Online Communities and Facilitation
Ā 
Unitarian Universalists Social Media for Youth
Unitarian Universalists Social Media for YouthUnitarian Universalists Social Media for Youth
Unitarian Universalists Social Media for Youth
Ā 

Viewers also liked

Creativity (R)Evolution - FrontEnd Conference CH 2013
Creativity (R)Evolution -  FrontEnd Conference CH 2013Creativity (R)Evolution -  FrontEnd Conference CH 2013
Creativity (R)Evolution - FrontEnd Conference CH 2013Denise Jacobs
Ā 
Ecce - Mock Comments
Ecce - Mock CommentsEcce - Mock Comments
Ecce - Mock CommentsGilmar Mattos
Ā 
3 D Presentation
3 D Presentation3 D Presentation
3 D PresentationDaniel Peabody
Ā 
Managing a shared mysql farm dpc11
Managing a shared mysql farm dpc11Managing a shared mysql farm dpc11
Managing a shared mysql farm dpc11Combell NV
Ā 
Time for Change
Time for ChangeTime for Change
Time for Changekjdaniels
Ā 
Lost In The Cloud Unizo
Lost In The Cloud UnizoLost In The Cloud Unizo
Lost In The Cloud UnizoCombell NV
Ā 
0702 Innovationclusters
0702 Innovationclusters0702 Innovationclusters
0702 InnovationclustersChad Womack, PhD
Ā 
La Placa Base
La Placa BaseLa Placa Base
La Placa Baseeabilla
Ā 
InterAct Book Summit: Preventing Information Overload
InterAct Book Summit: Preventing Information OverloadInterAct Book Summit: Preventing Information Overload
InterAct Book Summit: Preventing Information OverloadDenise Jacobs
Ā 
Commercial Analysis
Commercial AnalysisCommercial Analysis
Commercial AnalysisMichael Fisher
Ā 
AREC Networking
AREC NetworkingAREC Networking
AREC NetworkingARECresources
Ā 
AMA SIG Social Media 11-4-09
AMA SIG Social Media 11-4-09AMA SIG Social Media 11-4-09
AMA SIG Social Media 11-4-09Tom Williams
Ā 
Banish Your Inner Critic - HOW Interactive Conference, Boston
Banish Your Inner Critic - HOW Interactive Conference, BostonBanish Your Inner Critic - HOW Interactive Conference, Boston
Banish Your Inner Critic - HOW Interactive Conference, BostonDenise Jacobs
Ā 
CLI, the other SAPI
CLI, the other SAPICLI, the other SAPI
CLI, the other SAPICombell NV
Ā 
InnoGage Earth Day 2009
InnoGage Earth Day 2009InnoGage Earth Day 2009
InnoGage Earth Day 2009Tom Williams
Ā 
Reference Question Examples
Reference Question ExamplesReference Question Examples
Reference Question ExamplesBonnie Brzozowski
Ā 
Critical Incident Pool Alarm
Critical Incident Pool AlarmCritical Incident Pool Alarm
Critical Incident Pool Alarmajones2104
Ā 
Pangandaran 2007
Pangandaran 2007Pangandaran 2007
Pangandaran 2007Deni Ballax
Ā 
Top 10 Tips for using LinkedIn
Top 10 Tips for using LinkedInTop 10 Tips for using LinkedIn
Top 10 Tips for using LinkedInMichael Fisher
Ā 
It's Business Time: Givin' User Experience Love with CSS3
It's Business Time: Givin' User Experience Love with CSS3It's Business Time: Givin' User Experience Love with CSS3
It's Business Time: Givin' User Experience Love with CSS3Denise Jacobs
Ā 

Viewers also liked (20)

Creativity (R)Evolution - FrontEnd Conference CH 2013
Creativity (R)Evolution -  FrontEnd Conference CH 2013Creativity (R)Evolution -  FrontEnd Conference CH 2013
Creativity (R)Evolution - FrontEnd Conference CH 2013
Ā 
Ecce - Mock Comments
Ecce - Mock CommentsEcce - Mock Comments
Ecce - Mock Comments
Ā 
3 D Presentation
3 D Presentation3 D Presentation
3 D Presentation
Ā 
Managing a shared mysql farm dpc11
Managing a shared mysql farm dpc11Managing a shared mysql farm dpc11
Managing a shared mysql farm dpc11
Ā 
Time for Change
Time for ChangeTime for Change
Time for Change
Ā 
Lost In The Cloud Unizo
Lost In The Cloud UnizoLost In The Cloud Unizo
Lost In The Cloud Unizo
Ā 
0702 Innovationclusters
0702 Innovationclusters0702 Innovationclusters
0702 Innovationclusters
Ā 
La Placa Base
La Placa BaseLa Placa Base
La Placa Base
Ā 
InterAct Book Summit: Preventing Information Overload
InterAct Book Summit: Preventing Information OverloadInterAct Book Summit: Preventing Information Overload
InterAct Book Summit: Preventing Information Overload
Ā 
Commercial Analysis
Commercial AnalysisCommercial Analysis
Commercial Analysis
Ā 
AREC Networking
AREC NetworkingAREC Networking
AREC Networking
Ā 
AMA SIG Social Media 11-4-09
AMA SIG Social Media 11-4-09AMA SIG Social Media 11-4-09
AMA SIG Social Media 11-4-09
Ā 
Banish Your Inner Critic - HOW Interactive Conference, Boston
Banish Your Inner Critic - HOW Interactive Conference, BostonBanish Your Inner Critic - HOW Interactive Conference, Boston
Banish Your Inner Critic - HOW Interactive Conference, Boston
Ā 
CLI, the other SAPI
CLI, the other SAPICLI, the other SAPI
CLI, the other SAPI
Ā 
InnoGage Earth Day 2009
InnoGage Earth Day 2009InnoGage Earth Day 2009
InnoGage Earth Day 2009
Ā 
Reference Question Examples
Reference Question ExamplesReference Question Examples
Reference Question Examples
Ā 
Critical Incident Pool Alarm
Critical Incident Pool AlarmCritical Incident Pool Alarm
Critical Incident Pool Alarm
Ā 
Pangandaran 2007
Pangandaran 2007Pangandaran 2007
Pangandaran 2007
Ā 
Top 10 Tips for using LinkedIn
Top 10 Tips for using LinkedInTop 10 Tips for using LinkedIn
Top 10 Tips for using LinkedIn
Ā 
It's Business Time: Givin' User Experience Love with CSS3
It's Business Time: Givin' User Experience Love with CSS3It's Business Time: Givin' User Experience Love with CSS3
It's Business Time: Givin' User Experience Love with CSS3
Ā 

Similar to Scalable and Modular CSS FTW!

Scalable and Modular CSS FTW!
Scalable and Modular CSS FTW!Scalable and Modular CSS FTW!
Scalable and Modular CSS FTW!FITC
Ā 
The Age of Responsive Design
The Age of Responsive DesignThe Age of Responsive Design
The Age of Responsive DesignDenise Jacobs
Ā 
The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013Denise Jacobs
Ā 
Hacking the Creative Brain - Devoxx Belgium, 2014
Hacking the Creative Brain -  Devoxx Belgium, 2014Hacking the Creative Brain -  Devoxx Belgium, 2014
Hacking the Creative Brain - Devoxx Belgium, 2014Denise Jacobs
Ā 
Creativity (R)Evolution - ThatConference 2013
Creativity (R)Evolution - ThatConference 2013Creativity (R)Evolution - ThatConference 2013
Creativity (R)Evolution - ThatConference 2013Denise Jacobs
Ā 
Get Unblocked - 33rd Degree Conference
Get Unblocked - 33rd Degree ConferenceGet Unblocked - 33rd Degree Conference
Get Unblocked - 33rd Degree ConferenceDenise Jacobs
Ā 
White Space Creativity
White Space CreativityWhite Space Creativity
White Space CreativityDenise Jacobs
Ā 
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018Codemotion
Ā 
Improving Learning ... with Technology
Improving Learning ... with TechnologyImproving Learning ... with Technology
Improving Learning ... with TechnologyJonathan Mott
Ā 
Join the Secret Revolution
Join the Secret RevolutionJoin the Secret Revolution
Join the Secret RevolutionAlan Levine
Ā 
Immediate Inspiration
Immediate Inspiration Immediate Inspiration
Immediate Inspiration Denise Jacobs
Ā 
Imagine a Smarter Workforce: Masters of Collaboration Series
Imagine a Smarter Workforce: Masters of Collaboration SeriesImagine a Smarter Workforce: Masters of Collaboration Series
Imagine a Smarter Workforce: Masters of Collaboration SeriesMarcia Conner
Ā 
Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011Samantha Starmer
Ā 
960 grid psd
960 grid psd960 grid psd
960 grid psdRaju Nag
Ā 
Don't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space BetweenDon't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space BetweenSamantha Starmer
Ā 
The Future of Design isn't Just the Web - WebVisions 2011 Workshop
The Future of Design isn't Just the Web - WebVisions 2011 WorkshopThe Future of Design isn't Just the Web - WebVisions 2011 Workshop
The Future of Design isn't Just the Web - WebVisions 2011 WorkshopSamantha Starmer
Ā 

Similar to Scalable and Modular CSS FTW! (20)

Scalable and Modular CSS FTW!
Scalable and Modular CSS FTW!Scalable and Modular CSS FTW!
Scalable and Modular CSS FTW!
Ā 
The Age of Responsive Design
The Age of Responsive DesignThe Age of Responsive Design
The Age of Responsive Design
Ā 
The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013The Importance of Storytelling in Web Design, WordCamp Miami 2013
The Importance of Storytelling in Web Design, WordCamp Miami 2013
Ā 
Orchestrating Content
Orchestrating ContentOrchestrating Content
Orchestrating Content
Ā 
Hacking the Creative Brain - Devoxx Belgium, 2014
Hacking the Creative Brain -  Devoxx Belgium, 2014Hacking the Creative Brain -  Devoxx Belgium, 2014
Hacking the Creative Brain - Devoxx Belgium, 2014
Ā 
Creativity (R)Evolution - ThatConference 2013
Creativity (R)Evolution - ThatConference 2013Creativity (R)Evolution - ThatConference 2013
Creativity (R)Evolution - ThatConference 2013
Ā 
Get Unblocked - 33rd Degree Conference
Get Unblocked - 33rd Degree ConferenceGet Unblocked - 33rd Degree Conference
Get Unblocked - 33rd Degree Conference
Ā 
White Space Creativity
White Space CreativityWhite Space Creativity
White Space Creativity
Ā 
Library 2.0 Creating A Borderless Library
Library 2.0   Creating A Borderless LibraryLibrary 2.0   Creating A Borderless Library
Library 2.0 Creating A Borderless Library
Ā 
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018
Let There Be Peace On CSS - Cristiano Rastelli - Codemotion Amsterdam 2018
Ā 
Improving Learning ... with Technology
Improving Learning ... with TechnologyImproving Learning ... with Technology
Improving Learning ... with Technology
Ā 
Join the Secret Revolution
Join the Secret RevolutionJoin the Secret Revolution
Join the Secret Revolution
Ā 
Library 2.0
Library 2.0Library 2.0
Library 2.0
Ā 
Immediate Inspiration
Immediate Inspiration Immediate Inspiration
Immediate Inspiration
Ā 
Imagine a Smarter Workforce: Masters of Collaboration Series
Imagine a Smarter Workforce: Masters of Collaboration SeriesImagine a Smarter Workforce: Masters of Collaboration Series
Imagine a Smarter Workforce: Masters of Collaboration Series
Ā 
Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011Don't a Digital Dinosaur - Web 2.0 2011
Don't a Digital Dinosaur - Web 2.0 2011
Ā 
960 grid psd
960 grid psd960 grid psd
960 grid psd
Ā 
Don't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space BetweenDon't be a Digital Dinosaur - Design for the Space Between
Don't be a Digital Dinosaur - Design for the Space Between
Ā 
The Future of Design isn't Just the Web - WebVisions 2011 Workshop
The Future of Design isn't Just the Web - WebVisions 2011 WorkshopThe Future of Design isn't Just the Web - WebVisions 2011 Workshop
The Future of Design isn't Just the Web - WebVisions 2011 Workshop
Ā 
Flat Class Workshop
Flat Class WorkshopFlat Class Workshop
Flat Class Workshop
Ā 

More from Denise Jacobs

Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...
Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...
Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...Denise Jacobs
Ā 
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...Denise Jacobs
Ā 
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...Denise Jacobs
Ā 
How to Have Difficult Conversations With Confidence - MTP Digital 2020
How to Have Difficult Conversations With Confidence -  MTP Digital 2020How to Have Difficult Conversations With Confidence -  MTP Digital 2020
How to Have Difficult Conversations With Confidence - MTP Digital 2020Denise Jacobs
Ā 
Overcome Self-Doubt to Amplify Your Impact and Create a Better World - GSLA 202
Overcome Self-Doubt to Amplify Your Impact and Create a Better World  - GSLA 202Overcome Self-Doubt to Amplify Your Impact and Create a Better World  - GSLA 202
Overcome Self-Doubt to Amplify Your Impact and Create a Better World - GSLA 202Denise Jacobs
Ā 
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...Denise Jacobs
Ā 
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...Denise Jacobs
Ā 
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...Denise Jacobs
Ā 
Banish Your Inner Critic ā€“ Stanford HCI Group 2020
Banish Your Inner Critic ā€“ Stanford HCI Group 2020Banish Your Inner Critic ā€“ Stanford HCI Group 2020
Banish Your Inner Critic ā€“ Stanford HCI Group 2020Denise Jacobs
Ā 
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...Denise Jacobs
Ā 
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020Denise Jacobs
Ā 
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...Denise Jacobs
Ā 
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019Denise Jacobs
Ā 
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019Denise Jacobs
Ā 
Banish Your Inner Critic: Hack Your Productivity and Elevate Performance
Banish Your Inner Critic: Hack Your Productivity and Elevate PerformanceBanish Your Inner Critic: Hack Your Productivity and Elevate Performance
Banish Your Inner Critic: Hack Your Productivity and Elevate PerformanceDenise Jacobs
Ā 
Banish Your Inner Critic v2.0: Swipe Left! - Adobe Max 2018
Banish Your Inner Critic v2.0: Swipe Left!  - Adobe Max 2018Banish Your Inner Critic v2.0: Swipe Left!  - Adobe Max 2018
Banish Your Inner Critic v2.0: Swipe Left! - Adobe Max 2018Denise Jacobs
Ā 
The Creativity (R)Evolution ā€“ CMX Summit 2018
The Creativity (R)Evolution ā€“ CMX Summit 2018The Creativity (R)Evolution ā€“ CMX Summit 2018
The Creativity (R)Evolution ā€“ CMX Summit 2018Denise Jacobs
Ā 
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018Denise Jacobs
Ā 
Co-Create: Creating Better Together - DevCamp Brazil 2018
Co-Create: Creating Better Together - DevCamp Brazil 2018Co-Create: Creating Better Together - DevCamp Brazil 2018
Co-Create: Creating Better Together - DevCamp Brazil 2018Denise Jacobs
Ā 
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018Denise Jacobs
Ā 

More from Denise Jacobs (20)

Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...
Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...
Amplify-U: Cultivating Career Confidence Through Banishing Your Inner Critic ...
Ā 
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...
Banish Your Inner Critic: Transform Self-Talk - IABC Southern Region Conferen...
Ā 
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - UX Hus...
Ā 
How to Have Difficult Conversations With Confidence - MTP Digital 2020
How to Have Difficult Conversations With Confidence -  MTP Digital 2020How to Have Difficult Conversations With Confidence -  MTP Digital 2020
How to Have Difficult Conversations With Confidence - MTP Digital 2020
Ā 
Overcome Self-Doubt to Amplify Your Impact and Create a Better World - GSLA 202
Overcome Self-Doubt to Amplify Your Impact and Create a Better World  - GSLA 202Overcome Self-Doubt to Amplify Your Impact and Create a Better World  - GSLA 202
Overcome Self-Doubt to Amplify Your Impact and Create a Better World - GSLA 202
Ā 
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...
Banish Your Inner Critic: Reduce Anxiety - Nonprofit Storytelling Conference ...
Ā 
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...
Banish Your Inner Critic: Unblock Creativity and Amplify Your Impact - Produc...
Ā 
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...
Banish Your Inner Critic: Transform Self-Talk and Own Your Expertise - Speake...
Ā 
Banish Your Inner Critic ā€“ Stanford HCI Group 2020
Banish Your Inner Critic ā€“ Stanford HCI Group 2020Banish Your Inner Critic ā€“ Stanford HCI Group 2020
Banish Your Inner Critic ā€“ Stanford HCI Group 2020
Ā 
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...
Banish Your Inner Critic: Reduce Anxiety and Unblock Creativity - Emergent Le...
Ā 
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020
Banish Your Inner Critic: Reduce anxiety and Unblock Creativity - SpeakAid 2020
Ā 
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...
Banish Your Inner Critic: Elevate Performance - Nonprofit Storytelling Confer...
Ā 
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019
Banish Your Inner Critic: Amplify Your Impact - Mind The Product SF 2019
Ā 
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019
Step-up: Unleash Your Creative (Super) Power - D3 Expo 2019
Ā 
Banish Your Inner Critic: Hack Your Productivity and Elevate Performance
Banish Your Inner Critic: Hack Your Productivity and Elevate PerformanceBanish Your Inner Critic: Hack Your Productivity and Elevate Performance
Banish Your Inner Critic: Hack Your Productivity and Elevate Performance
Ā 
Banish Your Inner Critic v2.0: Swipe Left! - Adobe Max 2018
Banish Your Inner Critic v2.0: Swipe Left!  - Adobe Max 2018Banish Your Inner Critic v2.0: Swipe Left!  - Adobe Max 2018
Banish Your Inner Critic v2.0: Swipe Left! - Adobe Max 2018
Ā 
The Creativity (R)Evolution ā€“ CMX Summit 2018
The Creativity (R)Evolution ā€“ CMX Summit 2018The Creativity (R)Evolution ā€“ CMX Summit 2018
The Creativity (R)Evolution ā€“ CMX Summit 2018
Ā 
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“ IIBA Columbus 2018
Ā 
Co-Create: Creating Better Together - DevCamp Brazil 2018
Co-Create: Creating Better Together - DevCamp Brazil 2018Co-Create: Creating Better Together - DevCamp Brazil 2018
Co-Create: Creating Better Together - DevCamp Brazil 2018
Ā 
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018
Banish Your Inner Critic v2.0: Swipe Left! ā€“Build Stuff Spain 2018
Ā 

Recently uploaded

Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationRadu Cotescu
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Ā 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
Ā 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Ā 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
Ā 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
Ā 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
Ā 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
Ā 

Recently uploaded (20)

Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organization
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Ā 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Ā 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Ā 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Ā 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Ā 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Ā 

Scalable and Modular CSS FTW!

  • 1. Scalable and Modular CSS FTW! ī€‚e Legend of the Birth of MetaCoax / Ā * Ā Denise Ā R. Ā Jacobs Ā  Future. Ā Innova6on. Ā Technology. Ā Crea6vity. Ā  Amsterdam, Ā Netherlands Ā  18 Ā February Ā 2013 Ā */ Ā 
  • 2. Tweeting tall tales I am: @denisejacobs This ļ¬ne event is: @ļ¬tc #FITCAms And Iā€™m telling the tale of: #metacoax
  • 3. And tell stories about CSS
  • 4. I like to make stuff
  • 5. The Legend of the Birth of MetaCoax chapter 1 Problems in PoĆ«sia chapter 2 The Teachings of the Masters chapter 3 Insights and Epiphanies chapter 4 Ousting Selector Evil chapter 5 Triumph!
  • 7. You know how all stories startā€¦ http://www.flickr.com/photos/lorenjavier/7324305636/
  • 8. There was a Kingdom called PoĆ«sia http://www.flickr.com/photos/drobnikm/525835032/
  • 10. On the surface, all was ļ¬neā€¦ http://www.flickr.com/photos/trodel/3801987960/
  • 11. Behind the cityā€™s wallsā€¦ http://www.flickr.com/photos/kathrynvjones/3737219448/
  • 12. It was a nightmare of dis-organization http://www.flickr.com/photos/torley/4096277982/
  • 13. Top architects and designers http://www.flickr.com/photos/massgovernor/7345462040/
  • 14. Who hired builders http://www.flickr.com/photos/8533266@N04/4457182603/
  • 15. Some believed in masteryā€¦ http://www.flickr.com/photos/statuelibrtynps/6276757947/
  • 16. Others were not of that mind http://www.flickr.com/photos/anotherjesse/243020629/
  • 17. Put together with whatever was handy http://www.flickr.com/photos/laughingsquid/142398084
  • 18. Shabby new structures http://www.flickr.com/photos/cbnsp/6605969807/
  • 19. They didnā€™t start off evil http://www.flickr.com/photos/dr_john2005/3934871670/
  • 20. ā€¦but they slowly became so over time http://www.flickr.com/photos/dr_john2005/3935163348/
  • 21. Follow suit and try to ļ¬t in
  • 22. Fight by trying to become !important http://www.flickr.com/photos/stuckincustoms/6199442617/
  • 23. He sent out his two most trusted aidesā€¦ http://www.flickr.com/photos/bbsc30/168832715/
  • 24. They traveled far and wideā€¦ http://www.flickr.com/photos/annegirl/435308460/
  • 25. And found the prophet Marcot http://www.flickr.com/photos/axsdeny/2607122395/
  • 26. The gospel of Responsive
  • 27. He spoke of a championne http://www.flickr.com/photos/44085287@N05/4055807492/
  • 28. They traveled south to Mijamiā€¦ Photo: Denise Jacobs
  • 29. To ļ¬nd Djieh and Djinn!
  • 30. Chapter 2 The Teachings of the Masters
  • 31. They went deep into the canyons http://www.flickr.com/photos/gods-art/6622668251/
  • 32. The Dry Wind appeared to them http://www.flickr.com/photos/gods-art/6622669139/
  • 34. DRY CSS ā€œDonā€™t Repeat Yourselfā€ Never repeat a style/property deļ¬nitionā€¦ever.
  • 35. DRY CSS: Thinking When looking at making a style declaration for a selector, always have an answer to the question Why isnā€™t this part of a group?ā€ Then ļ¬gure out how to make it one.
  • 36. DRY CSS: Approach Groups deļ¬ne shared properties. Group selectors with shared properties, rather than deļ¬ning them separately. While the groups have many selectors, each property/value pair is deļ¬ned only once.
  • 37. DRY CSS: How ā€¢ā€Æ Name the groups based on their role in the design ā€¢ā€Æ Use the name as an ID at the top of the list and a class at the bottom ā€¢ā€Æ Group selectors that share properties above the properties they share
  • 38. For example #LIGHT-WHITE-BACKGROUND,! .translation,! .entry .wp-caption,! #full-article .entry img,! .recent-comment .comment-text,! .roundup h3,! .post-header-sharing,! #post-categories td.label,! #post-archive roundup h3,! .subscription-manager ol,! .light-white-background! {! background-color: #fff;! border-color: #ccc;! }!
  • 40. The Ninja http://www.flickr.com/photos/branditressler/2912153888/
  • 43. Outcome CSS bytes/page HTML bytes/page 19% 44% decrease decrease
  • 44. OOCSS: Signs you need it ā€¢ā€Æ Large number of ļ¬‚oats = bad grid ā€¢ā€Æ Large number of margins = you need a reset css ā€¢ā€Æ Large number of font-size !important = cascade is not being leveraged
  • 45. OOCSS: The Gist ā€¢ā€Æ Employ DRY ā€¢ā€Æ Separate structure and presentation ā€¢ā€Æ Modularize
  • 46. OOCSS: Doā€™s ā€¢ā€Æ Use CSS grids ā€¢ā€Æ Keep selector chains as short as possible ā€¢ā€Æ Give rules the same weight/strength ā€¢ā€Æ Use hr as a page section delimiter ā€¢ā€Æ Style classes rather than elements
  • 47. OOCSS: Donā€™ts ā€¢ā€Æ Avoid attaching classes to elements ā€¢ā€Æ Avoid using IDs as styling hooks, use them for JS hooks and page anchors ā€¢ā€Æ Avoid the descendent selector ā€¢ā€Æ Donā€™t over-semanticize class names ā€¢ā€Æ Avoid classnames that are related to the appearance of the style
  • 48. OOCSS: The process 1.ā€Æ Determine the site-wide ā€œlegosā€ (ie, reusable pieces) 2.ā€Æ Separate ā€“ā€Æ Container and Content ā€“ā€Æ Structure and Skin ā€“ā€Æ Contour and Background ā€“ā€Æ Objects and Mix-ins 3.ā€Æ Mix and match container and content objects to achieve high performance design. 4.ā€Æ Skin for visual difference
  • 49. OOCSS: The Media Module http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/
  • 50. OOCSS: The Media Module !-- media -- ! div class=media ! !img class=fixedMedia src=myImg.png / ! !div class=text ! !... ! !/div ! /div!
  • 51. OOCSS: The Media Module /* ====== media ====== */! .media {margin:10px;}! .media, .bd {overflow:hidden; _overflow:visible; zoom:1;}! .media .img {float:left; margin- right: 10px;}! .media .img img{display:block;}! .media .imgExt{float:right; margin- left: 10px;}!
  • 52. The Lumberjack http://www.flickr.com/photos/stikeymo/308546507/
  • 53. SMACSS Scalable and Modular Architecture for CSS https://smacss.com/
  • 54. SMACSS: Style categories ā€¢ā€Æ Base ā€¢ā€Æ Layout ā€¢ā€Æ Module ā€¢ā€Æ State ā€¢ā€Æ Theme
  • 55. SMACSS: Curb your enthusiasm Selectors should be ā€œshallowā€ instead of ā€œdeepā€ Strive for the shallowest possible.
  • 58. SMACSS: Shallow selectors 101 ā€¢ā€Æ Avoid tag selectors for common elements unless completely predictable. ā€¢ā€Æ Use class names as the right-most (key) selector ā€¢ā€Æ Use the child selector
  • 59. SMACSS: On ā€œclassitisā€ Youā€™re better off adding classes to the elements in question and repeating the class in the HTML than having overly-speciļ¬c styles. Instead of being classitis, using multiple classes clariļ¬es intent and increases the semantics of elements in question.
  • 60. SMACSS: Module candidates ā€¢ā€Æ Nav bars ā€¢ā€Æ Carousels ā€¢ā€Æ Dialogs ā€¢ā€Æ Widgets ā€¢ā€Æ Tables ā€¢ā€Æ icons
  • 61. SMACSS: States State changes can be notated by class names like .is-active! .is-collapsed! .btn-pressed!
  • 62. SMACSS: Whatā€™s in a name? an example module: .example! a callout module: .callout! a callout module with a collapsed state: .callout.is-collapsed!
  • 63. SMACSS: Words of Wisdom ā€œConstrain, but donā€™t choke. Consider selector performance, but donā€™t waste too much time on it.ā€
  • 64. The Brit http://www.flickr.com/photos/31363949@N02/6958447097/
  • 65. CSS For Grown Ups https://speakerdeck.com/u/andyhume/p/css-for- grown-ups-maturing-best-practises http://schedule.sxsw.com/2012/events/ event_IAP9410 (audio)
  • 66. He lived his own nightmare http://www.flickr.com/photos/djrue/4835062638/
  • 67. CSS For Grown Ups Donā€™t style pages, style modules. Have a style module library that you can reuse.
  • 68. CSS For Grown Ups Think of your styles as being in layers: ā€¢ā€Æ document ā€“ from HTML code, element selectors ā€¢ā€Æ base styles ā€¢ā€Æ module styles ā€¢ā€Æ layout styles
  • 69. CSS For Grown Ups Easy determination: A tag as part of the selector = a document style If you create a class for it, you release it from the tag and make it a module style.
  • 70. CSS For Grown Ups: Donā€™t ā€¦make modules variations based on IDs, base them on classes instead #sidebar .promo-box = bad .promo-box { ... } = okay! .promo-box-light { ... } = better!
  • 71. CSS For Grown Ups: Modules .promo-box! Related/sub-styles: moduleā€™s name extended with two dashes .promo-box--eco! javascript class preļ¬xed with js: .js-login!
  • 72. CSS For Grown Ups: Typography .h-headline! .h-subheadline! .h-byline! .h-promo!
  • 73. CSS For Grown Ups: Helpers ā€œSurgical layout helpersā€ which are things like paddings, margins, and gutters as separate classes. .margin-top {margin-top: 1em;}!
  • 75. The Masters all speak the same truths http://www.flickr.com/photos/s4xton/2425718415/
  • 76. Their teachings ā€¢ā€Æ Ids? Not so much. ā€¢ā€Æ Classes? Aww yeah! ā€¢ā€Æ With selectors, less is more ā€¢ā€Æ Get your module on ā€¢ā€Æ Naming conventions? !Important
  • 77. Can be simpliļ¬ed to this: ā€¢ā€Æ Structure and Inform ā€¢ā€Æ Reduce ā€¢ā€Æ Recycle and Reuse
  • 78. Structure and Inform http://www.flickr.com/photos/trvance/3138749670/
  • 79. Structure and Inform ā€¢ā€Æ Utilize a naming convention to establish structure and meaning ā€¢ā€Æ Categorize styles in the document or into multiple documents ā€¢ā€Æ Employ grids for consistent page structure
  • 80. Reduce Photo: Denise Jacoba
  • 81. Reduce ā€¢ā€Æ Eliminate inline styles ā€¢ā€Æ Write the shortest chain of elements possible in selectors ā€¢ā€Æ Drop elements: as qualiļ¬ers and selectors ā€¢ā€Æ Choose classes over ids
  • 82. Recycle Reuse http://www.flickr.com/photos/epsos/5575089139/
  • 83. Recycle Reuse ā€¢ā€Æ Leverage the cascade better to cut down on redundant style declarations ā€¢ā€Æ Modularize page components to reuse throughout site ā€¢ā€Æ Extend modules through subclassing
  • 84. They ļ¬gured out the key! http://www.flickr.com/photos/karent/3673326282/
  • 85. What do you do when you build? http://www.flickr.com/photos/mdave/2878687949/
  • 86. Exactly! http://www.flickr.com/photos/chriscoyier/5269340772/
  • 87. What should we call it? Hmmmā€¦ measure twice, cut once css Ć ļƒ  mtco css Ć ļƒ  meta coa css Ć ļƒ  MetaCoax!
  • 88. And thus, MetaCoax was born! { Measure twice: cut once; }
  • 89. Djiejh and Djinn went to PoĆ«siaā€¦ http://www.flickr.com/photos/trodel/3801987960/
  • 91. Institute change in 3 phases .flickr.com/photos/boklm/486646798/
  • 92. (1) Initial phase ā€¢ā€Æ Optimize selectors ā€¢ā€Æ Reduce the redundant
  • 93. Optimize Selectors ā€¢ā€Æ Eliminate qualiļ¬er selectors [oocss] ā€¢ā€Æ Eliminate the middleman ā€¢ā€Æ Have the shortest chain possible [oocss, smacss]
  • 94. Qualiļ¬ed selectors div#! div.! 1259 836
  • 95. Eliminate qualiļ¬er selectors Selectors like div#widget-nav div#widget-nav- slider ul li div.name span! Could easily be simpliļ¬ed into #widget-nav-slider .name span! with the exact same outcome.
  • 96. Eliminate the middleman If you must use a descendent selector, then eliminate all unnecessary elements in it: .widget li a! would become .widget a!
  • 97. Have the shortest chain possible For example, instead of #toc LI A! itā€™s better to create a class, such as .toc-anchor!
  • 98. Reduce the Redundant ā€¢ā€Æ Leverage the cascade by relying on inheritance [oocss] ā€¢ā€Æ Review, revise and reduce !important [oocss, smacss]
  • 99. Leverage the cascade with inheritance color! font-family ! font-size !! font-style! font-variant !! font-weight !! font! line-height !! list-style-image !! list-style-position !! list-style-type !! list-style! text-align! text-indent !! text-transform! visibility! white-space! word-spacing!
  • 100. Not using the cascade font! font-size! 100 112
  • 101. Review, revise and reduce !important If there are a lot of styles that are !important thenā€¦
  • 103. For exampleā€¦ !important! 126
  • 104. (2) Intermediate phase ā€¢ā€Æ Clear the cruft ā€¢ā€Æ Create preliminary portable styles [cfgu] ā€¢ā€Æ Begin instituting modules based on design patterns [oocss, smacss, cfgu] ā€¢ā€Æ Institute a Grid [oocss]
  • 105. Clear the cruft ā€¢ā€Æ Eliminate inline styles decrease use of span ā€¢ā€Æ Eliminate styles that rely on qualiļ¬ers high in the DOM [oocss] ā€¢ā€Æ Use classnames as key selector [smacss] ā€¢ā€Æ Create preliminary portable styles [cfgu]
  • 106. Eliminate styles that rely on qualiļ¬ers high in the DOM body.video div#lowercontent div.children.videoitem.hover a.title { ! background: #bc5b29; ! color: #fff !important; ! text-decoration: none; ! }!
  • 107. Too high in the DOM body#! 936
  • 108. Create preliminary portable styles ā€¢ā€Æ Typographic classes for headings, etc.[cfgu] ā€¢ā€Æ Surgical layout helpers [cfgu]
  • 109. Is surgery necessary? margin-top! margin-bottom! 189 112
  • 110. Institute a Grid ā€¢ā€Æ Use CSS3 box-sizing ā€¢ā€Æ Make the grid and images ļ¬‚uid
  • 111. Bad grid width! margin! 327 738
  • 112. Good grid .l-col-1-1 {float:none;}! .l-col-1-2 {width:50%; *width:43%; }! .l-col-1-3 {width:33.33333%; *width:32.33333%;}! .l-col-2-3 {width:66.66666%; *width:65.66666%;}! .l-col-1-4 {width:25%; *width:23%; }! .l-col-3-4 {width:75%; *width:72%;}! .l-col-1-5 {width:20%; *width:19%;}! .l-col-2-5 {width:40%; *width:39%;}! .l-col-3-5 {width:60%; *width:59%;}! .l-col-4-5 {width:80%; *width:79%;}! .l-col-1-6 {width:16.6%; *width:15.6%;}!
  • 113. Make the grid and images ļ¬‚uid img {! max-width: 100%;! height: auto;! }!
  • 114. (3) Advanced phase ā€¢ā€Æ Continue modularizing page elements [ocss, smacss, cfgu] ā€¢ā€Æ Continue cleaning-up selectors and styles ā€¢ā€Æ Separate CSS ļ¬les by category [smacss]
  • 116. Structure http://www.flickr.com/photos/joebehr/6349047969/
  • 117. Inbred selectors banished http://i31.photobucket.com/albums/c351/Rasey07/twins.jpg
  • 118. Ended the Speciļ¬city Wars http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html
  • 119. Ready for a responsive future http://www.flickr.com/photos/digitalfrance/98314057/
  • 120. New best practices http://www.flickr.com/photos/torley/2761300969/
  • 121. Reset with Normalize.css http://necolas.github.com/normalize.css/
  • 122. Use a better Clearļ¬x Still using this? div class=clear/div! ā€¦! .clear { clear: both; }!
  • 123. The New Clearļ¬x /* For modern browsers */! .cf:before, .cf:after { ! content:; ! display: table;! }Ā ! ! .cf:after { clear: both;}Ā ! ! /* For IE 6/7 (trigger hasLayout) */! .cf { *zoom:1; } !
  • 124. And a better Divider Seriously? ! divĀ class=divider/div! ā€¦! div.dividerĀ {! border-top:Ā 1px solid #ABAA9A;! clear:Ā both;! }!
  • 126. ā€¦And Image replacement .hide-text {! text-indent: 100%;! white-space: nowrap;! overflow: hidden;! }!
  • 127. Use an icon element Instead of this: li class=favorite! span class=icon favorite/span! span id=favorite-poem-insert- point class=favorite/span! /li!
  • 128. Use an icon element Do this: pi class=icon icon-comment/i23 comments/p! ...! .icon {background-image: url( sprites.png ); }! ! .icon-comments {background-position: 0 -30px; } !
  • 129. Share the Love http://www.flickr.com/photos/meggers/2378288736/
  • 130. Just revamping the code isnā€™t enoughā€¦ ā€œEven the cleanest code gets ruined by the ļ¬rst non- expert to touch it.ā€ - Nicole Sullivan, The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective
  • 131. Website styleguide http://www.flickr.com/photos/littlemad/5729783584/
  • 132. Styleguide Creation Process 1.ā€Æ Determine the unique elements and components that will be in the styleguide. Also notate the main colors for text, header, links, and buttons. 2.ā€Æ Start styling the core elements of the pages: headings, links, tables, blockquotes, unordered and ordered lists, and forms. 3.ā€Æ Style the components that override the base styles, such as search boxes, breadcrumb navigation, themed buttons, and variations in modules. Include interaction styles: hover, focus, active states.
  • 133. Styleguide creation process 4.ā€Æ Add layout last and put the components into place. Each layout could be presented as a separate document. 5.ā€Æ Document your coding process: naming conventions and the thinking behind decisions of grouping, classifying components, etc.
  • 134. So everyone can access the treasures http://www.flickr.com/photos/lecercle/514344657/
  • 135. With the knowledge of The Masters
  • 136. The code has been improved! http://www.flickr.com/photos/clspeace/2143292403/
  • 137. Srsly! Start! Finish! 7500 2250
  • 138. And made PoĆ«siaā€¦ http://www.flickr.com/photos/drobnikm/525835032/
  • 139. (You know how Iā€™m going to end this) http://www.flickr.com/photos/sonialuna/2942020058/
  • 140. Character list and Resources
  • 141. The Marcot ā€¦is Ethan Marcotte, the creator and author of Responsive Web Design (RWD) http://ethanmarcotte.com/ twitter.com/beep http://www.flickr.com/photos/localcelebrity/7907876246/
  • 142. The Dry Wind ā€¦is Jeremy Clarke, the developer of DRY CSS. http://simianuprising.com/ twitter.com/jeremyclarke
  • 143. The Ninja ā€¦is Nicole Sullivan, the creatrice of Object Oriented CSS (OOCSS) http://www.stubbornella.org/ twitter.com/stubbornella http://www.flickr.com/photos/localcelebrity/6025912453/
  • 144. The Lumberjack ā€¦is Jonathan Snook, the creator and author of Scalable and Modular CSS (SMACSS) http://snook.ca/ http://smacss.com twitter.com/snookca http://www.flickr.com/photos/splat/3742596419/
  • 145. The Brit ā€¦is Andy Hume, the creator of CSS for Grown Ups (I like to shorten this to CFGU). http://andyhume.net twitter.com/ http://www.flickr.com/photos/angryamoeba/4674320039/
  • 146. Djinn ā€¦is Jennifer Dixon, front-end developer extraordinaire http://jdcoding.com twitter.com/jenniration
  • 148. My books The CSS Detective Smashing Books #3 InterAct With Guide #3 1/3 Web Standards: CSSDetectiveGuide.com SmashingBook.com InterActWithWebStandards.com twitter.com/cssdetective twitter.com/waspinteract My chapter: ā€œStorytelling in Webdesignā€
  • 150. Now I really mean it!
  • 151. Thank You! http://www.flickr.com/photos/theredproject/3302110152/