Miva Merchant Elements CSS Cheat Sheet
It takes a while to get used to Elements CSS, this can help.
A cheat sheet for Miva Merchant Elements CSS with all CSS elements on one page and in a mostly orderly fashion.
by Scot Ranney
This is a quick list of Elements CSS classes I put together over a couple glasses of scotch at the end of the night. Let me know if you see any problems.
Update Dec 2020: Matt Zimmerman has updated the online style guide which is now a great resource: https://docs.miva.com/readytheme-shadows/#overview-style-guide
Components
buttons
control groups
divider
forms
keyline
menu
navigation
tables
headings
CSS Objects
Breakpoints for grid items for the most part seems to happen automatically in the Elements CSS framework. If a class has known breakpoint modifiers, they ( --s --m --l --w ) can be added to the end of the class name.
Simple layout example. The widths can be 1-12 and can be mixed and matched. Columns will wrap if the widths in a layout add up to more than 12. More information on widths at the bottom of the components section.
### two columns
<div class="o-layout"> <div class="o-layout__item u-width-6"> </div> <div class="o-layout__item u-width-6"> </div> </div>
Layout classes:
o-layout o-layout__item o-layout o-layout--row-reverse o-layout o-layout--column --m --l --w o-layout o-layout--column-reverse --m --l --w o-layout o-layhout--full o-layout o-layout--narrow o-layout o-layout--wide o-layout o-layout--flush o-layout o-layout--spaced
### vertical alignment
o-layout o-layout--align-top o-layout o-layout--align-center o-layout o-layout--align-bottom o-layout o-layout--align-baseline o-layout o-layout--align-stretch
### horizontal alignment
o-layout o-layout--justify-start o-layout o-layout--justify-center o-layout o-layout--justify-end o-layout o-layout--justify-around o-layout o-layout--justify-between
### flex ordering
o-layout o-layout__first --s --m --l --w o-layout o-layout__last
### growth control
o-layout--grow o-layout--no-grow o-layout--shrink o-layout--no-shrink
### wrap
o-layout--no-wrap o-layout--wrap o-layout--wrap-reverse
o-list-bare o-list-block o-list-inline o-list-inline o-list-inline--narrow o-list-inline o-list-inline--wide
Tables (see below in the components section for code example)
o-table o-table o-table--fixed o-table o-table--narrow o-table o-table--wide o-table o-table-borderless
o-wrapper o-site-wrapper o-wrapper o-wrapper--full o-wrapper--flush
Components
c-button c-button--tiny c-button c-button--small c-button c-button c-button--large c-button c-button--huge
c-button c-button--full
c-button c-button--hollow c-button c-button--clear c-button disabled="" c-button is-error c-button c-button--glossy c-button-primary
Control Groups: make button groups
<div class="c-control-group"> <button class="c-button c-control-group__button">Button 1</button> <button class="c-button c-control-group__button">Button 2</button> <button class="c-button c-control-group__button">Button 3</button> </div>
### Modifiers: <div class="c-control-group c-control-group--rounded">...</div>
c-button c-control-group--rounded c-button c-control-group--rounded-right c-button c-control-group--rounded-left c-button c-control-group--stacked
c-divider c-divider c-divider--top
<form> <fieldset> <legend>Example</legend> <ul class="c-form-list"> <li class="c-form-list__item"> <label class="c-form-label" for="example1">Example</label> <input id="example1" class="c-form-input" type="text" placeholder="something"> <button class="c-button c-control-group__button">Submit</button> </li> </ul> </fieldset> </form>
### select
<select id="example2" class="c-form-select"> <option value="abc">Option ABC</option> <option value="def">Option DEF</option> </select>
### textarea
<textarea id="example3" class="c-form-input c-form-input--long" placeholder="something here"></textarea>
### checkbox
<label class="c-form-checkbox"> <input class="c-form-checkbox__input" type="checkbox"> <span class="c-form-checkbox__caption">Check Me</span> </label>
### inline checkbox
<li class="c-form-list__item"> <label class="c-form-checkbox c-form-checkbox--inline"> <input class="c-form-checkbox__input" type="checkbox"> <span class="c-form-checkbox__caption">Inline 1</span> </label> <label>...</label> etc </li>
### radio
<label class="c-form-checkbox c-form-checkbox--radio"> <input class="c-form-checkbox__input" type="radio" name="agree" value="yes"> <span class="c-form-checkbox__caption">Yes</span> </label>
### inline radio
<li class="c-form-list__item"> <label class="c-form-checkbox c-form-checkbox--radio c-form-checkbox--inline"> <input class="c-form-checkbox__input" type="radio" name="inline-radio" value="1"> <span class="c-form-checkbox__caption">Radio 1</span> </label> <label>...</label> etc... </li>
### inline/grid form
<ul class="c-form-list o-layout"> <li class="c-form-list__item o-layout__item">...</li> </ul>
c-keyline c-keyline--thick c-keyline--small
<nav class="c-menu"> <h5 class="c-menu__title u-text-uppercase">Quick Links</h5> <ul class="c-menu__list u-text-uppercase"> <li><a class="c-menu__link" href="">About Us</a></li> <li><a class="c-menu__link" href="">FAQs</a></li> <li><a class="c-menu__link" href="">Contact Us</a></li> <li><a class="c-menu__link" href="">Become an Affiliate</a></li> </ul> </nav>
<a data-mini-modal="" href="LARGE_IMAGE_URL" title="image"> <img src="IMAGE_URL"> </a>
<nav class="u-text-uppercase c-navigation"> <input id="mainNavButton" class="c-navigation__trigger" type="checkbox"> <label class="c-navigation__label" for="mainNavButton">Menu</label> <ul class="c-navigation__row"> <li class="c-navigation__list"><a class="c-navigation__link" href="#">All Products</a></li> <li class="c-navigation__list"><a class="c-navigation__link" href="#">Category 1</a></li> <li class="c-navigation__list"><a class="c-navigation__link" href="#">Category 2</a></li> <li class="c-navigation__list"><a class="c-navigation__link" href="#">Category 3</a></li> <li class="c-navigation__list"><a class="c-navigation__link" href="#">More</a></li> </ul> </nav>
<table class="c-table-simple"> <thead> <tr class="c-table-simple__row"> <th class="c-table-simple__cell">Name</th> <th class="c-table-simple__cell">Age</th> <th class="c-table-simple__cell">Feet</th> </tr> </thead> <tbody> <tr class="c-table-simple__row"> <td class="c-table-simple__cell">Tim Smith</td> <td class="c-table-simple__cell">25</td> <td class="c-table-simple__cell">2</td> </tr> </tbody> </table>
### striped
<table class="c-table-stripped">...</table>
<table class="c-table-responsive">...</table>
<h1 class="c-heading-alpha">Heading Alpha <span class="c-heading--subheading">Subheading</span></h1>
<h1 class="c-heading-alpha">...</h1> <h2 class="c-heading-bravo">...</h2> <h3 class="c-heading-charlie">...</h3> <h4 class="c-heading-delta">...</h4> <h5 class="c-heading-echo">...</h5> <h6 class="c-heading-foxtrot">...</h6>
<p class="c-text-body">...</p>
<h1 class="c-heading-alpha c-heading--keyline">...</h1> (adds a little divider under the heading)
Utilities
Borders: Borders can be used on any element. The example below shows border classes being used on buttons.
u-border-none u-border-thick u-border-rounded u-border-square
### border color classes: these are based on theme, so try other color names as well as those below.
u-border-red u-border-yellow u-border-blue u-border-green u-border-black
### button examples
<button class="c-button u-border-none">No Border</button> <button class="c-button u-border-thick">Thick Border</button> <button class="c-button u-border-rounded">Rounded Border</button> <button class="c-button u-border-square">Square Border</button>
u-clear-fix
Background colors:
u-bg-red u-bg-yellow u-bg-blue u-bg-green u-bg-black u-bg-gray-50 u-bg-gray-40 u-bg-gray-30-gray-10 u-bg-gray-20 u-bg-gray-10 u-bg-white u-bg-primary u-bg-secondary u-bg-tertiary u-bg-accent u-bg-highlight
Text colors:
u-color-red u-color-yellow u-color-blue u-color-green u-color-black u-color-gray-50 u-color-gray-40 u-color-gray-30 u-color-gray-20 u-color-gray-10 u-color-white u-color-primary u-color-secondary u-color-tertiary u-color-accent u-color-highlight
Display: These can take breakpoint modifiers. They work from small to wide.
If you hide on small, it will hide on everything unless you specifically tell it not to: --s --m --l --w
u-hide-visually - hide visually but not for screen readers u-hidden - hide from everything u-invisible - visually hidden but no layout change u-flex u-block u-shown u-inline u-inline-block u-visible
### Add bBreakpoint modifiers to the class, such as:
u-hidden--s
### Hide on small screen, show on all others:
<div class="u-hidden--s u-shown--m">...</div>
### Hide on large and wide screen, show on small and medium:
<div class="u-hidden--l">...</div>
Grids: Create auto columns that wrap intelligently
o-layout u-grids2 o-layout u-grids3 o-layout u-grids4 etc...
u-grids-1 u-grids-2 u-grids-3 u-grids-4 u-grids-5 u-grids-6 u-grids-7 u-grids-8 u-grids-9 u-grids-10 u-grids-11 u-grids-12
### Example
<div class="o-layout u-grids-3"> <div class="o-layout__item"> </div> <div class="o-layout__item"> </div> <div class="o-layout__item"> </div> <div class="o-layout__item"> </div> <div class="o-layout__item"> </div> </div>
### breakpoints: all grid classes can have breakpoints added, --s --m --l --w
### breakpoint exmaple, show one column on small, show three on medium and up:
o-layout u-grids-1 u-grids-3--m
Use with breakpoints:
o-layout u-grids-1 u-grids-3--m
Go here for a list of available icons: https://docs.miva.com/elements/iconography/demo.html
<span class="u-icon-question"></span> <span class="u-icon-envelope"></span> etc...
Print styles are handled automatically (from HTML5 Boilerplate)
### only display on printout
u-printable__content
### font-families
u-font-primary u-font-secondary
### alignment --s --m --l --w
u-text-left u-text-center u-text-right u-text-justify
### sizing
u-font-tiny u-font-small u-font-medium u-font-large u-font-huge
### weight, transformations, decorations
u-text-light u-text-regular u-text-medium u-text-bold u-text-boldest u-text-italic u-text-lowercase u-text-uppercase u-text-caps u-text-strike u-text-underline u-text-normal u-text-revert
u-text-constrain (max 75chars per line)
u-align-baseline u-align-bottom u-align-middle u-align-top
u-vertical-align-parent u-vertical-align-center
Widths: These give a fluid width to whichever element they are applied to and include breakpoints --s --m --l --w
u-width-# --s --m --l --w (# is the number of columns wide, out of 12)
<div class="o-layout"> <div class="o-layout__item u-width-6"> </div> <div class="o-layout__item u-width-6"> </div> </div>
### with various breakpoints, can be included in one o-layout and cols will auto wrap to fit
o-layout__item u-width-12 u-width-4--m o-layout__item u-width-6 u-width-4--m o-layout__item u-width-6 u-width-4--m
### width classes, each can take a breakpoint as well --s --m --l --w (width of 1 on small, width of 6 on medium and up: u-width-1--s u-width-6--m)
u-width-1 u-width-2 u-width-3 u-width-4 u-width-5 u-width-6 u-width-7 u-width-8 u-width-9 u-width-10 u-width-11 u-width-12
### offset classes, also can take breakpoints --s --m --l --w
u-offset-1 u-offset-2 u-offset-3 u-offset-4 u-offset-5 u-offset-6 u-offset-7 u-offset-8 u-offset-9 u-offset-10 u-offset-11 u-offset-12
u-below-content u-over-content u-over-control u-over-page u-over-screen u-over-everything
Extensions
These are css/html components that can be used in different readythemes, a sort of plug-n-play system.
Adds a product to the basket without reloading the page.
Image carousel header/section
Alerts, success, info, etc...
Mini basket that flies out from the right edge of the browser.
Use dropdown, overlfow, and overlay style navigations.
Ajax spinner icon.
Related Articles
These articles might be interesting for you as well: