SlideShare a Scribd company logo
1 of 52
Download to read offline
THE WHY, HOW, AND WHEN?
                      of

CSS FRAMEWORKS
     http://thinkvitamin.com/online-conferences/
Just a brief intro, then weā€™ll
dig right into the good stuļ¬€...
Iā€™m Nathan. I am a designer
(slash) front-end developer
at Fellowship Technologies.

         http://fellowshiptech.com/
You probably know me as
the guy who made this...




        http://960.gs/
But Iā€™m not (entirely) one dimensional.
Today, I we are going to discuss some
of the beneļ¬ts (and drawbacks) of
using CSS frameworks such as...
Blueprint, YUI 3,
960.gs, 1kb Grid
ā€œAny suļ¬ƒciently advanced technology
 is indistinguishable from magic.ā€
   this scares me
                                       ā€” Arthur C. Clarke


        http://en.wikipedia.org/wiki/Clarke's_three_laws
You know why? CSS frameworks are
not magic. Because CSS itself isnā€™t.
Letā€™s not treat code like itā€™s mystical.
(Same for jQuery. But thatā€™s another soapbox entirely.)
Veteran ā€œninjasā€ master a variety of tools ā€“ Not just one.


                                                                  FRAMEWORK
        BY H
            AND




                          Use a framework as an extension
                          of yourself ā€“ Not just as a crutch.

                                                  http://imdb.com/title/tt1046173/
WHY use a Framework?
+ Increase eļ¬ƒciency + Ease of maintenance
+ Code consistency + Repeatable process
+ Browser tested    + CMS driven templates
WHY not?
ā€“ Learning curve ā€“ Code feels foreign
ā€“ Bloated HTML ā€“ Longhand is quicker?
ā€“ Bloated CSS ā€“ Unsemantic classes
I have found that many of those who cry ā€œbloatā€ (as a reason not to use
frameworks) are themselves guilty of not doing all they can to reduce
client-side latency. For instance, referencing multiple CSS ļ¬les of the
same media type is wasteful because it necessitates an HTTP request
for each ļ¬le, thereby delaying page rendering until all the ļ¬les have
been downloaded and parsed. Additionally, whitespace can quickly
add up: newline characters, tabbed (or spaced) indentation, etc...
                                       ā€” Nathan Smith (.Net Magazine July 2010)
... Regardless of if you are using a CSS framework, you can and
should be using techniques to mitigate the impact of CSS
downloads, including miniļ¬cation and concatenation ā€“ two fancy
terms that simply refer to the removal of unnecessary whitespace,
and combining multiple CSS ļ¬les into one... If you want to minify
your CSS manually, I would recommend CSS Driveā€™s compressor.
                                           ā€” Nathan Smith (.Net Magazine July 2010)



              http://www.cssdrive.com/index.php/main/csscompressor/
__________
ā€œUnsemanticā€
DIV + SPAN ARE SEMANTICALLY MEANINGLESS (aka NEUTRAL)

The div and span elements, in conjunction with the id
and class attributes, oļ¬€er a generic mechanism for
adding structure to documents. These elements deļ¬ne
content to be inline (span) or block-level (div) but
impose no other presentational idioms on the content.
                                  ā€” World Wide Web Consortium (W3C)



         http://www.w3.org/TR/html401/struct/global.html#h-7.5.4
ā€œSemantic Webā€ doesnā€™t involve CSS




   http://www.w3.org/DesignIssues/Semantic.html
SORRY CSS... YOU WERENā€™T INVITED TO THIS PARTY. WE STILL          YOU.


The term ā€œSemantic Webā€ refers to W3Cā€™s vision of the Web
of linked data. Semantic Web technologies enable people to
create data stores on the Web, build vocabularies, and write
rules for handling data. Linked data are empowered by
technologies such as RDF, SPARQL, OWL, and SKOS.
                                      ā€” World Wide Web Consortium (W3C)


                 http://www.w3.org/standards/semanticweb/
DIV + ID / CLASS = ZERO SEMANTIC VALUE   HTML5 TAGS = RICH SEMANTIC VALUE

 <div class="header">                    <header>
   ...                                     ...
 </div>                                  </header>
 <div class="nav">                       <nav>
   ...                                     ...
 </div>                                  </nav>
 <div class="article">                   <article>
   ...                                     ...
 </div>                                  </article>
 <div class="footer">                    <footer>
   ...                                     ...
 </div>                                  </footer>
Semantics live here


<tag class="peanut_butter jelly">Yummy content</tag>



                        Not here
If semantics keep you up at night... try SASS!




                 http://sass-lang.com/
Now that the ranting is done...




HOW
do I use a CSS framework?
CSS Framework Comparison Matrix ā€“ Sounds really oļ¬ƒcial, huh?
              Grid   Typography   PSD ļ¬les   Form styles Print styles   ā€œPluginsā€   RTL lang



Blueprint     āœ“         āœ“           āœ“           āœ“             āœ“           āœ“           āœ“


  YUI         āœ“         āœ“                       āœ“             āœ“           āœ“           āœ“


 960.gs       āœ“         āœ“          āœ“*                                                 āœ“


1KB Grid      āœ“
*   The 960 Grid System has templates for...
    + Acorn                          + Corel DRAW
    + Adobe Fireworks                + Expression Design
    + Adobe Flash                    + GIMP
    + Adobe InDesign                 + InkScape
    + Adobe Illustrator              + OmniGraļ¬„e
    + Adobe Photoshop                + Visio

    ... and printable PDF sketch sheets.

                    http://960.gs/
Example of Blueprint HTML
<div class="container">
     <div class="span-8">
          1/3 width
     </div>
     <div class="span-8">
          1/3 width
     </div>
     <div class="span-8 last">
          1/3 width
     </div>
     <div class="span-12">
          <div class="span-6">
               1/8 width
          </div>
          <div class="span-6 last">
               1/4 width
          </div>
     </div>
     <div class="span-12 last">
          <div class="span-6 prepend-3 append-3 last">
               1/4 width
          </div>
     </div>
</div>




                        http://blueprintcss.org/
