Web Style Guide campbowwow.com

Intro

This style guide is intended as a reference for content managers and developers to properly implement the styles, structures and methodlogy employed in the construction of the Camp Bow Wow Corporate & Franchise websites.

Components

These are the basic building blocks of your site

This category contains elements that are structured with standard HTML tags and also base abstractions such as grids, icons, etc.

Modules

These are the more complex structures w/ accompanying functionality built for your site.

This category contains elements composed of groups of components and/or custom structures that function together as a unit.

Coding & Content

For developers and content managers working with the code.

This section of your styleguide contains important information in managing and expanding upon the HTML and CSS of your website.

Palette

Brand

Monochrome

Messaging - alerts, confirmation, errors etc.

Alerts

Boxes which visually alert a user to an error, success or warning can be used on the site by applying the class of "alert" to an element.

Ideally, icon classes should be added to increase visual communication.

Important stuff

<p class="alert">Important stuff<p>

Important stuff

<p class="alert alert--blue icon-asterisk">Important stuff<p>

Warning!

<p class="alert alert--red icon-attention">Warning!<p>

Warning!

<p class="alert alert--yellow icon-attention">Warning!<p>

Success!

<p class="alert alert--green icon-check">Success!<p>

Self-closing alerts

Just add the class of "alert--closeable" to any alert and it will add the link to remove it from the page once the user has read the message.

Success!

<p class="alert alert--green alert--closeable icon-check">Success!<p>

Asides

Basic (full-width) example
<aside>
Lorem ipsum dolor...
</aside>
Floated left of content

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

<aside class="aside--left">
Lorem ipsum dolor...
</aside>
<p>Sed ut perspiciatis...</p>
Floated right of content

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

<aside class="aside--right">
Lorem ipsum dolor...
</aside>
<p>Sed ut perspiciatis...</p>

Badges

Basic example

Messages 13

<p>Messages <span class="badge">13</span></p>

Buttons

There are multiple styles of buttons used on the site with specific uses listed below.

To use, just assign button classes to a text link or input types "button" and "submit".

Primary/default calls to action and form submission Text link
<a href="" class="btn btn--primary">...</a>
<input name="" type="button" value="input" class="btn btn--primary">
Secondary calls to action and form options Text link
<a href="" class="btn btn--secondary">...</a>
<input name="" type="button" value="input" class="btn btn--secondary">
Tertiary calls to action and form options Text link
<a href="" class="btn btn--tertiary">...</a>
<input name="" type="button" value="input" class="btn btn--tertiary">
Featured and secondary calls to action

Used within image bar banners, page banners and against colored backgrounds for transparent effect. Default uses CBW brand blue hue as seen within Corporate and Franchise page banners. Example(s): T1.shtml, T12.shtml

Text link

<a href="" class="btn btn--featured">...</a>
<input name="" type="button" value="input" class="btn btn--featured">

There is also class to set the base hue to white for use on other colors. Example(s): T1.shtml

Text link

General site use for extra-small & small buttons. Text link
<a href="" class="btn btn--XSm">...</a>
<input name="" type="button" value="input" class="btn btn--XSm">
<a href="" class="btn btn--sm">...</a>
<input name="" type="button" value="input" class="btn btn--sm">
General site use for large buttons. Text link
<a href="" class="btn btn--lg">...</a>
<input name="" type="button" value="input" class="btn btn--lg">
Spans the full width of it's container for higher profile or usability applications.

Text link

<a href="" class="btn btn--full">...</a>
<input name="" type="button" value="input" class="btn btn--full">
Takes the font attributes of the text element it's used on

Heading 1 Natural

Small text paragraph Natural

<h1>Heading 1 <a href="" class="btn btn--natural">...</a>
Using helper classes to alter font family. Font Accent: Pompiere Button
<a href="URL" class="btn btn--fontAccent">...</a>
Font Highlight: Oswald Button
<a href="URL" class="btn btn--highlight">...</a>
Font Highlight Light: Oswald Light Button
<a href="URL" class="btn btn--highlightLight">...</a>

Color Bars

Color bars are used to establish full-width color blocks. It can also be used to set backgrounds to content within the main area

Figures - Images

Placement & Use

In-content images should always be placed within the "figure" element for proper placement and responsive sizing. Note that width and height should not be added to images as this may break the responsive layout of the page. The CSS behind your site will manage sizing the images proportionally. Image captions can be added with the "figcaption" element.

Optimization

Images should be saved as JPG, PNG or GIF with settings that compress the image to minimum file size while still maintaining reasonable quality. PNG files should be used when transparency is required, but exercise caution as PNG24 produces rather large file sizes.

Settings will vary according to image, and are at the designer's discretion, but as the site is optimized for mobile, balancing file size with quality is crucial.

Examples

Full width image
Caption describing image
<figure>
<img src="900x200.png">
<figcaption>Caption describing image</figcaption>
</figure>
Floated left of content
Caption describing image

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

<figure class="figure--left">
<img src="200x200.png">
<figcaption>Caption describing image</figcaption>
</figure>
<p>Lorem ipsum dolor sit amet...</p>
Floated right of content
Caption describing image

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

<figure class="figure--right">
<img src="200x200.png">
<figcaption>Caption describing image</figcaption>
</figure>
<p>Lorem ipsum dolor sit amet...</p>

Figures - Videos

Placement & Use

Videos should always be placed within the "figure" element for responsive sizing.

Full width video
<figure class="figure--video">
<!--embed code for youtube, vimeo, etc-->
<iframe width="420" height="315" src="//www.youtube.com/embed/0Bmhjf0rKe8" frameborder="0" allowfullscreen></iframe>
</figure>
Left aligned (must be inside Media Block)

Media header

Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.

Learn more

<div class="mediaBlock">
<figure class="figure--video">
<iframe src="//www.youtube.com/embed/0Bmhjf0rKe8" frameborder="0" allowfullscreen></iframe>
</figure>
<div class="mediaBlock-body">
<h3 class="h4">Media header</h3>
<p>Aximil inulluptibus si...</p>
<p><a class="btn" href="">Learn more</a></p>
</div>
</div>
Right aligned (must be inside Media Block)

Media header

Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.

Learn more

