Web Style Guide Psychiatry.org

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 APA website.

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 fuhnction together as a unit.

Palette

Brand Colors

RGBY

Monochrome

Headings & Paragraphs

With Consideration of ADA: follow a cohesive outline with your content, since keyboard and screen readers navigate by heading elements. Avoid skipping heading levels by setting appropriate hierarchy structure (H1, H2, H3, H4 etc.) Header numbering must always be sequential.

Consider overall page header numbering when editing header tags within code snippets.

h1

Heading 1 - Roboto 38px #111111

<h1>Heading 1</h1>
h2

Heading 2 - Roboto 26px #111111

<h2>Heading 2</h2>
h3

Heading 3 - Roboto 24px #111111

<h3>Heading 3</h3>
h4

Heading 4 - Roboto 22px #111111

<h4>Heading 4</h4>
h5
Heading 5 - Roboto 20px #111111
<h5>Heading 5</h5>
h6
Heading 6 - Roboto 18px #111111
<h6>Heading 6</h6>
Paragraph

Roboto 16px #363636 - 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>

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>
Unordered block
  • Item one
  • Item two
  • Item three
<ul class="list--block">
<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>
Info list w/ icons

General use as supplementary info about events, articles, etc.

  • Johnson-Smith Events Center
  • Mon, Jan 26 - Wed, Dec 28
  • 8am - 2pm
<ul class="list--info">
<li><i class="icon-location" aria-hidden="true">Johnson-Smith Events Center</li>
<li><i class="icon-calendar" aria-hidden="true">Mon, Jan 26 - Wed, Dec 28</li>
<li><i class="icon-clock" aria-hidden="true">8am - 2pm</li>
</ul>
Definition list
Item one
Item one info
Item two
Item two info
Item three
Item three info
<dl>
<dt>Item one<dt>
<dd>Item one info<dd>
<dt>Item two<dt>
<dd>Item two info<dd>
<dt>Item three<dt>
<dd>Item three info<dd>
</dl>

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>

Horizontal Rule

hr - basic
<hr />
hr - dotted
<hr class="rule--dotted" />
hr - dashed
<hr class="rule--dashed" />
hr - ornament
<hr class="rule--ornament" />

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".

Use this button for primary calls to action and form submission. Try not to overuse on any one page as this dilutes the visual impact. Once per page/form is ideal. 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">
Negative actions; e.g. close account, delete photo, remove friend, etc. Text link
<a href="" class="btn btn--negative">...</a>
<input name="" type="button" value="input" class="btn btn--negative">
General site use and low profile calls to action Text link
<a href="" class="btn">...</a>
<input name="" type="button" value="input">
For use on colored backgrounds or image overlays Text link
<a href="" class="btn btn--white">...</a>
<input name="" type="button" value="input" class="btn btn--white">
General site use. Text link
<a href="" class="btn btn--XSm">...</a>
<input name="" type="button" value="input" class="btn btn--XSm">
General site use. Text link
<a href="" class="btn btn--sm">...</a>
<input name="" type="button" value="input" class="btn btn--sm">
General site use 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

<h1>Heading 1 <a href="" class="btn btn--natural">...</a></h1>

Locked Content

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>

Slab

Adds left border and padding to highlight content

Basic usage

Content here...

<div class="slab">
<p>Content here...</p>
</div>

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>

Tables

With consideration of ADA:When using tables, ensure the correct column and row headers are identified with appropriate tags (such as < th> for table headers).