Comparable example of 960.gs HTML (24-col)
<div class="container_24">
     <div class="grid_8">
          1/3 width
     </div>
     <div class="grid_8">
          1/3 width
     </div>
     <div class="grid_8">
          1/3 width
     </div>
     <div class="grid_12">
          <div class="grid_6 alpha">
               1/8 width
          </div>
          <div class="grid_6 omega">
               1/4 width
          </div>
     </div>
     <div class="grid_12">
          <div class="grid_6 prefix_3 suffix_3 alpha omega">
               1/4 width
          </div>
     </div>
</div>




                            http://960.gs/
Example of Blueprint CSS
.span-1,                                      .pull-1,
.span-2,                                      .pull-2,
... {                                         ... {
      float: left;                                  float: left;
      margin-right: 10px;                           position:relative;
}                                             }

.span-1 {                                     .pull-1 {
      width: 30px;                                  margin-left: -40px;
}                                             }

.prepend-1 {                                  .push-1,
      padding-left: 40px;                     .push-2,
}                                             ... {
                                                    float: right;
.append-1 {                                         position:relative;
      padding-right: 40px;                    }
}
                                              .push-1 {
.last {                                             margin: 0 -40px 1.5em 40px;
    margin-right: 0;                          }
}




                             http://blueprintcss.org/
Example of 960.gs CSS (24-col)
.container_24 .grid_1,                       .push_1,
.container_24 .grid_2,                       .pull_1,
... {                                        .push_2,
      display: inline;                       .pull_2 {
      float: left;                                 position: relative;
      margin-left: 5px;                      }
      margin-right: 5px;
}                                            .container_24 .push_1 {
                                                   left: 40px;
.container_24 .grid_1 {                      }
      width: 30px;
}                                            .container_24 .pull_1 {
                                                   right: 40px;
.container_24 .prefix_1 {                    }
      padding-left: 40px;
}

.container_24 .suffix_1 {
      padding-right: 40px;                 Note: Whereas Blueprintā€™s push + pull
}
                                           classes are used for content (oļ¬€set
.alpha {
    margin-left: 0;                        images / quotes), the push + pull classes
}
                                           in 960.gs are used to rearrange entire
.omega {

}
    margin-right: 0;                       columns, independent of source order.
                                           This has practical implications for SEO.


                                 http://960.gs/
BLUEPRINT GRID DIMENSIONS
960 (24-COL) GRID DIMENSIONS ā€“Ā Whatā€™s the diļ¬€erence? Glad you asked...
Blueprintā€™s text can touch left / right edge of browser. Troublesome on mobile.
960.gs has a 5px (24-col) or 10px (12, 16-col) buļ¬€er on left / right side.
YUI 3ā€™s grid is ļ¬‚uid. It doesnā€™t use any ļ¬‚oats. WHAT!?
<div class="container">
     <div class="yui3-g">
          <div class="yui3-u-1-2">
               1/2 width
          </div>
          <div class="yui3-u-1-2">
               1/2 width
          </div>
     </div>
     <div class="yui3-g">
          <div class="yui3-u-1-24">
               1/24 width
          </div>
          <div class="yui3-u-23-24">
               23/24 width
          </div>
     </div>
</div>




                    http://developer.yahoo.com/yui/3/
.yui3-g {
    /* webkit: collapse white-space
    between units */


                                                 Example of YUI 3 Grid CSS
         letter-spacing: -0.31em;
    /* reset IE < 8 */
         *letter-spacing: normal;
    /* IE < 8 && gecko: collapse
    white-space between units */
         word-spacing: -0.43em;
}                                                Note: Because nothing is ļ¬‚oated in YUI,
                                                 this means that no additional ļ¬les are
.yui3-u,
.yui3-u-1,                                       needed in order to support languages that
.yui3-u-1-2,
... {
      display: inline-block;
                                                 read right-to-left (Hebrew, Arabic, etc).
      /* IE < 8: fake inline-block */
      zoom: 1; *display: inline;
      letter-spacing: normal;
      word-spacing: normal;
                                                 But because everything is essentially
}
      vertical-align: top;
                                                 display: inline-block, and is ļ¬‚uid width,
.yui3-u-1 {                                      this also means columns cannot be
      display: block;
}                                                rearranged for SEO purposes. Additionally,
.yui3-u-1-2 {                                    an extra wrapping <div> is required to
      width: 50%;
}                                                create gutters between content areas.
.yui3-u-1-3 {
      width: 33.33333%;
}




                          http://developer.yahoo.com/yui/3/
BROWSER ROUNDING
                                       % INCONSISTENCIES




http://host.sonspring.com/yui3_grid/
http://1kbgrid.com/
1KB Grid ā€“ Entire CSS ļ¬le!
.grid_1    {   width:60px;    }
.grid_2    {   width:140px;   }
.grid_3    {   width:220px;   }
.grid_4    {   width:300px;   }
.grid_5    {   width:380px;   }
.grid_6    {   width:460px;   }
.grid_7
.grid_8
           {
           {
               width:540px;
               width:620px;
                              }
                              }
                                              The 1KB Grid has everything you
.grid_9
.grid_10
           {
           {
               width:700px;
               width:780px;
                              }
                              }
                                              need, and nothing you donā€™t.
.grid_11   {   width:860px;   }
.grid_12   {   width:940px;   }

.column {                                     Okay, maybe it doesnā€™t have everything
      margin: 0 10px;
      overflow: hidden;                       you need. It is ā€“ after all ā€“ less than 1
      float: left;
      display: inline;                        kilobyte of code, so it canā€™t do it all.
}

.row {
         width: 960px;
         margin: 0 auto;
                                              No right-to-left support. No SEO column
}
         overflow: hidden;                    re-ordering. But it is incredibly eļ¬ƒcient!
.row .row {
      margin: 0 -10px;
      width: auto;
                                              The 960 Grid System is 5.5KB. You can
}
      display: inline-block;
                                              think of the 1KB Grid as a ā€œliteā€ version.



                                  http://1kbgrid.com/
Example of 1KB Grid HTML
<div class="row">
     <div class="column grid_6">
          <div class="row">
               <div class="column   grid_6">
                    1/2 width
               </div>
          </div>
          <div class="row">
               <div class="column   grid_2">
                    1/6 width
               </div>
               <div class="column   grid_2">
                    1/6 width
               </div>
               <div class="column   grid_2">
                    1/6 width
               </div>
          </div>
     </div>
     <div class="column grid_6">
          1/2 width
     </div>
