SlideShare a Scribd company logo
1 of 111
OUR BEST PRACTICES ARE
               KILLING US




  photo by Joshua Stearns
                            Nicole Sullivan
Wednesday, March 30, 2011
WHAT WE WILL COVER:


    ā–   We have a problem
    ā–   CSS is not to blame
    ā–   Tools wonā€™t solve it, but they can help




Wednesday, March 30, 2011
YUMMY DATA FROM
                          FACEBOOK




Wednesday, March 30, 2011
FACEBOOK BLUE



                             261
Wednesday, March 30, 2011
UNIQUE COLORS



                             548
                               unique hex values



                                                   Facebook
Wednesday, March 30, 2011
COLORS



                            6498
                            color declarations



                                                 Facebook
Wednesday, March 30, 2011
YUMMY DATA FROM
                          SALESFORCE

Wednesday, March 30, 2011
padding
Wednesday, March 30, 2011
3,668
                             padding declarations




Wednesday, March 30, 2011
ARE NICOLEā€™S CLIENTS
             EXCEPTIONALLY MESSY?




Wednesday, March 30, 2011
ALEXA TOP 1000 STUDY
                            with Stoyan Stefanov




Wednesday, March 30, 2011
h1-h6
Wednesday, March 30, 2011
511
                            declarations setting styles for h1-h6


  56% >10
  9% >100
Wednesday, March 30, 2011
!important

Wednesday, March 30, 2011
!IMPORTANT



                             518
                            declarations using important



 12% have greater than 50
Wednesday, March 30, 2011
ļ¬‚oat
Wednesday, March 30, 2011
733
                            declarations ļ¬‚oated elements


  56% > 10
 13% > 100
Wednesday, March 30, 2011
font-size
Wednesday, March 30, 2011
FONT-SIZE



                               889
                            declarations changed the font-size


 78% >10
 23% >100
Wednesday, March 30, 2011
DOES THIS APPLY TO YOU?
                   Do your websites have the same issues? Workshop




Wednesday, March 30, 2011
SO, DUPLICATION IS A
                     PROBLEM AT:
    ā–   Facebook
    ā–   Salesforce
    ā–   w3c
    ā–   Box.net
    ā–   the Alexa Top 1000 sites
    ā–   Government websites
    ā–   Small and large businesses

Wednesday, March 30, 2011
INSANITY:
                            doing the same thing over and over
                              and expecting different results




Wednesday, March 30, 2011
STOP POINTING FINGERS
                            the truth is, we all have this problem

                                  http://www.ļ¬‚ickr.com/photos/illumiquest/2749137895/sizes/l/in/photostream/

Wednesday, March 30, 2011
ā€œJAVASCRIPT DOESNā€™T SUCK
                      Youā€™re just doing it wrong.ā€ -- Douglas Crockford




Wednesday, March 30, 2011
CSS
         ā€œJAVASCRIPT DOESNā€™T SUCK
                      Youā€™re just doing it wrong.ā€ -- Douglas Crockford




Wednesday, March 30, 2011
ABOUT CSS
                            CSS (much like JS) will let
                                you do anything
                             (no matter how stupid)


                                     wheeee!

Wednesday, March 30, 2011
THE POINT
               IS...
       That we donā€™t have to do
       stupid things, just because
                 we can.




Wednesday, March 30, 2011
SO, WHAT ARE THE STUPID
            THINGS?
                            Best Practice Myths




Wednesday, March 30, 2011
THREE BEST PRACTICE
                          MYTHS:


    ā–   Donā€™t add any extra elements
    ā–   Donā€™t add classes (Classitis! Ahhh!)
    ā–   Use descendent selectors exclusively




Wednesday, March 30, 2011
WHAT HAPPENS NEXT?
                 SPECIFICITY WARS




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION


                                elements



                               & pseudo elements




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION


                              classes           elements



                            & pseudo classes   & pseudo elements
                              & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION


                            IDs     classes           elements



                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION


             inline         IDs     classes           elements



                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements



                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements

                                                            3
                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements

                                        2                   3
                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements

                             1          2                   3
                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements

                   0         1          2                   3
                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
SPECIFICITY - THE SIMPLE
                   VERSION

                #sidebar ul li a.myclass:hover{}
             inline         IDs     classes           elements

                   0         1          2                   3
                                  & pseudo classes   & pseudo elements
                                    & attributes




Wednesday, March 30, 2011
UNIVERSAL SELECTOR

                                  * {}
             inline         IDs          classes         elements



                                     & pseudo classes   & pseudo elements
                                       & attributes




Wednesday, March 30, 2011
UNIVERSAL SELECTOR

                                  * {}
             inline         IDs          classes         elements

                                                              0
                                     & pseudo classes   & pseudo elements
                                       & attributes




Wednesday, March 30, 2011
UNIVERSAL SELECTOR

                                  * {}
             inline         IDs          classes         elements

                                           0                  0
                                     & pseudo classes   & pseudo elements
                                       & attributes




Wednesday, March 30, 2011
UNIVERSAL SELECTOR

                                  * {}
             inline         IDs          classes         elements

                            0              0                  0
                                     & pseudo classes   & pseudo elements
                                       & attributes




Wednesday, March 30, 2011
UNIVERSAL SELECTOR

                                  * {}
             inline         IDs          classes         elements

                   0        0              0                  0
                                     & pseudo classes   & pseudo elements
                                       & attributes




Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements



                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                                                            0
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                                         1                  0
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                     0                   1                  0
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                 0                   0                   1                  0
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements



                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                                                            10
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                                        0                   10
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                                     0                  0                   10
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CONCATENATING
                              SPECIFICITY
                      .item{color: blue;}

                      ul li li li li li li li li li{color: red;}




             inline                 IDs             classes           elements

                 0                   0                  0                   10
                                                  & pseudo classes   & pseudo elements
                                                    & attributes

Wednesday, March 30, 2011
CLASS ORDER


                  <p class=ā€message errorā€>Borken!</p>




Wednesday, March 30, 2011
CLASS ORDER
                    The order of the classes makes no difference.



                  <p class=ā€message errorā€>Borken!</p>