<div class="mediaBlock mediaBlock--right">
<figure class="figure--video">
<iframe src="//www.youtube.com/embed/0Bmhjf0rKe8" frameborder="0" allowfullscreen></iframe>
</figure>
<div class="mediaBlock-body">
<h3 class="h4">Media header</h3>
<p>Aximil inulluptibus si...</p>
<p><a class="btn" href="">Learn more</a></p>
</div>
</div>

Grid

For maximum layout flexibility, this site has been built using a responsive, nestable, 24 column grid.

You can adjust column width across various screen widths:

The grid is mobile-first so think of each "column" as naturally being 100% wide and you will be adjusting that width as the screen gets larger.

Basic usage

Place a div on the page with the class of "row". This will hold your columns.

<div class="row"></div>

Add your column divs with the class "column" applied to each one.

<div class="row">
<div class="column"></div>
...
<div>

Add classes to the column divs to determine how many of the available 24 columns they will occupy and at what screen size the width should be applied.

<div clas="row">
<div class="column med-12"></div>
...
<div>

When a column width is set, it will also apply to larger screen sizes.

Remember that you are adjusting widths as the screen gets larger. A column with med-12 applied, will take up 12 columns on medium and large screens also. You can add classes to adjust this as demonstrated below.

Column widths applied at medium screen size
<div class="row">
<div class="column med-6"></div>
<div class="column med-18"></div>
</div>
Column widths applied at multiple screen sizes
<div class="row">
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div> 
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
</div>
</div>

Mimicking source order change

Generally, columns will stack top to bottom at their natural 100% width and float left to right once we apply a column width.

First in source order
Second in source order
<div clas="row">
<div class="column med-12">First in source order</div>
<div class="column med-12">Second in source order</div>
<div>

Once a column width is applied, we can modify this behavior using the following styles (columns still stack top to bottom at 100%):

First in source order
Second in source order
<div clas="row">
<div class="column med-12 push-right-med">First in source order</div>
<div class="column med-12">Second in source order</div>
<div>

Headings & Paragraphs

h1

Heading 1 - Oswald Uppercase 36px #4c5154

<h1>Heading 1</h1>
h2

Heading 2 - Oswald Uppercase 28px #4c5154

<h2>Heading 2</h2>
h3

Heading 3 - Oswald 24px #4c5154

<h3>Heading 3</h3>
h4

Heading 4 - Oswald 21px #4c5154

<h4>Heading 4</h4>
h5
Heading 5 - Oswald 18px #4c5154
<h5>Heading 5</h5>
h6
Heading 6 - Oswald 15px #4c5154
<h4>Heading 4</h4>
Heading Helpers

There are several variant classes which can be applied to headers to adjust font, size and color

Heading Light - #517286

Heading 1 Light - Oswald #517286

<h1 class="heading--light">Heading Light - #517286</h1>
Heading Accent Font - Pompiere

Heading 1 - Pompiere

<h1 class="fontAccent">Heading 1 - Pompiere</h4>

Since H1 and H2 default to uppercase, we can make the same heading lowercase, by adding a helper class.

Heading 1 - Pompiere Lowercase

<h1 class="fontAccent heading--lower">Heading 1 - Pompiere Lowercase</h4>

Conversely, H3, H4, H5 and H6 are lowercase by default. We can make it uppercase using a similar method

Heading 3 - Uppercase

<h3 class="heading--upper">Heading 3 - Uppercase</h3>
Paragraph

Lato 15px #4c5154 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore linked text magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

<p>...</p>

Horizontal Rule

hr - default
<hr />
hr - dotted
<hr class="rule--dotted" />
hr - ornament
<hr class="rule--ornament" />

Icons

A custom, font-based icon library has been created for your site using fontello.com. Icons can be applied directly to text elements like headings, paragraphs and links or they can also be applied inline pretty much wherever you would like.

You can add icons, edit existing ones or create custom ones at fontello.com. Instructions for using the font library can be found here.

Icons can be applied two different ways:

Directly to text element Text Link
<a href="javascript:void(0)" class="icon-right-open">Text Link<a>
<i> tag within text element Text Link
<a href="javascript:void(0)">Text Link <i class="icon-right-open"></i></a>

Using the <i> method, icons can be styled apart from their containing text element.

Completed

<p><i class="icon-check h-colorGreen"></i> Completed</p>

Available icons/classes


Brand Icons

icon-paw
icon-paw-circled
icon-paw-heart
icon-cbw-usa
icon-dog-award
icon-dog-boarding
icon-dog-chat
icon-dog-collar
icon-dog-daycare
icon-dog-overnight
icon-dog-home
icon-dog-home-alt
icon-dog-grooming
icon-dog-poopscoop
icon-dog-training-alt-circled
icon-dog-training-alt
icon-dog-training-circled
icon-dog-training
icon-dog-training-collar-circled
icon-dog-training-collar

Social Icons

icon-facebook
icon-twitter
icon-gplus
icon-instagram
icon-linkedin
icon-pinterest
icon-youtube
icon-flickr
icon-rss
icon-apple
icon-android

Utility Icons

icon-plus
icon-plus-circled
icon-minus
icon-minus-circled
icon-check
icon-cancel
icon-cancel-circled
icon-attention
icon-help
icon-help-circled
icon-info
icon-info-circled
icon-down-open
icon-left-open
icon-right-open
icon-up-open
icon-right-dir
icon-dot
icon-dot-lg
icon-menu
icon-edit
icon-quote-left
icon-phone
icon-fax
icon-email
icon-download
icon-heart
icon-hearty-empty
icon-star
icon-star-half-alt
icon-star-empty
icon-user
icon-location
icon-calendar
icon-clock

Islands/Islets

Adds spacing of content with optional color styles

Island example

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island">...</p>
Grey Lighter

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island island--greyLighter">...</p>
Grey Lightest

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island island--greyLightest">...</p>
Tan

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island island--tan">...</p>
Red

Be sure you are using helper classes to adjust text color when legibility becomes an issue.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island island--red h-colorWhite">...</p>
Bordered

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="island island--border">...</p>

Islets have half the padding an island has

Islet example

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="islet">...</p>
Grey Lighter

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="islet islet--grey">...</p>
Grey Lightest

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="islet islet--greyLightest">...</p>
Tan

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="islet islet--tan">...</p>
Red

