Table of Contents



There is also an Stamps-themed version of this style guide.

Type

OPEN SANS BOLD

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789


OPEN SANS

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789

Colors

Grayscale

Abbey Gray
#4E4E50
$abbey-gray

Boulder Gray
#7C7A7A
$boulder-gray

Bombay Gray
#ABABAE
$bombay-gray

Iron Gray
#DCDDDE
$iron-gray

Haze Gray
#F1F2F2
$haze-gray

Concrete Gray
#F9F9F9
$concrete-gray

Main

Chill Blue
#097E98
$chill-blue, $primary

Poppy Yellow
#F69716
$poppy-yellow, $secondary

Mako Gray
#3D4148
$mako-gray

Typography

Headings

H1 Open Sans Semi Bold

H2 Open Sans Semi Bold

H3 Open Sans Semi Bold

H4 Open Sans Semi Bold

H5 Open Sans Semi Bold
H6 Open Sans Bold

Type variations

Lead Open Sans Regular

P1 Open Sans Regular

P2 Open Sans Regular

P3 Open Sans Regular

Paragraphs

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse eleifend, enim nec tempor facilisis, urna dui hendrerit odio, sed laoreet ex metus commodo enim. Praesent vehicula malesuada ornare. Nulla in velit sit amet ligula convallis placerat ut sit amet nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus lobortis justo eu condimentum gravida. Aenean a sapien laoreet, scelerisque libero sit amet, ultrices est. Maecenas eu odio suscipit, maximus ligula eu, scelerisque sapien.

Mauris justo purus, bibendum ut molestie vitae, hendrerit in ipsum. Fusce commodo justo in lorem mattis, ut sagittis erat auctor. Maecenas dignissim, felis eu tempor varius, lorem nulla luctus augue, non volutpat massa sem nec felis. Suspendisse accumsan aliquam ornare. Suspendisse commodo nec arcu id imperdiet. Praesent tincidunt condimentum est non fermentum. Donec id malesuada enim. Nullam finibus arcu nulla, vestibulum egestas leo aliquet vel. Phasellus sed maximus eros.

Pellentesque imperdiet velit eu fringilla sagittis. Duis enim nibh, mattis id justo sed, euismod posuere diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent egestas ultricies nunc a bibendum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras volutpat tellus tincidunt blandit efficitur. Sed maximus leo ultricies massa auctor egestas. Pellentesque aliquet aliquam porta. Vestibulum convallis libero et metus ornare, sit amet posuere dolor semper.

Type styles

Text Utilities

  • .font-weight-normal
  • .font-weight-bold
  • .letter-spacing-base
  • .text-black
  • .text-abbey-gray
  • .text-boulder-gray
  • .text-bombay-gray
  • .text-iron-gray
  • .text-haze-gray
  • .text-concrete-gray
  • .text-woodsmoke-gray
  • .text-chill-blue
  • .text-poppy-yellow
  • .text-mako-gray
  • .text-white
  • .text-muted
  • .text-primary
  • .text-secondary
  • .text-success
  • .text-info
  • .text-warning
  • .text-danger

Background Color Utilities

  • .bg-black
  • .bg-abbey-gray
  • .bg-boulder-gray
  • .bg-bombay-gray
  • .bg-iron-gray
  • .bg-haze-gray
  • .bg-concrete-gray
  • .bg-woodsmoke-gray
  • .bg-chill-blue
  • .bg-poppy-yellow
  • .bg-mako-gray
  • .bg-white
  • .bg-primary
  • .bg-secondary
  • .bg-success
  • .bg-info
  • .bg-warning
  • .bg-danger

Lists

ul (default)
  • One
  • Two
  • Three
  • Four
Numeric bullet ol (default)
  1. One
  2. Two
  3. Three
  4. Four
Child lists (to match the RTE styles)
  • One
  • Two
  • Three, with child list
    • First sub item
    • Second sub item
    • Third sub item, with child list
      • Third level item
      • Another third level item
  • Four

RTE

Styles specific to text that comes out of the rich text editor.


  • One
  • Two
  • Three, with child list
    • First sub item
    • Second sub item
    • Third sub item, with ordered child list
      1. Third level item
      2. Another third level item
  • Four

This is an example paragraph that comes out of the rich text editor. This sentence contains a link so you can verify what link styles look like. Free-market sprawl garage hotdog monofilament tube dolphin sunglasses kanji vehicle pen ablative Shibuya range-rover marketing assassin. Sub-orbital tanto sign military-grade tattoo corrupted camera lights dead cardboard j-pop marketing apophenia film jeans. Fetishism concrete claymore mine table j-pop nano-geodesic post-rain carbon garage sign savant refrigerator saturation point grenade.

