Use sentence case for headers and buttons. i.e. capitalize the first word only.
<h1>h1. Very large header</h1> <h2>h2. Large header</h2> <h3>h3. Medium header</h3> <h4>h4. Moderate header</h4> <h5>h5. Small header</h5> <h6>h6. Tiny header</h6>
<h1 class="light-header">h1. Very large header</h1> <h2 class="light-header">h2. Large header</h2> <h3 class="light-header">h3. Medium header</h3> <h4 class="light-header">h4. Moderate header</h4> <h5 class="light-header">h5. Small header</h5> <h6 class="light-header">h6. Tiny header</h6>
We have three differents sizes for our paragraph texts: large which increases the font size to 16px, our standard which is 14px, and a small size which is 12px.
Introduction text has a custom size and line height. Use this style for the initial summary paragraph of blog posts, or for a supporting descriptive sentence or two beneath a header.
This is the default style used for all text that is not a headline. Use this style for paragraphs and for most pieces of text longer than a few words. This is a link
Small text should be used for tips or information that are handy but not critically important — for example, hints beneath form fields.
<p class="text-large">Introduction text has a custom size and line height...</p> <p>This is the default style used for all text that is not a headline...</p> <p class="text-small">Small text should be used for tips or information...</p>
When modifying text properties (font-size, font-weight etc), try to do so by using the .text-*
classes.
.text-large
Sample text
14% larger than our standard type
.text-small
Sample text
14% smaller than our standard type
.text-bold
Sample text
Also applies to <b>
and <strong>
.text-semibold
Sample text
Uses the semi-bold variant of the font
.text-normal
Sample text
Uses the normal variant of the font
.text-thin
Sample text
Uses the light variant of the font
.text-nowrap
Sample text
Prevents text from wrapping. Ex. phone numbers
.text-wrap
Sample text
Break and wrap single strings that are too long for their parent container. Ex. URLs
.text-caps
Sample text
Converts text to uppercase
.text-light
Sample text
Uses @textColorMuted
.text-disabled
Sample text
Uses @textColorDisabled
.text-error
Sample text
Uses @red-500
and semi-bold variant of our font
.text-noselect
Sample text
Prevent text from highlighting on select
.text-left
Sample text
Left aligned
.text-right
Sample text
Right aligned
.text-center
Sample text
Centered
.text-justify
Sample text
Justified
These should only be used when the design calls for it, which is very rarely.
.text-orange
Sample text
Sample text with Bold text inside
.text-blue
Sample text
Sample text with Bold text inside
.text-green
Sample text
Sample text with Bold text inside
.text-yellow
Sample text
Sample text with Bold text inside
.text-red
Sample text
Sample text with Bold text inside
.text-white
Sample text
*Gray background only added for purpose of example
UI elements are a shared set of common elements used throughout the site. They are designed to work together to form a cohesive look.
<div class="ui-progress-indicator" data-progress-step="3" data-total-steps="4"> <span class="ui-step">1. Step One</span> <span class="ui-step">2. Step Two</span> <span class="ui-step">3. Step Three</span> <span class="ui-step">4. Step Four</span> <span class="ui-current-progress" style="width: 75%;"></span> </div>
<div class="ui-progress-indicator dark-version" data-progress-step="2" data-total-steps="4"> <span class="ui-step">1. Step One</span> <span class="ui-step">2. Step Two</span> <span class="ui-step">3. Step Three</span> <span class="ui-step">4. Step Four</span> <span class="ui-current-progress" style="width: 50%;"></span> </div>
<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@id": "https://www.wyzant.com#", "name": "Page One" } }, { "@type": "ListItem", "position": 2, "item": { "@id": "https://www.wyzant.com#", "name": "Page Two" } }, { "@type": "ListItem", "position": 3, "item": { "@id": "https://www.wyzant.com#", "name": "Page Three" } }, { "@type": "ListItem", "position": 4, "item": { "@id": "https://www.wyzant.com/styleguide?pagenumber=4&pagesize=10", "name": "Page Four" } } ] } </script> <nav class="ui-breadcrumbs"> <a href="#">Page One</a> <a href="#">Page Two</a> <a href="#">Page Three</a> <span class="ui-current">Page Four</span> </nav>
<nav class="ui-tab-navigation"> <a href="#">Tab One</a> <a class="ui-current" href="#">Tab Two</a> <a href="#">Tab Three</a> </nav>
<ul class="ui-side-navigation"> <li class="ui-header">All the pages</li> <li><a href="#">Page One</a></li> <li><a href="#">Page Two</a></li> <li><a href="#">Page Three</a></li> <li><a class="ui-current" href="#">Page Four</a></li> </ul>
<nav class="ui-pagination clearfix"> <div class="medium-right"> <span class="ui-page-navigation" rel="nofollow">«</span> <a class="ui-page-navigation" href="/styleguide?pagenumber=1&pagesize=10" rel="nofollow">‹</a> <a class="ui-page-link" href="/styleguide?pagenumber=0&pagesize=10" rel="nofollow">1</a> <a class="ui-page-link" href="/styleguide?pagenumber=1&pagesize=10" rel="nofollow">2</a> <a class="ui-current ui-page-link" href="/styleguide?pagenumber=2&pagesize=10" rel="nofollow">3</a> <a class="ui-page-link" href="/styleguide?pagenumber=3&pagesize=10" rel="nofollow">4</a> <a class="ui-page-link" href="/styleguide?pagenumber=4&pagesize=10" rel="nofollow">5</a> <a class="ui-page-navigation" href="/styleguide?pagenumber=3&pagesize=10" rel="nofollow">›</a> <span class="ui-page-navigation" rel="nofollow">»</span> </div> <div class="right medium-left"> <select class="pageSize input-inline auto-width" data-path="/StyleGuide?pageNumber=0&pageSize=10" data-val="true" data-val-number="The field Page Size must be a number." data-val-required="The Page Size field is required." id="PageSize" name="PageSize"> <option selected="selected" value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select> per page </div> </nav>
<nav class="clearfix"> <a class="left" href="/styleguide?pagenumber=1&pagesize=10" rel="noindex"><i class="wc-angle-left"></i> Previous Page</a> <a class="right" href="/styleguide?pagenumber=3&pagesize=10" rel="noindex">Next Page <i class="wc-angle-right"></i></a> </nav>
Add the .ui-overlay
class to any element you want covered by an overlay. If you need the overlay to cover the entire page, add the .ui-overlay-page
class.
<div class="ui-overlay"> <p>This is content will be covered by an overlay...</p> </div>
Loaders are the styled loading icons used to show the user we are waiting on something to happen. They are available in 3 sizes, the default size is 15px, medium is 50px and large is 100px. They are available in 3 colors, the default color is multi
, and the other two options are orange
or green
. The preferred color is the multi loader, and the green and orange should only be used if explicitly asked to by product.
@UiLoader.LoaderSmall(UiLoader.Colors.multi)
@UiLoader.LoaderMedium(UiLoader.Colors.multi)
@UiLoader.LoaderLarge(UiLoader.Colors.multi)
Adding a .ui-loader
to a .ui-overlay
element will center the loader both vertically and horizontally inside the overlay.
<div class="ui-overlay"> @UiLoader.LoaderMedium(UiLoader.Colors.multi) <p>...</p> </div>
A tooltip displays brief helper text when hovering over the triggering element. Our tooltips support HTML inside the tip and are CSS only.
NOTE: In order to z-index the tooltip content and the tooltip arrow correctly, content within the .ui-tooltip
element should be wrapped in any tag (not just a text node).
<span class="ui-tooltip-trigger ui-tooltip-trigger-underline"> Hover Here <span class="ui-tooltip"> <span class="ui-tooltip-arrow"></span> <span>Lorem ipsum dolor sit, <strong>consectetur</strong> adipiscing.</span> </span> </span>
To align the tooltip differently, apply a data-position
attribute with a value equal to [left|right|center] [bottom|top]
<span class="ui-tooltip" data-position="right bottom">
To suppress the tooltip arrow, do not add the ui-tooltip-arrow
element.
NOTE: If your tooltip trigger content spans multiple lines, it must be a block or inline-block level element for the tooltip to position below it correctly.
The .round-photo-*
classes are used to create circular images. There are two elements used to create a round profile photo: the container and the image element itself. By default, the .round-photo
class does not have a width or height. If a width or height is not provided, the image will stretch to fill its entire container. Use one of our helper classes in combination with the .round-photo
class to get default width and height styles.
.round-photo-small
Width and height of 50px
.round-photo-medium
Width and height of 90px
.round-photo-large
Width and height of 140px
<div class="round-photo round-photo-large"> <img src="https://www.site.com/image.jpg"> </div>
Used to help define content sections. Often used in conjunction with a table of data.
<div class="gray-header"> <h3>Header title</h3> </div>
For dividing content.
Standard hr
<hr>
Dotted hr
<hr class="dotted">
Spacing helpers will set the margin(s) of the element they are applied to. This element must be block
or inline-block
for the margins to take effect. The spacing classes are based on the cardinal directions, north, south, east, and west.
.spc-xl
.spc-xl-n
.spc-xl-s
.spc
.spc-n
.spc-s
.spc-med
.spc-med-n
.spc-med-s
.spc-sm
.spc-sm-n
.spc-sm-s
.spc-tiny
.spc-tiny-n
.spc-tiny-s
Remove any default or declared margins.
.spc-zero
.spc-zero-n
.spc-zero-s
East and west are only available in one size, which is based on our standard column spacing.
.spc-ew
.spc-e
.spc-w
In addition to the above spacing helpers, we also have the ability to change the space between elements based on what screen resolution we are currently on. For instance, we can create a space of just 10px between two elements on mobile devices and increase that all the way up to 60px for laptop screens. The folllowing code snippet illustrates how we would create this dynamic spacing on an headline element. If you resize your screen to multiple viewports, you can see this space between the headline and the paragraph below it increase and decrease.
Helping paragraph text here.
<h1 class="spc-sm medium-spc large-spc">Responsively Spaced Headline</h1>
Form inputs and labels are full-width block elements by default. Sizing and spacing should be handled with the grid classes and spacing helpers.
<form> <div class="row"> <div class="column small-8"> <label for="Name">Name</label> <input type="text" name="Name" value="" /> </div> </div> <div class="row"> <div class="column small-8"> <label for="Address">Address</label> <input type="text" name="Address" value="" /> </div> </div> <div class="row"> <div class="column small-8"> <label for="Bio">Bio</label> <textarea name="Bio"></textarea> </div> </div> <div class="row"> <div class="column small-8"> <button type="button" class="btn">Submit</button> </div> </div> </form>
Form label text should always be placed in a <label />
with the for="element-name"
attribute set. This lets users click labels to activate form fields, and is important for accessibility.
In most cases, labels should be placed above inputs.
<label for="Address">Name</label> <input type="text" name="Address" value="" />
Labels can have help text and a help action.
The type attribute of the input should be set to the most appropriate value for the field type.
<input type="text" name="Address" value="" />
<textarea name="Bio"></textarea>
<select name="Options"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> <option value="4">Option 4</option> </select>
<input type="radio" name="Radio" value="" /> Radio <input type="checkbox" name="Checkbox" value="" /> Checkbox
Input validation should be handled using MVC validation as much as possible. The error span that is shown and populated with the message should be added using the MVC helper @Html.ValidationMessage()
<label for="Message">Message</label> <input class="input-validation-error" type="text" name="Message" value="" /> <span class="field-validation-error">Please enter a message</span>
This is just an example of markup MVC validation might output.
By default ordered and unorderd lists have their top and bottom margins set and left padding adjusted. The list items have all margins and padding reset except for a small amount of bottom padding.
<ul> <li>list item</li> <li>list item</li> <li>list item</li> </ul>
To un-style a list, simply add the .reset
class to the list element. This will remove all margins, padding, and list-styles.
<ul class="reset"> <li>list item</li> <li>list item</li> <li>list item</li> </ul>
Numbered lists should leverage the .ui-numbered-list
class. Standard Foundation classes should be used to create multiple column layouts. The default list colors are gray bullets with white text.
<ol class="ui-numbered-list"> <li>list item with a longer title or more content</li> <li>list item</li> <li>list item</li> </ol>
<ol class="ui-numbered-list row"> <li class="column medium-4">list item with a longer title or more content</li> <li class="column medium-4">list item</li> <li class="column medium-4">list item</li> </ol>
The .dark-version
class is available to create a styled list with white bullets and blue text.
<ul class="ui-salespoint-list"> <li>sales point with a longer title or more content</li> <li>sales point</li> <li>sales point</li> </ul>
The site uses Foundation's 12-column grid. Column widths are defined as a percentage of their parent and gutters are fixed at 2em.
.small-12
.small-6
.small-6
.small-4
.small-4
.small-4
3
3
3
3
2
2
2
2
2
2
One column can have different widths at different breakpoints. The width can be defined at the small, medium and large breakpoints using this pattern .<breakpoint>-<width>
.
This column will span 5/6 on mobile, 2/3 on tablet and 1/2 on desktop.
<div class="row"> <div class="column small-10 medium-8 large-6"> <p class="box-gray">This column will span 5/6 on mobile, 2/3 on tablet and 1/2 on desktop.</p> </div> </div>
If no width is defined for the current breakpoint, the width from the smaller breakpoint will be used. If no width is defined at all the column will span 100%.
This column will span 100% on mobile and 2/3 on tablet and desktop.
<div class="row"> <div class="column medium-8"> <p class="box-gray">This column will span 100% on mobile and 2/3 on tablet and desktop.</p> </div> </div>
This is most often used on heroes to center all the content over a background image. When used in combination with the .text-center
class, the text becomes both horizontally and vertically centered. View an on site example within the hero of the tutoring tips page.
<div class="flex-center-items text-center"> <div class="column"> <h4 class="text-center">Vertically Centered Headline</h4> <p class="text-center">Here is just some more [...] all centered.</p> <a class="btn" href="#">Button</a> </div> </div>
Used for tabular data. Just add the class .wyzTable
to any <table>
element.
column | column | column | column |
---|---|---|---|
data | data | data | data |
data | data | data | data |
data | data | data | data |
<div class="gray-header"> <h3>Table Header</h3> </div> <table class="wyzTable"> <tr> <th>column</th> <th>column</th> <th>column</th> <th>column</th> </tr> <tr> <td>data</td> <td>data</td> <td>data</td> <td>data</td> </tr> <tr> <td>data</td> <td>data</td> <td>data</td> <td>data</td> </tr> <tr> <td>data</td> <td>data</td> <td>data</td> <td>data</td> </tr> </table>
Small tables that shouldn't span the entire parent width. Just add the class .inline
to any <table class="wyzTable">
.
column | column |
---|---|
data - data | data - data |
data - data | data - data |
data - data | data - data |
Some tables may need to allow a user to select a row via radio button or click anywhere on the row to trigger a link. The selectable row styling is initized with a jQuery plugin ($.tableRowSelecter()
) – no additional classes are needed in the markup.
column | column |
---|---|
data - data | data - data |
data - data | data - data |
data - data | data - data |
data - data | data - data |
data - data | data - data |
Display data in columns by adding the class .responsiveTable
. Leverages Foundation classes for column widths. Typical markup structure is a fieldset element with the .responsiveTable
class which contains multiple elements with the .row
class.
Layout column-based forms. When multiple inputs are on a row, the .small-stacked
and .medium-stacked
classes will add top padding to columns at their respective break-points.
<fieldset class="responsiveTable inputTable"> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> <input type="text" /> </div> </div> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> <input type="text" /> </div> </div> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> <input type="text" /> </div> </div> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-3"> <input type="text" /> </div> <div class="column medium-2 medium-push-1 small-stacked"> <label>Label</label> </div> <div class="column medium-3"> <input type="text" /> </div> </div> </fieldset>
Used to display user input information, such as form confirmations. Typically used with dashed lines between rows (add the .withHr
class to the responsiveTable), but not required.
<fieldset class="responsiveTable withHr"> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> Data for the corresponding label </div> </div> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> Data for the corresponding label </div> </div> <div class="row"> <div class="column medium-3"> <label>Label</label> </div> <div class="column medium-9"> Data for the corresponding label </div> </div> </fieldset>
Modals are opened by either a button or link being clicked on that have the .wyzantModal
class and come in either small, medium, or large sizes. The default behavior of a modal when clicking a modal trigger is to fade out the background of the page, center the modal within the page, and the ability to click anywhere on the page itself or the X in the upper right hand corner of the modal to close it.
NOTE: The modal trigger has a href
that needs to correspond to the id
of the modal in order to work properly. The modal should have the .hide
class on it so that it is invisible until the modal trigger is clicked.
This is the small sized modal. It is the second most common modal size and should be used when we are sharing a very small snippet of information with the user. Like the other two sizes, this modal supports every size headline and all elements (e.g. images) within it.
This is the medium sized modal. It is the most common modal size and should be used in most cases when we are sharing paragraphs with the user. Like the other two sizes, this modal supports every size headline and all elements (e.g. images) within it.
This is the large sized modal. It is the least common modal size and should be used seldomly. It's most common use cases are to display diagrams or tables to users. Like the other two sizes, this modal supports every size headline and all elements (e.g. images) within it.
<a class="wyzantModal" href="#smallModal">Click here to trigger the small modal</a> <div id="smallModal" class="hide modal-small"> <h3>Small Modal</h3> <p>This is the small sized modal. It is the second most common modal size and should be used when we are sharing a very small snippet of information with the user. Like the other two sizes, this modal supports every size headline and all elements (e.g. images) within it.</p> </div>
Always use the .nfy
class in addition to any of the helper classes below.
<div class="nfy nfy-info">Notification message</div>
.nfy
.nfy-info
.nfy-success
.nfy-warning
.nfy-error
Notifications also support headers and all other types of elements within them.
Here is where you can learn more about that helpful info. Learn more
These always run across the top of the site, and sit on top of the header.
Always use the .badge
class in addition to any of the helper classes below.
<div class="badge badge-green">Lorem Ipsum</div>
.badge
.badge-blue
.badge-green
.badge-yellow
.badge-red
Boxes can help highlight and distinguish information. By default, boxes have 10 pixels of padding.
.box-gray
.box-white
Used for callouts of tutor and student quotes.
The markup for a standard quote box works as follows:
blockquote
element with the .quote
class, containing:
.quote-author
class containing author information.quote-link
class containing a link to more informationAbsolutely the best!
Her patience, kindness, punctuality, constructive criticism, and knowledge of material has undoubtedly helped my daughter tremendously in such a short amount of time.
<blockquote class="quote"> <h6>Absolutely the best!</h6> <p>Her patience, kindness, punctuality, constructive criticism, and knowledge of material has undoubtedly helped my daughter tremendously in such a short amount of time.</p> <div class="quote-author">– Jamie from Ridge, NY on 5/22/13</div> <div class="quote-link"> <a href="#">View More Reviews »</a> </div> </blockquote>
To match the quotation mark with other blue icons on the Tutor Public Profile, just add .quote-alt
to the .quote
element.
Absolutely the best!
Her patience, kindness, punctuality, constructive criticism, and knowledge of material has undoubtedly helped my daughter tremendously in such a short amount of time.
The markup for a quote with an image differs from a standard quote...
.quote-container
class, containing:
.quote-img
containing your image wrapped with a span
or an a
to get a rounded image.quote
class, containing the items specified above in the Standard QuoteConsider the size of the image when determining if it should appear on mobile break points.
The difficult part of finding a student is done for you!
I wish you could earn points for every lesson that is submitted; other then this I've enjoyed using Wyzant. Text alerts sent to my phone for incoming messages and new opportunities are extremely helpful.
<div class="quote-container"> <div class="quote-img"> <span> <img src="https://dj1hlxw0wr920.cloudfront.net/userfiles/wyzfiles/771250cd-401f-47ce-8335-24d8557b323e.jpg"> </span> </div> <blockquote class="quote"> <h6>The difficult part of finding a student is done for you!</h6> <p>I wish you could earn points for every lesson that is submitted; other then this I've enjoyed using Wyzant. Text alerts sent to my phone for incoming messages and new opportunities are extremely helpful.</p> <div class="quote-author">– Janet, Grand Prairie, TX</div> </blockquote> </div>
A progress bar to display the completion of a process.
<div class="progressbar"> <div class="progress" style="width: 66%"></div> </div>