Be sure you are using helper classes to adjust text color when legibility becomes an issue.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

<p class="islet islet--red h-colorWhite">...</p>
Bordered

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.

Lists

Unordered (bulleted)
  • Item one
  • Item two
  • Item three
<ul>
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ul>
Unordered (no bullets)
  • Item one
  • Item two
  • Item three
<ul class="list--unstyled">
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ul>
Numbered
  1. Item one
  2. Item two
  3. Item three
<ol>
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ol>
Horizontal list items
  • Item one
  • Item two
  • Item three
<ul class="list--horizontal">
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ul>
Horizontal list items w/ separator
  • Item one
  • Item two
  • Item three
<ul class="list--horizontal list--separated">
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ul>
Bordered list
  • Item one
  • Item two
  • Item three

Requires "list--unstyled" as a base class

<ul class="list--unstyled list--bordered">
<li>Item one<li>
<li>Item two<li>
<li>Item three<li>
</ul>

Loader

Basic Loader
<!-- Can be a div or span -->
<div class="loader"></div>
Small Loader

Updating...

<p><span class="loader loader--sm"></span>Updating...</p>

Matrix

Matrix extends all of the functionality of the 24 column responsive grid with two important exceptions:

  1. Column count in each .matrix div can exceed 24
  2. Whereas items of different heights can staircase in the grid, they will not in the matrix

The matrix is very useful for patterns like a page of gallery thumbnails, e-commerce products, etc.

Usage is exactly the same as the 24 column responsive grid except for the use of the matrix class instead of the row class

Column widths applied at multiple screen sizes

Some content to make this div taller than the others

A little content

Content

<div class="matrix">
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div> 
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
<div class="column xsm-12 sm-6 med-4 lg-2"></div>
</div>
</div>

Secondary Navigation

CBW is using a dropdown to nav pattern for secondary navigation, meaning the menu links will appear as a expandable dropdown on mobile, and transition to an expanded list on desktop.

Note that this menu pattern only supports one level of navigation links. The current page inherits a class of "selected" and becomes the inline-category within the menu dropdown, with the sibling pages collapsing beneath it. It will change dynamically based on the selected/current page and the sibling categories are able to be navigated once expanded.

<nav class="navSecondary nav-dropdownToNav">
<ul>
<li><a href="">Page link</a></li>
<li class="selected"><a href="">Selected Page Link</a></li>
<li><a href="">Page link</a></li>
<li><a href="">Page link</a></li>
<li><a href="">Page link</a></li>
</ul>
</nav> 

Quotes

Inline quotes

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.

<p>Sed ut perspiciatis unde 
<q>omnis iste natus error</q>
sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>

Blockquotes

Basic (full-width) example

There are only two mistakes one can make along the road to truth; not going all the way, and not starting.

Buddha
<blockquote>
<p>There are only two mistakes one can make along the road to truth; not going all the way, and not starting.</p>
<cite>Buddha</cite>
</blockquote>
Floated left of content

There are only two mistakes one can make along the road to truth; not going all the way, and not starting.

Buddha

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

<blockquote class="blockquote--left">
<p>There are only two mistakes one can make along the road to truth; not going all the way, and not starting.</p>
<cite>Buddha</cite>
</blockquote>
<p>Sed ut perspiciatis...</p>
Floated right of content

There are only two mistakes one can make along the road to truth; not going all the way, and not starting.

Buddha

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

<blockquote class="blockquote--right">
<p>There are only two mistakes one can make along the road to truth; not going all the way, and not starting.</p>
<cite>Buddha</cite>
</blockquote>
<p>Sed ut perspiciatis...</p>

Tables

Sample Header Sample Header 2 Sample Header 3
Row 1, Col 1 Row 1, Col 2 Row 1, Col 3
Row 2, Col 1 Row 2, Col 2 Row 2, Col 3
<div class="tableContainer">
<table class="table">
<thead>
<tr>
<th>Sample Header</th>
<th>Sample Header 2</th>
<th>Sample Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1, Col 1</td>
<td>Row 1, Col 2</td>
<td>Row 1, Col 3</td>
</tr>
<tr>
<td>Row 2, Col 1</td>
<td>Row 2, Col 2</td>
<td>Row 2, Col 3</td>
</tr>
</tbody>
</table>
</div>

Tables are setup to use colspans for adjusting cells widths and spanning across multiple columns. There are also color variations availavle to establish content hierarchy when using multiple table headers in complex tables.

Full Span Header Across 2 Col in Complex Table, Red
Sample Subheader Light Sample Subheader Light 2
Row 1, Col 1 Row 1, Col 2
Row 2, Col 1 Row 2, Col 2
Row 3, Col 1 Row 3, Col 2
Full Span Header Across 2 Col in Complex Table, Darker
Sample Subheader Light in Table Sample Subheader Light in Table 2
Row 4, Col 1 Row 4, Col 2
Row 5, Col 1 Row 5, Col 2
Row 6, Col 1 Row 6, Col 2
<div class="tableContainer">
<table class="table">
<thead class="thead--red">
<tr>
<th colspan="2">Full Span Header Across 2 Col in Complex Table, Red</th>
</tr>
</thead>
<thead class="thead--lighter">
<tr>
<th>Sample Subheader Light</th>
<th>Sample Subheader Light</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1, Col 1</td>
<td>Row 1, Col 2</td>
<td>Row 1, Col 3</td>
</tr>
<tr>
<td>Row 2, Col 1</td>
<td>Row 2, Col 2</td>
<td>Row 2, Col 3</td>
</tr>
<tr>
<td>Row 3, Col 1</td>
<td>Row 3, Col 2</td>
<td>Row 3, Col 3</td>
</tr>
<thead class="thead--darker">
<tr>
<th colspan="2">Full Span Header Across 2 Col in Complex Table, Darker</th>
</tr>
</thead>
<thead class="thead--lighter">
<tr>
<th>Sample Subheader Light in Table</th>
<th>Sample Subheader Light in Table</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 4, Col 1</td>
<td>Row 4, Col 2</td>
<td>Row 4, Col 3</td>
</tr>
<tr>
<td>Row 5, Col 1</td>
<td>Row 5, Col 2</td>
<td>Row 5, Col 3</td>
</tr>
<tr>
<td>Row 6, Col 1</td>
<td>Row 6, Col 2</td>
<td>Row 6, Col 3</td>
</tr>
<thead>
<tr>
</tbody>
</table>
</div>