This is an example paragraph that comes out of the rich text editor. This sentence contains a link so you can verify what link styles look like. Free-market sprawl garage hotdog monofilament tube dolphin sunglasses kanji vehicle pen ablative Shibuya range-rover marketing assassin. Sub-orbital tanto sign military-grade tattoo corrupted camera lights dead cardboard j-pop marketing apophenia film jeans. Fetishism concrete claymore mine table j-pop nano-geodesic post-rain carbon garage sign savant refrigerator saturation point grenade.

RTE Heading

This is an example paragraph that comes out of the rich text editor. This sentence contains a link so you can verify what link styles look like. Free-market sprawl garage hotdog monofilament tube dolphin sunglasses kanji vehicle pen ablative Shibuya range-rover marketing assassin. Sub-orbital tanto sign military-grade tattoo corrupted camera lights dead cardboard j-pop marketing apophenia film jeans. Fetishism concrete claymore mine table j-pop nano-geodesic post-rain carbon garage sign savant refrigerator saturation point grenade.

Note: Any table elements that come out of the rich text editor are will automatically have a responsive wrapper applied to them. This allows them to scroll on small screens without breaking the site layout.

Grid System

Extra Small
(<576px)
Small
(≥576px)
Medium
(≥768px)
Large
(≥992px)
Extra Large
(≥1200px)
Extra Extra Large
(≥1480px)
Max Container width None (auto) 540px 720px 960px 1140px 1440px
Class prefix .col- .col-sm- .col-md- .col-lg- .col-xl- .col-xxl-
# of columns 12
Gutter width 30px (15px on each side of a column)
Nestable Yes
Offsets Yes
Column ordering Yes
.col-md-8
.col-md-4
.col-md-4
.col-md-4
.col-md-4
.col-md-6
.col-md-6

Content Grid

The content grid is an alternative way to layout content similar to the Bootstrap grid but it doesn't rely on rows and columns. It used the same sizing and gutters to ensure layout consistency, but the usage is slightly different.

The content grid relies on a parent .content-grid element with any number of direct child .content-grid__item elements. The child element sizing is parent on the parent grid element and any modifier classes it may have. The default grid is responsive and initially displays 1 item per row and expands to show 2, and 3 items per row as the screen crosses the small and large breakpoints respectively.

Responsive modifier classes are available to generate 1 -> 6 columns per breakpoint and work similar to Bootstrap responsive utilities. Any breakpoint class applies to that breakpoint and up. If you add another class for a larger breakpoint it will override any ones applying at smaller breakpoints.

Below is an example of the default content grid.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Responsive Content Grid Layouts

Modifier classes are available to create alternate grid layouts

Use .content-grid--sm-3-col.content-grid--xxl-6-col to create a 3 column grid on screens large than the sm breakpoint and a 6 column grid on screens larger than the xxl breakpoint.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Alternate Content Grid Spacing

Use the content-grid--flush modifier class to make all grid items flush with each other.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Combine with frames to make tiled layouts.

Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Use the .content-grid--tight and .content-grid--loose modifier classes to adjust vertical spacing between grid items.


Tight Grid
Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Loose Grid
Grid item 1
Grid item 2
Grid item 3
Grid item 4
Grid item 5
Grid item 6

Tables

Responsive Tables

Wrap tables with a .table-responsive element to enable horizontal scrolling on small screens. All child table elements of an .rte element are wrapped by default via javascript.

Order Date Payment Status Fulfillment Status Total
#1001 December 22, 2015 Authorized Unfulfilled $43.03
#1002 December 23, 2015 Authorized Unfulfilled $44.03
#1003 December 24, 2015 Authorized Unfulfilled $45.03
#1004 December 25, 2015 Authorized Unfulfilled $46.03

Small Tables

Sizes XXS XS S M L
Bust 32"-34" 34"-36" 36"-38" 38"-40"
Under Bust 32"-34" 34"-36" 36"-38" 38"-40"
Waist 23.5"-24.5" 32"-34" 34"-36" 36"-38" 38"-40"
Hip 33"-34" 32"-34" 34"-36" 36"-38" 38"-40"

Border-less Tables

Sizes XXS XS S M L
Bust 32"-34" 34"-36" 36"-38" 38"-40"
Under Bust 32"-34" 34"-36" 36"-38" 38"-40"
Waist 23.5"-24.5" 32"-34" 34"-36" 36"-38" 38"-40"
Hip 33"-34" 32"-34" 34"-36" 36"-38" 38"-40"