</div>




                          http://1kbgrid.com/
So which CSS framework is the best? It depends...
+ What size site are you building?
+ Are you working alone or with a team?
+ Is pixel precision a make-or-break factor?
+ Do you need right-to-left language support?
+ Is your layout complex enough to merit SEO?
+ Do you want ready-made design or just a grid?
YUI 3.0 Grid
Pros:                                       Cons:
+ Fluid (or ļ¬xed) Width                     ā€“ Source dependent layout
+ Easy RTL support                          ā€“ No gutters by default
+ Tested by Yahoo! devs                     ā€“ Rounding % inconsistencies
+ Part of a larger ecosystem

Use when:
You need a ļ¬‚exible layout, and when a margin of error Ā± a few pixels is acceptable.


                        http://developer.yahoo.com/yui/3/
Blueprint
Pros:                                         Cons:
+ Ruby build scripts          ā€“ Source dependent layout
+ Form, button, tab ā€œpluginsā€ ā€“ No outer gutters by default
+ Extensive typography        ā€“ Design presuppositions
+ Print stylesheet              (could be a positive though)


Use when:
You want a design that is ready to go ā€œout of the boxā€ with many of the default
details handled for you by default. You want to generate grids via Ruby scripts.

                              http://blueprintcss.org/
960.gs
Pros:                                        Cons:
+ 12, 16, or 24 column grids ā€“ Less features than YUI / BP
+ PS + FW plugins, templates ā€“ Focuses solely on grids
+ Possible SEO beneļ¬ts         (could be a positive though)
+ IA, Designer, Dev friendly

Use when:
Building a site with layouts driven by a CMS. If you are doing rapid prototyping
or have IA > Designer > Dev workļ¬‚ow. Want layout to diļ¬€er from source order.

                                  http://960.gs/
1KB Grid
Pros:                                        Cons:
+ Handy grid generator tool                  ā€“ Source dependent layout
+ Easy to get started                        ā€“ Features < than YUI / BP / 960
+ Lightweight code                           ā€“ Focuses solely on grids
+ No extra nesting classes                      (could be a positive though)


Use when:
You are building a site that needs a grid layout, but the siteā€™s requirements do not
necessitate the overhead of a robust CSS framework. Or code size is a concern.

                                http://1kbgrid.com/
So, othersā€™ frameworks are ļ¬ne, but...




WHEN
  should I roll my own framework?
When to build your own...
āœ“ You have a speciļ¬c need no other framework addresses
āœ“ You require a grid that is atypical of common frameworks
āœ“ To try your hand at architecting something others may use


Pros:                         Cons:
+ 100% control over code      ā€“ Debugging is all your burden
+ Build only what you need    ā€“ Re-inventing the wheel?
Some
Helpful
Resources...
5 Simple Steps to Designing Grid Systems
                                                       A ļ¬ve-part series by Mark Boulton.




  http://www.markboulton.co.uk/journal/comments/ļ¬ve-simple-steps-to-designing-grid-systems-part-1
Mark Boultonā€™s publishing company ā€“ Five Simple Steps




                  http://ļ¬vesimplesteps.com/
ā€œGrid computing... and Designā€ ā€“ by Khoi Vinh
http://www.subtraction.com/2004/12/31/grid-computi
http://www.cameronmoll.com/archives/2006/12/gridding_the_960/
http://www.cameronmoll.com/archives/2006/12/gridding_the_960/
http://keynotekungfu.com/
FURTHER READING...
Frameworks for Designers ā€“ Jeļ¬€ Croft
ā€” http://alistapart.com/articles/frameworksfordesigners


Smart CSS ainā€™t always sexy CSS ā€“ Martin Ringlein
ā€” http://digital-web.com/articles/smart_CSS_aint_always_sexy_CSS/


Object Oriented CSS ā€“ Nicole Sullivan
ā€” http://wiki.github.com/stubbornella/oocss/
Questions?
ā€” http://twitter.com/nathansmith
ā€” http://sonspring.com/contact

Get the slides...
ā€” http://slideshare.net/nathansmith/think-vitamin-css

More Related Content

What's hot

Simply Responsive CSS3
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3Denise Jacobs
Ā 
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿ
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿå‰ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿ
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼ŸKejun Zhang
Ā 
CSS3: Ripe and Ready
CSS3: Ripe and ReadyCSS3: Ripe and Ready
CSS3: Ripe and ReadyDenise Jacobs
Ā 
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹ę‹“ęع č°·
Ā 
The Near Future of CSS
The Near Future of CSSThe Near Future of CSS
The Near Future of CSSRachel Andrew
Ā 
SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESSItai Koren
Ā 
IntroduĆ§Ć£o a CSS
IntroduĆ§Ć£o a CSS IntroduĆ§Ć£o a CSS
IntroduĆ§Ć£o a CSS Tiago Santos
Ā 
Presentation 2
Presentation 2Presentation 2
Presentation 2Iovan Claudia
Ā 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
Ā 

What's hot (9)

Simply Responsive CSS3
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3
Ā 
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿ
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿå‰ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿ
前ē«Æ开发ē†č®ŗēƒ­ē‚¹é¢åƹ面ļ¼šä»Žę€Žä¹ˆēœ‹ļ¼Œåˆ°ę€Žä¹ˆåšļ¼Ÿ
Ā 
CSS3: Ripe and Ready
CSS3: Ripe and ReadyCSS3: Ripe and Ready
CSS3: Ripe and Ready
Ā 
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹
ćƒ¢ćƒ€ćƒ³ćŖCSSčØ­čØˆćƒ‘ć‚æćƒ¼ćƒ³ć‚’č€ƒćˆć‚‹
Ā 
The Near Future of CSS
The Near Future of CSSThe Near Future of CSS
The Near Future of CSS
Ā 
SASS is more than LESS
SASS is more than LESSSASS is more than LESS
SASS is more than LESS
Ā 
IntroduĆ§Ć£o a CSS
IntroduĆ§Ć£o a CSS IntroduĆ§Ć£o a CSS
IntroduĆ§Ć£o a CSS
Ā 
Presentation 2
Presentation 2Presentation 2
Presentation 2
Ā 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Ā 