Flyouts

Default Style
Uh-oh

Attention needed

please modify your profile settings

<div class="flyout icon-attention">
<ul class="flyout-content">
<li><a href="...">Link/selection</a></li>
<li><a href="...">Link/selection</a></li>
</ul>
</div>

<div class="flyout icon-attention"> Uh-oh
<div class="flyout-content">
<h4>Attention needed</h4>
<p>please modify your profile <a href="...">settings</a></p>
</div>
</div>
Default Style w/notification bug and flyout left aligned
<div class="flyout icon-attention h-floatRight">
<span class="bug">3</span>
<ul class="flyout-content flyout-content--left">
<li><a href="...">Link/selection</a></li>
<li><a href="...">Link/selection</a></li>
</ul>
</div>
Select Style
Sort: Relevance
<div class="flyout flyout--select">Sort: <span>Relevance</span>
<ul class="flyout-content">
<li><a href="javascript:void(0)">Relevance</a></li>
<li><a href="javascript:void(0)">A-Z</a></li>
<li><a href="javascript:void(0)">Modified date</a></li>
</ul>
</div>

Forms

Make sure that the "for" attribute of all labels match the "id" of the form elements they are associated with. Most browsers will set focus on an element when you click on it's label and this is also important for screen-readers/accessibility.

Use the proper text field type for the information you are asking for. In responsive, this is especially important as smartphones and tablets will display keyboards optimized for various form field types.

Text Fields
Default iAPPS form error
<!--For entering text. First name, last name, etc.-->
<label for="textField">input type="text"</label>
<input type="text" placeholder="Enter text" id="textField">
<!--For entering passwords-->
<label for="passwordField">input type="password"</label>
<input type="password" placeholder="Enter password" id="passwordField">
<!--For entering web addresses-->
<label for="urlField">input type="url"</label>
<input type="text" placeholder="Enter URL" id="urlField">
<!--For entering email addresses-->
<label for="emailField">input type="email"</label>
<input type="email" placeholder="Enter email address" id="emailField">
<!--For entering search terms-->
<label for="searchField">input type="search"</label>
<input type="search" placeholder="Enter search term" id="searchField">
<!--For entering numbers-->
<label for="numberField">input type="number"</label>
<input type="number" placeholder="Enter number" id="numberField">
<!--For entering larger blocks of text-->
<label for="theTextArea">Textarea</label>
<textarea cols="" rows="" placeholder="Enter some longer text" id="theTextArea"></textarea>
Select
<label for="selectOne">Select an option</label>
<select id="selectOne">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
Checkbox group Select items
<fieldset>
<legend class="legend--labelStyle">Select items</legend>
<div class="formCheckBox">
<span>
<input type="checkbox" id="checkOne">
<label for="checkOne">Option1</label>
</span>
<span>
<input type="checkbox" id="checkTwo">
<label for="checkTwo">Option2</label>
</span>
<span>
<input type="checkbox" id="checkThree" >
<label for="checkThree">Option3</label>
</span>
</div>
</fieldset>
Radio button group Select an item
<fieldset>
<legend class="legend--labelStyle">Select an item</legend>
<div class="formRadioButton">
<span>
<input type="radio" name="radios" id="radioOne">
<label for="radioOne">Option1</label>
</span>
<span>
<input type="radio" name="radios" id="radioTwo">
<label for="radioTwo">Option2</label>
</span>
<span>
<input type="radio" name="radios" id="radioThree">
<label for="radioThree">Option3</label>
</span>
</div>
</fieldset>

Image Bar Banner

Image bar banners are similar to page banners, but caculate and size the image to fill the available space of its' container instead of simply swapping images. The calculations are based on the viewport width of the browser and/or device. They can be used on templates as fullbleed or held within the main content column. The default image bar banner copy block aligns right and has an opaque green background.

Please note: to use image bars on a template page, it must be ensured the correct script code is also be injected. This should be handled within iApps.

Basic usage

Example Header Lorem Ipsum

Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.

Learn More
<div class="imageBar">
<div class="imageBar-imageContainer" data-stretchsm="URL" data-stretchlg="URL"></div>
<div class="imageBar-colorBlock">
<div class="imageBar-colorBlock-copy">
<h3>Example Header Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.</p>
<a href="" class="btn btn--featured btn--featured--lt h-fontHighlightLight">Learn More</a>
</div>
</div>
</div>
Each image bar banner requires two image sizes across responsive design.

If the image bar banner is included within the main content (ex: T15) it requires small and medium sized images:

If the image bar banner is fullbleed (ex: T14) , it requires small and large sized images:

The default alignment of the image bar banner copy block can be moved to the left with a helper class. You will need to adjust your image focus accordingly.

Example Header Lorem Ipsum

Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.

Learn More
<div class="imageBar">
<div class="imageBar-imageContainer" data-stretchsm="URL" data-stretchlg="URL"></div>
<div class="imageBar-colorBlock imageBar-colorBlock--left">
<div class="imageBar-colorBlock-copy">
<h3>Example Header Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.</p>
<a href="" class="btn btn--featured btn--featured--lt h-fontHighlightLight">Learn More</a>
</div>
</div>
</div>

Similar to page banners, image bar banners includes several color variations setup within the code. These are controlled by applying helper classes.

Example Header Lorem Ipsum

Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.

Learn More
<div class="imageBar">
<div class="imageBar-imageContainer" data-stretchsm="URL" data-stretchlg="URL"></div>
<div class="imageBar-colorBlock imageBar-colorBlock--blue">
<div class="imageBar-colorBlock-copy">
<h3>Example Header Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet consectetur adipiscing ilicit. Adipic tetur adpisic smod tempor alor.</p>
<a href="" class="btn btn--featured btn--featured--lt h-fontHighlightLight">Learn More</a>
</div>
</div>
</div>

Media Block

Place any image and text-like content side-by-side, as per: http://stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code

Basic usage is for images. For usage with videos see video section

Basic usage

Media header

Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.

Learn more