Foo Bar
Lorem Ipsum Dolor Sit
Sit Dolor 03.788 Lorem
Dolor 32.210 Lorem
Dolor 47.797 Lorem
Sit Dolor 09.640 Lorem
Dolor 12.117 Lorem
<div class="tableContainer">
<table class="table--bordered  table--striped  table--data">
<colgroup>
<col class=t10>
<col class=t10>
<col class=t10>
<col>
</colgroup>
<thead>
<tr>
<th colspan=3>Foo</th>
<th>Bar</th>
</tr>
<tr>
<th>Lorem</th>
<th>Ipsum</th>
<th class=numerical>Dolor</th>
<th>Sit</th>
</tr>
</thead>
<tbody>
<tr>
<th rowspan=3>Sit</th>
<td>Dolor</td>
<td class=numerical>03.788</td>
<td>Lorem</td>
</tr>
<tr>
<td>Dolor</td>
<td class=numerical>32.210</td>
<td>Lorem</td>
</tr>
<tr>
<td>Dolor</td>
<td class=numerical>47.797</td>
<td>Lorem</td>
</tr>
<tr>
<th rowspan=2>Sit</th>
<td>Dolor</td>
<td class=numerical>09.640</td>
<td>Lorem</td>
</tr>
<tr>
<td>Dolor</td>
<td class=numerical>12.117</td>
<td>Lorem</td>
</tr>
</tbody>
</table>
</div>

Bug

.bug needs to be in a relatively positioned container like an alert.

Basic example

Messages 13

<p class="alert"><span class="bug">13</span> Messages</p>

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>

Labels

Labels - static Label 01 Label 02
<span class="label">Label 01</span>
<span class="Label">Label 02</span>
Labels - self closing Label 01 Label 02
<span class="label label--closeable">Label 01</span>
<span class="label label--closeable">Label 02</span>

Badges

Basic example

Messages 13

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

Form Elements

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="basicSelect">Select an option</label>
<select id="basicSelect">
<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>
Inline label pattern
  • Text fields, selects and textareas using the inline label pattern display the optional styling (grey left border) by default
  • The required style (orange left border) is applied by using the "required" attribute on the field in custom forms or the "objectrequired" attribute for formbuilder forms
  • The placeholder attribute is not necessary as the script will create them based on the label text
  • With selects, the label and the first option need to have the same text

= Required = Optional

<p><span class="requiredDescrip">= Required</span> <span class="optionalDescrip">= Optional</span></p>
<div class="inlineLabel">
<label for="typeSomething">Type Something</label>
/* note the "required" attribute on this field */
<input type="text" id="typeSomething" required />
</div>
<div class="inlineLabel">
<label for="selectSomething">Select Something</label>
/* no "required" attribute so this is optional */
<select id="selectSomething">
<option value="Select Something">Select Something</option>
<option value="Option one">Option one</option>
<option value="Option two">Option two</option>
<option value="Option three">Option three</option>
</select>
</div>
"required" and "optional" styling without using inline labels

These classes can be used on text elements, selects or divs surrounding checkbox and radio groups

= Required = Optional

The following contact information is
<p><span class="requiredDescrip">= Required</span> <span class="optionalDescrip"> = Optional</span></p>
<label for="firstName">First Name</label>
/* Note class of "required" */
<input type="text" id="firstName" placeholder="Please enter your first name"  class="required" />
<label for="cob">Country of Birth</label>
/* Note class of "optional" */
<select id="cob" class="optional">
<option>Option one</option>
<option>Option two</option>
<option>Option three</option>
</select>

Calendar

Basic usage
JAN
2015
26
<figure class="figure--calendar">
<div class="calendar-detail">
<div class="calendar-detail-mo">JAN</div>
<div class="calendar-detail-yr">2015</div>
</div>
26
</figure>
Small
JAN
2015
26
<figure class="figure--calendar figure--calendar--sm">
<div class="calendar-detail">
<div class="calendar-detail-mo">JAN</div>
<div class="calendar-detail-yr">2015</div>
</div>
26
</figure>
Skeleton

The figure--calendar--sm class cannot be used with the skeleton calendar styles

JAN
2015
26
<figure class="figure--calendar figure--calendar--skeleton">
<div class="calendar-detail">
<div class="calendar-detail-mo">JAN</div>
<div class="calendar-detail-yr">2015</div>
</div>
26
</figure>
Skeleton - white
JAN
2015
26
<figure class="figure--calendar figure--calendar--skeleton figure--calendar--skeleton--white">
<div class="calendar-detail">
<div class="calendar-detail-mo">JAN</div>
<div class="calendar-detail-yr">2015</div>
</div>
26
</figure>

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.

ADA Compliance