Wednesday, March 30, 2011
SITE-WIDE HEADINGS

                     h1{color:   #333;   font-size:   24px;   font-weight:   bold}
                     h2{color:   #333;   font-size:   19px;   font-weight:   bold}
                     h3{color:   #333;   font-size:   17px;   font-weight:   bold}
                     h4{color:   #333;   font-size:   15px;   font-weight:   bold}
                     h5{color:   #111;   font-size:   13px;   font-weight:   bold}
                     h6{color:   #111;   font-size:   12px;   font-weight:   bold}

             inline                      IDs             classes              elements



                                                       & pseudo classes      & pseudo elements
                                                         & attributes
Wednesday, March 30, 2011
SITE-WIDE HEADINGS

                     h1{color:   #333;   font-size:   24px;   font-weight:   bold}
                     h2{color:   #333;   font-size:   19px;   font-weight:   bold}
                     h3{color:   #333;   font-size:   17px;   font-weight:   bold}
                     h4{color:   #333;   font-size:   15px;   font-weight:   bold}
                     h5{color:   #111;   font-size:   13px;   font-weight:   bold}
                     h6{color:   #111;   font-size:   12px;   font-weight:   bold}

             inline                      IDs             classes              elements

                                                                                     1
                                                       & pseudo classes      & pseudo elements
                                                         & attributes
Wednesday, March 30, 2011
SITE-WIDE HEADINGS

                     h1{color:   #333;   font-size:   24px;   font-weight:   bold}
                     h2{color:   #333;   font-size:   19px;   font-weight:   bold}
                     h3{color:   #333;   font-size:   17px;   font-weight:   bold}
                     h4{color:   #333;   font-size:   15px;   font-weight:   bold}
                     h5{color:   #111;   font-size:   13px;   font-weight:   bold}
                     h6{color:   #111;   font-size:   12px;   font-weight:   bold}

             inline                      IDs             classes              elements

                                                              0                      1
                                                       & pseudo classes      & pseudo elements
                                                         & attributes
Wednesday, March 30, 2011
SITE-WIDE HEADINGS

                     h1{color:   #333;   font-size:   24px;   font-weight:   bold}
                     h2{color:   #333;   font-size:   19px;   font-weight:   bold}
                     h3{color:   #333;   font-size:   17px;   font-weight:   bold}
                     h4{color:   #333;   font-size:   15px;   font-weight:   bold}
                     h5{color:   #111;   font-size:   13px;   font-weight:   bold}
                     h6{color:   #111;   font-size:   12px;   font-weight:   bold}

             inline                      IDs             classes              elements

                                         0                    0                      1
                                                       & pseudo classes      & pseudo elements
                                                         & attributes
Wednesday, March 30, 2011
SITE-WIDE HEADINGS

                     h1{color:   #333;   font-size:   24px;   font-weight:   bold}
                     h2{color:   #333;   font-size:   19px;   font-weight:   bold}
                     h3{color:   #333;   font-size:   17px;   font-weight:   bold}
                     h4{color:   #333;   font-size:   15px;   font-weight:   bold}
                     h5{color:   #111;   font-size:   13px;   font-weight:   bold}
                     h6{color:   #111;   font-size:   12px;   font-weight:   bold}

             inline                      IDs             classes              elements

                  0                      0                    0                      1
                                                       & pseudo classes      & pseudo elements
                                                         & attributes
Wednesday, March 30, 2011
#sidebar




Wednesday, March 30, 2011
h3 {
                              color: #797979;
                              font-size: 12px;
                              font-weight: bold;
                              border-bottom: 1px solid #c5c5c5;
                              padding-bottom: 5px;
                            }




Wednesday, March 30, 2011
HOW DO YOU GET THE H3
       TO LOOK DIFFERENT?
                                   (but only in the sidebar)
                       (and using the semantically appropriate heading)




Wednesday, March 30, 2011
#SIDEBAR H3
      h1{color: #333; font-size: 24px; font-weight: bold}
      h2{color: #333; font-size: 19px; font-weight: bold}
      h3{color: #333; font-size: 17px; font-weight: bold}
      #sidebar h3 {
        color: #797979; font-size: 12px;font-weight: bold;
        border-bottom: 1px solid #c5c5c5; padding-bottom: 5px;
      }
      h4{color: #333; font-size: 15px; font-weight: bold}
      h5{color: #111; font-size: 13px; font-weight: bold}
      h6{color: #111; font-size: 12px; font-weight: bold}




Wednesday, March 30, 2011
THEN, YOUR DESIGNER
      GIVES YOU A NEW MOCK

                            h3 {
                              color: #555;
                              font-size: 13px;
                              font-weight: bold;
                              background-color: #deeef8;
                              padding: 5px;
                              margin: 10px 0;
                            }




Wednesday, March 30, 2011
ADD IT TO THE STYLESHEET
             h1{color: #333; font-size: 24px; font-weight: bold}
             h2{color: #333; font-size: 19px; font-weight: bold}
             h3{color: #333; font-size: 17px; font-weight: bold}
             #sidebar h3{
               color: #797979; font-size: 12px; font-weight: bold;
               border-bottom: 1px solid #c5c5c5; padding-bottom: 5px;
             }
             #sidebar .account h3{
               color: #555; font-size: 13px; font-weight: bold;
               background-color: #deeef8; padding: 5px; margin: 10px 0;
             }
             h4{color: #333; font-size: 15px; font-weight: bold}
             h5{color: #111; font-size: 13px; font-weight: bold}
             h6{color: #111; font-size: 12px; font-weight: bold}




Wednesday, March 30, 2011
WHAT IS HAPPENING WITH
       THE SPECIFICITY?
      h3{...}



      #sidebar h3{...}



      #sidebar .account h3{...}




Wednesday, March 30, 2011
WHAT IS HAPPENING WITH
       THE SPECIFICITY?
      h3{...}                     0   0   0   1

      #sidebar h3{...}



      #sidebar .account h3{...}




Wednesday, March 30, 2011
WHAT IS HAPPENING WITH
       THE SPECIFICITY?
      h3{...}                     0   0   0   1

      #sidebar h3{...}            0   1   0   1

      #sidebar .account h3{...}




Wednesday, March 30, 2011
WHAT IS HAPPENING WITH
       THE SPECIFICITY?
      h3{...}                     0   0   0   1

      #sidebar h3{...}            0   1   0   1

      #sidebar .account h3{...}   0   1   1   1




Wednesday, March 30, 2011
THE SITE HAS A WEATHER
         MODULE IN THE SIDEBAR

                            h2
                                                      h3


                            #sidebar .weatherMod h3{
                              color: #fff;
                              text-transform: uppercase;
                            }

Wednesday, March 30, 2011
IMAGINE YOU RECEIVED
              THIS WIREFRAME

                                                            h3

                            MORN   NOON   EVENING   NIGHT   h3
                            27Ā°     35Ā°    38Ā°       30Ā°




Wednesday, March 30, 2011
IMAGINE YOU RECEIVED
              THIS WIREFRAME

                                                                   h3

                                   MORN   NOON   EVENING   NIGHT   h3
                                   27Ā°     35Ā°    38Ā°       30Ā°




                     What if the visual designer decided that fewer
                   users would be interested in the by-hour weather,
                     so those titles should be smaller and not bold
Wednesday, March 30, 2011
NOTICE ANYTHING ABOUT
     NESTING & SPECIFICITY?
                                                            h3

                            MORN   NOON   EVENING   NIGHT   h3
                            27Ā°     35Ā°    38Ā°       30Ā°




   #sidebar .weatherMod h3{}


   #sidebar .weatherMod .hourly h3{}


Wednesday, March 30, 2011
NOTICE ANYTHING ABOUT
     NESTING & SPECIFICITY?
                                                                h3

                            MORN   NOON   EVENING   NIGHT       h3
                            27Ā°     35Ā°    38Ā°       30Ā°




   #sidebar .weatherMod h3{}
                                                    0       1    1   1
   #sidebar .weatherMod .hourly h3{}


Wednesday, March 30, 2011
NOTICE ANYTHING ABOUT
     NESTING & SPECIFICITY?
                                                                h3

                            MORN   NOON   EVENING   NIGHT       h3
                            27Ā°     35Ā°    38Ā°       30Ā°




   #sidebar .weatherMod h3{}
                                                    0       1    1   1
   #sidebar .weatherMod .hourly h3{}                0       1    2   1

Wednesday, March 30, 2011
SIX MONTHS LATER, IT
                   GETS COMPLICATED


    ā–   Speciļ¬city grows over time
    ā–   Difļ¬cult to tell which rules will take precedence
    ā–   Developers end up coding by ļ¬rebug




Wednesday, March 30, 2011
WHAT HAPPENS WHEN...
      there are no more ways to make a rule more speciļ¬c than the
                    one you are trying to override?




Wednesday, March 30, 2011
<h3 style=ā€color: red; font-weight: bold; font-size: 20px;ā€>My
     shiny new heading level 3</h3>




          WHAT HAPPENS WHEN...
      there are no more ways to make a rule more speciļ¬c than the
                    one you are trying to override?




Wednesday, March 30, 2011
<h3 style=ā€color: red; font-weight: bold; font-size: 20px;ā€>My
     shiny new heading level 3</h3>




          WHAT HAPPENS WHEN...
      there are no more ways to make a rule more speciļ¬c than the
                    one you are trying to override?


                            1   0       0       0


Wednesday, March 30, 2011
AND THEN ANOTHER
                     DEVELOPER SAYS...
                     ā€œthis is gross! we should not be using inline-stylesā€
                      but, at this point, what choice to they have left?




Wednesday, March 30, 2011
#sidebar .weatherMod .hourly .tuesday h3{color: blue !important;}




          YOU MIGHT THINK
       !IMPORTANT WOULD END
                            the speciļ¬city war, not so.




Wednesday, March 30, 2011
#sidebar .weatherMod .hourly .tuesday h3{color: blue !important;}




          YOU MIGHT THINK
       !IMPORTANT WOULD END
                            the speciļ¬city war, not so.



                            0      0        0       0


Wednesday, March 30, 2011
#sidebar .weatherMod .hourly .tuesday h3{color: blue !important;}




          YOU MIGHT THINK
       !IMPORTANT WOULD END
                            the speciļ¬city war, not so.



                                            0        0    0      0


Wednesday, March 30, 2011
#sidebar .weatherMod .hourly .tuesday h3{color: blue !important;}




          YOU MIGHT THINK
       !IMPORTANT WOULD END
                                the speciļ¬city war, not so.



            0               1   3       1       0        0    0   0


Wednesday, March 30, 2011
HOSTILE CODE
                            ENVIRONMENT
    ā–   Two layers develop
    ā–   Speciļ¬city grows over time (more and more rules become
        important).
    ā–   Even more difļ¬cult to tell which rules will take precedence
    ā–   Developers always code by ļ¬rebug
    ā–   Eventually, it becomes impossible to get the look and feel you
        want.


Wednesday, March 30, 2011
SPECIFICITY AT ITā€™S WORST




                            normal
                                       IDs
                                     Classes
                                     Elements

Wednesday, March 30, 2011
SPECIFICITY AT ITā€™S WORST



                             inline   Inline Styles
                            normal
                                          IDs
                                        Classes
                                       Elements

Wednesday, March 30, 2011
SPECIFICITY AT ITā€™S WORST
                      !important          IDs
                                        Classes
                                       Elements
                             inline   Inline Styles
                            normal
                                          IDs
                                        Classes
                                       Elements

Wednesday, March 30, 2011
#sidebar




                            A Normal Heading Level 3




Wednesday, March 30, 2011
DUPLICATING PROPERTY
                 VALUE PAIRS
      h1{ margin: 10px 0; color: #333; font-size: 24px; font-weight: bold}
      h2{ margin: 10px 0; color: #333; font-size: 19px; font-weight: bold}
      h3{
        margin: 5px 0; color: #333; font-size: 17px; font-weight: bold
        }
      #sidebar .collaborators h3{
        margin: 5px 0; color: #333; font-size: 17px; font-weight: bold
        }
      #sidebar h3{color: #797979; font-size: 12px;font-weight: bold; border-bottom: 1px
      solid #c5c5c5; padding-bottom: 5px;}
      #sidebar .account h3{color: #555;font-size: 13px;font-weight: bold;background-color:
      #deeef8;padding: 5px;margin: 10px 0;}
      #sidebar .weatherMod h3{}
      #sidebar .weatherMod .hourly h3{}
      h4{ margin: 5px 0; color: #333; font-size: 15px; font-weight: bold}
      h5{ margin: 5px 0; color: #111; font-size: 13px; font-weight: bold}
      h6{ margin: 10px 0; color: #111; font-size: 12px; font-weight: bold}




Wednesday, March 30, 2011
THREE PROBLEMS


    ā–   Duplication of property value pairs
    ā–   Duplication of elements (h3)
    ā–   Growing Speciļ¬city




Wednesday, March 30, 2011
DUPLICATING ELEMENTS
      h1{}
      h2{}
      h3{}
      #sidebar              .collaborators h3{}
      #sidebar              h3{}
      #sidebar              .account h3{}
      #sidebar              .weatherMod h3{}
      #sidebar              .weatherMod .hourly h3{}
      h4{}
      h5{}
      h6{}




Wednesday, March 30, 2011
GROWING SPECIFICITY
      h1{}
      h2{}
      h3{}
      #sidebar              .collaborators h3{}
      #sidebar              h3{}
      #sidebar              .account h3{}
      #sidebar              .weatherMod h3{}
      #sidebar              .weatherMod .hourly h3{}
      h4{}
      h5{}
      h6{}




Wednesday, March 30, 2011
HOW DO WE SOLVE THESE
          PROBLEMS?
                      Examine our best practice myths rationally


    ā–   Add non-semantic elements judiciously
    ā–   Keep speciļ¬city as low as possible
    ā–   Abstract repeating visual patterns
    ā–   Use speciļ¬city to deļ¬ne your architecture




Wednesday, March 30, 2011
MEDIA BLOCK EXAMPLE




Wednesday, March 30, 2011
ALL OF THESE ARE THE
                      SAME OBJECT




Wednesday, March 30, 2011
WHAT DO WE KNOW?

                            ā– Can be nested
                            ā– Optional right button

                            ā– Must clearļ¬x




Wednesday, March 30, 2011
WHAT DONā€™T WE KNOW?

                            ā– Image width and decoration vary
                            ā– Right content is unknown

                            ā– Width unknown




Wednesday, March 30, 2011
SEPARATE STRUCTURE
                       FROM CHROME




Wednesday, March 30, 2011
A FEW LINES OF HTML...

            <div class="media attribution">
              <a href="http://twitter.com/stubbornella" class="img">
                <img src="mini.jpg" alt="Stubbornella" />
              </a>
              <div class="bd">@Stubbornella 14 minutes ago</div>
            </div>




Wednesday, March 30, 2011
4 LINES OF CSS...


                                  _




Wednesday, March 30, 2011
Wednesday, March 30, 2011
HTML SIZE
                     reduced by 50%




                                  by Stefan Parker
Wednesday, March 30, 2011
ā€œDue to these efforts, we cut our average
           CSS bytes per page by 19% (after gzip) and
           HTML bytes per page by 44% (before
           gzip).ā€



                            Jason Sobel
                            http://www.facebook.com/note.php?note_id=307069903919
Wednesday, March 30, 2011
Wednesday, March 30, 2011
GREAT DEVELOPERS CAN
          BUILD AMAZING THINGS
                        if we move worst-best practices out of our way




Wednesday, March 30, 2011
LETā€™S KEEP TALKING...
                                 www.stubbornella.org
                                   @stubbornella




                OOCSS Project: http://github.com/stubbornella/oocss/

Wednesday, March 30, 2011

More Related Content

What's hot

OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰
OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰
OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰NTT DATA Technology & Innovation
Ā 
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±Shohei Kobayashi
Ā 
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟Yuki Obara
Ā 
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdf
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdfCloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdf
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdfssuser1b6e8b
Ā 
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告Amazon Web Services Japan
Ā 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5www.netgains.org
Ā 
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆ
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆMySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆ
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆMasahiro Tomita
Ā 
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰ēœŸč”Œ 八ē”°
Ā 
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦Yugo Shimizu
Ā 
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptx
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptxCONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptx
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptxMisaelCruz29
Ā 
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V310åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3Kazuchika Sekiya
Ā 
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰é€Ÿēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰NTT DATA Technology & Innovation
Ā 
BEM It! for Brandwatch
BEM It! for BrandwatchBEM It! for Brandwatch
BEM It! for BrandwatchMax Shirshin
Ā 
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½ž
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½žć‚ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½ž
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½žMasahiko Ebisuda
Ā 
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼Tomoya Ishida
Ā 
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³seiichi arai
Ā 
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋Masaki Goto
Ā 
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†Shinya Nakajima
Ā 
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦Yoichi Sai
Ā 

What's hot (20)

OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰
OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰
OpenLineage ć«ć‚ˆć‚‹ Airflow ć®ćƒ‡ćƒ¼ć‚æę„ę­“ć®åŽé›†ćØåÆč¦–åŒ–ļ¼ˆAirflow Meetup Tokyo #3 ē™ŗč”Øč³‡ę–™ļ¼‰
Ā 
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±
RDBNoSQL恮åŸŗē¤ŽćØēµ„ćæåˆć‚ć›DBę§‹ęˆć‚’ć”ć‚‡ć£ćØć‚ˆćć™ć‚‹č©±
Ā 
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟
JbossćØtomcatć®ę€§čƒ½ć‚’ęÆ”ć¹ć¦ćæ恟
Ā 
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdf
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdfCloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdf
Cloudbase_ć‚µćƒ¼ćƒ’ć‚™ć‚¹ę¦‚č¦č³‡ę–™.pdf
Ā 
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告
[悈恏悏恋悋ć‚Æćƒ©ć‚¦ćƒ‰ćƒ‡ćƒ¼ć‚æćƒ™ćƒ¼ć‚¹] Amazon RDS for PostgreSQLꤜčؼ報告
Ā 
Introduction to Html5
Introduction to Html5Introduction to Html5
Introduction to Html5
Ā 
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆ
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆMySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆ
MySQLć®ę–‡å­—ć‚³ćƒ¼ćƒ‰äŗ‹ęƒ… 2017ē‰ˆ
Ā 
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰
GNU AGPLv3恫恤恄恦ļ¼ˆOn GNU AGPLv3ļ¼‰
Ā 
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦
PRD03 ꜀čæ‘ Power BI 恌 On-Premises ćØ仲č‰Æ恏ćŖć£ć¦ćć¦ćŠć‚Šć¾ć—ć¦
Ā 
Amazon SageMaker Studio Labē“¹ä»‹
Amazon SageMaker Studio Labē“¹ä»‹Amazon SageMaker Studio Labē“¹ä»‹
Amazon SageMaker Studio Labē“¹ä»‹
Ā 
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptx
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptxCONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptx
CONCEPTOS BASICOS PƁGINA WEB [Autoguardado].pptx
Ā 
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V310åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3
10åˆ†ć¦ć‚™ć‚ć‹ć‚‹OpenAPI V3
Ā 
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰é€Ÿēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰
速ēæ’ļ¼č«–ē†ćƒ¬ćƒ—ćƒŖć‚±ćƒ¼ć‚·ćƒ§ćƒ³ ļ½žåŸŗē¤Žć‹ć‚‰ęœ€ę–°å‹•å‘ć¾ć§ļ½žļ¼ˆPostgreSQL Conference Japan 2022 ē™ŗč”Øč³‡ę–™ļ¼‰
Ā 
BEM It! for Brandwatch
BEM It! for BrandwatchBEM It! for Brandwatch
BEM It! for Brandwatch
Ā 
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½ž
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½žć‚ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½ž
恂ćŖćŸć‚‚ć€Œé•ć„ćŒåˆ†ć‹ć‚‹äŗŗć€ć«ćŖć‚Šć¾ć—ć‚‡ć†ļ¼ ļ½ž Azure, AzureStack, AzureStack HCI ļ½ž
Ā 
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼
čŖ°ć§ć‚‚ć‚ć‹ć‚‹ļ¼AWS悒ä½æć£ć¦č¶…ē°”å˜ćƒ»ēŸ­ę™‚é–“ć§ć‚¹ćƒŖćƒ¼ćƒ©ćƒ³ćƒ‰ć‚¹ć‚±ćƒ¼ćƒ—ļ¼ˆęœ¬ē•Ŗćƒ»ć‚¹ćƒ†ćƒ¼ć‚øćƒ³ć‚°ćƒ»é–‹ē™ŗļ¼‰ē’°å¢ƒć‚’ä½œć£ć”悃恊恆ļ¼
Ā 
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³
AWS Glue悒ä½æć£ćŸ Serverless ETL ć®å®Ÿč£…ćƒ‘ć‚æćƒ¼ćƒ³
Ā 
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋
ć‚Ŗćƒ¼ćƒ—ćƒ³ć‚½ćƒ¼ć‚¹ć§ä½œć‚‹å‹•ē”»é…äæ”ć‚µć‚¤ćƒˆ OSC2013名古屋
Ā 
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†
GitHub Actions恧iOS恮CIć‚’å®Ÿē¾ć—ć‚ˆć†
Ā 
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦
Oracle恋悉amazon auroraćø恮ē§»č”Œć«ć‚€ć‘恦
Ā 

Similar to Our Best Practices Are Killing Us

Similar to Our Best Practices Are Killing Us (11)

JavaScript Secrets
JavaScript SecretsJavaScript Secrets
JavaScript Secrets
Ā 
E tourisme inspiratie dag presentatie
E tourisme inspiratie dag presentatieE tourisme inspiratie dag presentatie
E tourisme inspiratie dag presentatie
Ā 
Presentatie trendwatcher Vincent Everts - Inspiratiedag e-tourism
Presentatie trendwatcher Vincent Everts - Inspiratiedag e-tourismPresentatie trendwatcher Vincent Everts - Inspiratiedag e-tourism
Presentatie trendwatcher Vincent Everts - Inspiratiedag e-tourism
Ā 
The facilities of Features Drupal module
The facilities of Features Drupal moduleThe facilities of Features Drupal module
The facilities of Features Drupal module
Ā 
Envato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net MelbourneEnvato Dev Ops - Alt.Net Melbourne
Envato Dev Ops - Alt.Net Melbourne
Ā 
Future of digital presentation
Future of digital presentationFuture of digital presentation
Future of digital presentation
Ā 
Future of digital presentation
Future of digital presentationFuture of digital presentation
Future of digital presentation
Ā 
Building Your Business With Email Marketing
Building Your Business With Email MarketingBuilding Your Business With Email Marketing
Building Your Business With Email Marketing
Ā 
Stackbox CMS: Next-Generation Content Management
Stackbox CMS: Next-Generation Content ManagementStackbox CMS: Next-Generation Content Management
Stackbox CMS: Next-Generation Content Management
Ā 
Š§Ń‚Š¾ Š½Š¾Š²Š¾Š³Š¾ Š² CSS3
Š§Ń‚Š¾ Š½Š¾Š²Š¾Š³Š¾ Š² CSS3Š§Ń‚Š¾ Š½Š¾Š²Š¾Š³Š¾ Š² CSS3
Š§Ń‚Š¾ Š½Š¾Š²Š¾Š³Š¾ Š² CSS3
Ā 
Ruby goes to hollywood
Ruby goes to hollywoodRuby goes to hollywood
Ruby goes to hollywood
Ā 

More from Nicole Sullivan

Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS Nicole Sullivan
Ā 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceNicole Sullivan
Ā 
Don't feed the trolls
Don't feed the trollsDon't feed the trolls
Don't feed the trollsNicole Sullivan
Ā 
5 Mistakes of Massive CSS
5 Mistakes of Massive CSS5 Mistakes of Massive CSS
5 Mistakes of Massive CSSNicole Sullivan
Ā 
CSS Wish List @JSConf
CSS Wish List @JSConfCSS Wish List @JSConf
CSS Wish List @JSConfNicole Sullivan
Ā 
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...Nicole Sullivan
Ā 
Taming CSS Selectors
Taming CSS SelectorsTaming CSS Selectors
Taming CSS SelectorsNicole Sullivan
Ā 
The Fast And The Fabulous
The Fast And The FabulousThe Fast And The Fabulous
The Fast And The FabulousNicole Sullivan
Ā 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?Nicole Sullivan
Ā 
Design Fast Websites
Design Fast WebsitesDesign Fast Websites
Design Fast WebsitesNicole Sullivan
Ā 
7 Habits of Exceptional Performance
7 Habits of Exceptional Performance7 Habits of Exceptional Performance
7 Habits of Exceptional PerformanceNicole Sullivan
Ā 

More from Nicole Sullivan (15)

Building the Media Block in ReactJS
Building the Media Block in ReactJS Building the Media Block in ReactJS
Building the Media Block in ReactJS
Ā 
Why are you here?
Why are you here?Why are you here?
Why are you here?
Ā 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance
Ā 
Don't feed the trolls
Don't feed the trollsDon't feed the trolls
Don't feed the trolls
Ā 
CSS Power Tools
CSS Power ToolsCSS Power Tools
CSS Power Tools
Ā 
CSS Bloat!
CSS Bloat!CSS Bloat!
CSS Bloat!
Ā 
5 Mistakes of Massive CSS
5 Mistakes of Massive CSS5 Mistakes of Massive CSS
5 Mistakes of Massive CSS
Ā 
CSS Wish List @JSConf
CSS Wish List @JSConfCSS Wish List @JSConf
CSS Wish List @JSConf
Ā 
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective,  Ajax ...
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Ā 
Taming CSS Selectors
Taming CSS SelectorsTaming CSS Selectors
Taming CSS Selectors
Ā 
The Fast And The Fabulous
The Fast And The FabulousThe Fast And The Fabulous
The Fast And The Fabulous
Ā 
Pourquoi la performance?
Pourquoi la performance?Pourquoi la performance?
Pourquoi la performance?
Ā 
Design Fast Websites
Design Fast WebsitesDesign Fast Websites
Design Fast Websites
Ā 
7 Habits of Exceptional Performance
7 Habits of Exceptional Performance7 Habits of Exceptional Performance
7 Habits of Exceptional Performance
Ā 
After YSlow "A"
After YSlow "A"After YSlow "A"
After YSlow "A"
Ā 

Recently uploaded

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜RTylerCroy
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĆŗjo
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
Ā 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
Ā 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024The Digital Insurer
Ā 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
Ā 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
Ā 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Ā 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Ā 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024
Ā 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Ā 

Our Best Practices Are Killing Us

  • 1. OUR BEST PRACTICES ARE KILLING US photo by Joshua Stearns Nicole Sullivan Wednesday, March 30, 2011
  • 2. WHAT WE WILL COVER: ā– We have a problem ā– CSS is not to blame ā– Tools wonā€™t solve it, but they can help Wednesday, March 30, 2011
  • 3. YUMMY DATA FROM FACEBOOK Wednesday, March 30, 2011
  • 4. FACEBOOK BLUE 261 Wednesday, March 30, 2011
  • 5. UNIQUE COLORS 548 unique hex values Facebook Wednesday, March 30, 2011
  • 6. COLORS 6498 color declarations Facebook Wednesday, March 30, 2011
  • 7. YUMMY DATA FROM SALESFORCE Wednesday, March 30, 2011
  • 9. 3,668 padding declarations Wednesday, March 30, 2011
  • 10. ARE NICOLEā€™S CLIENTS EXCEPTIONALLY MESSY? Wednesday, March 30, 2011
  • 11. ALEXA TOP 1000 STUDY with Stoyan Stefanov Wednesday, March 30, 2011
  • 13. 511 declarations setting styles for h1-h6 56% >10 9% >100 Wednesday, March 30, 2011
  • 15. !IMPORTANT 518 declarations using important 12% have greater than 50 Wednesday, March 30, 2011
  • 17. 733 declarations ļ¬‚oated elements 56% > 10 13% > 100 Wednesday, March 30, 2011
  • 19. FONT-SIZE 889 declarations changed the font-size 78% >10 23% >100 Wednesday, March 30, 2011
  • 20. DOES THIS APPLY TO YOU? Do your websites have the same issues? Workshop Wednesday, March 30, 2011
  • 21. SO, DUPLICATION IS A PROBLEM AT: ā– Facebook ā– Salesforce ā– w3c ā– Box.net ā– the Alexa Top 1000 sites ā– Government websites ā– Small and large businesses Wednesday, March 30, 2011
  • 22. INSANITY: doing the same thing over and over and expecting different results Wednesday, March 30, 2011
  • 23. STOP POINTING FINGERS the truth is, we all have this problem http://www.ļ¬‚ickr.com/photos/illumiquest/2749137895/sizes/l/in/photostream/ Wednesday, March 30, 2011
  • 24. ā€œJAVASCRIPT DOESNā€™T SUCK Youā€™re just doing it wrong.ā€ -- Douglas Crockford Wednesday, March 30, 2011
  • 25. CSS ā€œJAVASCRIPT DOESNā€™T SUCK Youā€™re just doing it wrong.ā€ -- Douglas Crockford Wednesday, March 30, 2011
  • 26. ABOUT CSS CSS (much like JS) will let you do anything (no matter how stupid) wheeee! Wednesday, March 30, 2011
  • 27. THE POINT IS... That we donā€™t have to do stupid things, just because we can. Wednesday, March 30, 2011
  • 28. SO, WHAT ARE THE STUPID THINGS? Best Practice Myths Wednesday, March 30, 2011
  • 29. THREE BEST PRACTICE MYTHS: ā– Donā€™t add any extra elements ā– Donā€™t add classes (Classitis! Ahhh!) ā– Use descendent selectors exclusively Wednesday, March 30, 2011
  • 30. WHAT HAPPENS NEXT? SPECIFICITY WARS Wednesday, March 30, 2011
  • 31. SPECIFICITY - THE SIMPLE VERSION Wednesday, March 30, 2011
  • 32. SPECIFICITY - THE SIMPLE VERSION elements & pseudo elements Wednesday, March 30, 2011
  • 33. SPECIFICITY - THE SIMPLE VERSION classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 34. SPECIFICITY - THE SIMPLE VERSION IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 35. SPECIFICITY - THE SIMPLE VERSION inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 36. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 37. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements 3 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 38. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements 2 3 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 39. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements 1 2 3 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 40. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements 0 1 2 3 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 41. SPECIFICITY - THE SIMPLE VERSION #sidebar ul li a.myclass:hover{} inline IDs classes elements 0 1 2 3 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 42. UNIVERSAL SELECTOR * {} inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 43. UNIVERSAL SELECTOR * {} inline IDs classes elements 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 44. UNIVERSAL SELECTOR * {} inline IDs classes elements 0 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 45. UNIVERSAL SELECTOR * {} inline IDs classes elements 0 0 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 46. UNIVERSAL SELECTOR * {} inline IDs classes elements 0 0 0 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 47. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 48. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 49. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 1 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 50. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 1 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 51. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 0 1 0 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 52. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 53. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 10 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 54. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 10 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 55. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 0 10 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 56. CONCATENATING SPECIFICITY .item{color: blue;} ul li li li li li li li li li{color: red;} inline IDs classes elements 0 0 0 10 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 57. CLASS ORDER <p class=ā€message errorā€>Borken!</p> Wednesday, March 30, 2011
  • 58. CLASS ORDER The order of the classes makes no difference. <p class=ā€message errorā€>Borken!</p> Wednesday, March 30, 2011
  • 59. SITE-WIDE HEADINGS h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} inline IDs classes elements & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 60. SITE-WIDE HEADINGS h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} inline IDs classes elements 1 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 61. SITE-WIDE HEADINGS h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} inline IDs classes elements 0 1 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 62. SITE-WIDE HEADINGS h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} inline IDs classes elements 0 0 1 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 63. SITE-WIDE HEADINGS h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} inline IDs classes elements 0 0 0 1 & pseudo classes & pseudo elements & attributes Wednesday, March 30, 2011
  • 65. h3 { color: #797979; font-size: 12px; font-weight: bold; border-bottom: 1px solid #c5c5c5; padding-bottom: 5px; } Wednesday, March 30, 2011
  • 66. HOW DO YOU GET THE H3 TO LOOK DIFFERENT? (but only in the sidebar) (and using the semantically appropriate heading) Wednesday, March 30, 2011
  • 67. #SIDEBAR H3 h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} #sidebar h3 { color: #797979; font-size: 12px;font-weight: bold; border-bottom: 1px solid #c5c5c5; padding-bottom: 5px; } h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} Wednesday, March 30, 2011
  • 68. THEN, YOUR DESIGNER GIVES YOU A NEW MOCK h3 { color: #555; font-size: 13px; font-weight: bold; background-color: #deeef8; padding: 5px; margin: 10px 0; } Wednesday, March 30, 2011
  • 69. ADD IT TO THE STYLESHEET h1{color: #333; font-size: 24px; font-weight: bold} h2{color: #333; font-size: 19px; font-weight: bold} h3{color: #333; font-size: 17px; font-weight: bold} #sidebar h3{ color: #797979; font-size: 12px; font-weight: bold; border-bottom: 1px solid #c5c5c5; padding-bottom: 5px; } #sidebar .account h3{ color: #555; font-size: 13px; font-weight: bold; background-color: #deeef8; padding: 5px; margin: 10px 0; } h4{color: #333; font-size: 15px; font-weight: bold} h5{color: #111; font-size: 13px; font-weight: bold} h6{color: #111; font-size: 12px; font-weight: bold} Wednesday, March 30, 2011
  • 70. WHAT IS HAPPENING WITH THE SPECIFICITY? h3{...} #sidebar h3{...} #sidebar .account h3{...} Wednesday, March 30, 2011
  • 71. WHAT IS HAPPENING WITH THE SPECIFICITY? h3{...} 0 0 0 1 #sidebar h3{...} #sidebar .account h3{...} Wednesday, March 30, 2011
  • 72. WHAT IS HAPPENING WITH THE SPECIFICITY? h3{...} 0 0 0 1 #sidebar h3{...} 0 1 0 1 #sidebar .account h3{...} Wednesday, March 30, 2011
  • 73. WHAT IS HAPPENING WITH THE SPECIFICITY? h3{...} 0 0 0 1 #sidebar h3{...} 0 1 0 1 #sidebar .account h3{...} 0 1 1 1 Wednesday, March 30, 2011
  • 74. THE SITE HAS A WEATHER MODULE IN THE SIDEBAR h2 h3 #sidebar .weatherMod h3{ color: #fff; text-transform: uppercase; } Wednesday, March 30, 2011
  • 75. IMAGINE YOU RECEIVED THIS WIREFRAME h3 MORN NOON EVENING NIGHT h3 27Ā° 35Ā° 38Ā° 30Ā° Wednesday, March 30, 2011
  • 76. IMAGINE YOU RECEIVED THIS WIREFRAME h3 MORN NOON EVENING NIGHT h3 27Ā° 35Ā° 38Ā° 30Ā° What if the visual designer decided that fewer users would be interested in the by-hour weather, so those titles should be smaller and not bold Wednesday, March 30, 2011
  • 77. NOTICE ANYTHING ABOUT NESTING & SPECIFICITY? h3 MORN NOON EVENING NIGHT h3 27Ā° 35Ā° 38Ā° 30Ā° #sidebar .weatherMod h3{} #sidebar .weatherMod .hourly h3{} Wednesday, March 30, 2011
  • 78. NOTICE ANYTHING ABOUT NESTING & SPECIFICITY? h3 MORN NOON EVENING NIGHT h3 27Ā° 35Ā° 38Ā° 30Ā° #sidebar .weatherMod h3{} 0 1 1 1 #sidebar .weatherMod .hourly h3{} Wednesday, March 30, 2011
  • 79. NOTICE ANYTHING ABOUT NESTING & SPECIFICITY? h3 MORN NOON EVENING NIGHT h3 27Ā° 35Ā° 38Ā° 30Ā° #sidebar .weatherMod h3{} 0 1 1 1 #sidebar .weatherMod .hourly h3{} 0 1 2 1 Wednesday, March 30, 2011
  • 80. SIX MONTHS LATER, IT GETS COMPLICATED ā– Speciļ¬city grows over time ā– Difļ¬cult to tell which rules will take precedence ā– Developers end up coding by ļ¬rebug Wednesday, March 30, 2011
  • 81. WHAT HAPPENS WHEN... there are no more ways to make a rule more speciļ¬c than the one you are trying to override? Wednesday, March 30, 2011
  • 82. <h3 style=ā€color: red; font-weight: bold; font-size: 20px;ā€>My shiny new heading level 3</h3> WHAT HAPPENS WHEN... there are no more ways to make a rule more speciļ¬c than the one you are trying to override? Wednesday, March 30, 2011
  • 83. <h3 style=ā€color: red; font-weight: bold; font-size: 20px;ā€>My shiny new heading level 3</h3> WHAT HAPPENS WHEN... there are no more ways to make a rule more speciļ¬c than the one you are trying to override? 1 0 0 0 Wednesday, March 30, 2011
  • 84. AND THEN ANOTHER DEVELOPER SAYS... ā€œthis is gross! we should not be using inline-stylesā€ but, at this point, what choice to they have left? Wednesday, March 30, 2011
  • 85. #sidebar .weatherMod .hourly .tuesday h3{color: blue !important;} YOU MIGHT THINK !IMPORTANT WOULD END the speciļ¬city war, not so. Wednesday, March 30, 2011
  • 86. #sidebar .weatherMod .hourly .tuesday h3{color: blue !important;} YOU MIGHT THINK !IMPORTANT WOULD END the speciļ¬city war, not so. 0 0 0 0 Wednesday, March 30, 2011
  • 87. #sidebar .weatherMod .hourly .tuesday h3{color: blue !important;} YOU MIGHT THINK !IMPORTANT WOULD END the speciļ¬city war, not so. 0 0 0 0 Wednesday, March 30, 2011
  • 88. #sidebar .weatherMod .hourly .tuesday h3{color: blue !important;} YOU MIGHT THINK !IMPORTANT WOULD END the speciļ¬city war, not so. 0 1 3 1 0 0 0 0 Wednesday, March 30, 2011
  • 89. HOSTILE CODE ENVIRONMENT ā– Two layers develop ā– Speciļ¬city grows over time (more and more rules become important). ā– Even more difļ¬cult to tell which rules will take precedence ā– Developers always code by ļ¬rebug ā– Eventually, it becomes impossible to get the look and feel you want. Wednesday, March 30, 2011
  • 90. SPECIFICITY AT ITā€™S WORST normal IDs Classes Elements Wednesday, March 30, 2011
  • 91. SPECIFICITY AT ITā€™S WORST inline Inline Styles normal IDs Classes Elements Wednesday, March 30, 2011
  • 92. SPECIFICITY AT ITā€™S WORST !important IDs Classes Elements inline Inline Styles normal IDs Classes Elements Wednesday, March 30, 2011
  • 93. #sidebar A Normal Heading Level 3 Wednesday, March 30, 2011
  • 94. DUPLICATING PROPERTY VALUE PAIRS h1{ margin: 10px 0; color: #333; font-size: 24px; font-weight: bold} h2{ margin: 10px 0; color: #333; font-size: 19px; font-weight: bold} h3{ margin: 5px 0; color: #333; font-size: 17px; font-weight: bold } #sidebar .collaborators h3{ margin: 5px 0; color: #333; font-size: 17px; font-weight: bold } #sidebar h3{color: #797979; font-size: 12px;font-weight: bold; border-bottom: 1px solid #c5c5c5; padding-bottom: 5px;} #sidebar .account h3{color: #555;font-size: 13px;font-weight: bold;background-color: #deeef8;padding: 5px;margin: 10px 0;} #sidebar .weatherMod h3{} #sidebar .weatherMod .hourly h3{} h4{ margin: 5px 0; color: #333; font-size: 15px; font-weight: bold} h5{ margin: 5px 0; color: #111; font-size: 13px; font-weight: bold} h6{ margin: 10px 0; color: #111; font-size: 12px; font-weight: bold} Wednesday, March 30, 2011
  • 95. THREE PROBLEMS ā– Duplication of property value pairs ā– Duplication of elements (h3) ā– Growing Speciļ¬city Wednesday, March 30, 2011
  • 96. DUPLICATING ELEMENTS h1{} h2{} h3{} #sidebar .collaborators h3{} #sidebar h3{} #sidebar .account h3{} #sidebar .weatherMod h3{} #sidebar .weatherMod .hourly h3{} h4{} h5{} h6{} Wednesday, March 30, 2011
  • 97. GROWING SPECIFICITY h1{} h2{} h3{} #sidebar .collaborators h3{} #sidebar h3{} #sidebar .account h3{} #sidebar .weatherMod h3{} #sidebar .weatherMod .hourly h3{} h4{} h5{} h6{} Wednesday, March 30, 2011
  • 98. HOW DO WE SOLVE THESE PROBLEMS? Examine our best practice myths rationally ā– Add non-semantic elements judiciously ā– Keep speciļ¬city as low as possible ā– Abstract repeating visual patterns ā– Use speciļ¬city to deļ¬ne your architecture Wednesday, March 30, 2011
  • 100. ALL OF THESE ARE THE SAME OBJECT Wednesday, March 30, 2011
  • 101. WHAT DO WE KNOW? ā– Can be nested ā– Optional right button ā– Must clearļ¬x Wednesday, March 30, 2011
  • 102. WHAT DONā€™T WE KNOW? ā– Image width and decoration vary ā– Right content is unknown ā– Width unknown Wednesday, March 30, 2011
  • 103. SEPARATE STRUCTURE FROM CHROME Wednesday, March 30, 2011
  • 104. A FEW LINES OF HTML... <div class="media attribution"> <a href="http://twitter.com/stubbornella" class="img"> <img src="mini.jpg" alt="Stubbornella" /> </a> <div class="bd">@Stubbornella 14 minutes ago</div> </div> Wednesday, March 30, 2011
  • 105. 4 LINES OF CSS... _ Wednesday, March 30, 2011
  • 107. HTML SIZE reduced by 50% by Stefan Parker Wednesday, March 30, 2011
  • 108. ā€œDue to these efforts, we cut our average CSS bytes per page by 19% (after gzip) and HTML bytes per page by 44% (before gzip).ā€ Jason Sobel http://www.facebook.com/note.php?note_id=307069903919 Wednesday, March 30, 2011
  • 110. GREAT DEVELOPERS CAN BUILD AMAZING THINGS if we move worst-best practices out of our way Wednesday, March 30, 2011
  • 111. LETā€™S KEEP TALKING... www.stubbornella.org @stubbornella OOCSS Project: http://github.com/stubbornella/oocss/ Wednesday, March 30, 2011