<div class="mediaBlock">
<figure><img src="200x200.png"></figure>
<div class="mediaBlock-body">
<h3>Media header</h3>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.</p>
<p><a href="" class="btn">Learn more</a></p>
</div>
</div>
Right align image

Media header

Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.

Learn more

<div class="mediaBlock mediaBlock--right">
<figure><img src="200x200.png"></figure>
<div class="mediaBlock-body">
<h3>Media header</h3>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.</p>
<p><a href="" class="btn">Learn more</a></p>
</div>
</div>

Pagination

<div class="pagination">
  <div class="pageNumbers">
    <a class="prev inactive"><a href="#"></a>
    <span class="current">1</span>
    <a><a href="#">2</a>
    <a><a href="#">3</a>
    <a><a href="#">4</a>
    <a><a href="#">5</a>
    <a class="next"><a href="#"></a>
  </div>
</div>

Page Banners

Interior templates have a feature page banner including the current category title. You have several color pattern variations as well as the option for background images. The default page banner includes the blue pattern background.

About Us

<div class="bannerMain bannerMain-interior">
<div class="bannerMain-container">
<div class="bannerMain-interior--title"><h1>About Us</h1></div>
</div>
</div>

The pattern includes several color variations setup within the code, controlled by applying helper classes.

About Us

<div class="bannerMain bannerMain-interior bannerMain--green">
<div class="bannerMain-container">
<div class="bannerMain-interior--title"><h1>About Us</h1></div>
</div>
</div>

You can also set a background image for your page banner. Please select the proper page banner control within iApps to include a background image for mobile, tablet and desktop. This banner requires three image sizes across responsive design.

About Us

<div class="bannerMain bannerMain-interior">
<div class="bannerMain-container">
<div class="bannerMain-bannerFeature">
<div class="bannerMain-bannerFeatureImg"><picture>
  ...source of three image sizes goes here, as inserted from iApps...</picture>
</div>
</div>
</div>
</div>

Some banners require additional copy beyond merely a page title, such as the Metro Landing page. This banner includes variant divs to include an extended CTA.

Metro Denver

Optional short intro goes here. Lorem ipsum dolor sit amet consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

<div class="bannerMain bannerMain-generic">
<div class="bannerMain-container">
<div class="bannerMain-bannerFeature">
 <div class="bannerMain-bannerFeatureImg"><picture>
  ...source of three image sizes goes here, as inserted from iApps...</picture>
 </div>
</div>
<div class="bannerMain-CTA">
<div class="row">
<div class="column med-12">
<h1>Banner Title</h1><p>Short intro goes here. Lorem ipsum dolor sit amet consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</div>
</div>
</div>
</div>

Popups

In-depth documentation, options and examples for the popup modals used on this site can be found here: http://dimsemenov.com/plugins/magnific-popup/documentation.html

Basic usage Show inline popup
<!--The link. data-mfp-src matches id of popup to open -->
<a data-mfp-src="#test-popup" class="openPopup">Show inline popup</a>
<!--the popup-->
<div id="test-popup" class="popup mfp-hide">
Popup content
</div>
<!--The link. HREF pointed to the image, popupType="image" -->
<a href="File Library/styleguide-files/200x200.png" class="openPopup" popupType="image">Show image popup</a>
<!--The link. HREF pointed to the YouTube or Vimeo URL, popupType="iframe" -->
<a href="https://www.youtube.com/watch?v=XQWOKBBJ114" class="openPopup" popupType="iframe">Show image popup</a>
Google Maps Show Google Map popup
<!--The link. HREF pointed to Google Maps URL (querystring format only!), popupType="iframe" -->
<a href="https://maps.google.com/maps?q=Gary+Lee's+Motor+Club+and+Grub" class="openPopup" popupType="iframe">Show Google Map popup</a>

Siderail Callouts

There are a number of siderail callout variations that can be used to feature different content within the site's right rail on desktop. On mobile and tablet, these callouts collapse below the main content.

The HTML snippets below reflect the interior structure for the siderail content. iApps will wrap each individual callout with an encompassing div which will set it's responsive grid structure relative to it's appropriate template. To understand how your site grid works, please see section: Grid

Generic Siderail Callout

Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque. Inline link example.

Example Button
<div class="islet islet--tan h-hardEnds">
<div class="ornament icon-paw">
<h5 class="h-pushSmBottom">Generic Siderail Callout</h5>
<p class="h-lineHeightXSm">Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque. <a href="URL">Inline link example</a>.</p>
<a class="btn" href="URL">Example Button</a>
</div>
</div>

Template Example(s): T10

This is the most flexible callout. You can include images, buttons, links, text fields, etc. within the content area. Using helper classes outlined within this styleguide, you can change the background color, text color and featured icon to achieve visual variations.

<div class="islet islet--red h-hardEnds">
<div class="ornament ornament--invert icon-heart">
<h5 class="h-colorWhite h-pushSmBottom">Example Variation: Full-Click Siderail Callout, Red with Icon Alt</h5>
<p class="h-colorWhite h-lineHeightXSm">This entire block is a link and clicks through. This can be used to link full blocks of content versus having an inline link or button. Remember to use helper classes to adjust font colors for legibility.</p>
</div>
</div>

Template Example(s): T9

Featured Image Callout with Ornament Rule


Callout for when the image is the main focus. Lorem ipsum dolor sit amet consectetur adipisicing iz erat set do euiu somongn tempor.

<img class="h-pushBottom" src="URL" />
<h4 class="h-pushSmBottom heading--light">Featured Image Callout with Ornament Rule</h4>
<hr class="h-pushSmBottom rule--ornament h-colorHeadingLight">/>
<p class="h-pushSmBottom">Callout for when the image is the main focus. Lorem ipsum dolor sit amet consectetur adipisicing iz erat set do euiu somongn tempor</p>
<p class="h-sizeXXLg">
<a href="URL"><i class="icon-android h-pushSmRight"></i></a>
<a href="URL"><i class="icon-apply"></i></a>
</p>

Template Example(s): T15

Sign Up for Our Newsletter

Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque.

