/**
* ================================== * Ratchet v1.0.2 * Licensed under The MIT License * http://opensource.org/licenses/MIT * ================================== */
/* 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%; -ms-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: #222; background-color: #fff;
}
/* Universal link styling */ a {
color: #0882f0; 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: #fff; -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 {
top: 44px;
} .bar-tab ~ .content {
bottom: 51px;
} .bar-header-secondary ~ .content {
top: 88px;
}/* General bar styles ————————————————– */
- class*=“bar-”
-
{
position: fixed; right: 0; left: 0; z-index: 10; height: 44px; padding: 5px; box-sizing: border-box;
}
/* Modifier class to dock any bar below .bar-title */ .bar-header-secondary {
top: 45px;
}
/* Modifier class to dock any bar to bottom of viewport */ .bar-footer {
bottom: 0;
}
/* Generic bar for wrapping buttons, segmented controllers, etc. */ .bar-standard {
background-color: #f2f2f2; background-image: -webkit-linear-gradient(top, #f2f2f2 0, #e5e5e5 100%); background-image: linear-gradient(to bottom, #f2f2f2 0, #e5e5e5 100%); border-bottom: 1px solid #aaa; box-shadow: inset 0 1px 1px -1px #fff;
}
/* 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;
}
/* Title bar ————————————————– */
/* Bar docked to top of viewport for showing page title and actions */ .bar-title {
top: 0; display: -webkit-box; display: box; background-color: #1eb0e9; background-image: -webkit-linear-gradient(top, #1eb0e9 0, #109adc 100%); background-image: linear-gradient(to bottom, #1eb0e9 0, #109adc 100%); border-bottom: 1px solid #0e5895; box-shadow: inset 0 1px 1px -1px rgba(255, 255, 255, .8); -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: 20px; font-weight: bold; line-height: 44px; color: #fff; text-align: center; text-shadow: 0 -1px rgba(0, 0, 0, .5); white-space: nowrap;
}
.bar-title > a:not() {
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; background-color: #393939; background-image: -webkit-linear-gradient(top, #393939 0, #2b2b2b 100%); background-image: linear-gradient(to bottom, #393939 0, #2b2b2b 100%); border-top: 1px solid #000; border-bottom-width: 0; box-shadow: inset 0 1px 1px -1px rgba(255, 255, 255, .6);
}
/* 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;
}
/* Active state for tab */ .tab-item.active {
box-shadow: inset 0 0 20px rgba(0, 0, 0, .5);
}
/* Icon for tab */ .tab-icon {
display: block; height: 18px; margin: 0 auto;
}
/* Label for tab */ .tab-label {
margin-top: 1px; font-size: 10px; font-weight: bold; color: #fff; text-shadow: 0 1px rgba(0, 0, 0, .3);
}
/* 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 */ font-size: 12px; line-height: 23px; color: #fff; text-shadow: 0 -1px 0 rgba(0, 0, 0, .3); background-color: #1eb0e9; background-image: -webkit-linear-gradient(top, #1eb0e9 0, #0984c6 100%); background-image: linear-gradient(to bottom, #1eb0e9 0, #0984c6 100%); border: 1px solid #0e5895; box-shadow: 0 1px rgba(255, 255, 255, .25); -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 {
color: #fff; background-color: #0876b1;
}
/* Directional buttons in title bars (thanks to @GregorAdams for solution - cssnerd.com/2011/11/30/the-best-pure-css3-ios-style-arrow-back-button/) ————————————————– */
/* Add relative positioning so :before content is positioned properly */ .bar-title .button-prev, .bar-title .button-next {
position: relative;
}
/* Prev/next button base styles */ .bar-title .button-prev {
margin-left: 7px; /* Push over to make room for :before content */ border-left: 0; border-bottom-left-radius: 10px 15px; border-top-left-radius: 10px 15px;
} .bar-title .button-next {
margin-right: 7px; /* Push over to make room for :before content */ border-right: 0; border-top-right-radius: 10px 15px; border-bottom-right-radius: 10px 15px;
}
/* Pointed part of directional button */ .bar-title .button-prev:before, .bar-title .button-next:before {
position: absolute; top: 2px; width: 27px; height: 27px; border-radius: 30px 100px 2px 40px / 2px 40px 30px 100px; content: ''; box-shadow: inset 1px 0 #0e5895, inset 0 1px #0e5895; -webkit-mask-image: -webkit-gradient(linear, left top, right bottom, from(#000), color-stop(.33, #000), color-stop(.5, transparent), to(transparent)); mask-image: gradient(linear, left top, right bottom, from(#000), color-stop(.33, #000), color-stop(.5, transparent), to(transparent));
} .bar-title .button-prev:before {
left: -5px; background-image: -webkit-gradient(linear, left bottom, right top, from(#0984c6), to(#1eb0e9)); background-image: gradient(linear, left bottom, right top, from(#0984c6), to(#1eb0e9)); border-left: 1.5px solid rgba(255, 255, 255, .25); -webkit-transform: rotate(-45deg) skew(-10deg, -10deg); transform: rotate(-45deg) skew(-10deg, -10deg);
} .bar-title .button-next:before {
right: -5px; background-image: -webkit-gradient(linear, left bottom, right top, from(#1eb0e9), to(#0984c6)); background-image: gradient(linear, left bottom, right top, from(#1eb0e9), to(#0984c6)); border-top: 1.5px solid rgba(255, 255, 255, .25); -webkit-transform: rotate(135deg) skew(-10deg, -10deg); transform: rotate(135deg) skew(-10deg, -10deg);
}
/* Active states for the directional buttons */ .bar-title .button-prev:active, .bar-title .button-next:active, .bar-title .button-prev:active:before, .bar-title .button-next:active:before {
color: #fff; background-color: #0876b1; background-image: none;
} .bar-title .button-prev:active:before, .bar-title .button-next:active:before {
content: '';
} .bar-title .button-prev:active:before {
box-shadow: inset 0 3px 3px rgba(0, 0, 0, .2);
} .bar-title .button-next:active:before {
box-shadow: inset 0 -3px 3px rgba(0, 0, 0, .2);
}
/* 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; box-shadow: inset 0 1px 1px rgba(255, 255, 255, .4), 0 1px rgba(255, 255, 255, .8);
}
/* 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; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3); background-color: #1eb0e9; background-image: -webkit-linear-gradient(top, #1eb0e9 0, #0984c6 100%); background-image: linear-gradient(to bottom, #1eb0e9 0, #0984c6 100%); border: 1px solid #0e5895; border-radius: 3px; box-shadow: 0 1px rgba(255, 255, 255, .25); -webkit-box-flex: 1; box-flex: 1;
}
/* Set color for tab border and highlight */ .bar-title .segmented-controller li {
border-left: 1px solid #0e5895; box-shadow: inset 1px 0 rgba(255, 255, 255, .25);
}
/* Remove inset shadow from first tab or one to the right of the active tab */ .bar-title .segmented-controller .active + li, .bar-title .segmented-controller li:first-child {
box-shadow: none;
}
/* Remove left-hand border from first tab */ .bar-title .segmented-controller li:first-child {
border-left-width: 0;
}
/* Depressed state (active) */ .bar-title .segmented-controller li.active {
background-color: #0082c4; box-shadow: inset 0 1px 6px rgba(0, 0, 0, .3);
}
/* Set color of links to white */ .bar-title .segmented-controller li > a {
color: #fff;
}
/* Search forms in standard bar ————————————————– */
/* Position/size search bar within the bar */ .bar-standard input {
height: 32px; margin: 0;
}/* Lists ————————————————– */
/* Remove usual bullet styles from list */ .list {
margin-bottom: 10px; list-style: none; background-color: #fff;
}
/* Pad each list item and add dividers */ .list li {
position: relative; padding: 11px 60px 11px 10px; /* Given extra right padding to accomodate counts, chevrons or buttons */ border-bottom: 1px solid rgba(0, 0, 0, .1);
}
/* Give top border to first list items */ .list li:first-child {
border-top: 1px solid rgba(0, 0, 0, .1);
}
/* 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() {
position: relative; display: block; padding: inherit; margin: -11px -60px -11px -10px; color: inherit;
}
/* Inset list ————————————————– */
.list.inset {
width: auto; margin-right: 10px; margin-left: 10px; border: 1px solid rgba(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; font-size: 12px; font-weight: bold; line-height: 18px; text-shadow: 0 1px 0 rgba(255, 255, 255, .5); background-color: #f8f8f8; background-image: -webkit-linear-gradient(top, #f8f8f8 0, #eee 100%); background-image: linear-gradient(to bottom, #f8f8f8 0, #eee 100%); border-top: 1px solid rgba(0, 0, 0, .1); border-bottom: 1px solid rgba(0, 0, 0, .1); box-shadow: inset 0 1px 1px rgba(255, 255, 255, .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, input, input, input, input, input, input, input, input, input, input, input, input, input, .input-group {
width: 100%; height: 40px; padding: 10px; margin-bottom: 10px; background-color: #fff; border: 1px solid rgba(0, 0, 0, .2); border-radius: 3px; box-shadow: 0 1px 1px rgba(255, 255, 255, .2), inset 0 1px 1px rgba(0, 0, 0, .1); -webkit-appearance: none; box-sizing: border-box; outline: none;
}
/* Fully round search input */ input {
height: 34px; font-size: 14px; border-radius: 30px;
}
/* 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, .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, .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, .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; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); vertical-align: top; cursor: pointer; background-color: #f8f8f8; background-image: -webkit-linear-gradient(top, #f8f8f8 0, #d4d4d4 100%); background-image: linear-gradient(to bottom, #f8f8f8 0, #d4d4d4 100%); border: 1px solid rgba(0, 0, 0, .3); border-radius: 3px; box-shadow: inset 0 1px 1px rgba(255, 255, 255, .4), 0 1px 2px rgba(0, 0, 0, .05);
}
/* Active */ [class*=“button”]:active {
padding-top: 5px; padding-bottom: 3px; color: #333; background-color: #ccc; background-image: none; box-shadow: inset 0 3px 3px rgba(0, 0, 0, .2);
}
/* Button modifiers ————————————————– */
/* Overriding styles for buttons with modifiers */ .button-main, .button-positive, .button-negative {
color: #fff; text-shadow: 0 -1px 0 rgba(0, 0, 0, .3);
}
/* Main button */ .button-main {
background-color: #1eafe7; background-image: -webkit-linear-gradient(top, #1eafe7 0, #1a97c8 100%); background-image: linear-gradient(to bottom, #1eafe7 0, #1a97c8 100%); border: 1px solid #117aaa;
}
/* Positive button */ .button-positive {
background-color: #34ba15; background-image: -webkit-linear-gradient(top, #34ba15 0, #2da012 100%); background-image: linear-gradient(to bottom, #34ba15 0, #2da012 100%); border: 1px solid #278f0f;
}
/* Negative button */ .button-negative {
background-color: #e71e1e; background-image: -webkit-linear-gradient(top, #e71e1e 0,#c71a1a 100%); background-image: linear-gradient(to bottom, #e71e1e 0, #c71a1a 100%); border: 1px solid #b51a1a;
}
/* Active state for buttons with modifiers */ .button-main:active, .button-positive:active, .button-negative:active {
color: #fff;
} .button-main:active {
background-color: #0876b1;
} .button-positive:active {
background-color: #298f11;
} .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;
}
/* Active state for block level buttons */ .button-block:active {
padding: 12px 0;
}
/* 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; text-shadow: none; background-color: rgba(0, 0, 0, .2); box-shadow: inset 0 1px 1px -1px #000000, 0 1px 1px -1px #fff;
}
/* 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: 12px; height: 4px; background-color: #999; content: '';
}
/* Position and rotate respective 1/2’s of the chevron */ .chevron:before {
top: 5px; -webkit-transform: rotate(45deg); transform: rotate(45deg);
} .chevron:after {
top: 7px; -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, .3); border-radius: 100px;
}
/* Count modifiers ————————————————– */
/* Overriding styles for counts with modifiers */ .count-main, .count-positive, .count-negative {
color: #fff; text-shadow: 0 -1px 0 rgba(0, 0, 0, .3);
}
/* Main count */ .count-main {
background-color: #1eafe7; background-image: -webkit-linear-gradient(top, #1eafe7 0, #1a97c8 100%); background-image: linear-gradient(to bottom, #1eafe7 0, #1a97c8 100%);
}
/* Positive count */ .count-positive {
background-color: #34ba15; background-image: -webkit-linear-gradient(top, #34ba15 0, #2da012 100%); background-image: linear-gradient(to bottom, #34ba15 0, #2da012 100%);
}
/* Negative count */ .count-negative {
background-color: #e71e1e; background-image: -webkit-linear-gradient(top, #e71e1e 0,#c71a1a 100%); background-image: linear-gradient(to bottom, #e71e1e 0, #c71a1a 100%);
}/* Segmented controllers ————————————————– */
.segmented-controller {
display: -webkit-box; display: box; margin-bottom: 10px; overflow: hidden; font-size: 12px; font-weight: bold; text-shadow: 0 1px rgba(255, 255, 255, .5); list-style: none; background-color: #f8f8f8; background-image: -webkit-linear-gradient(top, #f8f8f8 0, #d4d4d4 100%); background-image: linear-gradient(to bottom, #f8f8f8 0, #d4d4d4 100%); border: 1px solid #aaa; border-radius: 3px; box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 1px rgba(255, 255, 255, .8); -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 #aaa; box-shadow: inset 1px 0 rgba(255, 255, 255, .5); -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: #333; text-overflow: ellipsis;
}
/* Remove border-left and shadow from first section */ .segmented-controller li:first-child {
border-left-width: 0; box-shadow: none;
}
/* Active segment of controller */ .segmented-controller li.active {
background-color: #ccc; box-shadow: inset 0 1px 5px rgba(0, 0, 0, .3);
}
.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, #555 5%, #555 6%, #111 30%); background-image: linear-gradient(to bottom, #555 5%, #555 6%,#111 30%); border: 1px solid #111; border-radius: 6px; opacity: 0; box-shadow: inset 0 1px 1px -1px #fff, 0 3px 10px rgba(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, .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, .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: 75px; height: 28px; background-color: #eee; border: 1px solid #bbb; border-radius: 20px; box-shadow: inset 0 0 4px rgba(0, 0, 0, .1);
}
/* Text indicating “on” or “off”. Default is “off” */ .toggle:before {
position: absolute; right: 13px; font-weight: bold; line-height: 28px; color: #777; text-shadow: 0 1px #fff; text-transform: uppercase; content: "Off";
}
/* Sliding handle */ .toggle-handle {
position: absolute; top: -1px; left: -1px; z-index: 2; width: 28px; height: 28px; background-color: #fff; background-image: -webkit-linear-gradient(top, #fff 0, #f2f2f2 100%); background-image: linear-gradient(to bottom, #fff 0, #f2f2f2 100%); border: 1px solid rgba(0, 0, 0, .2); border-radius: 100px; -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: #19a8e4; background-image: -webkit-linear-gradient(top, #088cd4 0, #19a8e4 100%); background-image: linear-gradient(to bottom, #088cd4 0, #19a8e4 100%); border: 1px solid #096c9d; box-shadow: inset 0 0 15px rgba(255, 255, 255, .25);
}
/* Active state for toggle handle */ .toggle.active .toggle-handle {
border-color: #0a76ad; -webkit-transform: translate3d(48px,0,0); transform: translate3d(48px,0,0);
}
/* Change “off” to “on” for active state */ .toggle.active:before {
right: auto; left: 15px; color: #fff; text-shadow: 0 -1px rgba(0, 0, 0, 0.25); content: "On";
}/* 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);
}