Viewers also liked

Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testingsonniesedge
Ā 
Lessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS FrameworkLessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS Frameworksonniesedge
Ā 
Roll Your Own CSS Framework
Roll Your Own CSS FrameworkRoll Your Own CSS Framework
Roll Your Own CSS FrameworkMike Aparicio
Ā 
How to develop a CSS Framework
How to develop a CSS FrameworkHow to develop a CSS Framework
How to develop a CSS FrameworkOlivier Besson
Ā 
Designing an Enterprise CSS Framework is Hard, Stephanie Rewis
Designing an Enterprise CSS Framework is Hard, Stephanie RewisDesigning an Enterprise CSS Framework is Hard, Stephanie Rewis
Designing an Enterprise CSS Framework is Hard, Stephanie RewisFuture Insights
Ā 
Seven Steps to Creating a Framework
Seven Steps to Creating a FrameworkSeven Steps to Creating a Framework
Seven Steps to Creating a FrameworkRob Philibert
Ā 
Quintada Regaliera
Quintada RegalieraQuintada Regaliera
Quintada Regalierarauluis
Ā 
Ourstory Fabbri Martin
Ourstory Fabbri MartinOurstory Fabbri Martin
Ourstory Fabbri Martindboling
Ā 
Digital Citizenship
Digital CitizenshipDigital Citizenship
Digital CitizenshipAndrew Kohl
Ā 
VietRees_Newsletter_38_Week1_Month07_Year08
VietRees_Newsletter_38_Week1_Month07_Year08VietRees_Newsletter_38_Week1_Month07_Year08
VietRees_Newsletter_38_Week1_Month07_Year08internationalvr
Ā 
Error Reports
Error ReportsError Reports
Error Reportsaurora444
Ā 
Using copy.com app for uploading and sharing files
Using copy.com app for uploading and sharing filesUsing copy.com app for uploading and sharing files
Using copy.com app for uploading and sharing filesRachabodin Suwannakanthi
Ā 
Draft of Memory of the World Thailand Communication and Advocacy Plan
Draft of Memory of the World Thailand Communication and Advocacy PlanDraft of Memory of the World Thailand Communication and Advocacy Plan
Draft of Memory of the World Thailand Communication and Advocacy PlanRachabodin Suwannakanthi
Ā 
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009internationalvr
Ā 

Viewers also liked (20)

Visual Regression Testing
Visual Regression TestingVisual Regression Testing
Visual Regression Testing
Ā 
Lessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS FrameworkLessons Learned From Building Your Own CSS Framework
Lessons Learned From Building Your Own CSS Framework
Ā 
Roll Your Own CSS Framework
Roll Your Own CSS FrameworkRoll Your Own CSS Framework
Roll Your Own CSS Framework
Ā 
How to develop a CSS Framework
How to develop a CSS FrameworkHow to develop a CSS Framework
How to develop a CSS Framework
Ā 
Designing an Enterprise CSS Framework is Hard, Stephanie Rewis
Designing an Enterprise CSS Framework is Hard, Stephanie RewisDesigning an Enterprise CSS Framework is Hard, Stephanie Rewis
Designing an Enterprise CSS Framework is Hard, Stephanie Rewis
Ā 
Seven Steps to Creating a Framework
Seven Steps to Creating a FrameworkSeven Steps to Creating a Framework
Seven Steps to Creating a Framework
Ā 
flashcards A1
flashcards A1flashcards A1
flashcards A1
Ā 
Quintada Regaliera
Quintada RegalieraQuintada Regaliera
Quintada Regaliera
Ā 
Ourstory Fabbri Martin
Ourstory Fabbri MartinOurstory Fabbri Martin
Ourstory Fabbri Martin
Ā 
IxDa Redux
IxDa ReduxIxDa Redux
IxDa Redux
Ā 
Digital Citizenship
Digital CitizenshipDigital Citizenship
Digital Citizenship
Ā 
Utility Fog
Utility FogUtility Fog
Utility Fog
Ā 
VietRees_Newsletter_38_Week1_Month07_Year08
VietRees_Newsletter_38_Week1_Month07_Year08VietRees_Newsletter_38_Week1_Month07_Year08
VietRees_Newsletter_38_Week1_Month07_Year08
Ā 
Halo Network
Halo NetworkHalo Network
Halo Network
Ā 
Error Reports
Error ReportsError Reports
Error Reports
Ā 
Using copy.com app for uploading and sharing files
Using copy.com app for uploading and sharing filesUsing copy.com app for uploading and sharing files
Using copy.com app for uploading and sharing files
Ā 
Draft of Memory of the World Thailand Communication and Advocacy Plan
Draft of Memory of the World Thailand Communication and Advocacy PlanDraft of Memory of the World Thailand Communication and Advocacy Plan
Draft of Memory of the World Thailand Communication and Advocacy Plan
Ā 
Forcesfor good
Forcesfor goodForcesfor good
Forcesfor good
Ā 
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009
Bįŗ£n Tin BĐS Viį»‡t Nam Sį»‘ 72 Tuįŗ§n 1 ThĆ”ng 3 Năm 2009
Ā 
Blue Eye
Blue EyeBlue Eye
Blue Eye
Ā 

Similar to Think Vitamin CSS

Web I - 07 - CSS Frameworks
Web I - 07 - CSS FrameworksWeb I - 07 - CSS Frameworks
Web I - 07 - CSS FrameworksRandy Connolly
Ā 
Refresh Tallahassee: The RE/MAX Front End Story
Refresh Tallahassee: The RE/MAX Front End StoryRefresh Tallahassee: The RE/MAX Front End Story
Refresh Tallahassee: The RE/MAX Front End StoryRachael L Moore
Ā 
SMACSS Workshop
SMACSS WorkshopSMACSS Workshop
SMACSS WorkshopTim Hettler
Ā 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSSRachel Andrew
Ā 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Rachel Andrew
Ā 
GOTO Berlin - You can use CSS for that
GOTO Berlin - You can use CSS for thatGOTO Berlin - You can use CSS for that
GOTO Berlin - You can use CSS for thatRachel Andrew
Ā 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucksTim Wright
Ā 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated StylesheetsWynn Netherland
Ā 
ViA Bootstrap 4
ViA Bootstrap 4ViA Bootstrap 4
ViA Bootstrap 4imdurgesh
Ā 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockMarco Pinheiro
Ā 
Introduction to CSS Grid
Introduction to CSS GridIntroduction to CSS Grid
Introduction to CSS GridKara Luton
Ā 
Making the most of New CSS Layout
Making the most of New CSS LayoutMaking the most of New CSS Layout
Making the most of New CSS LayoutRachel Andrew
Ā 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Erin M. Kidwell
Ā 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}Eric Carlisle
Ā 
Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Rachel Andrew
Ā 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsRachel Andrew
Ā 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentationMario Noble
Ā 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Rachel Andrew
Ā 