<div class="islet islet--tan h-hardEnds">
<div class="ornament icon-email">
<h5 class="h-colorRedBrand h-pushSmBottom">Sign Up for Our Newsletter</h5>
<p class="h-lineHeightXSm">Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque.</p>
<div class="insetButtonField h-pushBottom">
<label>Newsletter Sign up</label>
<input type="text" placeholder="Email Address" name="newsletterSignup" id="newsletterSignup"/>
<input type="submit" value="fetch" class="btn btn--tertiary"/>
</div>
</div>
</div>
    

Template Example(s): T7, T8, T15

Sign Up for Our Newsletter

Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque.

<div class="islet islet--red h-hardEnds">
<div class="ornament ornament--invert icon-email">
<h5 class="h-colorWhite h-pushSmBottom">Sign Up for Our Newsletter</h5>
<p class="h-colorWhite h-lineHeightXSm">Lorem ipsum dolor sit amet, consectetur adipisicing elit nullam ac maruis quisque.</p>
<div class="insetButtonField h-pushBottom">
<label>Newsletter Sign up</label>
<input type="text" placeholder="Email Address" name="newsletterSignup" id="newsletterSignup"/>
<input type="submit" value="fetch" class="btn btn--tertiary"/>
</div>
</div>
</div>
    

Template Example(s): T16

Are You a New Customer?

If you are a new customer and are interested in bringing your dog to Camp, please Request an Interview

Request Interview

<div class="island island--greyLighter island--pullLast">
<h5 class="heading--upper h-textCenter">Are You a New Customer?</h5>
<img class="h-pushSmBottom" src="URL"/>
<p>If you are a new customer and are interested in bringing your dog to Camp, please <a href="URL">Request an Interview</a></p>
<p class="h-textCenter"><a class="btn btn--full btn--lg h-fontHighlightLight" href="URL">Request Interview</a></p>
</div>
    

Template Example(s): T5, T10, T11

Upcoming Events
Event Name Here

Bark & Play Bar & Grill
June 20, 2015

July 10
Event Name Here

Camp Bow Wow Location

Aug 2
Event Name Here

Camp Bow Wow Location

View all events

<div class="islet islet--greyLighter islet--pullLast">
<h5 class="heading--upper h-textCenter">Upcoming Events</h5>
<img class="h-pushSmBottom" src="URL"/>
<a class="h-flush h-lineHeightXSm" href="URL">Event Name Here</a>
<p class="h-sizeSm h-underline--dashed h-lineHeightXSm">Bark & Play Bar & Grill</br>
June 20, 2015</p>
<div class="mediaBlock h-underline--dashed h-pushBottom">
<figure class="mediaBlock-figure eventCalendar">
<span class="eventCalendar-month">Aug</span>
<span class="eventCalendar-day">2</span>
</figure>
<div class="mediaBlock-body">
<a class="h-flush h-lineHeightXSm" href="URL">Event Name Here</a>
<p class="h-sizeSm h-lineHeightXSm">Camp Bow Wow Location</p>
</div>
</div>
<p class="h-textCenter"><a class="btn btn--full btn--long h-fontHighlightLight" href="URL">View all events</a></p>
</div>
    

Template Example(s): T15

Camp Bow Wow Hicksville

1234 Main Street
New York, NY 11234
212.123.4567

Mon
7am - 12pm
4am - 7pm
Tue
7am - 7pm
Wed
7am - 7pm
Thu
7am - 7pm
Fri
7am - 7pm
Sat
7am - 7pm
Sun
7am - 7pm
Holidays
4pm - 7pm

New? Schedule Interview

Make Reservation

<div class="island island--tan h-hardEnds">
<div class="ornamnet icon-location">
<h5 class="h-colorRedBrand h-pushSmBottom">Camp Bow Wow Hicksville</h5>
<p class="h-lineHeightXSm">1234 Main Street</br>
New York, NY 11234</br>
212.123.4567</p>
<dl>
<dt>Mon</dt>
<dd>7am - 12pm</dd>
<dd class="multiLine">4PM - 7PM</dd>
<dd class="newLine"></dd>
<dt>Tues</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Wed</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Thurs</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Fri</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Sat</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Sun</dt>
<dd>7am - 7pm</dd>
<dd class="newLine"></dd>
<dt>Holidays</dt>
<dd>4pm - 7pm</dd>
<dd class="newLine"></dd>
</dl>
<p><a class="btn btn--full btn--tertiary" href="URL">New? Schedule Interview</a></p>
<p><a class="btn btn--full btn--tertiary" href="URL">Make Reservation</a></p>
</div>
</div>
    

Template Example(s): T5, T9, T10, T11, T16, T17, T24

<div class="islet islet--red h-hardEnds">
<div class="ornament ornamnet--invert">
<h5 class="h-pushSmBottom h-colorWhite">Our Services</h5>
<ul class="list--unstyled list--bordered list--bordered--red">
<li><a class="h-colorWhite" href="URL">Dog Daycare <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">Dog Boarding <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">Dog Grooming <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">Dog Training <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">In-Home Pet Care <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">Dog Walking <i class"icon-right-open h-floatRight"></i></a></li>
<li><a class="h-colorWhite" href="URL">Poop Scooping <i class"icon-right-open h-floatRight"></i></a></li>
</ul>
</div>
</div>
    

Template Example(s): T17, T24

Tabs

  • Tab one

    For one or two tabs that will easily fit horizontally even when the site is viewed on small screens.

  • Tab two

    Content for tab two.

<ul class="tabs">
<li><a href="javascript:void(0)">Tab one</a>
<div>
<p>Content for tab one.</p>
</div>
</li>
<li><a href="javascript:void(0)">Tab two</a>
<div>
<p>Content for tab two.</p>
</div>
</li>
</ul>
  • Tab one

    For tabs which would not all fit horizontally on smaller screens, add the class of "tabs--accordion" and on smaller screens the tabs will convert to a vertical accordion

  • Tab two

    Content for tab two.

  • Tab three

    Content for tab three.

  • Tab four

    Content for tab four.

<ul class="tabs tabs--accordion">
<li><a href="javascript:void(0)">Tab one</a>
<div>
<p>Content for tab one.</p>
</div>
</li>
<li><a href="javascript:void(0)">Tab two</a>
<div>
<p>Content for tab two.</p>
</div>
</li>
<li><a href="javascript:void(0)">Tab three</a>
<div>
<p>Content for tab three.</p>
</div>
</li>
<li><a href="javascript:void(0)">Tab four</a>
<div>
<p>Content for tab four.</p>
</div>
</li>
</ul>

