Build mobile apps with simple HTML, CSS, and JS components. http://goratchet.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1066 lines
25 KiB

/*
* =====================================================
* Ratchet v2.0.0
* Copyright 2013 Connor Sears, Dave Gamache, and Jacob Thornton
* Licensed under http://www.opensource.org/licenses/MIT
*
* Designed and built by @connors, @dhg, and @fat.
* =====================================================
*/
/* Hard reset
-------------------------------------------------- */
html,
body,
div,
span,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
section,
summary,
time,
audio,
video {
padding: 0;
margin: 0;
border: 0; }
/* Prevents iOS text size adjust after orientation change, without disabling (Thanks to @necolas) */
html {
-webkit-text-size-adjust: 100%; }
/* Base styles
-------------------------------------------------- */
body {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
font: 14px/1.25 "Helvetica Neue", sans-serif;
color: #000;
background-color: #fff; }
/* Universal link styling */
a {
color: #007aff;
text-decoration: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
/* Removes the dark touch outlines on links */ }
/* Wrapper to be used around all content not in .bar-title and .bar-tab */
.content {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
background-color: #efeff4;
-webkit-transition-property: top, bottom;
transition-property: top, bottom;
-webkit-transition-duration: .2s, .2s;
transition-duration: .2s, .2s;
-webkit-transition-timing-function: linear, linear;
transition-timing-function: linear, linear;
-webkit-overflow-scrolling: touch; }
/* Hack to force all relatively and absolutely positioned elements still render while scrolling
Note: This is a bug for "-webkit-overflow-scrolling: touch" */
.content > * {
-webkit-transform: translateZ(0px);
transform: translateZ(0px); }
/* Utility wrapper to pad in components like forms, block buttons and segmented-controllers so they're not full-bleed */
.content-padded {
padding: 10px; }
/* Pad top/bottom of content so it doesn't hide behind .bar-title and .bar-tab.
Note: For these to work, content must come after both bars in the markup */
.bar-title ~ .content {
padding-top: 44px; }
.bar-tab ~ .content {
padding-bottom: 51px; }
.bar-header-secondary ~ .content {
padding-top: 88px; }
/* General bar styles
-------------------------------------------------- */
[class*="bar-"] {
position: fixed;
right: 0;
left: 0;
z-index: 10;
height: 44px;
padding: 5px;
background-color: rgba(247, 247, 247, 0.98);
box-shadow: 0 0px 1px rgba(0, 0, 0, 0.85);
/*border-bottom: 1px solid rgba(0,0,0,.3);*/
box-sizing: border-box; }
/* Modifier class to dock any bar below .bar-title */
.bar-header-secondary {
top: 44px; }
/* Modifier class to dock any bar to bottom of viewport */
.bar-footer {
bottom: 0; }
/* Flip border position to top for footer bars */
.bar-footer.bar-standard,
.bar-footer-secondary.bar-standard {
/*border-top: 1px solid #aaa;
border-bottom-width: 0;*/
box-shadow: 0 0px 1px rgba(0, 0, 0, 0.85); }
/* Title bar
-------------------------------------------------- */
/* Bar docked to top of viewport for showing page title and actions */
.bar-title {
top: 0;
display: -webkit-box;
display: box;
-webkit-box-orient: horizontal;
box-orient: horizontal; }
/* Centered text in the .bar-title */
.bar-title .title {
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
font-size: 18px;
font-weight: 500;
line-height: 44px;
color: #000;
text-align: center;
white-space: nowrap; }
.bar-title > a:not([class*="button"]) {
display: block;
width: 100%;
height: 100%; }
/* Retain specified title color */
.bar-title .title a {
color: inherit; }
/* Tab bar
-------------------------------------------------- */
/* Bar docked to bottom used for primary app navigation */
.bar-tab {
bottom: 0;
height: 50px;
padding: 0;
/*border-top: 1px solid rgba(0,0,0,.3);
border-bottom-width: 0;*/
box-shadow: 0 0px 1px rgba(0, 0, 0, 0.85); }
/* Wrapper for individual tab */
.tab-inner {
display: -webkit-box;
display: box;
height: 100%;
list-style: none;
-webkit-box-orient: horizontal;
box-orient: horizontal; }
/* Navigational tab */
.tab-item {
height: 100%;
padding-top: 9px;
text-align: center;
box-sizing: border-box;
-webkit-box-flex: 1;
box-flex: 1; }
/* Icon for tab */
.tab-icon {
display: block;
height: 18px;
margin: 0 auto; }
/* Label for tab */
.tab-label {
margin-top: 1px;
font-size: 11px;
font-weight: 400;
color: #929292; }
.tab-item.active .tab-label {
color: #007aff; }
/* Buttons in title bars
-------------------------------------------------- */
/* Generic style for all buttons in .bar-title */
.bar-title [class*="button"] {
position: relative;
z-index: 10;
/* Places buttons over full width title */
padding-left: 5px;
padding-right: 5px;
font-size: 16px;
font-weight: 400;
line-height: 29px;
color: #007aff;
border: 0;
transition: opacity .2s linear;
-webkit-box-flex: 0;
box-flex: 0; }
/* Hacky way to right align buttons outside of flex-box system
Note: is only absolutely positioned button, would be better if flex-box had an "align right" option */
.bar-title .title + [class*="button"]:last-child,
.bar-title .button + [class*="button"]:last-child,
.bar-title [class*="button"].pull-right {
position: absolute;
top: 5px;
right: 5px; }
/* Override standard button active states */
.bar-title .button:active,
.bar-title .button-prev:active,
.bar-title .button-next:active {
color: #007aff;
background-color: transparent;
opacity: .3; }
/* Directional buttons in title bars
-------------------------------------------------- */
.bar-title .button-prev:before,
.bar-title .button-prev:after,
.bar-title .button-next:before,
.bar-title .button-next:after {
position: absolute;
display: block;
width: 15px;
height: 3px;
background-color: #007aff;
content: ''; }
/* Prev/next button base styles */
.bar-title .button-prev {
padding-left: 22px;
/* Push over to make room for chevrons */ }
.bar-title .button-next {
padding-right: 22px;
/* Push over to make room for chevrons */ }
/* Position the chevrons horizontally */
.bar-title .button-prev:before,
.bar-title .button-prev:after {
left: 0; }
.bar-title .button-next:before,
.bar-title .button-next:after {
right: 0; }
/* Position the chevrons vertically */
.bar-title .button-prev:before,
.bar-title .button-next:before {
top: 12px; }
.bar-title .button-prev:after,
.bar-title .button-next:after {
top: 21px; }
/* Rotate the chevrons */
.bar-title .button-prev:before {
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
.bar-title .button-prev:after {
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.bar-title .button-next:before {
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.bar-title .button-next:after {
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
/* Block buttons in any bar
-------------------------------------------------- */
/* Add proper padding and replace buttons normal dropshadow with a shine from bar */
[class*="bar"] .button-block {
padding: 7px 0;
margin-bottom: 0; }
/* Override standard padding changes for .button-blocks */
[class*="bar"] .button-block:active {
padding: 7px 0; }
/* Segmented controller in any bar
-------------------------------------------------- */
/* Remove standard segmented bottom margin */
[class*="bar-"] .segmented-controller {
margin-bottom: 0; }
/* Add margins between segmented controllers and buttons */
[class*="bar-"] .segmented-controller + [class*="button"],
[class*="bar-"] [class*="button"] + .segmented-controller {
margin-left: 5px; }
/* Segmented controller in a title bar
-------------------------------------------------- */
.bar-title .segmented-controller {
line-height: 18px;
-webkit-box-flex: 1;
box-flex: 1; }
/* Search forms in standard bar
-------------------------------------------------- */
/* Position/size search bar within the bar */
.bar-standard input[type=search] {
height: 32px;
margin: 0; }
/* Lists
-------------------------------------------------- */
/* Remove usual bullet styles from list */
.list {
list-style: none;
background-color: #fff; }
/* Pad each list item and add dividers */
.list li {
position: relative;
padding: 11px 60px 11px 0;
/* Given extra right padding to accomodate counts, chevrons or buttons */
margin-left: 15px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
/* Give top border to first list items */
.list li:first-child {
border-top: 1px solid rgba(0, 0, 0, 0.1); }
/* Remove the border from the last list item*/
.list li:last-child {
border-bottom: 0; }
/* If a list of links, make sure the child <a> takes up full list item tap area (want to avoid selecting child buttons though) */
.list li > a:not([class*="button"]) {
position: relative;
display: block;
padding: inherit;
margin: -11px -60px -11px 0;
color: inherit; }
/* Inset list
-------------------------------------------------- */
.list.inset {
width: auto;
margin-right: 10px;
margin-left: 10px;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 6px;
box-sizing: border-box; }
/* Remove border from first/last standard list items to avoid double border at top/bottom of lists */
.list.inset li:first-child {
border-top-width: 0; }
.list.inset li:last-child {
border-bottom-width: 0; }
/* List dividers
-------------------------------------------------- */
.list .list-divider {
position: relative;
top: -1px;
padding-top: 6px;
padding-bottom: 6px;
padding-left: 15px;
margin-left: 0;
font-weight: bold;
line-height: 18px;
background-color: #f8f8f8;
border-top: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.4); }
/* Rounding first divider on inset lists and remove border on the top */
.list.inset .list-divider:first-child {
top: 0;
border-top-width: 0;
border-radius: 6px 6px 0 0; }
/* Rounding last divider on inset lists */
.list.inset .list-divider:last-child {
border-radius: 0 0 6px 6px; }
/* Right-aligned subcontent in lists (chevrons, buttons, counts and toggles)
-------------------------------------------------- */
.list .chevron,
.list [class*="button"],
.list [class*="count"],
.list .toggle {
position: absolute;
top: 50%;
right: 10px; }
/* Position chevrons/counts vertically centered on the right in list items */
.list .chevron,
.list [class*="count"] {
margin-top: -10px;
/* Half height of chevron */ }
/* Push count over if there's a sibling chevron */
.list .chevron + [class*="count"] {
right: 30px; }
/* Position buttons vertically centered on the right in list items */
.list [class*="button"] {
left: auto;
margin-top: -14px;
/* Half height of button */ }
.list .toggle {
margin-top: -15px;
/* Half height of toggle */ }
/* Forms
-------------------------------------------------- */
/* Force form elements to inherit font styles */
input,
textarea,
button,
select {
font-family: inherit;
font-size: inherit; }
/* Stretch inputs/textareas to full width and add height to maintain a consistent baseline */
select,
textarea,
input[type="text"],
input[type=search],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="color"],
.input-group {
width: 100%;
height: 40px;
padding: 10px;
margin-bottom: 10px;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-appearance: none;
box-sizing: border-box;
outline: none; }
/* Fully round search input */
input[type=search] {
height: 34px;
font-size: 14px;
border-radius: 6px;
border-width: 0;
background-color: rgba(0, 0, 0, 0.1); }
/* Allow text area's height to grow larger than a normal input */
textarea {
height: auto; }
/* Style select button to look like part of the Ratchet's style */
select {
height: auto;
font-size: 14px;
background-color: #f8f8f8;
background-image: -webkit-linear-gradient(top, #f8f8f8 0%, #d4d4d4 100%);
background-image: linear-gradient(to bottom, #f8f8f8 0%, #d4d4d4 100%);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1); }
/* Input groups (cluster multiple inputs together into a single group)
-------------------------------------------------- */
/* Reset from initial form setup styles */
.input-group {
width: auto;
height: auto;
padding: 0; }
/* Remove spacing, borders, shadows and rounding since it all belongs on the .input-group not the input */
.input-group input {
margin-bottom: 0;
background-color: transparent;
border: 0;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 0;
box-shadow: none; }
/* Remove bottom border on last input to avoid double bottom border */
.input-group input:last-child {
border-bottom-width: 0; }
/* Input groups with labels
-------------------------------------------------- */
/* To use labels with input groups, wrap a label and an input in an .input-row */
.input-row {
overflow: hidden;
border-bottom: 1px solid rgba(0, 0, 0, 0.2); }
/* Remove bottom border on last input-row to avoid double bottom border */
.input-row:last-child {
border-bottom-width: 0; }
/* Labels get floated left with a set percentage width */
.input-row label {
float: left;
width: 25%;
padding: 11px 10px 9px 13px;
/* Optimizing the baseline for mobile. */
font-weight: bold; }
/* Actual inputs float to right of labels and also have a set percentage */
.input-row label + input {
float: right;
width: 65%;
padding-left: 0;
margin-bottom: 0;
border-bottom: 0; }
/* General button styles
-------------------------------------------------- */
[class*="button"] {
position: relative;
display: inline-block;
padding: 4px 12px;
margin: 0;
font-weight: bold;
line-height: 18px;
color: #333;
text-align: center;
vertical-align: top;
cursor: pointer;
background-color: transparent;
border: 1px solid rgba(0, 0, 0, 0.5);
border-radius: 4px; }
/* Active */
[class*="button"]:active {
background-color: #333;
transition: background-color .1s linear; }
/* Button modifiers
-------------------------------------------------- */
/* Overriding styles for buttons with modifiers */
.button-main,
.button-positive,
.button-negative {
color: #fff; }
/* Main button */
.button-main {
color: #007aff;
border: 1px solid #007aff; }
/* Positive button */
.button-positive {
color: #4cd964;
border: 1px solid #4cd964; }
/* Negative button */
.button-negative {
color: #e71e1e;
border: 1px solid #b51a1a; }
/* Active state for buttons with modifiers */
[class*="button"]:active,
.button-main:active,
.button-positive:active,
.button-negative:active {
color: #fff; }
.button-main:active {
color: #fff;
background-color: #007aff; }
.button-positive:active {
color: #fff;
background-color: #4cd964; }
.button-negative:active {
background-color: #b21a1a; }
/* Block level buttons (full width buttons) */
.button-block {
display: block;
padding: 11px 0 13px;
margin-bottom: 10px;
font-size: 16px; }
/* Make button elements go full width when given .button-block class */
button.button-block {
width: 100%; }
/* Counts in buttons
-------------------------------------------------- */
/* Generic styles for all counts within buttons */
[class*="button"] [class*="count"] {
padding-top: 2px;
padding-bottom: 2px;
margin-right: -4px;
margin-left: 4px;
background-color: rgba(0, 0, 0, 0.1); }
/* Position counts within block level buttons
Note: These are absolutely positioned so that text of button isn't "pushed" by count and always
stays at true center of button */
.button-block [class*="count"] {
position: absolute;
right: 0;
padding-top: 4px;
padding-bottom: 4px;
margin-right: 10px; }
/* Chevrons
-------------------------------------------------- */
.chevron {
display: block;
height: 20px; }
/* Base styles for both 1/2's of the chevron */
.chevron:before,
.chevron:after {
position: relative;
display: block;
width: 10px;
height: 3px;
background-color: #c7c7cc;
content: ''; }
/* Position and rotate respective 1/2's of the chevron */
.chevron:before {
top: 6px;
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.chevron:after {
top: 8px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
/* General count styles
-------------------------------------------------- */
[class*="count"] {
display: inline-block;
padding: 4px 9px;
font-size: 12px;
font-weight: bold;
line-height: 13px;
color: #fff;
background-color: rgba(0, 0, 0, 0.3);
border-radius: 100px; }
/* Count modifiers
-------------------------------------------------- */
/* Overriding styles for counts with modifiers */
.count-main,
.count-positive,
.count-negative {
color: #fff; }
/* Main count */
.count-main {
background-color: #1eafe7; }
/* Positive count */
.count-positive {
background-color: #4cd964; }
/* Negative count */
.count-negative {
background-color: #e71e1e; }
/* Segmented controllers
-------------------------------------------------- */
.segmented-controller {
display: -webkit-box;
display: box;
margin-bottom: 10px;
overflow: hidden;
font-size: 12px;
font-weight: bold;
list-style: none;
background-color: transparent;
border: 1px solid #007aff;
border-radius: 4px;
-webkit-box-orient: horizontal;
box-orient: horizontal; }
/* Section within controller */
.segmented-controller li {
overflow: hidden;
text-align: center;
white-space: nowrap;
border-left: 1px solid #007aff;
-webkit-box-flex: 1;
box-flex: 1; }
/* Link that fills each section */
.segmented-controller li > a {
display: block;
padding: 8px 16px;
overflow: hidden;
line-height: 15px;
color: #007aff;
text-overflow: ellipsis; }
/* Remove border-left and shadow from first section */
.segmented-controller li:first-child {
border-left-width: 0; }
/* Active segment of controller */
.segmented-controller li.active {
background-color: #007aff;
transition: background-color .2s linear; }
/* Set color of links to white */
.segmented-controller li.active > a {
color: #fff; }
.segmented-controller-item {
display: none; }
.segmented-controller-item.active {
display: block; }
/* Popovers (to be used with popovers.js)
-------------------------------------------------- */
.popover {
position: fixed;
top: 55px;
left: 50%;
z-index: 20;
display: none;
width: 280px;
padding: 5px;
margin-left: -146px;
background-color: #555;
background-image: -webkit-linear-gradient(top, #555555 5%, #555555 6%, #111111 30%);
background-image: linear-gradient(to bottom, #555555 5%, #555555 6%, #111111 30%);
border: 1px solid #111;
border-radius: 6px;
opacity: 0;
box-shadow: inset 0 1px 1px -1px white, 0 3px 10px rgba(0, 0, 0, 0.3);
-webkit-transform: translate3d(0, -15px, 0);
transform: translate3d(0, -15px, 0);
-webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; }
/* Caret on top of popover using CSS triangles (thanks to @chriscoyier for solution) */
.popover:before,
.popover:after {
position: absolute;
left: 50%;
width: 0;
height: 0;
content: ''; }
.popover:before {
top: -20px;
margin-left: -21px;
border-right: 21px solid transparent;
border-bottom: 21px solid #111;
border-left: 21px solid transparent; }
.popover:after {
top: -19px;
margin-left: -20px;
border-right: 20px solid transparent;
border-bottom: 20px solid #555;
border-left: 20px solid transparent; }
/* Wrapper for a title and buttons */
.popover-header {
display: -webkit-box;
display: box;
height: 34px;
margin-bottom: 5px; }
/* Centered title for popover */
.popover-header .title {
position: absolute;
top: 0;
left: 0;
width: 100%;
margin: 15px 0;
font-size: 16px;
font-weight: bold;
line-height: 12px;
color: #fff;
text-align: center;
text-shadow: 0 -1px rgba(0, 0, 0, 0.5); }
/* Generic style for all buttons in .popover-header */
.popover-header [class*="button"] {
z-index: 25;
font-size: 12px;
line-height: 22px;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
background-color: #454545;
background-image: -webkit-linear-gradient(top, #454545 0, #353535 100%);
background-image: linear-gradient(to bottom, #454545 0, #353535 100%);
border: 1px solid #111;
-webkit-box-flex: 0;
box-flex: 0; }
/* Hacky way to right align buttons outside of flex-box system
Note: is only absolutely positioned button, would be better if flex-box had an "align right" option */
.popover-header .title + [class*="button"]:last-child,
.popover-header .button + [class*="button"]:last-child,
.popover-header [class*="button"].pull-right {
position: absolute;
top: 5px;
right: 5px; }
/* Active state for popover header buttons */
.popover-header .button:active {
color: #fff;
background-color: #0876b1; }
/* Popover animation
-------------------------------------------------- */
.popover.visible {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
/* Backdrop (used as invisible touch escape)
-------------------------------------------------- */
.backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 10; }
/* Block level buttons in popovers
-------------------------------------------------- */
/* Positioning and giving darker border to look sharp against dark popover */
.popover .button-block {
margin-bottom: 5px;
border: 1px solid #111; }
/* Remove extra margin on bottom of last button */
.popover .button-block:last-child {
margin-bottom: 0; }
/* Lists in popovers
-------------------------------------------------- */
.popover .list {
width: auto;
max-height: 250px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
overflow: auto;
background-color: #fff;
border: 1px solid #000;
border-radius: 3px;
-webkit-overflow-scrolling: touch; }
/* Modals
-------------------------------------------------- */
.modal {
position: fixed;
top: 0;
opacity: 0;
z-index: 11;
width: 100%;
min-height: 100%;
overflow: hidden;
background-color: #fff;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
-webkit-transition: -webkit-transform .25s ease-in-out, opacity 1ms .25s;
transition: transform .25s ease-in-out, opacity 1ms .25s; }
/* Modal - When active
-------------------------------------------------- */
.modal.active {
opacity: 1;
height: 100%;
-webkit-transition: -webkit-transform .25s ease-in-out;
transition: transform .25 ease-in-out;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
/* Slider styles (to be used with sliders.js)
-------------------------------------------------- */
/* Width/height of slider */
.slider,
.slider > li {
width: 100%;
height: 200px; }
/* Outer wrapper for slider */
.slider {
overflow: hidden;
background-color: #000; }
/* Inner wrapper for slider (width of all slides together) */
.slider > ul {
position: relative;
font-size: 0;
/* Remove spaces from inline-block children */
white-space: nowrap;
-webkit-transition: all 0 linear;
transition: all 0 linear; }
/* Individual slide */
.slider > ul > li {
display: inline-block;
vertical-align: top;
/* Ensure that li always aligns to top */
width: 100%;
height: 100%; }
/* Required reset of font-size to same as standard body */
.slider > ul > li > * {
font-size: 14px; }
/* Toggle styles (to be used with toggles.js)
-------------------------------------------------- */
.toggle {
position: relative;
width: 45px;
height: 28px;
background-color: #fff;
border: 2px solid #e6e6e6;
border-radius: 20px; }
/* Sliding handle */
.toggle-handle {
position: absolute;
top: -1px;
left: -1px;
z-index: 2;
width: 28px;
height: 28px;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 100px;
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.08);
-webkit-transition: -webkit-transform 0.1s ease-in-out, border 0.1s ease-in-out;
transition: transform 0.1s ease-in-out, border 0.1s ease-in-out; }
/* Active state for toggle */
.toggle.active {
background-color: #4cd964;
border: 2px solid #4cd964; }
/* Active state for toggle handle */
.toggle.active .toggle-handle {
border-color: #4cd964;
-webkit-transform: translate3d(17px, 0, 0);
transform: translate3d(17px, 0, 0); }
/* Push styles (to be used with push.js)
-------------------------------------------------- */
/* Fade animation */
.content.fade {
left: 0;
opacity: 0;
-webkit-transition: opacity .2s ease-in-out;
transition: opacity .2s ease-in-out; }
.content.fade.in {
opacity: 1; }
/* Slide animation */
.content.slide {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition: -webkit-transform .25s ease-in-out;
transition: transform .25s ease-in-out; }
.content.slide.left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); }
.content.slide.right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }