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.

975 lines
17 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.
* =====================================================
*/
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;
}
html {
-webkit-text-size-adjust: 100%;
}
body {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
font: 14px/1.25 "Helvetica Neue", sans-serif;
color: #000;
background-color: #fff;
}
a {
color: #007aff;
text-decoration: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.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;
}
.content > * {
-webkit-transform: translateZ(0px);
transform: translateZ(0px);
}
.content-padded {
padding: 10px;
}
.bar-title ~ .content {
padding-top: 44px;
}
.bar-tab ~ .content {
padding-bottom: 51px;
}
.bar-header-secondary ~ .content {
padding-top: 88px;
}
[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);
box-sizing: border-box;
}
.bar-header-secondary {
top: 44px;
}
.bar-footer {
bottom: 0;
}
.bar-footer.bar-standard,
.bar-footer-secondary.bar-standard {
box-shadow: 0 0px 1px rgba(0, 0, 0, 0.85);
}
.bar-title {
top: 0;
display: -webkit-box;
display: box;
-webkit-box-orient: horizontal;
box-orient: horizontal;
}
.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%;
}
.bar-title .title a {
color: inherit;
}
.bar-tab {
bottom: 0;
height: 50px;
padding: 0;
box-shadow: 0 0px 1px rgba(0, 0, 0, 0.85);
}
.tab-inner {
display: -webkit-box;
display: box;
height: 100%;
list-style: none;
-webkit-box-orient: horizontal;
box-orient: horizontal;
}
.tab-item {
height: 100%;
padding-top: 9px;
text-align: center;
box-sizing: border-box;
-webkit-box-flex: 1;
box-flex: 1;
}
.tab-icon {
display: block;
height: 18px;
margin: 0 auto;
}
.tab-label {
margin-top: 1px;
font-size: 11px;
font-weight: 400;
color: #929292;
}
.tab-item.active .tab-label {
color: #007aff;
}
.bar-title [class*="button"] {
position: relative;
z-index: 10;
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;
}
.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;
}
.bar-title .button:active,
.bar-title .button-prev:active,
.bar-title .button-next:active {
color: #007aff;
background-color: transparent;
opacity: .3;
}
.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: '';
}
.bar-title .button-prev {
padding-left: 22px;
}
.bar-title .button-next {
padding-right: 22px;
}
.bar-title .button-prev:before,
.bar-title .button-prev:after {
left: 0;
}
.bar-title .button-next:before,
.bar-title .button-next:after {
right: 0;
}
.bar-title .button-prev:before,
.bar-title .button-next:before {
top: 12px;
}
.bar-title .button-prev:after,
.bar-title .button-next:after {
top: 21px;
}
.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);
}
[class*="bar"] .button-block {
padding: 7px 0;
margin-bottom: 0;
}
[class*="bar"] .button-block:active {
padding: 7px 0;
}
[class*="bar-"] .segmented-controller {
margin-bottom: 0;
}
[class*="bar-"] .segmented-controller + [class*="button"],
[class*="bar-"] [class*="button"] + .segmented-controller {
margin-left: 5px;
}
.bar-title .segmented-controller {
line-height: 18px;
-webkit-box-flex: 1;
box-flex: 1;
}
.bar-standard input[type=search] {
height: 32px;
margin: 0;
}
.table-view {
list-style: none;
background-color: #fff;
}
.table-view li {
position: relative;
padding: 11px 60px 11px 0;
margin-left: 15px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}
.table-view li:last-child {
border-bottom: 0;
}
.table-view li > a:not([class*="button"]) {
position: relative;
display: block;
padding: inherit;
margin: -11px -60px -11px 0;
color: inherit;
}
.table-view.inset {
width: auto;
margin-right: 10px;
margin-left: 10px;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 6px;
box-sizing: border-box;
}
.table-view.inset li:first-child {
border-top-width: 0;
}
.table-view.inset li:last-child {
border-bottom-width: 0;
}
.table-view .table-view-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);
}
.table-view .table-view-divider:first-child {
top: 0;
border-top-width: 0;
border-radius: 6px 6px 0 0;
}
.table-view .table-view-divider:last-child {
border-radius: 0 0 6px 6px;
}
.table-view .chevron,
.table-view [class*="button"],
.table-view [class*="count"],
.table-view .toggle {
position: absolute;
top: 50%;
right: 10px;
}
.table-view .chevron,
.table-view [class*="count"] {
margin-top: -10px;
}
.table-view .chevron + [class*="count"] {
right: 30px;
}
.table-view [class*="button"] {
left: auto;
margin-top: -14px;
}
.table-view .toggle {
margin-top: -15px;
}
input,
textarea,
button,
select {
font-family: inherit;
font-size: inherit;
}
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;
}
input[type=search] {
height: 34px;
font-size: 14px;
border-radius: 6px;
border-width: 0;
background-color: rgba(0, 0, 0, 0.1);
}
textarea {
height: auto;
}
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-group {
width: auto;
height: auto;
padding: 0;
}
.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;
}
.input-group input:last-child {
border-bottom-width: 0;
}
.input-row {
overflow: hidden;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.input-row:last-child {
border-bottom-width: 0;
}
.input-row label {
float: left;
width: 25%;
padding: 11px 10px 9px 13px;
font-weight: bold;
}
.input-row label + input {
float: right;
width: 65%;
padding-left: 0;
margin-bottom: 0;
border-bottom: 0;
}
[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;
}
[class*="button"]:active {
background-color: #333;
transition: background-color .1s linear;
}
.button-main,
.button-positive,
.button-negative {
color: #fff;
}
.button-main {
color: #007aff;
border: 1px solid #007aff;
}
.button-positive {
color: #4cd964;
border: 1px solid #4cd964;
}
.button-negative {
color: #e71e1e;
border: 1px solid #b51a1a;
}
[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;
}
.button-block {
display: block;
padding: 11px 0 13px;
margin-bottom: 10px;
font-size: 16px;
}
button.button-block {
width: 100%;
}
[class*="button"] [class*="count"] {
padding-top: 2px;
padding-bottom: 2px;
margin-right: -4px;
margin-left: 4px;
background-color: rgba(0, 0, 0, 0.1);
}
.button-block [class*="count"] {
position: absolute;
right: 0;
padding-top: 4px;
padding-bottom: 4px;
margin-right: 10px;
}
.chevron {
display: block;
height: 20px;
}
.chevron:before, .chevron:after {
position: relative;
display: block;
width: 10px;
height: 3px;
background-color: #c7c7cc;
content: '';
}
.chevron:before {
top: 6px;
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.chevron:after {
top: 8px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
[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-main {
background-color: #1eafe7;
}
.count-positive {
background-color: #4cd964;
}
.count-negative {
background-color: #e71e1e;
}
.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;
}
.segmented-controller li {
overflow: hidden;
text-align: center;
white-space: nowrap;
border-left: 1px solid #007aff;
-webkit-box-flex: 1;
box-flex: 1;
}
.segmented-controller li > a {
display: block;
padding: 8px 16px;
overflow: hidden;
line-height: 15px;
color: #007aff;
text-overflow: ellipsis;
}
.segmented-controller li:first-child {
border-left-width: 0;
}
.segmented-controller li.active {
background-color: #007aff;
transition: background-color .2s linear;
}
.segmented-controller li.active > a {
color: #fff;
}
.segmented-controller-item {
display: none;
}
.segmented-controller-item.active {
display: block;
}
.popover {
position: fixed;
top: 55px;
left: 50%;
z-index: 20;
display: none;
width: 280px;
padding: 5px;
margin-left: -146px;
background-color: rgba(247, 247, 247, 0.98);
border-radius: 6px;
opacity: 0;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
-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;
}
.popover:after {
position: absolute;
top: -19px;
left: 50%;
width: 0;
height: 0;
margin-left: -20px;
content: '';
border-right: 20px solid transparent;
border-bottom: 20px solid rgba(247, 247, 247, 0.98);
border-left: 20px solid transparent;
}
.popover-header {
display: -webkit-box;
display: box;
height: 34px;
margin-bottom: 5px;
}
.popover-header .title {
position: absolute;
top: 0;
left: 0;
display: block;
width: 100%;
font-size: 16px;
font-weight: 500;
line-height: 45px;
color: #000;
text-align: center;
}
.popover-header [class*="button"] {
z-index: 25;
font-size: 16px;
font-weight: 400;
line-height: 29px;
color: #007aff;
border: 0;
transition: opacity .2s linear;
-webkit-box-flex: 0;
box-flex: 0;
}
.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;
}
.popover-header .button:active {
color: #007aff;
background-color: transparent;
opacity: .3;
}
.popover.visible {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 10;
}
.popover .button-block {
margin-bottom: 5px;
}
.popover .button-block:last-child {
margin-bottom: 0;
}
.popover .table-view {
width: auto;
max-height: 250px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
overflow: auto;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 3px;
-webkit-overflow-scrolling: touch;
}
.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.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,
.slider > li {
width: 100%;
height: 200px;
}
.slider {
overflow: hidden;
background-color: #000;
}
.slider > ul {
position: relative;
font-size: 0;
white-space: nowrap;
-webkit-transition: all 0 linear;
transition: all 0 linear;
}
.slider > ul > li {
display: inline-block;
vertical-align: top;
width: 100%;
height: 100%;
}
.slider > ul > li > * {
font-size: 14px;
}
.toggle {
position: relative;
width: 45px;
height: 28px;
background-color: #fff;
border: 2px solid #e6e6e6;
border-radius: 20px;
}
.toggle .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;
}
.toggle.active {
background-color: #4cd964;
border: 2px solid #4cd964;
}
.toggle.active .toggle-handle {
border-color: #4cd964;
-webkit-transform: translate3d(17px, 0, 0);
transform: translate3d(17px, 0, 0);
}
.content.fade {
left: 0;
opacity: 0;
-webkit-transition: opacity .2s ease-in-out;
transition: opacity .2s ease-in-out;
}
.content.fade.in {
opacity: 1;
}
.content.slide {
z-index: 2;
-webkit-transition: -webkit-transform .4s;
transition: transform .4s;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition-timing-function: cubic-bezier(0.1, 0.7, 0.1, 1);
}
.content.slide.sliding-in, .content.slide.right:not([class*="sliding-in"]) {
-webkit-animation-name: fadeOverlay;
animation-name: fadeOverlay;
-webkit-animation-duration: .4s;
animation-duration: .4s;
}
.content.slide.right:not([class*="sliding-in"]) {
-webkit-animation-direction: reverse;
animation-direction: reverse;
}
.content.slide.left {
z-index: 1;
-webkit-transform: translate3d(-20%, 0, 0);
transform: translate3d(-20%, 0, 0);
}
.content.slide.right {
z-index: 3;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
@-webkit-keyframes fadeOverlay {
from {
box-shadow: 0 0 10px rgba(0, 0, 0, 0), -320px 0 0 rgba(0, 0, 0, 0);
}
to {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), -320px 0 0 rgba(0, 0, 0, 0.1);
}
}