The alt tag is associated with the image to succinctly but descriptively explain the purpose of the object(s) seen within the image. Images without alt tags fail to meet ADA requirements. Alt tags cannot be replicated and should directly communicate what the image viually represents; not a marketing message. For example, an image representing Small Business Conferences might read: Group of men and women in auditorium listening to a man speak.

All images must have an alt tag.

Any graphics used purely for decoration should not have an alt tag, but must use an empty alt description:

<img="source" alt=""/>

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" alt="describes image">
<figcaption>Caption describing image</figcaption>
</figure>
Floated left of content
describes image
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"  alt="describes image">
<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"  alt="describes image">
<figcaption>Caption describing image</figcaption>
</figure>
<p>Lorem ipsum dolor sit amet...</p>
Small image (thumbnail size)
Caption describing image
<figure class="figure--sm">
<img src="200x200.png" alt="describes image">
<figcaption>Caption describing image</figcaption>
</figure>

Videos

Placement & Use

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

Full width video
<figure class="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 mediaBlock)

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

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

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.

ADA Compliance

Icons must exist as separate elements with aria-hidden set to true. This tells screen readers to ignore the element vs. trying to read it.

<a href="javascript:void(0)">Text Link <i class="icon-right-open" aria-hidden="true"></i></a>

Icons can only be applied one way in order to be ADA Compliant:

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

Using the <i> method, icons can be animated and/or styled apart from their containing text element. They will also be ignored by screenreaders.

Loading...

<p><i class="icon-loading animate-spin" aria-hidden="true"></i> Loading...</p>

Completed

<p><i class="icon-check h-colorGreen" aria-hidden="true"e;></i> Completed</p>

Available icons/classes

icon-plus
icon-minus
icon-home
icon-attention
icon-mail
icon-check
icon-cancel
icon-cancel-circled
icon-quote-left
icon-plus-circled
icon-minus-circled
icon-help-circled
icon-info-circled
icon-print
icon-play
icon-menu
icon-help
icon-info
icon-facebook-square
icon-gplus-square
icon-instagram
icon-linkedin-square
icon-pinterest-square
icon-skype
icon-youtube-square
icon-flickr-square
icon-rss
icon-asterisk
icon-user
icon-search
icon-phone
icon-facebook
icon-twitter
icon-share
icon-twitter-square
icon-location
icon-calendar
icon-clock
icon-comment
icon-cog
icon-outbound
icon-left-open
icon-right-open
icon-up-open
icon-down-open
icon-check-circled
icon-read
icon-feather
icon-group
icon-article
icon-keynote
icon-pdf
icon-powerpoint
icon-word
icon-xls
icon-download
icon-lock

Islands/Islets

Adds spacing of content with optional color styles

Basic usage
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island">...</div>
/* islet */
<div class="islet">...</div>
Grey
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--grey">...</div>
/* islet */
<div class="islet islet--grey">...</div>
Bordered
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--border">...</div>
/* islet */
<div class="islet islet--border">...</div>
Bordered Orange
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--border island--border--orange">...</div>
/* islet */
<div class="islet islet--border islet--border--orange">...</div>
Bordered Blue
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--border island--border--blue">...</div>
/* islet */
<div class="islet islet--border islet--border--blue">...</div>
Orange
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--orange">...</div>
/* islet */
<div class="islet islet--orange">...</div>
Blue
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
/* island *
/<div class="island island--blue">...</div>
/* islet */
<div class="islet islet--blue">...</div>

Cards

Cards build upon either the island or islet classes. Just make sure all the interior elements have the proper class name (island or islet).

Basic Usage
Recent Blog Posts
APA blog

Content here

Recent Blog Posts
APA blog

Content here

/* Using island */
<div class="island island--card">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 1
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent1">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent1">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 2
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent2">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent2">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 3
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent3">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent3">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 4
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent4">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent4">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 5
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent5">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent5">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 6
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent6">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent6">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>
Accent Color 7
Recent Blog Posts
APA blog

Content here...

Recent Blog Posts
APA blog

Content here...