Buttons

Inverse buttons

Add a modifier class .reverse to the element or it's parent.

Forms

Forms are based on Bootstrap 4's form component. Simple examples to listed here to use as a reference for styling, for more detailed information about how they work, please see the official documentation.

Default Forms

Validation Feedback goes here
Invalid Feedback goes here
I'm helper text to explain what's going on with this form input.

Floating labels

Note: To use floating labels, you must:

  1. Include the modifier class .float-label-input-wrap to the .form-group element.
  2. Recreate the HTML structure seen here (input followed by label).
  3. Add a placeholder attribute (this won't be visible, but needs to be present for the :placeholder-shown selector to trigger!)
Invalid Feedback goes here

Minimal Input Floating labels

Note: To use floating labels, you must:

  1. Include the modifier class .float-label-input-wrap to the .form-group element.
  2. Recreate the HTML structure seen here (input followed by label with modifier class .minimal-input-box__label).
  3. Add a placeholder attribute (this won't be visible, but needs to be present for the :placeholder-shown selector to trigger!)
Minimal input helper text
Invalid Feedback goes here

Minimal Input

Minimal input helper text
Invalid Feedback goes here

Invisible labels

Add a class of sr-only to a label to visually hide it, while keeping it accessible to screen readers. Use the placeholder attribute as your visible label.

Note: The placeholder attribute only works in IE10+, so invisible labels are disabled in IE9 and below.

Horizontal Forms

Create horizontal forms with the grid by adding the .row class to form groups and using the .col-*-* classes to specify the width of your labels and controls. Be sure to add .col-form-label to your label elements as well so they’re vertically centered with their associated form controls.

Inline Forms

Other Form Elements

Example block-level help text here.

Custom Forms

Use completely custom form elements to replace browser defaults.

Note About Select Elements

This theme is using the Chosen library to enhance native select tags. By default, any select.form-control elements are targeted and initialized on page load. If you want to avoid this, add the data-no-chosen attribute to your select tag and it will be left alone.

Page Elements

Page Header

Use this element at the top of pages to add consistent titles + subtitles. You can also use this element without the subtitle if necessary. This element also works with left and right modifier classes to change text alignment.

Content Header / Footer

Use these elements to create sections of content throughout the body of the page. While page header should be used once at the top, the content header can be used multiple times.

Content Header Title Goes Here

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

Frames

Use frames to create elements with defined aspect ratios. All frames require the .frame base class and a modifier class to define their aspect ratio. See /_styles/components/frames.scss to adjust available ratios.

There is also a child element .frame__inner that is positioned absolutely and stretches the full dimensions of the frame.

16x9
6x4
4x3
1x1
3x4
4x6
9x16

Responsive Frames

Responsive frame sizing is available and works similar to Bootstrap responsive utilities, any breakpoint class applies to that breakpoint and up. If you add another class for a larger breakpoint it will override any ones applying at smaller breakpoints. Frame sizing being applied to screen sizes smaller than $grid-breakpoints('sm') do not need a responsive class.

.frame
.frame--16x9
.frame--sm-6x4
.frame--md-1x1
.frame--lg-3x4
.frame--xl-4x6

Cards

From Bootstrap: A card is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display. See the official documentation for full list of options.

Use these in conjunction with the collapse.js plugin markup to create elements with toggle-able visibility and accordion-like behavior. See the collapse component for implementation.

Featured

Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

Go somewhere

NOTE: These elements have nothing in common with the more specific card snippets that we have created as Shopify theme components (.article-card, .product-card, etc..). It is just an unfortunate naming clash as these elements were created before switching over to Bootstrap 4.

Miscellaneous elements

Horizontal Rules

Default hr


Alerts

I'm a primary alert
I'm a secondary alert
I'm a success alert
I'm a info alert
I'm a warning alert
I'm a danger alert
I'm a light alert
I'm a dark alert

Iconography

Read more about using, creating, and editing SVG icons in Slate's documentation.

General icons

UI Elements

Arrows

Arrow elements are mostly used for slideshow controls. The root element has the base arrow class applied to it and directional modifier classes are available.

This child element easily be swapped out for a png, svg, or other icon made of pseudo elements.



Breadcrumbs

Pagination

Dots

Dots are an alternate UI used primarily for displaying / selecting variant option values. They respond to the two state classes .is-active and .is-disabled. Active dots will show a border around them, disabled dots will show with partial opacity and a strike through.

S
M
L
XL
OS


Use the .dots--small modifier class to create smaller dots when space is tight.

S
M
L
XL
OS


BACK TO TOP