Similar to Think Vitamin CSS (20)

Web I - 07 - CSS Frameworks
Web I - 07 - CSS FrameworksWeb I - 07 - CSS Frameworks
Web I - 07 - CSS Frameworks
Ā 
Refresh Tallahassee: The RE/MAX Front End Story
Refresh Tallahassee: The RE/MAX Front End StoryRefresh Tallahassee: The RE/MAX Front End Story
Refresh Tallahassee: The RE/MAX Front End Story
Ā 
SMACSS Workshop
SMACSS WorkshopSMACSS Workshop
SMACSS Workshop
Ā 
The Creative New World of CSS
The Creative New World of CSSThe Creative New World of CSS
The Creative New World of CSS
Ā 
Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout Google Developers Experts Summit 2017 - CSS Layout
Google Developers Experts Summit 2017 - CSS Layout
Ā 
GOTO Berlin - You can use CSS for that
GOTO Berlin - You can use CSS for thatGOTO Berlin - You can use CSS for that
GOTO Berlin - You can use CSS for that
Ā 
Slow kinda sucks
Slow kinda sucksSlow kinda sucks
Slow kinda sucks
Ā 
Accelerated Stylesheets
Accelerated StylesheetsAccelerated Stylesheets
Accelerated Stylesheets
Ā 
ViA Bootstrap 4
ViA Bootstrap 4ViA Bootstrap 4
ViA Bootstrap 4
Ā 
SASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, GreensockSASS, Compass, Gulp, Greensock
SASS, Compass, Gulp, Greensock
Ā 
Introduction to CSS Grid
Introduction to CSS GridIntroduction to CSS Grid
Introduction to CSS Grid
Ā 
Making the most of New CSS Layout
Making the most of New CSS LayoutMaking the most of New CSS Layout
Making the most of New CSS Layout
Ā 
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Girl Develop It Cincinnati: Intro to HTML/CSS Class 4
Ā 
Pfnp slides
Pfnp slidesPfnp slides
Pfnp slides
Ā 
Class15
Class15Class15
Class15
Ā 
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
The New UI - Staying Strong with Flexbox, SASS, and {{Mustache.js}}
Ā 
Confoo: You can use CSS for that!
Confoo: You can use CSS for that!Confoo: You can use CSS for that!
Confoo: You can use CSS for that!
Ā 
View Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & FriendsView Source London: Solving Layout Problems with CSS Grid & Friends
View Source London: Solving Layout Problems with CSS Grid & Friends
Ā 
Preprocessor presentation
Preprocessor presentationPreprocessor presentation
Preprocessor presentation
Ā 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17Solving Layout Problems with CSS Grid & Friends - DevFest17
Solving Layout Problems with CSS Grid & Friends - DevFest17
Ā 

More from Nathan Smith

Getting Started with React
Getting Started with ReactGetting Started with React
Getting Started with ReactNathan Smith
Ā 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
Ā 
Rapid Templating with Serve
Rapid Templating with ServeRapid Templating with Serve
Rapid Templating with ServeNathan Smith
Ā 
Proactive Responsive Design
Proactive Responsive DesignProactive Responsive Design
Proactive Responsive DesignNathan Smith
Ā 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsNathan Smith
Ā 
DrupalCon jQuery
DrupalCon jQueryDrupalCon jQuery
DrupalCon jQueryNathan Smith
Ā 
DSVC Design Talk
DSVC Design TalkDSVC Design Talk
DSVC Design TalkNathan Smith
Ā 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksNathan Smith
Ā 
Accelerated Grid Theming
Accelerated Grid ThemingAccelerated Grid Theming
Accelerated Grid ThemingNathan Smith
Ā 
Urban Leadership Slides
Urban Leadership SlidesUrban Leadership Slides
Urban Leadership SlidesNathan Smith
Ā 
Themes from Ascent of a Leader
Themes from Ascent of a LeaderThemes from Ascent of a Leader
Themes from Ascent of a LeaderNathan Smith
Ā 
7 Storey Mountain
7 Storey Mountain7 Storey Mountain
7 Storey MountainNathan Smith
Ā 
Marketing 450 Guest Lecture
Marketing 450 Guest LectureMarketing 450 Guest Lecture
Marketing 450 Guest LectureNathan Smith
Ā 
Fundamental Design Principles
Fundamental Design PrinciplesFundamental Design Principles
Fundamental Design PrinciplesNathan Smith
Ā 
Striking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentStriking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentNathan Smith
Ā 
Echo Conference 2008
Echo Conference 2008Echo Conference 2008
Echo Conference 2008Nathan Smith
Ā 
Bible Tech 2008
Bible Tech 2008Bible Tech 2008
Bible Tech 2008Nathan Smith
Ā 

More from Nathan Smith (20)