/* Using island */
<div class="island island--card island--card--accent7">
<div class="island--card-label icon-feather">Recent Blog Posts</div>
/* island--card-topLink is optional */
<a href="" class="island--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

/* Using islet */
<div class="islet islet--card islet--card--accent7">
<div class="islet--card-label icon-feather">Recent Blog Posts</div>
/* islet--card-topLink is optional */
<a href="" class="islet--card-topLink">APA blog <i class="icon-right-open"></i></a>
<p>Content here...</p>
</div>

Feature Banner

Intended only for use in main content area of multi-column pages with a max-width of 850px

Basic usage

168thAnnual Meeting

Toronto, Canada, May 16-20, 2015
Register by December 2

Learn More

<div class="featureBanner">
<img src="http://placeimg.com/855/255/nature">
<div class="featureBanner-copy">
<h2>168thAnnual Meeting</h2>
<p>Toronto, Canada, May 16-20, 2015<br/>
Register by December 2</p>
<p><a href="" class="btn btn--white">Learn More</a></p>
</div>
</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"> <span>Sort: 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>

Pagination

<ul class="pagination">
<li class="pagination-prev is-disabled"><a href="javascript:void(0)"></a></li>
<li class="pagination-current"><a href="javascript:void(0)">1</a></li>
<li><a href="javascript:void(0)">2</a></li>
<li><a href="javascript:void(0)">3</a></li>
<li><a href="javascript:void(0)">4</a></li>
<li><a href="javascript:void(0)">5</a></li>
<li class="pagination-next"><a href="javascript:void(0)"></a></li>
</ul>

Custom Forms

Textual form elements are set to be flexible and expand to 100% of their container to facilitate layout with the responsive grid system.

User Settings
Send me
Every
<fieldset>
<legend>User Settings</legend>
<div class="row">
<div class="column med-12">
<label for="fieldOne">First Name</label>
<input id="fieldOne" type="text" placeholder="First name please">
</div>
<div class="column med-12">
<label for="fieldTwo">Last Name</label>
<input id="fieldTwo" type="text" placeholder="Last name please">
</div>
</div>
<label for="fieldThree">Email</label>
<input id="fieldThree" type="email" placeholder="Enter email address">
<fieldset>
<legend class="legend--labelStyle">Send me</legend>
<div class="formCheckBox">
<span>
<input type="checkbox" id="checkOne">
<label for="checkOne">Offers</label>
</span>
<span>
<input type="checkbox" id="checkTwo">
<label for="checkTwo">Updates</label>
</span>
</div>
</fieldset>
<fieldset>
<legend class="legend--labelStyle">Every</legend>
<div class="formRadioButton">
<span>
<input name="radios" type="radio">
<label>Week</label>
</span>
<span>
<input type="radio" name="radios">
<label>Month</label>
</span>
</div>
</fieldset>
</fieldset>
<div class="formSubmit">
<a href="#" class="button
 disabled">Disabled</a>
<a href="#" class="button
 secondary">Cancel</a>
<a href="#" class="button
 primary">Submit</a>
</div>

      

"Labels" for checkboxes and radio button groups should be a legend element. Both should be wrapped in a fieldset.

Select some things
<fieldset>
<legend class="legend--labelStyle">Checkboxes</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>
Select one thing
<fieldset>
<legend class="legend--labelStyle">Radio Buttons</legend>
<div class="formRadioButton">
<span>
<input type="radio" name="radios" id="radioOne" checked="">
<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>

Sections