Downloads

Site Image Templates (PSD)

CBW - web pattern

This is the template for the default repeating web pattern used within page banners. This template includes blue, red, green and tan pattern variations.

Blue - Dark

Blue - Light

Red

Tan

Tan (HB)

Green (HB)

CBW - print icons altered for web

CBW print icons adjusted for the web.

download

CBW - custom web icons

Custom web icons.

download

CBW - contact web icons

Contact web icons, seen within the footer.

download

CBW - award/testimonial badge

This template is for creating variations of the award/trophy badge, as seen within the awards & testimonials carousel.

download

Image Bar Banners

These are the templates for creating responsive images for image bar banners. Each image bar banner requires two image sizes.

Fullbleed banners require small and large templates (example:T14); contained banners require small and medium templates (example:T15).

download - small

download - medium

download - large

Interior Page Banner

These are the templates for creating responsive images for interior page banners. Each interior page banner requires three image sizes: small, large & extra-large.

download - small

download - large

download - extra-large

Corporate Homepage Banner

These are the templates for creating responsive images for corporate homepage banners. Each corporate homepage banner requires four image sizes: small, medium, large & extra-large.

download - small

download - medium

download - large

download - extra-large

Franchise Homepage Banner

These are the templates for creating responsive images for franchise homepage banners. Each franchise homepage banner requires four image sizes: small, medium, large & extra-large.

download - small

download - medium

download - large

download - extra-large

General Coding Notes

Helper Classes

Helper classes are provided to accomodate one-off situations where additional CSS attributes need to be applied to an element for layout or presentation purposes.

Font-color Helper Classes

.h-colorRed

Colors text the basic red used to style the site

<p class="h-colorRed">..</p>
.h-colorGreen

Colors text the basic green used to style the site

<p class="h-colorGreen">..</p>
.h-colorBlue

Colors text the basic blue used to style the site

<p class="h-colorBlue">..</p>
.h-colorYellow

Colors text the basic yellow used to style the site

<p class="h-colorYellow">..</p>
.h-colorGrey

Colors text the basic grey used to style the site

<p class="h-colorGrey">..</p>
.h-colorGreyLight

Colors text the basic light grey used to style the site

<p class="h-colorGreyLight">..</p>
.h-colorGreyLighter

Colors text the basic lighter grey used to style the site

<p class="h-colorGreyLighter">..</p>
.h-colorGreyLightest

Colors text the basic lightest grey used to style the site

<p class="h-colorGreyLightest">..</p>
.h-colorWhite

Colors text white

<p class="h-colorWhite">..</p>
.h-colorBlack

Colors text black

<p class="h-colorBlack">..</p>

Font Face Helper Classes

.h-fontHighlight

Style text elements in the same font-family used for headings and highlight text

<p class="h-fontHighlight">..</p>
.h-fontBase

Style text elements in the same font-family as the main font used on the site.

<p class="h-fontBase">..</p>

Font Size Helper Classes

.h-h1

H1 size text.

<p class="h-h1">..</p>
.h-h2

H2 size text.

<p class="h-h2">..</p>
.h-h3

H3 size text.

<p class="h-h3">..</p>
.h-h4

H4 size text.

<p class="h-h4">..</p>
.h-h5

H5 size text.

<p class="h-h5">..</p>
.h-h6

H6 size text.

<p class="h-h6">..</p>
.h-sizeXSm

XSm size text.

<p class="h-sizeXSm">..</p>
.h-sizeSm

Sm size text.

<p class="h-sizeSm">..</p>
.h-sizeLg

Lg size text.

<p class="h-sizeLg">..</p>
.h-sizeXLg

XLg size text.

<p class="h-sizeXLg">..</p>

Alignment Helper Classes

.h-textLeft

Aligns text left.

<p class="h-textLeft">..</p>
.h-textCenter

Aligns text center.

<p class="h-textCenter">..</p>
.h-textRight

Aligns text right.

<p class="h-textRight">..</p>

Margin Helper Classes

.h-push

Adds base spacing margin all around.

<p class="h-push">..</p>
.h-pushTop

Adds base spacing margin to top.

<p class="h-pushTop">..</p>
.h-pushRight

Adds base spacing margin to right.

<p class="h-pushRight">..</p>
.h-pushBottom

Adds base spacing margin to bottom.

<p class="h-pushBottom">..</p>
.h-pushLeft

Adds base spacing margin to left.

<p class="h-pushLeft">..</p>
.h-pushEnds

Adds base spacing margin to top and bottom.

<p class="h-pushEnds">..</p>
.h-pushSides

Adds base spacing margin to right and left.

<p class="h-pushSides">..</p>
.h-pushSm

Adds small spacing margin all around.

<p class="h-pushSm">..</p>
.h-pushSmTop

Adds small spacing margin to top.

<p class="h-pushSmTop">..</p>
.h-pushSmRight

Adds small spacing margin to right.

<p class="h-pushSmRight">..</p>
.h-pushSmBottom

Adds small spacing margin to bottom.

<p class="h-pushSmBottom">..</p>
.h-pushSmLeft

Adds small spacing margin to left.

<p class="h-pushSmLeft">..</p>
.h-pushSmEnds

Adds small spacing margin to top and bottom.

<p class="h-pushSmEnds">..</p>
.h-pushSmSides

Adds small spacing margin to right and left.

<p class="h-pushSmSides">..</p>
.h-pushLg

Adds large spacing margin all around.

<p class="h-pushLg">..</p>
.h-pushLgTop

Adds large spacing margin to top.

<p class="h-pushLgTop">..</p>
.h-pushLgRight

Adds large spacing margin to right.

<p class="h-pushLgRight">..</p>
.h-pushLgBottom

Adds large spacing margin to bottom.

<p class="h-pushLgBottom">..</p>
.h-pushLgLeft

Adds large spacing margin to left.

<p class="h-pushLgLeft">..</p>
.h-pushLgEnds

Adds large spacing margin to top and bottom.

<p class="h-pushLgEnds">..</p>
.h-pushLgSides

Adds large spacing margin to right and left.