Getting Started with React
Getting Started with ReactGetting Started with React
Getting Started with React
Ā 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
Ā 
Rapid Templating with Serve
Rapid Templating with ServeRapid Templating with Serve
Rapid Templating with Serve
Ā 
Proactive Responsive Design
Proactive Responsive DesignProactive Responsive Design
Proactive Responsive Design
Ā 
Use Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile AppsUse Web Skills To Build Mobile Apps
Use Web Skills To Build Mobile Apps
Ā 
Red Dirt JS
Red Dirt JSRed Dirt JS
Red Dirt JS
Ā 
DrupalCon jQuery
DrupalCon jQueryDrupalCon jQuery
DrupalCon jQuery
Ā 
DSVC Design Talk
DSVC Design TalkDSVC Design Talk
DSVC Design Talk
Ā 
Adobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + FireworksAdobe MAX 2008: HTML/CSS + Fireworks
Adobe MAX 2008: HTML/CSS + Fireworks
Ā 
Meet Clumsy
Meet ClumsyMeet Clumsy
Meet Clumsy
Ā 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
Ā 
Accelerated Grid Theming
Accelerated Grid ThemingAccelerated Grid Theming
Accelerated Grid Theming
Ā 
Urban Leadership Slides
Urban Leadership SlidesUrban Leadership Slides
Urban Leadership Slides
Ā 
Themes from Ascent of a Leader
Themes from Ascent of a LeaderThemes from Ascent of a Leader
Themes from Ascent of a Leader
Ā 
7 Storey Mountain
7 Storey Mountain7 Storey Mountain
7 Storey Mountain
Ā 
Marketing 450 Guest Lecture
Marketing 450 Guest LectureMarketing 450 Guest Lecture
Marketing 450 Guest Lecture
Ā 
Fundamental Design Principles
Fundamental Design PrinciplesFundamental Design Principles
Fundamental Design Principles
Ā 
Striking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End DevelopmentStriking a Balance: Middle Ground in Front-End Development
Striking a Balance: Middle Ground in Front-End Development
Ā 
Echo Conference 2008
Echo Conference 2008Echo Conference 2008
Echo Conference 2008
Ā 
Bible Tech 2008
Bible Tech 2008Bible Tech 2008
Bible Tech 2008
Ā 

Recently uploaded

The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentationamedia6
Ā 
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightCheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightDelhi Call girls
Ā 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
Ā 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxjanettecruzeiro1
Ā 
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248  Good Looking standard Profil...Verified Trusted Call Girls AdugodišŸ’˜ 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248 Good Looking standard Profil...kumaririma588
Ā 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
Ā 
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
SCRIP Lua HTTP PROGRACMACION PLC  WECON CASCRIP Lua HTTP PROGRACMACION PLC  WECON CA
SCRIP Lua HTTP PROGRACMACION PLC WECON CANestorGamez6
Ā 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
Ā 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Delhi Call girls
Ā 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
Ā 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...Call Girls in Nagpur High Profile
Ā 
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļø
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļøCall Girls in Kalkaji Delhi 8264348440 call girls ā¤ļø
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļøsoniya singh
Ā 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Douxkojalkojal131
Ā 
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...Suhani Kapoor
Ā 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Yantram Animation Studio Corporation
Ā 
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk Gurgaon
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk GurgaonCheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk Gurgaon
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk GurgaonDelhi Call girls
Ā 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiSuhani Kapoor
Ā 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...ranjana rawat
Ā 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...home
Ā 

Recently uploaded (20)

The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentation
Ā 
young call girls in Pandav nagar šŸ” 9953056974 šŸ” Delhi escort Service
young call girls in Pandav nagar šŸ” 9953056974 šŸ” Delhi escort Serviceyoung call girls in Pandav nagar šŸ” 9953056974 šŸ” Delhi escort Service
young call girls in Pandav nagar šŸ” 9953056974 šŸ” Delhi escort Service
Ā 
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightCheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Ā 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Ā 
SD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptxSD_The MATATAG Curriculum Training Design.pptx
SD_The MATATAG Curriculum Training Design.pptx
Ā 
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248 Good Looking standard Profil...
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248  Good Looking standard Profil...Verified Trusted Call Girls AdugodišŸ’˜ 9352852248  Good Looking standard Profil...
Verified Trusted Call Girls AdugodišŸ’˜ 9352852248 Good Looking standard Profil...
Ā 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
Ā 
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
SCRIP Lua HTTP PROGRACMACION PLC  WECON CASCRIP Lua HTTP PROGRACMACION PLC  WECON CA
SCRIP Lua HTTP PROGRACMACION PLC WECON CA
Ā 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
Ā 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Ā 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
Ā 
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
VVIP Pune Call Girls Hadapsar (7001035870) Pune Escorts Nearby with Complete ...
Ā 
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļø
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļøCall Girls in Kalkaji Delhi 8264348440 call girls ā¤ļø
Call Girls in Kalkaji Delhi 8264348440 call girls ā¤ļø
Ā 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Ā 
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...
VIP Russian Call Girls in Gorakhpur Deepika 8250192130 Independent Escort Ser...
Ā 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Ā 
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk Gurgaon
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk GurgaonCheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk Gurgaon
Cheap Rate āž„8448380779 ā–»Call Girls In Iffco Chowk Gurgaon
Ā 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
Ā 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
Ā 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Ā 

