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 fine event is:	

@fitc #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 fine…	





                                  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 fit 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 find 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-
efficient-unified-and-scalable-stylesheets
DRY CSS	



“Don’t Repeat Yourself”	

	

Never repeat a style/property definition…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 figure out how to make it one.
DRY CSS: Approach	


Groups define shared properties. 	

	

Group selectors with shared properties, rather than
defining them separately. 	

	

While the groups have many selectors, each
property/value pair is defined 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 floats = 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-specific styles.	

	

Instead of being classitis, using multiple classes
clarifies 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 prefixed 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 simplified 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 qualifiers 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 figured 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 qualifier selectors [oocss]	


•  Eliminate the middleman	

	

•  Have the shortest chain possible [oocss, smacss]
Qualified selectors	




       div#!            div.!

    1259	

 836
Eliminate qualifier selectors	


Selectors like 	

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

Could easily be simplified 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 qualifiers high in the
    DOM [oocss]	


•  Use classnames as key selector [smacss]	

	

•  Create preliminary portable styles [cfgu]
Eliminate styles that rely on qualifiers 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 fluid
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 fluid	



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



•  Continue modularizing page elements 
   [ocss, smacss, cfgu]	


•  Continue cleaning-up selectors and styles	

	

•  Separate CSS files 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 Specificity 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 Clearfix	



Still using this?	

	

div class=clear/div!
…!
.clear { clear: both; }!
The New Clearfix	

/* 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 first 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
 
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
 
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
 
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
 
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
 
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
 
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

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

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 fine event is: @fitc #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 fine… 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 fit 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 find 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 definition…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 figure out how to make it one.
  • 36. DRY CSS: Approach Groups define shared properties. Group selectors with shared properties, rather than defining them separately. While the groups have many selectors, each property/value pair is defined 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 floats = 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-specific styles. Instead of being classitis, using multiple classes clarifies 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 prefixed 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 simplified 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 qualifiers 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 figured 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 qualifier selectors [oocss] •  Eliminate the middleman •  Have the shortest chain possible [oocss, smacss]
  • 94. Qualified selectors div#! div.! 1259 836
  • 95. Eliminate qualifier selectors Selectors like div#widget-nav div#widget-nav- slider ul li div.name span! Could easily be simplified 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…
  • 102. UR DOIN’ IT WRONG
  • 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 qualifiers high in the DOM [oocss] •  Use classnames as key selector [smacss] •  Create preliminary portable styles [cfgu]
  • 106. Eliminate styles that rely on qualifiers 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 fluid
  • 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 fluid 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 files 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 Specificity 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 Clearfix Still using this? div class=clear/div! …! .clear { clear: both; }!
  • 123. The New Clearfix /* 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 first 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/