<p class="h-pushLgSides">..</p>
.h-flush

Removes margin all around.

<p class="h-flush">..</p>
.h-flushTop

Removes margin top.

<p class="h-flushTop">..</p>
.h-flushRight

Removes margin right.

<p class="h-flushRight">..</p>
.h-flushBottom

Removes margin bottom.

<p class="h-flushBottom">..</p>
.h-flushLeft

Removes margin left.

<p class="h-flushLeft">..</p>

Padding Helper Classes

.h-soft

Adds base spacing padding all around.

<p class="h-soft">..</p>
.h-softTop

Adds base spacing padding to top.

<p class="h-softTop">..</p>
.h-softRight

Adds base spacing padding to right.

<p class="h-softRight">..</p>
.h-softBottom

Adds base spacing padding to bottom.

<p class="h-softBottom">..</p>
.h-softLeft

Adds base spacing padding to left.

<p class="h-softLeft">..</p>
.h-softEnds

Adds base spacing padding to top and bottom.

<p class="h-softEnds">..</p>
.h-softSides

Adds base spacing padding to right and left.

<p class="h-softSides">..</p>
.h-softSm

Adds small spacing padding all around.

<p class="h-softSm">..</p>
.h-softSmTop

Adds small spacing padding to top.

<p class="h-softSmTop">..</p>
.h-softSmRight

Adds small spacing padding to right.

<p class="h-softSmRight">..</p>
.h-softSmBottom

Adds small spacing padding to bottom.

<p class="h-softSmBottom">..</p>
.h-softSmLeft

Adds small spacing padding to left.

<p class="h-softSmLeft">..</p>
.h-softSmEnds

Adds small spacing padding to top and bottom.

<p class="h-softSmEnds">..</p>
.h-softSmSides

Adds small spacing padding to right and left.

<p class="h-softSmSides">..</p>
.h-softLg

Adds large spacing padding all around.

<p class="h-softLg">..</p>
.h-softLgTop

Adds large spacing padding to top.

<p class="h-softLgTop">..</p>
.h-softLgRight

Adds large spacing padding to right.

<p class="h-softLgRight">..</p>
.h-softLgBottom

Adds large spacing padding to bottom.

<p class="h-softLgBottom">..</p>
.h-softLgLeft

Adds large spacing padding to left.

<p class="h-softLgLeft">..</p>
.h-softLgEnds

Adds large spacing padding to top and bottom.

<p class="h-softLgEnds">..</p>
.h-softLgSides

Adds large spacing padding to right and left.

<p class="h-softLgSides">..</p>
.h-hard

Removes padding all around.

<p class="h-hard">..</p>
.h-hardTop

Removes padding top.

<p class="h-hardTop">..</p>
.h-hardRight

Removes padding right.

<p class="h-hardRight">..</p>
.h-hardBottom

Removes padding bottom.

<p class="h-hardBottom">..</p>
.h-hardLeft

Removes padding left.

<p class="h-hardLeft">..</p>

Float Helper Classes

.h-clearfix

Apply to items containing floated elements so the inner elements will not escape the boundaries of their container.

<p class="h-clearfix">..</p>
.h-clearBoth

Apply to items to clear both left and right floats.

<p class="h-clearBoth">..</p>
.h-clearRight

Apply to items to clear right floats.

<p class="h-clearRight">..</p>
.h-clearLeft

Apply to items to clear left floats.

<p class="h-clearLeft">..</p>
.h-floatRight

Floats items to the right.

<p class="h-floatRight">..</p>
.h-floatLeft

Floats items to the left.

<p class="h-floatLeft">..</p>
.h-floatNone

Removes any floats.

<p class="h-floatNone">..</p>

Misc Helper Classes

<a class="h-disabled">..</p>
<a class="h-muted">..</p>
.h-visuallyHidden

Hides an element visually but leaves it accessible to screen readers. Useful for 508 compliance.

<a class="h-visuallyHidden">..</p>
.h-underline

Applies bottom border to an element.

<p class="h-underline">..</p>
.h-overline

Applies top border to an element.

<p class="h-overline">..</p>
.h-strikethrough

Strikes text in the element.

<p class="h-strikethrough">..</p>
.h-caps

Displays text in caps.

<p class="h-caps">..</p>
.h-truncate

Truncates runs of text with a fade (removes line wrapping as well). Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

<p class="h-truncate">..</p>

Naming Convention

This site uses a modified version of the BEM naming syntax. The modified version used is based largely on Nicolas Gallagher's extended BEM syntax. The intention is to make the styles more readable and understandable for humans.

Note though that class names composed of two or more words are written in camelCase as opposed to Gallagher's PascalCase.

/* Component */
.componentName {}

/* Component modifier */
.componentName--modifierName {}

/* Component descendant */
.componentName-descendant {}

/* Component descendant modifier */
.componentName-descendant--modifierName {}

/* Component state (scoped to component) */
.componentName.is-stateOfComponent {}

Begin class names with the most abstract descriptor and then layer in specifics.

/* Basic nav style */
.nav {}

/* The main nav of the site */
.navMain {}

/* The secondary nav of the site */
.navSecondary {}

/* The footer nav */
.navFooter {}

Class names should be reusable and descriptive. We use the multi-class pattern where by laying class names onto an element we can achieve many different and reusable styles.

.button { /* basic button styles */ }
.buttonPrimary { /* styles specific to primary button */ }

<button class="button">Default</button>
<button class="button buttonPrimary">Login</button>

Use .is-stateName to reflect changes to a component's state. The state name must be camel case. Never style these classes directly; they should always be used as an adjoining class.

This means that the same state names can be used in multiple contexts, but every component must define its own styles for the state (as they are scoped to the component).

.tweet { /* ... */ }
.tweet.is-expanded { /* ... */ }

<article class="tweet is-expanded">...</article>

Sass

SASS has been used in the building of this site for ease of maintenance, organization and best practices. The compiled CSS files themselves (base.css, responsive.css and lateIE.css) should not be edited directly or the benefits of using SASS on your site will be lost. Instead, a SASS compatible compiler such as Compass or Scout should be used by a front end developer familiar with SASS and CSS compilers.

If additional non-SASS CSS must be added to the site, it is recommended that additional style sheets be created instead and included in the page.