<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="styleguide.xsl"?>
<GUIDE title="Google HTML/CSS Style Guide">
  <p class="revision">
    
    Revision 2.1
  </p>
  
  <OVERVIEW>
    <CATEGORY title="Important Note">
      <STYLEPOINT title="Displaying Hidden Details in this Guide">
        <SUMMARY>
          This style guide contains many details that are initially
          hidden from view. They are marked by the triangle icon, which you
          see here on your left. Click it now.
          You should see &#8220;Hooray&#8221; appear below.
        </SUMMARY>
        <BODY>
          <p>
            Hooray! Now you know you can expand points to get more
            details. Alternatively, there&#8217;s a &#8220;toggle all&#8221; at the
            top of this document.
          </p>
        </BODY>
      </STYLEPOINT>
    </CATEGORY>
    <CATEGORY title="Background">
      
      <p>
        This document defines formatting and style rules for HTML and
        CSS. It aims at improving collaboration, code quality, and
        enabling supporting infrastructure. It applies to raw,
        working files that use HTML and CSS, including GSS
        files. Tools are free to obfuscate, minify, and compile as
        long as the general code quality is maintained.
      </p>
      
      
    </CATEGORY>
  </OVERVIEW>

  <CATEGORY title="General Style Rules">
    <STYLEPOINT title="Protocol">
      <SUMMARY>
        Omit the protocol from embedded resources.
      </SUMMARY>
      <BODY>
        <p>
          Omit the protocol portion (<code>http:</code>,
          <code>https:</code>) from URLs pointing to images and other
          media files, style sheets, and scripts unless the respective
          files are not available over both protocols.
        </p>
        <p>
          Omitting the protocol&#8212;which makes the URL
          relative&#8212;prevents mixed content issues and results in
          minor file size savings.
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;script src="http://www.google.com/js/gweb/analytics/autotrack.js"&gt;&lt;/script&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;script src="//www.google.com/js/gweb/analytics/autotrack.js"&gt;&lt;/script&gt;
        </CODE_SNIPPET>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          .example {
            background: url(http://www.google.com/images/example);
          }
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          .example {
            background: url(//www.google.com/images/example);
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    
  </CATEGORY>

  <CATEGORY title="General Formatting Rules">
    <STYLEPOINT title="Indentation">
      <SUMMARY>
        Indent by 2 spaces at a time.
      </SUMMARY>
      <BODY>
        <p>
          Don&#8217;t use tabs or mix tabs and spaces for indentation.
        </p>
        <CODE_SNIPPET>
          &lt;ul&gt;
            &lt;li&gt;Fantastic
            &lt;li&gt;Great
          &lt;/ul&gt;
        </CODE_SNIPPET>
        <CODE_SNIPPET>
          .example {
            color: blue;
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Capitalization">
      <SUMMARY>
        Use only lowercase.
      </SUMMARY>
      <BODY>
        <p>
          All code has to be lowercase: this applies to element names,
          attributes, attribute values (unless
          text/<code>CDATA</code>), selectors, properties, and
          property values (with the exception of strings).
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;A HREF="/"&gt;Home&lt;/A&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;img src="google.png" alt="Google"&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Trailing whitespace">
      <SUMMARY>
        Remove trailing white spaces.
      </SUMMARY>
      <BODY>
        <p>
          Trailing white spaces are unnecessary and can complicate
          diffs.
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;p&gt;What?_
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;p&gt;Yes please.
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="General Meta Rules">
    <STYLEPOINT title="Encoding">
      <SUMMARY>
        Use UTF-8 (no BOM).
      </SUMMARY>
      <BODY>
        <p>
          Make sure your editor uses UTF-8 as character encoding,
          without a byte order mark.
        </p>
        <p>
          Specify the encoding in HTML templates and documents via
          <code>&lt;meta charset="utf-8"&gt;</code>. Do not specify
          the encoding of style sheets as these assume UTF-8.
        </p>
        <p>
          (More on encodings and when and how to specify them can be
          found in <a href="http://www.w3.org/International/tutorials/tutorial-char-enc/en/all.html">Character
          Sets &amp; Encodings in XHTML, HTML and CSS</a>.)
        </p>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Comments">
      <SUMMARY>
        Explain code as needed, where possible.
      </SUMMARY>
      <BODY>
        <p>
          Use comments to explain code: what does it cover, what
          purpose does it serve, why is respective solution used or
          preferred?
        </p>
        <p>
          (This item is optional as it is not deemed a realistic
          expectation to always demand fully documented code. Mileage
          may vary heavily for HTML and CSS code and depends on the
          project&#8217;s complexity.)
        </p>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Action items">
      <SUMMARY>
        Mark todos and action items with <code>TODO</code>.
      </SUMMARY>
      <BODY>
        <p>
          Highlight todos by using the keyword <code>TODO</code> only,
          not other common formats like <code>@@</code>.
        </p>
        <p>
          Append a contact (username or mailing list) in parentheses
          as with the format <code>TODO(contact)</code>.
        </p>
        <p>
          Append action items after a colon as in <code>TODO: action
          item</code>.
        </p>
        
        <CODE_SNIPPET>
          {# TODO(john.doe): revisit centering #}
          &lt;center&gt;Test&lt;/center&gt;
        </CODE_SNIPPET>
        
        <CODE_SNIPPET>
          &lt;!-- TODO: remove optional tags --&gt;
          &lt;ul&gt;
            &lt;li&gt;Apples&lt;/li&gt;
            &lt;li&gt;Oranges&lt;/li&gt;
          &lt;/ul&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="HTML Style Rules">
    <STYLEPOINT title="Document type">
      <SUMMARY>
        Use HTML5.
      </SUMMARY>
      <BODY>
        <p>
          HTML5 (HTML syntax) is preferred for all HTML documents:
          <code>&lt;!DOCTYPE html&gt;</code>.
        </p>
        <p>
          (It is recommended to use HTML, as <code>text/html</code>. Do not use
          XHTML. XHTML, as <a href="http://hixie.ch/advocacy/xhtml"><code>application/xhtml+xml</code></a>,
          lacks both browser and infrastructure support and offers
          less room for optimization than HTML.)
        </p>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="HTML validity">
      <SUMMARY>
        Use valid HTML where possible.
      </SUMMARY>
      <BODY>
        <p>
          Use valid HTML code unless that is not possible due to
          otherwise unattainable performance goals regarding file size.
        </p>
        
        <p>
          Use tools such as the <a href="http://validator.w3.org/nu/">W3C
          HTML validator</a> to test.
        </p>
        <p>
          Using valid HTML is a measurable baseline quality attribute
          that contributes to learning about technical requirements
          and constraints, and that ensures proper HTML usage.
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;title&gt;Test&lt;/title&gt;
          &lt;article&gt;This is only a test.
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;!DOCTYPE html&gt;
          &lt;meta charset="utf-8"&gt;
          &lt;title&gt;Test&lt;/title&gt;
          &lt;article&gt;This is only a test.&lt;/article&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Semantics">
      <SUMMARY>
        Use HTML according to its purpose.
      </SUMMARY>
      <BODY>
        <p>
          Use elements (sometimes incorrectly called &#8220;tags&#8221;) for what
          they have been created for. For example, use heading
          elements for headings, <code>p</code> elements for
          paragraphs, <code>a</code> elements for anchors, etc.
        </p>
        <p>
          Using HTML according to its purpose is important for
          accessibility, reuse, and code efficiency reasons.
        </p>
        
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;div onclick="goToRecommendations();"&gt;All recommendations&lt;/div&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;a href="recommendations/"&gt;All recommendations&lt;/a&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Multimedia fallback">
      <SUMMARY>
        Provide alternative contents for multimedia.
      </SUMMARY>
      <BODY>
        <p>
          For multimedia, such as images, videos, animated objects via
          <code>canvas</code>, make sure to offer alternative
          access. For images that means use of meaningful alternative
          text (<code>alt</code>) and for video and audio transcripts
          and captions, if available.
        </p>
        <p>
          Providing alternative contents is important for
          accessibility reasons: a blind user has few cues to tell
          what an image is about without <code>@alt</code>, and other
          users may have no way of understanding what video or audio
          contents are about either.
        </p>
        <p>
          (For images whose <code>alt</code> attributes would
          introduce redundancy, and for images whose purpose is purely
          decorative which you cannot immediately use CSS for, use no
          alternative text, as in <code>alt=""</code>.)
        </p>
        
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;img src="spreadsheet.png"&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;img src="spreadsheet.png" alt="Spreadsheet screenshot."&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>

    <STYLEPOINT title="Separation of concerns">
      <SUMMARY>
        Separate structure from presentation from behavior.
      </SUMMARY>
      <BODY>
        <p>
          Strictly keep structure (markup), presentation (styling),
          and behavior (scripting) apart, and try to keep the
          interaction between the three to an absolute minimum.
        </p>
        <p>
          That is, make sure documents and templates contain only HTML
          and HTML that is solely serving structural purposes. Move
          everything presentational into style sheets, and everything
          behavioral into scripts.
        </p>
        <p>
          In addition, keep the contact area as small as possible by
          linking as few style sheets and scripts as possible from
          documents and templates.
        </p>
        <p>
          Separating structure from presentation from behavior is
          important for maintenance reasons. It is always more
          expensive to change HTML documents and templates than it is
          to update style sheets and scripts.
        </p>
        
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;!DOCTYPE html&gt;
          &lt;title&gt;HTML sucks&lt;/title&gt;
          &lt;link rel="stylesheet" href="base.css" media="screen"&gt;
          &lt;link rel="stylesheet" href="grid.css" media="screen"&gt;
          &lt;link rel="stylesheet" href="print.css" media="print"&gt;
          &lt;h1 style="font-size: 1em;"&gt;HTML sucks&lt;/h1&gt;
          &lt;p&gt;I&#8217;ve read about this on a few sites but now I&#8217;m sure:
            &lt;u&gt;HTML is stupid!!1&lt;/u&gt;
          &lt;center&gt;I can&#8217;t believe there&#8217;s no way to control the styling of
            my website without doing everything all over again!&lt;/center&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;!DOCTYPE html&gt;
          &lt;title&gt;My first CSS-only redesign&lt;/title&gt;
          &lt;link rel="stylesheet" href="default.css"&gt;
          &lt;h1&gt;My first CSS-only redesign&lt;/h1&gt;
          &lt;p&gt;I&#8217;ve read about this on a few sites but today I&#8217;m actually
            doing it: separating concerns and avoiding anything in the HTML of
            my website that is presentational.
          &lt;p&gt;It&#8217;s awesome!
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Entity references">
      <SUMMARY>
        Do not use entity references.
      </SUMMARY>
      <BODY>
        <p>
          There is no need to use entity references like
          <code>&amp;mdash;</code>, <code>&amp;rdquo;</code>, or
          <code>&amp;#x263a;</code>, assuming the same encoding
          (UTF-8) is used for files and editors as well as among
          teams.
        </p>
        <p>
          The only exceptions apply to characters with special meaning
          in HTML (like <code>&lt;</code> and <code>&amp;</code>) as
          well as control or &#8220;invisible&#8221; characters (like no-break
          spaces).
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          The currency symbol for the Euro is &amp;ldquo;&amp;eur;&amp;rdquo;.
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          The currency symbol for the Euro is &#8220;&#8364;&#8221;.
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Optional tags">
      <SUMMARY>
        Omit optional tags (optional).
      </SUMMARY>
      <BODY>
        <p>
          For file size optimization and scannability purposes,
          consider omitting optional tags.
          The <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#syntax-tag-omission">HTML5
          specification</a> defines what tags can be omitted.
        </p>
        <p>
          (This approach may require a grace period to be established
          as a wider guideline as it is significantly different
          from what web developers are typically taught. For
          consistency and simplicity reasons it is best served
          omitting all optional tags, not just a selection.)
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;!DOCTYPE html&gt;
          &lt;html&gt;
            &lt;head&gt;
              &lt;title&gt;Spending money, spending bytes&lt;/title&gt;
            &lt;/head&gt;
            &lt;body&gt;
              &lt;p&gt;Sic.&lt;/p&gt;
            &lt;/body&gt;
          &lt;/html&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;!DOCTYPE html&gt;
          &lt;title&gt;Saving money, saving bytes&lt;/title&gt;
          &lt;p&gt;Qed.
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="type attributes">
      <SUMMARY>
        Omit <code>type</code> attributes for style sheets and scripts.
      </SUMMARY>
      <BODY>
        <p>
          Do not use <code>type</code> attributes for style sheets
          (unless not using CSS) and scripts (unless not using
          JavaScript).
        </p>
        <p>
          Specifying <code>type</code> attributes in these contexts is
          not necessary as HTML5 implies
          <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#attr-style-type"><code>text/css</code></a>
          and
          <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#attr-script-type"><code>text/javascript</code></a>
          as defaults. This can be safely done even for older browsers.
        </p>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;link rel="stylesheet" href="//www.google.com/css/maia.css"
            type="text/css"&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;link rel="stylesheet" href="//www.google.com/css/maia.css"&gt;
        </CODE_SNIPPET>
        <BAD_CODE_SNIPPET>
          &lt;!-- Not recommended --&gt;
          &lt;script src="//www.google.com/js/gweb/analytics/autotrack.js"
            type="text/javascript"&gt;&lt;/script&gt;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;!-- Recommended --&gt;
          &lt;script src="//www.google.com/js/gweb/analytics/autotrack.js"&gt;&lt;/script&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="HTML Formatting Rules">
    <STYLEPOINT title="General formatting">
      <SUMMARY>
        Use a new line for every block, list, or table element, and
        indent every such child element.
      </SUMMARY>
      <BODY>
        <p>
          Independent of the styling of an element (as CSS allows
          elements to assume a different role per <code>display</code>
          property), put every block, list, or table element on a new
          line.
        </p>
        <p>
          Also, indent them if they are child elements of a block,
          list, or table element.
        </p>
        <p>
          (If you run into issues around whitespace between list items
          it is acceptable to put all <code>li</code> elements in one
          line. A linter is encouraged to throw a warning instead of
          an error.)
        </p>
        <CODE_SNIPPET>
          &lt;blockquote&gt;
            &lt;p&gt;&lt;em&gt;Space&lt;/em&gt;, the final frontier.&lt;/p&gt;
          &lt;/blockquote&gt;
        </CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;ul&gt;
            &lt;li&gt;Moe
            &lt;li&gt;Larry
            &lt;li&gt;Curly
          &lt;/ul&gt;
        </CODE_SNIPPET>
        <CODE_SNIPPET>
          &lt;table&gt;
            &lt;thead&gt;
              &lt;tr&gt;
                &lt;th scope="col"&gt;Income
                &lt;th scope="col"&gt;Taxes
            &lt;tbody&gt;
              &lt;tr&gt;
                &lt;td&gt;$ 5.00
                &lt;td&gt;$ 4.50
          &lt;/table&gt;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="CSS Style Rules">
    <STYLEPOINT title="CSS validity">
      <SUMMARY>
        Use valid CSS where possible.
      </SUMMARY>
      <BODY>
        <p>
          Unless dealing with CSS validator bugs or requiring
          proprietary syntax, use valid CSS code.
        </p>
        
        <p>
          Use tools such as the
          <a href="http://jigsaw.w3.org/css-validator/">W3C CSS validator</a> to
          test.
        </p>
        <p>
          Using valid CSS is a measurable baseline quality attribute
          that allows to spot CSS code that may not have any effect
          and can be removed, and that ensures proper CSS usage.
        </p>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="ID and class naming">
      <SUMMARY>
        Use meaningful or generic ID and class names.
      </SUMMARY>
      <BODY>
        <p>
          Instead of presentational or cryptic names, always use ID
          and class names that reflect the purpose of the element in
          question, or that are otherwise generic.
        </p>
        <p>
          Names that are specific and reflect the purpose of the
          element should be preferred as these are most understandable
          and the least likely to change.
        </p>
        <p>
          Generic names are simply a fallback for elements that have no
          particular or no meaning different from their siblings. They are
          typically needed as &#8220;helpers.&#8221;
        </p>
        <p>
          Using functional or generic names reduces the probability of
          unnecessary document or template changes.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended: meaningless */
          #yee-1901 {}

          /* Not recommended: presentational */
          .button-green {}
          .clear {}
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended: specific */
          #gallery {}
          #login {}
          .video {}

          /* Recommended: generic */
          .aux {}
          .alt {}
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="ID and class name style">
      <SUMMARY>
        Use ID and class names that are as short as possible but as long as
        necessary.
      </SUMMARY>
      <BODY>
        <p>
          Try to convey what an ID or class is about while being as
          brief as possible.
        </p>
        <p>
          Using ID and class names this way contributes to acceptable
          levels of understandability and code efficiency.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          #navigation {}
          .atr {}
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          #nav {}
          .author {}
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>

    <STYLEPOINT title="Type selectors">
      <SUMMARY>
        Avoid qualifying ID and class names with type selectors.
      </SUMMARY>
      <BODY>
        <p>Unless necessary (for example with helper classes), do not
          use element names in conjunction with IDs or classes.
        </p>
        <p>
          Avoiding unnecessary ancestor selectors is useful for
          <a href="http://www.stevesouders.com/blog/2009/06/18/simplifying-css-selectors/">performance
          reasons</a>.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          ul#example {}
          div.error {}
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          #example {}
          .error {}
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Shorthand properties">
      <SUMMARY>
        Use shorthand properties where possible.
      </SUMMARY>
      <BODY>
        <p>
          CSS offers a variety of
          <a href="http://www.w3.org/TR/CSS21/about.html#shorthand">shorthand</a>
          properties (like <code>font</code>)
          that should be used whenever possible, even in cases where
          only one value is explicitly set.
        </p>
        <p>
          Using shorthand properties is useful for code efficiency and
          understandability.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          border-top-style: none;
          font-family: palatino, georgia, serif;
          font-size: 100%;
          line-height: 1.6;
          padding-bottom: 2em;
          padding-left: 1em;
          padding-right: 1em;
          padding-top: 0;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          border-top: 0;
          font: 100%/1.6 palatino, georgia, serif;
          padding: 0 1em 2em;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="0 and units">
      <SUMMARY>
        Omit unit specification after &#8220;0&#8221; values.
      </SUMMARY>
      <BODY>
        <p>
          Do not use units after <code>0</code> values unless they are
          required.
        </p>
        <CODE_SNIPPET>
          margin: 0;
          padding: 0;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Leading 0s">
      <SUMMARY>
        Omit leading &#8220;0&#8221;s in values.
      </SUMMARY>
      <BODY>
        <p>
          Do not use put <code>0</code>s in front of values or lengths
          between -1 and 1.
        </p>
        <CODE_SNIPPET>
          font-size: .8em;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Quotation marks in URI values">
      <SUMMARY>
        Omit quotation marks in URI values.
      </SUMMARY>
      <BODY>
        <p>
          Do not use quotation marks (<code>""</code>,
          <code>''</code>) with <code>url()</code>.
        </p>
        <CODE_SNIPPET>
          @import url(//www.google.com/css/go.css);
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Hexadecimal notation">
      <SUMMARY>
        Use 3 character hexadecimal notation where possible.
      </SUMMARY>
      <BODY>
        <p>
          For color values that permit it, 3 character hexadecimal
          notation is shorter and more succinct.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          color: #eebbcc;
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          color: #ebc;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Prefixes">
      <SUMMARY>
        Prefix selectors with an application-specific prefix (optional).
      </SUMMARY>
      <BODY>
        <p>
          In large projects as well as for code that gets embedded in
          other projects or on external sites use prefixes (as
          namespaces) for ID and class names. Use short, unique
          identifiers followed by a dash.
        </p>
        
        
        <p>
          Using namespaces helps preventing naming conflicts and can
          make maintenance easier, for example in search and replace
          operations.
        </p>
        <CODE_SNIPPET>
          .adw-help {} /* AdWords */
          #maia-note {} /* Maia */
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="ID and class name delimiters">
      <SUMMARY>
        Separate words in ID and class names by a hyphen.
      </SUMMARY>
      <BODY>
        <p>
          Do not concatenate words and abbreviations in selectors by
          any characters (including none at all) other than hyphens,
          in order to improve understanding and scannability.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended: does not separate the words &#8220;demo&#8221; and &#8220;image&#8221; */
          .demoimage {}

          /* Not recommended: uses underscore instead of hyphen */
          .error_status {}
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          #video-id {}
          .ads-sample {}
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Hacks">
      <SUMMARY>
        Avoid user agent detection as well as CSS &#8220;hacks&#8221;&#8212;try a different
        approach first.
      </SUMMARY>
      <BODY>
        <p>
          It is tempting to address styling differences over user
          agent detection or special CSS filters, workarounds, and
          hacks. Both approaches should be considered last resort in
          order to achieve and maintain an efficient and manageable
          code base. Put another way, giving detection and hacks a
          free pass will hurt projects in the long run as projects
          tend to take the way of least resistance. That is, allowing
          and making it easy to use detection and hacks means using
          detection and hacks more frequently&#8212;and more frequently
          is too frequently.
        </p>
        
        
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="CSS Formatting Rules">
    <STYLEPOINT title="Declaration order">
      <SUMMARY>
        Alphabetize declarations.
      </SUMMARY>
      <BODY>
        <p>
          Put declarations in alphabetical order in order to achieve
          consistent code in a way that is easy to remember and
          maintain.
        </p>
        <p>
          Ignore vendor-specific prefixes for sorting purposes. However,
          multiple vendor-specific prefixes for a certain CSS property should
          be kept sorted (e.g. -moz prefix comes before -webkit).
        </p>
        <CODE_SNIPPET>
          background: fuchsia;
          border: 1px solid;
          -moz-border-radius: 4px;
          -webkit-border-radius: 4px;
          border-radius: 4px;
          color: black;
          text-align: center;
          text-indent: 2em;
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Block content indentation">
      <SUMMARY>
        Indent all block content.
      </SUMMARY>
      <BODY>
        <p>
          Indent all <a href="http://www.w3.org/TR/CSS21/syndata.html#block">block
          content</a>, that is rules within rules as well as declarations, so to
          reflect hierarchy and improve understanding.
        </p>
        <CODE_SNIPPET>
          @media screen, projection {

            html {
              background: #fff;
              color: #444;
            }

          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Declaration stops">
      <SUMMARY>
        Use a semicolon after every declaration.
      </SUMMARY>
      <BODY>
        <p>
          End every declaration with a semicolon for consistency and
          extensibility reasons.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          .test {
            display: block;
            height: 100px
          }
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          .test {
            display: block;
            height: 100px;
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Property name stops">
      <SUMMARY>
        Use a space after a property name&#8217;s colon.
      </SUMMARY>
      <BODY>
        <p>
          Always use a single space between property and value (but no
          space between property and colon) for consistency reasons.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          h3 {
            font-weight:bold;
          }
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          h3 {
            font-weight: bold;
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Selector and declaration separation">
      <SUMMARY>
        Separate selectors and declarations by new lines.
      </SUMMARY>
      <BODY>
        <p>
          Always start a new line for each selector and declaration.
        </p>
        <BAD_CODE_SNIPPET>
          /* Not recommended */
          a:focus, a:active {
            position: relative; top: 1px;
          }
        </BAD_CODE_SNIPPET>
        <CODE_SNIPPET>
          /* Recommended */
          h1,
          h2,
          h3 {
            font-weight: normal;
            line-height: 1.2;
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
    <STYLEPOINT title="Rule separation">
      <SUMMARY>
        Separate rules by new lines.
      </SUMMARY>
      <BODY>
        <p>
          Always put a line between rules.
        </p>
        <CODE_SNIPPET>
          html {
            background: #fff;
          }

          body {
            margin: auto;
            width: 50%;
          }
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <CATEGORY title="CSS Meta Rules">
    
    <STYLEPOINT title="Section comments">
      <SUMMARY>
        Group sections by a section comment (optional).
      </SUMMARY>
      <BODY>
        <p>
          If possible, group style sheets sections together by using
          comments. Separate sections with new lines.
        </p>
        <CODE_SNIPPET>
          /* Header */

          #adw-header {}

          /* Footer */

          #adw-footer {}

          /* Gallery */

          .adw-gallery {}
        </CODE_SNIPPET>
      </BODY>
    </STYLEPOINT>
  </CATEGORY>

  <PARTING_WORDS>
    <p>
      <em>Be consistent.</em>
    </p>
    <p>
      If you&#8217;re editing code, take a few minutes to look at the code
      around you and determine its style. If they use spaces around
      all their arithmetic operators, you should too. If their
      comments have little boxes of hash marks around them, make your
      comments have little boxes of hash marks around them too.
    </p>
    <p>
      The point of having style guidelines is to have a common vocabulary
      of coding so people can concentrate on what you&#8217;re saying rather
      than on how you&#8217;re saying it. We present global style rules here so
      people know the vocabulary, but local style is also important. If
      code you add to a file looks drastically different from the existing
      code around it, it throws readers out of their rhythm when they go to
      read it. Avoid this.
    </p>
  </PARTING_WORDS>

  <p align="right">
    Revision 2.1
  </p>

</GUIDE>