Think Vitamin CSS

  • 1. THE WHY, HOW, AND WHEN? of CSS FRAMEWORKS http://thinkvitamin.com/online-conferences/
  • 2. Just a brief intro, then weā€™ll dig right into the good stuļ¬€... Iā€™m Nathan. I am a designer (slash) front-end developer at Fellowship Technologies. http://fellowshiptech.com/
  • 3. You probably know me as the guy who made this... http://960.gs/
  • 4. But Iā€™m not (entirely) one dimensional. Today, I we are going to discuss some of the beneļ¬ts (and drawbacks) of using CSS frameworks such as...
  • 6. ā€œAny suļ¬ƒciently advanced technology is indistinguishable from magic.ā€ this scares me ā€” Arthur C. Clarke http://en.wikipedia.org/wiki/Clarke's_three_laws
  • 7. You know why? CSS frameworks are not magic. Because CSS itself isnā€™t. Letā€™s not treat code like itā€™s mystical. (Same for jQuery. But thatā€™s another soapbox entirely.)
  • 8. Veteran ā€œninjasā€ master a variety of tools ā€“ Not just one. FRAMEWORK BY H AND Use a framework as an extension of yourself ā€“ Not just as a crutch. http://imdb.com/title/tt1046173/
  • 9. WHY use a Framework? + Increase eļ¬ƒciency + Ease of maintenance + Code consistency + Repeatable process + Browser tested + CMS driven templates
  • 10. WHY not? ā€“ Learning curve ā€“ Code feels foreign ā€“ Bloated HTML ā€“ Longhand is quicker? ā€“ Bloated CSS ā€“ Unsemantic classes
  • 11. I have found that many of those who cry ā€œbloatā€ (as a reason not to use frameworks) are themselves guilty of not doing all they can to reduce client-side latency. For instance, referencing multiple CSS ļ¬les of the same media type is wasteful because it necessitates an HTTP request for each ļ¬le, thereby delaying page rendering until all the ļ¬les have been downloaded and parsed. Additionally, whitespace can quickly add up: newline characters, tabbed (or spaced) indentation, etc... ā€” Nathan Smith (.Net Magazine July 2010)
  • 12. ... Regardless of if you are using a CSS framework, you can and should be using techniques to mitigate the impact of CSS downloads, including miniļ¬cation and concatenation ā€“ two fancy terms that simply refer to the removal of unnecessary whitespace, and combining multiple CSS ļ¬les into one... If you want to minify your CSS manually, I would recommend CSS Driveā€™s compressor. ā€” Nathan Smith (.Net Magazine July 2010) http://www.cssdrive.com/index.php/main/csscompressor/
  • 14. DIV + SPAN ARE SEMANTICALLY MEANINGLESS (aka NEUTRAL) The div and span elements, in conjunction with the id and class attributes, oļ¬€er a generic mechanism for adding structure to documents. These elements deļ¬ne content to be inline (span) or block-level (div) but impose no other presentational idioms on the content. ā€” World Wide Web Consortium (W3C) http://www.w3.org/TR/html401/struct/global.html#h-7.5.4
  • 15. ā€œSemantic Webā€ doesnā€™t involve CSS http://www.w3.org/DesignIssues/Semantic.html
  • 16. SORRY CSS... YOU WERENā€™T INVITED TO THIS PARTY. WE STILL YOU. The term ā€œSemantic Webā€ refers to W3Cā€™s vision of the Web of linked data. Semantic Web technologies enable people to create data stores on the Web, build vocabularies, and write rules for handling data. Linked data are empowered by technologies such as RDF, SPARQL, OWL, and SKOS. ā€” World Wide Web Consortium (W3C) http://www.w3.org/standards/semanticweb/
  • 17. DIV + ID / CLASS = ZERO SEMANTIC VALUE HTML5 TAGS = RICH SEMANTIC VALUE <div class="header"> <header> ... ... </div> </header> <div class="nav"> <nav> ... ... </div> </nav> <div class="article"> <article> ... ... </div> </article> <div class="footer"> <footer> ... ... </div> </footer>
  • 18. Semantics live here <tag class="peanut_butter jelly">Yummy content</tag> Not here
  • 19. If semantics keep you up at night... try SASS! http://sass-lang.com/
  • 20. Now that the ranting is done... HOW do I use a CSS framework?
  • 21. CSS Framework Comparison Matrix ā€“ Sounds really oļ¬ƒcial, huh? Grid Typography PSD ļ¬les Form styles Print styles ā€œPluginsā€ RTL lang Blueprint āœ“ āœ“ āœ“ āœ“ āœ“ āœ“ āœ“ YUI āœ“ āœ“ āœ“ āœ“ āœ“ āœ“ 960.gs āœ“ āœ“ āœ“* āœ“ 1KB Grid āœ“
  • 22. * The 960 Grid System has templates for... + Acorn + Corel DRAW + Adobe Fireworks + Expression Design + Adobe Flash + GIMP + Adobe InDesign + InkScape + Adobe Illustrator + OmniGraļ¬„e + Adobe Photoshop + Visio ... and printable PDF sketch sheets. http://960.gs/
  • 23. Example of Blueprint HTML <div class="container"> <div class="span-8"> 1/3 width </div> <div class="span-8"> 1/3 width </div> <div class="span-8 last"> 1/3 width </div> <div class="span-12"> <div class="span-6"> 1/8 width </div> <div class="span-6 last"> 1/4 width </div> </div> <div class="span-12 last"> <div class="span-6 prepend-3 append-3 last"> 1/4 width </div> </div> </div> http://blueprintcss.org/
  • 24. Comparable example of 960.gs HTML (24-col) <div class="container_24"> <div class="grid_8"> 1/3 width </div> <div class="grid_8"> 1/3 width </div> <div class="grid_8"> 1/3 width </div> <div class="grid_12"> <div class="grid_6 alpha"> 1/8 width </div> <div class="grid_6 omega"> 1/4 width </div> </div> <div class="grid_12"> <div class="grid_6 prefix_3 suffix_3 alpha omega"> 1/4 width </div> </div> </div> http://960.gs/
  • 25. Example of Blueprint CSS .span-1, .pull-1, .span-2, .pull-2, ... { ... { float: left; float: left; margin-right: 10px; position:relative; } } .span-1 { .pull-1 { width: 30px; margin-left: -40px; } } .prepend-1 { .push-1, padding-left: 40px; .push-2, } ... { float: right; .append-1 { position:relative; padding-right: 40px; } } .push-1 { .last { margin: 0 -40px 1.5em 40px; margin-right: 0; } } http://blueprintcss.org/
  • 26. Example of 960.gs CSS (24-col) .container_24 .grid_1, .push_1, .container_24 .grid_2, .pull_1, ... { .push_2, display: inline; .pull_2 { float: left; position: relative; margin-left: 5px; } margin-right: 5px; } .container_24 .push_1 { left: 40px; .container_24 .grid_1 { } width: 30px; } .container_24 .pull_1 { right: 40px; .container_24 .prefix_1 { } padding-left: 40px; } .container_24 .suffix_1 { padding-right: 40px; Note: Whereas Blueprintā€™s push + pull } classes are used for content (oļ¬€set .alpha { margin-left: 0; images / quotes), the push + pull classes } in 960.gs are used to rearrange entire .omega { } margin-right: 0; columns, independent of source order. This has practical implications for SEO. http://960.gs/
  • 28. 960 (24-COL) GRID DIMENSIONS ā€“Ā Whatā€™s the diļ¬€erence? Glad you asked...
  • 29. Blueprintā€™s text can touch left / right edge of browser. Troublesome on mobile.
  • 30. 960.gs has a 5px (24-col) or 10px (12, 16-col) buļ¬€er on left / right side.
  • 31. YUI 3ā€™s grid is ļ¬‚uid. It doesnā€™t use any ļ¬‚oats. WHAT!? <div class="container"> <div class="yui3-g"> <div class="yui3-u-1-2"> 1/2 width </div> <div class="yui3-u-1-2"> 1/2 width </div> </div> <div class="yui3-g"> <div class="yui3-u-1-24"> 1/24 width </div> <div class="yui3-u-23-24"> 23/24 width </div> </div> </div> http://developer.yahoo.com/yui/3/
  • 32. .yui3-g { /* webkit: collapse white-space between units */ Example of YUI 3 Grid CSS letter-spacing: -0.31em; /* reset IE < 8 */ *letter-spacing: normal; /* IE < 8 && gecko: collapse white-space between units */ word-spacing: -0.43em; } Note: Because nothing is ļ¬‚oated in YUI, this means that no additional ļ¬les are .yui3-u, .yui3-u-1, needed in order to support languages that .yui3-u-1-2, ... { display: inline-block; read right-to-left (Hebrew, Arabic, etc). /* IE < 8: fake inline-block */ zoom: 1; *display: inline; letter-spacing: normal; word-spacing: normal; But because everything is essentially } vertical-align: top; display: inline-block, and is ļ¬‚uid width, .yui3-u-1 { this also means columns cannot be display: block; } rearranged for SEO purposes. Additionally, .yui3-u-1-2 { an extra wrapping <div> is required to width: 50%; } create gutters between content areas. .yui3-u-1-3 { width: 33.33333%; } http://developer.yahoo.com/yui/3/
  • 33. BROWSER ROUNDING % INCONSISTENCIES http://host.sonspring.com/yui3_grid/
  • 35. 1KB Grid ā€“ Entire CSS ļ¬le! .grid_1 { width:60px; } .grid_2 { width:140px; } .grid_3 { width:220px; } .grid_4 { width:300px; } .grid_5 { width:380px; } .grid_6 { width:460px; } .grid_7 .grid_8 { { width:540px; width:620px; } } The 1KB Grid has everything you .grid_9 .grid_10 { { width:700px; width:780px; } } need, and nothing you donā€™t. .grid_11 { width:860px; } .grid_12 { width:940px; } .column { Okay, maybe it doesnā€™t have everything margin: 0 10px; overflow: hidden; you need. It is ā€“ after all ā€“ less than 1 float: left; display: inline; kilobyte of code, so it canā€™t do it all. } .row { width: 960px; margin: 0 auto; No right-to-left support. No SEO column } overflow: hidden; re-ordering. But it is incredibly eļ¬ƒcient! .row .row { margin: 0 -10px; width: auto; The 960 Grid System is 5.5KB. You can } display: inline-block; think of the 1KB Grid as a ā€œliteā€ version. http://1kbgrid.com/
  • 36. Example of 1KB Grid HTML <div class="row"> <div class="column grid_6"> <div class="row"> <div class="column grid_6"> 1/2 width </div> </div> <div class="row"> <div class="column grid_2"> 1/6 width </div> <div class="column grid_2"> 1/6 width </div> <div class="column grid_2"> 1/6 width </div> </div> </div> <div class="column grid_6"> 1/2 width </div> </div> http://1kbgrid.com/
  • 37. So which CSS framework is the best? It depends... + What size site are you building? + Are you working alone or with a team? + Is pixel precision a make-or-break factor? + Do you need right-to-left language support? + Is your layout complex enough to merit SEO? + Do you want ready-made design or just a grid?
  • 38. YUI 3.0 Grid Pros: Cons: + Fluid (or ļ¬xed) Width ā€“ Source dependent layout + Easy RTL support ā€“ No gutters by default + Tested by Yahoo! devs ā€“ Rounding % inconsistencies + Part of a larger ecosystem Use when: You need a ļ¬‚exible layout, and when a margin of error Ā± a few pixels is acceptable. http://developer.yahoo.com/yui/3/
  • 39. Blueprint Pros: Cons: + Ruby build scripts ā€“ Source dependent layout + Form, button, tab ā€œpluginsā€ ā€“ No outer gutters by default + Extensive typography ā€“ Design presuppositions + Print stylesheet (could be a positive though) Use when: You want a design that is ready to go ā€œout of the boxā€ with many of the default details handled for you by default. You want to generate grids via Ruby scripts. http://blueprintcss.org/
  • 40. 960.gs Pros: Cons: + 12, 16, or 24 column grids ā€“ Less features than YUI / BP + PS + FW plugins, templates ā€“ Focuses solely on grids + Possible SEO beneļ¬ts (could be a positive though) + IA, Designer, Dev friendly Use when: Building a site with layouts driven by a CMS. If you are doing rapid prototyping or have IA > Designer > Dev workļ¬‚ow. Want layout to diļ¬€er from source order. http://960.gs/
  • 41. 1KB Grid Pros: Cons: + Handy grid generator tool ā€“ Source dependent layout + Easy to get started ā€“ Features < than YUI / BP / 960 + Lightweight code ā€“ Focuses solely on grids + No extra nesting classes (could be a positive though) Use when: You are building a site that needs a grid layout, but the siteā€™s requirements do not necessitate the overhead of a robust CSS framework. Or code size is a concern. http://1kbgrid.com/
  • 42. So, othersā€™ frameworks are ļ¬ne, but... WHEN should I roll my own framework?
  • 43. When to build your own... āœ“ You have a speciļ¬c need no other framework addresses āœ“ You require a grid that is atypical of common frameworks āœ“ To try your hand at architecting something others may use Pros: Cons: + 100% control over code ā€“ Debugging is all your burden + Build only what you need ā€“ Re-inventing the wheel?
  • 45. 5 Simple Steps to Designing Grid Systems A ļ¬ve-part series by Mark Boulton. http://www.markboulton.co.uk/journal/comments/ļ¬ve-simple-steps-to-designing-grid-systems-part-1
  • 46. Mark Boultonā€™s publishing company ā€“ Five Simple Steps http://ļ¬vesimplesteps.com/
  • 47. ā€œGrid computing... and Designā€ ā€“ by Khoi Vinh http://www.subtraction.com/2004/12/31/grid-computi
  • 51. FURTHER READING... Frameworks for Designers ā€“ Jeļ¬€ Croft ā€” http://alistapart.com/articles/frameworksfordesigners Smart CSS ainā€™t always sexy CSS ā€“ Martin Ringlein ā€” http://digital-web.com/articles/smart_CSS_aint_always_sexy_CSS/ Object Oriented CSS ā€“ Nicole Sullivan ā€” http://wiki.github.com/stubbornella/oocss/
  • 52. Questions? ā€” http://twitter.com/nathansmith ā€” http://sonspring.com/contact Get the slides... ā€” http://slideshare.net/nathansmith/think-vitamin-css