This code snippet is used with free-form text containers, primarily within the Full-Width template. Sections are used to add spacing and control background images or colors applied as full-bleed. An inner div container sets the content to a max-width (the same as website's wrapper).

<div class="section">
  <div class="contained">   
    This is where your text content or code snippets will go.   
  </div>
</div>
Section with Background Color

This is a section, with background color primary applied within a contained div. See all Fill Color options under Helper Classes.

Note: this section appears contained in the Style Guide, see T2A for full-bleed appearance.

<div class="section h-fillColorPrimary h-colorWhite">
  <div class="contained"> 
   ..content..
  </div>   
</div>
Section with Image Background

This is a section, with background image applied within a contained div.

The inner content has additional helper classes applied to create a pseudo-banner effect. The height of the banner is dictacted by the wrapping content. A max-width is set to create a banner effect and will also enlarge the height on larger screens (due to forced wrapping).

<div class="section" style="background-image:url(URL HERE);">
  <div class="contained"> 
    <div class="island h-fillWhite60 h-displayInlineBlock" style="max-width:600px;margin:0 0 0 auto">
     ...content...
    </div>   
  </div>   
</div>

iAPPS Formbuilder Forms

By default, iAPPS places form elements in a container with the class of "formRow". By adding additional classes to this container, you can place multiple form elements side-by-side by controlling their widths across multiple screen resolutions. This is similar to the way the grid works except that there is no containing "row" div.

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.

.btn { /* basic button styles */ }
.btn--primary { /* styles specific to primary button */ }

<button class="btn">Default</button>
<button class="btn btn--primary">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>

Grid

For maximum layout flexibility, this site has been built using a responsive, nestable, 24 column Flexbox 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 to the column.

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

Column Widths

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>

Column Offsets

Columns can be offset by column widths at any of the pre-determined breakpoints

<!-- Format for these modifier classes are "offset", media query, then the number of columns you would like to offset at that breakpoint  -->
offset-[xsm|sm|med|lg|xlg|xxlg]-[1-23]
Basic Usage
<div class="row">
<div class="column med-10"></div>
<div class="column med-10 offset-med-4"></div>
</div>

Column Centering

Columns can be centered at any of the pre-determined breakpoints

<!-- Format for these modifier classes are "centered" and then the media query -->
centered-[xsm|sm|med|lg|xlg|xxlg]
Basic Usage
<div class="row">
<div class="column med-12 centered-med"></div>
<div class="column med-24"></div>
</div>

Visual Source order change

Generally, columns will stack top to bottom at their natural 100% width and display left to right once we apply a column width. Since we have a grid based on Flexbox, the visual source order of the individual Columns can be changed by adding modifier classes to them.

<!-- Format for these modifier classes are "order", media query, then the position you would like the column to be in at that breakpoint  -->
order-[xsm|sm|med|lg|xlg|xxlg]-[1-23]
Basic Usage
First in source order,
Second at med breakpoint,
Fourth at lg breakpoint
Second in source order,
Fourth at med breakpoint,
Third at lg breakpoint
Third in source order,
First at med breakpoint,
Second at lg breakpoint
Fourth in source order,
Third at med breakpoint,
First at lg breakpoint
<div class="row">
<div class="column med-12 order-med-2 order-lg-4">...</div>
<div class="column med-12 order-med-4 order-lg-3">...</div>
<div class="column med-12 order-med-3 order-lg-2">...</div>
<div class="column med-12 order-med-1 order-lg-1">...</div>
<div>

Setting Vertical Alignment

Columns are set to have a vertical alignment of top.

feature block image 2
feature block image 2
feature block image 2
Center Aligment - based on height of items
feature block image 2
feature block image 2
feature block image 2
<div class="row row--verticalCenter">
  <div class="column med-8">...</div>
  <div class="column med-8">...</div>
  <div class="column med-8">...</div>
<div>
Bottom Aligment - based on height of container holding items
feature block image 2
feature block image 2
feature block image 2
<div class="row row--verticalEnd">
  <div class="column med-8">...</div>
  <div class="column med-8">...</div>
  <div class="column med-8">...</div>
<div>

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>

Popups & Inline 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

With consideration to ADA Compliance: popups can be used and still achieve ADA Compliance, but it is suggested they are used minimally and not be initialized on page load.

Inline usage

Inline popup is fixed to the bottom of the page and is only closeable when clicking the button.

This is the best option for notices that must be initialized on page load (such as cookie or term agreements).


<div class="popupInline popup--closeable">
  <div class="popupInline-content">
    <h1 class="popupInline-header">Optional for the Inline Popup will go here>
    <p>Text for the notifiation goes here. Can <a href="">link to other pages</a> lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae hendrerit justo. Fusce ut tellus quis sem auctor feugiat. Praesent iaculis blandit nulla, id accumsan justo suscipit quis. Donec leo neque, molestie in mauris sed, gravida congue arcu. Pellentesque at est id lectus tristique ultrices eu a sapien. Cras et orci vitae</p>
  </div>
  <div class="popupInline-CTA">
    <a href="javascript:(void)" class="btn btn--secondary btn--lg popup-close">Close</a> <a href="">Another Option</a>
  </div>  
</div>
Basic Modal usage Show popup modal
<!--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>
Image Modal Show image popup
<!--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>
Video Modal Show video popup
<!--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 Modal 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>

Q & A

Basic usage

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

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.
<div class="qna">
<p class="qna-q">Question...</p>
<div class="qna-a">Answer...</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 figure/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>
<div class="mediaBlock mediaBlock--feature">
<a href="...">
<figure><img src="200x200.png"></figure>
<div class="mediaBlock-body">
<h4><span>Media header</span></h4>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes.</p>
</div>
</a>
</div>
<div class="mediaBlock mediaBlock--feature mediaBlock--feature--purple">
<a href="...">
<figure><img src="200x200.png"></figure>
<div class="mediaBlock-body">
<h4><span>Media header</span></h4>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes.</p>
</div>
</a>
</div>
<div class="mediaBlock mediaBlock--feature mediaBlock--feature--orange">
<a href="...">
<figure><img src="200x200.png"></figure>
<div class="mediaBlock-body">
<h4><span>Media header</span></h4>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes.</p>
</div>
</a>
</div>
Calendar (mediaBlock + figure--calendar + list--info)
JAN
2015
26
66th Institute on Psychiatric Services
  • Johnson-Smith Events Center
  • Mon, Jan 26 - Wed, Dec 28
  • 8am - 2pm

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

<div class="mediaBlock">
<figure class="figure--calendar">
<div class="calendar-detail">
<div class="calendar-detail-mo">JAN</div>
<div class="calendar-detail-yr">2015</div>
</div>
26
</figure>
<div class="mediaBlock-body">
<h5><a href="">66th Institute on Psychiatric Services</a></h5>
<ul class="list--info">
<li class="icon-location">Johnson-Smith Events Center</li>
<li class="icon-calendar">Mon, Jan 26 - Wed, Dec 28</li>
<li class="icon-clock">8am - 2pm</li>
</ul>
</div>
<p>Aximil inulluptibus si officiatur aut accus ad essit as volesci aeprat verior seqvenes comn imp orecat landuciliti.</p>
</div>

Downloads

Site Image Templates (PSD)

General Image - Rectangular

This is the template for the default rectangular images used across the site. Size can be modified, but has been optimized for most uses.

Download

General Image - Square

This is the template for the default rectangular images used across the site. Size can be modified, but has been optimized for most uses.

Download

Feature Banner

This is the template for a feature banner with text overlay.

Download

Home Banner

This is the template for the large image on the homepage.

Download

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>

Fill-color Helper Classes

.h-fillColorPrimary

Sets background color the primary blue from color palette.

<p class="h-fillColorPrimary h-colorWhite">..</p>
.h-fillColorSecondary

Sets background color the secondary blue from color palette.

<p class="h-fillColorSecondary h-colorWhite">..</p>
.h-fillColorTertiary

Sets background color the tertiary blue from color palette.

<p class="h-fillColorTertiary h-colorWhite">..</p>
.h-fillAccentOrange

Sets background color the accent orange from color palette.

<p class="h-fillAccentOrange h-colorWhite">..</p>
.h-fillAccentAqua

Sets background color the accent aqua from color palette.

<p class="h-fillAccentAqua h-colorWhite">..</p>
.h-fillAccentPurple

Sets background color the accent purple from color palette.

<p class="h-fillAccentPurple h-colorWhite">..</p>
.h-fillAccentTeal

Sets background color the accent teal from color palette.

<p class="h-fillAccentTeal h-colorWhite">..</p>
.h-fillAccentGreen

Sets background color the accent green from color palette.

<p class="h-fillAccentGreen h-colorWhite">..</p>
.h-fillAccentGreenLight

Sets background color the accent green light from color palette.

<p class="h-fillAccentGreenLight h-colorWhite">..</p>
.h-fillGrey

Sets background color the grey from color palette.

<p class="h-fillGrey h-colorWhite">..</p>
.h-fillGreyLight

Sets background color the grey light from color palette.

<p class="h-fillGreyLight">..</p>
.h-fillGreyLighter

Sets background color the grey lighter from color palette.

<p class="h-fillGreyLighter">..</p>
.h-fillGreyLightest

Sets background color the grey lightest from color palette.

<p class="h-fillGreyLightest">..</p>
.h-fillWhite

Sets background color to white.

<p class="h-fillWhite">..</p>
.h-fillWhite80

Sets background color to white, 80% opacity for text overlays.

<p class="h-fillWhite80">..</p>
.h-fillWhite60

Sets background color to white, 60% opacity for text overlays.

<p class="h-fillWhite60">..</p>
.h-fillBlack

Sets background color to white.

<p class="h-fillBlack h-colorWhite">..</p>
.h-fillBlack80

Sets background color to white, 80% opacity for text overlays.

<p class="h-fillBlack80 h-colorWhite">..</p>
.h-fillBlack60

Sets background color to white, 60% opacity for text overlays.

<p class="h-fillBlack60 h-colorWhite">..</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-pushHalf

Adds small spacing margin all around.

<p class="h-pushHalf">..</p>
.h-pushHalfTop

Adds small spacing margin to top.

<p class="h-pushHalfTop">..</p>
.h-pushHalfRight

Adds small spacing margin to right.

<p class="h-pushHalfRight">..</p>
.h-pushHalfBottom

Adds small spacing margin to bottom.

<p class="h-pushHalfBottom">..</p>
.h-pushHalfLeft

Adds small spacing margin to left.

<p class="h-pushHalfLeft">..</p>
.h-pushHalfEnds

Adds small spacing margin to top and bottom.

<p class="h-pushHalfEnds">..</p>
.h-pushHalfSides

Adds small spacing margin to right and left.

<p class="h-pushHalfSides">..</p>
.h-pushDouble

Adds large spacing margin all around.

<p class="h-pushDouble">..</p>
.h-pushDoubleTop

Adds large spacing margin to top.

<p class="h-pushDoubleTop">..</p>
.h-pushDoubleRight

Adds large spacing margin to right.

<p class="h-pushDoubleRight">..</p>
.h-pushDoubleBottom

Adds large spacing margin to bottom.

<p class="h-pushDoubleBottom">..</p>
.h-pushDoubleLeft

Adds large spacing margin to left.

<p class="h-pushDoubleLeft">..</p>
.h-pushDoubleEnds

Adds large spacing margin to top and bottom.

<p class="h-pushDoubleEnds">..</p>
.h-pushDoubleSides

Adds large spacing margin to right and left.

<p class="h-pushDoubleSides">..</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-softHalf

Adds small spacing padding all around.

<p class="h-softHalf">..</p>
.h-softHalfTop

Adds small spacing padding to top.

<p class="h-softHalfTop">..</p>
.h-softHalfRight

Adds small spacing padding to right.

<p class="h-softHalfRight">..</p>
.h-softHalfBottom

Adds small spacing padding to bottom.

<p class="h-softHalfBottom">..</p>
.h-softHalfLeft

Adds small spacing padding to left.

<p class="h-softHalfLeft">..</p>
.h-softHalfEnds

Adds small spacing padding to top and bottom.

<p class="h-softHalfEnds">..</p>
.h-softHalfSides

Adds small spacing padding to right and left.

<p class="h-softHalfSides">..</p>
.h-softDouble

Adds large spacing padding all around.

<p class="h-softDouble">..</p>
.h-softDoubleTop

Adds large spacing padding to top.

<p class="h-softDoubleTop">..</p>
.h-softDoubleRight

Adds large spacing padding to right.

<p class="h-softDoubleRight">..</p>
.h-softDoubleBottom

Adds large spacing padding to bottom.

<p class="h-softDoubleBottom">..</p>
.h-softDoubleLeft

Adds large spacing padding to left.

<p class="h-softDoubleLeft">..</p>
.h-softDoubleEnds

Adds large spacing padding to top and bottom.

<p class="h-softDoubleEnds">..</p>
.h-softDoubleSides

Adds large spacing padding to right and left.

<p class="h-softDoubleSides">..</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>
.h-displayInlineBlock

Takes a block-line element (such as a paragraph, and displays as inline-block. Such things as "max-widths" can be added to create simple banners.

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

General Coding Notes

ADA Compliance

Title II of the ADA outlines nondiscrimination requirements for website accessibility, strictly enforced for state and local government websites. However, such recommendations are strongly suggested for application on all websites in an effort to follow ADA best practices for accessibility.

REQUIREMENTS

Under ADA’s Web Accessibility Practices & Web Content Accessibility Guidelines

CONSIDERATIONS

The following is an overarching list of issues found continuously across the APA site. These items should be reviewed on a global level to ensure the best experience for ADA users.

Items denoted in red are critical errors (necessary to meet base requirements); items denoted in yellow are alerts(necessary to meet AA or AAA compliance).
  • Check header usages – using proper tags to avoid screen readers confusing false headers with real ones. Do not list any empty header tags, delete them. Headers are considered one of the most important elements in identifying and navigating content.
  • Do not skip heading levels – it’s important to follow a cohesive outline with your content, since keyboard and screen readers navigate by heading elements. Avoid skipping heading levels by setting appropriate hierarchy structure (H1, H2, H3, H4 etc.). Consider that there are many pages wherein < h1> is not followed by any other content, resulting in next heading level to be < h5> in footer.
  • Check images for detailed alt tag text – while a critical error is classified as a missing alt tag, just as important is an empty alt tag. Empty alt tags should be established and only used for purely decorative graphics – all other images lending to content must have a detailed text alternative.
    • Ex: “Picture of a computer.”
    • “Image of a closed laptop computer on a blue table with coffee cup.”
  • Avoid using redundant title text – in most cases the title attribute can be removed, otherwise modify it to provide advisory, but not redundant information. Note that the title text may or may not be read by a screen reader and is typically inaccessible to sighted keyboard users. The advisory information presented should not be identical to or very similar to the element text or alternative text.
  • Avoid using redundant links (adjacent links to same URL) – results in additional navigation and repetition for keyboard and screen reader users. Combine these links when possible.
  • Avoid low contrast between foreground & background colors – adequate contrast is necessary for all users, especially users with low vision. Increase the contrast between the foreground (text) color and the background color. Large text (larger than 18 point or 14 point bold) does not require as much contrast as smaller text. contrast color checker

Basic Checklist

  • Does the page title clearly and succinctly describe the page content?
  • Are heading elements used to convey logical hierarchy and denote the beginning of each section of content?
  • Are headings used in correct chronological order so as to give a proper outline of the page content?
  • Are buttons and links clearly and logically named? Are repetitive & redundant links avoided?
  • Is underlined text used for no other purpose other than to identify links & URLs?
  • Do images have equivalent alternative text specified in the alt attribute of the img element?
  • Does the alternate text convey contextual relevance to the page it is on?
  • Does text content contained in images disappear when images are not available, i.e. is there text contained in the images? If yes, is this text equally represented on the page & in alt tag?
  • Is information conveyed by color also conveyed by context, markup, graphic coding, or other means? i.e. color is not the only distinguishable characteristic for important data

Technical Application Checklist

  • For tables containing data, do th elements appropriately define every row and/or every column headers?
  • Does the page NOT contain the marquee and blink elements?
  • Is placeholder text, if used, NOT redundant or distracting to users of assistive technology?
  • Does each frame and iframe element have a meaningful title attribute?
  • Is a full text transcript provided for any prerecorded audio and video?
  • If using any form elements, does each appropriate input element or form control have an associated and visible label element or title attribute?

Sass

SASS has been used in the building of this site for ease of maintenance, organization and best practices. The compiled CSS files themselves 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.