purist-css
Version:
Purist a complete reimagining of Yahoo's Pure to be less opinionated and more abstracted.
455 lines (391 loc) • 9.49 kB
CSS
/* ==========================================================================
#base-core
========================================================================== */
/*
#img-fluid
========================================================================== */
/**
* The img-fluid utility is used to make images fluid.
*
* Usage:
*
* <img class="u-image-fluid">
*/
.u-image-fluid {
display: block;
height: auto;
max-width: 100%;
}
/* ==========================================================================
#sections-core
========================================================================== */
/*
section
========================================================================== */
/**
* The section object sections off content from the rest of the document.
*
* Usage:
*
* <div class="o-section">
* <div class="o-section__body"></div>
* </div>
*/
.o-section,
.o-box {
box-sizing: border-box;
}
.o-section:after,
.o-box:after {
display: table;
content: "";
clear: both;
}
.o-section__body {
margin: 0 auto;
}
/*
box
========================================================================== */
/**
* The box object boxes off content from the rest of the document.
*
* Usage:
*
* <div class="o-box">
* </div>
*/
.o-box {
display: block;
}
.o-box > :last-child {
margin-bottom: 0;
}
/* ==========================================================================
#buttons-core
========================================================================== */
/*
button
========================================================================== */
/**
* The button object applies a flat button style to buttons and hyperlinks.
*
* Usage:
*
* <input class="o-button" type="submit">
*/
.o-button {
display: inline-block;
zoom: 1;
white-space: nowrap;
vertical-align: middle;
text-align: center;
text-decoration: none;
cursor: pointer;
box-sizing: border-box;
outline: 0;
}
.o-button::-moz-focus-inner {
border: 0;
padding: 0;
}
/*
button--disabled
========================================================================== */
/**
* The button--disabled modifier applies a disabled state to buttons.
*
* Usage:
*
* <input class="o-button o-button--disabled" type="submit">
*/
.o-button--disabled,
.o-button[disabled] {
pointer-events: none;
}
/* ==========================================================================
#forms-core
========================================================================== */
/*
form-label
========================================================================== */
/**
* The form-label element changes the margin and display on label controls.
*
* Usage:
*
* <form class="o-form">
* <div class="o-form__item">
* <label class="o-form-label"></label>
* <input class="o-form-input">
* </div>
* </form>
*/
.o-form__label {
display: block;
}
/*
form-input
========================================================================== */
/**
* The form__input element applies a flat input style to input controls.
*
* Usage:
*
* <form class="o-form">
* <div class="o-form__item">
* <label class="o-form__label"></label>
* <input class="o-form__input">
* </div>
* </form>
*/
.o-form__input {
display: inline-block;
border: 1px solid;
vertical-align: middle;
box-sizing: border-box;
}
/*
form--block
========================================================================== */
/**
* The form--block modifier makes all input controls full-width.
*
* Usage:
*
* <form class="o-form o-form--block">
* <div class="o-form__item">
* <label class="o-form__label"></label>
* <input class="o-form__input">
* </div>
* </form>
*/
.o-form--block .o-form__input {
display: block;
width: 100%;
}
/*
form--inline
========================================================================== */
/**
* The form--inline modifier aligns labels and inputs side-by-side.
*
* Usage:
*
* <form class="o-form o-form--inline">
* <div class="o-form__item">
* <label class="o-form__label"></label>
* <input class="o-form__input">
* </div>
* </form>
*/
.o-form--inline .o-form__label {
display: inline-block;
}
/*
#grid
========================================================================== */
/**
* The grid object is used to create a fluid grid.
*
* Usage:
*
* <div class="o-grid">
* <div class="o-grid__item"></div>
* <div class="o-grid__item"></div>
* <div class="o-grid__item"></div>
* </div>
*/
.o-grid {
margin-left: -1.5em;
}
.o-grid:after {
display: table;
content: "";
clear: both;
}
.o-grid__item {
float: left;
padding-left: 1.5em;
box-sizing: border-box;
}
/*
#width
========================================================================== */
/**
* The width utility classes set the widths on grid items for normal displays.
*
* Usage:
*
* <div class="o-grid">
* <div class="o-grid__item u-w-1-3"></div>
* <div class="o-grid__item u-w-1-3"></div>
* <div class="o-grid__item u-w-1-3"></div>
* </div>
*/
/* Large */
.u-w-1-1 { width: 100%; }
.u-w-1-2 { width: 50%; }
.u-w-1-3 { width: 33.3%; }
.u-w-1-4 { width: 25%; }
.u-w-2-3 { width: 66.6%; }
.u-w-3-4 { width: 75%; }
.u-w-1-5 { width: 20%; }
.u-w-2-5 { width: 40%; }
.u-w-3-5 { width: 60%; }
.u-w-4-5 { width: 80%; }
/* Medium */
@media (max-width: 48em) {
.u-mw-1-1 { width: 100%; }
.u-mw-1-2 { width: 50%; }
.u-mw-1-3 { width: 33.3%; }
.u-mw-1-4 { width: 25%; }
.u-mw-2-3 { width: 66.6%; }
.u-mw-3-4 { width: 75%; }
.u-mw-hide { display: none; }
}
/* Small */
@media (max-width: 35.5em) {
.u-sw-1-1 { width: 100%; }
.u-sw-1-2 { width: 50%; }
.u-sw-1-3 { width: 33.3%; }
.u-sw-1-4 { width: 25%; }
.u-sw-2-3 { width: 66.6%; }
.u-sw-3-4 { width: 75%; }
.u-sw-hide { display: none; }
}
/* ==========================================================================
#lists-core
========================================================================== */
/*
list-stack
========================================================================== */
/**
* The list-stack object is used to create vertical lists without bullets or
* indentation.
*
* Usage:
*
* <ul class="o-list-stack">
* <li></li>
* <li></li>
* <li></li>
* </ul>
*/
.o-list-stack,
.o-list-inline {
margin-left: 0;
padding-left: 0;
list-style: none;
}
/*
list-inline
========================================================================== */
/**
* The list-inline object is used to create inline lists without bullets or
* indentation.
*
* Usage:
*
* <ul class="o-list-inline">
* <li></li>
* <li></li>
* <li></li>
* </ul>
*/
.o-list-inline > li {
display: inline-block;
}
/* ==========================================================================
#tables-core
========================================================================== */
/*
table
========================================================================== */
/**
* The table object applies common table patterns to tables.
*
* Usage:
*
* <table class="o-table">
* <thead>
* <tr>
* <th></th>
* <th></th>
* <th></th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td></td>
* <td></td>
* <td></td>
* </tr>
* </tbody>
* </table>
*/
.o-table {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
.o-table th {
text-align: left;
}
/*
#table--rows
========================================================================== */
/**
* The table--rows modifier applies a thin border above each row.
*
* Usage:
*
* <table class="o-table o-table--rows">
* <thead>
* <tr>
* <th></th>
* <th></th>
* <th></th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td></td>
* <td></td>
* <td></td>
* </tr>
* </tbody>
* </table>
*/
.o-table--rows td {
border-top: 1px solid;
}
/*
#table--cells
========================================================================== */
/**
* The table--cells modifier applies a thin border around each cell.
*
* Usage:
*
* <table class="o-table o-table--cells">
* <thead>
* <tr>
* <th></th>
* <th></th>
* <th></th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td></td>
* <td></td>
* <td></td>
* </tr>
* </tbody>
* </table>
*/
.o-table--cells th,
.o-table--cells td {
border: 1px solid;
}