Title bar
-Title bars are full width and docked to the top of the viewport.
- -Title
-<header class="bar bar-nav">
- <h1 class="title">Title</h1>
-</header>
-
diff --git a/assets/css/docs.css b/assets/css/docs.css deleted file mode 100644 index f760a8e..0000000 --- a/assets/css/docs.css +++ /dev/null @@ -1,2100 +0,0 @@ -/* - * ===================================================== - * Ratchet v2.0.0 - * Copyright 2014 Connor Sears - * Licensed under http://www.opensource.org/licenses/MIT - * - * V2.0.0 designed by @connors. - * ===================================================== - */ - -html, -body { - width: 100%; - height: 100%; -} - -body { - position: relative !important; - font: 14px/1.5 "adelle-sans",sans-serif; - color: #333; - background-color: #fff; - -webkit-font-smoothing: antialiased; - -webkit-text-size-adjust: 100%; -} - -.docs-header, -.docs-sub-header { - position: relative; - background-image: linear-gradient(45deg, #0a1855 0%, #da0024 100%); -} -.docs-header:before, -.docs-sub-header:before { - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; - background-image: url(../img/pattern.png); - background-size: 30%; - background-position: center center; - opacity: .038; -} - -.docs-header { - height: 100vh; - min-height: 700px; -} -.docs-header .carbonad { - position: absolute !important; - bottom: 180px !important; - margin-top: 0 !important; - -webkit-animation-name: fadeintext; - -moz-animation-name: fadeintext; - animation-name: fadeintext; - -webkit-animation-duration: 2s; - -moz-animation-duration: 2s; - animation-duration: 2s; -} - -.docs-masthead { - position: relative; - padding-top: 15px; - padding-bottom: 15px; - border-bottom: 1px solid rgba(255, 255, 255, 0.1); -} - -.docs-title { - position: absolute; - left: 50%; - margin-bottom: 0; - font-size: 22px; - font-weight: 100; - z-index: 20; - -webkit-transform: translateX(-50%); - -ms-transform: translateX(-50%); - transform: translateX(-50%); -} - -.version { - margin-top: 15px; - text-align: center; - margin-bottom: 0; - color: #777; -} - -.docs-nav .docs-nav-trigger { - color: #fff; - cursor: pointer; - opacity: .7; -} -.docs-nav .docs-nav-trigger.active { - opacity: 1; -} -.docs-nav .docs-nav-group { - position: absolute; - top: 40px; - left: 0; - right: 0; - z-index: 20; - overflow: hidden; - height: 0; - background-color: rgba(0, 0, 0, 0.9); - opacity: 0; -} -.docs-nav .docs-nav-group.active { - height: auto; - opacity: 1; -} - -.docs-nav .docs-nav-item { - display: block; - padding: 20px 15px; - font-weight: 100; - font-size: 22px; -} - -.docs-jump-menu, -.docs-component-group { - display: none; -} - -.docs-title a, -.docs-nav-item { - color: #fff; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} -.docs-title a:active, .docs-title a:focus, -.docs-nav-item:active, -.docs-nav-item:focus { - color: #fff; - opacity: .5; -} - -.docs-header-content { - position: relative; - top: 30px; - text-align: center; - padding: 50px 10px; - -webkit-animation-name: fadeintext; - -moz-animation-name: fadeintext; - animation-name: fadeintext; - -webkit-animation-duration: 2s; - -moz-animation-duration: 2s; - animation-duration: 2s; -} -.docs-header-content .btn { - display: block; - padding: 15px 60px 16px; - font-size: 18px; - margin-bottom: 0; - color: #0a1855; - background-color: #fff; - border: 0; - -webkit-transition: all 0.2s linear; - -moz-transition: all 0.2s linear; - transition: all 0.2s linear; -} -.docs-header-content .version { - color: #b983a6; -} -.docs-header-content .btn:hover { - background-color: #fff; - -webkit-box-shadow: 0 0 50px rgba(255, 255, 255, 0.3); - box-shadow: 0 0 50px rgba(255, 255, 255, 0.3); -} -.docs-header-content .btn:active { - opacity: .5; -} - -.docs-subtitle { - max-width: 750px; - margin: 0 auto 20px; - font-size: 28px; - font-weight: 100; - color: #fff; - line-height: 38px; -} - -.carbonad { - width: 100% !important; - height: auto !important; - padding: 15px !important; - font-size: 13px !important; - line-height: 18px !important; - background: transparent !important; - border-top: 1px solid rgba(255, 255, 255, 0.1) !important; - border-right: 0 !important; - border-bottom: 0 !important; - border-left: 0 !important; -} - -.carbonad-img { - margin: 0 !important; -} - -.carbonad-text, -.carbonad-tag { - display: block !important; - float: none !important; - width: auto !important; - height: auto !important; - margin-left: 145px !important; - color: rgba(255, 255, 255, 0.65) !important; - font-family: "adelle-sans", "Helvetica Neue", Helvetica, Arial, sans-serif !important; -} - -.carbonad-text { - padding-top: 0 !important; -} - -.carbonad-tag { - text-align: left !important; -} - -.carbonad-text a, -.carbonad-tag a { - color: #fff !important; -} - -.carbonad #azcarbon > img { - display: none; -} - -.docs-sub-content { - position: relative; - overflow: hidden; - padding-top: 55px; - padding-bottom: 65px; - color: #fff; - text-align: center; -} -.docs-sub-content .page-title, -.docs-sub-content .page-description { - margin-top: 0; - margin-bottom: 0; - font-weight: 100; -} -.docs-sub-content .page-title { - font-size: 40px; - margin-bottom: 5px; -} -.docs-sub-content .page-description { - color: #fff; - font-size: 24px; - opacity: .7; -} - -.docs-section { - padding-top: 80px; - padding-bottom: 80px; -} - -.section-heading, -.section-lead { - margin-top: 0; - margin-bottom: 0; -} - -.section-heading { - font-size: 22px; - font-weight: 300; -} - -.section-lead { - font-size: 18px; - color: #777; - font-weight: 100; -} - -.docs-steps { - margin-top: 20px; - padding: 0; - list-style: none; -} - -.step { - padding-top: 30px; - padding-bottom: 30px; -} - -.step-title, -.step-description { - font-weight: 300; -} - -.step-title { - font-size: 18px; -} - -.step-title code { - font-size: 14px; -} - -.step-description { - font-size: 14px; -} - -.docs-module { - margin-top: 20px; - padding: 20px; - border: 1px solid #dddddd; - border-radius: 3px; -} -.docs-module .btn-block { - margin-bottom: 0; -} - -.docs-module-title { - font-weight: 300; -} - -.docs-footer { - border-top: 1px solid #ddd; - margin-top: 50px; - padding-top: 30px; - padding-bottom: 30px; - text-align: center; -} -.docs-footer .social { - padding: 0 0 20px; - margin: 0; - list-style: none; -} -.docs-footer .social li { - height: 20px; - display: inline-block; - vertical-align: top; -} -.docs-footer .social .twitter-follow-button { - margin-top: 5px; -} - -.docs-footer-content { - padding-left: 15px; - padding-right: 15px; - margin: 0; - color: #777; - font-size: 12px; -} - -.docs-header .docs-footer { - position: absolute; - bottom: 0; - left: 0; - right: 0; - margin-top: 0; - border-top: 1px solid rgba(255, 255, 255, 0.1); -} -.docs-header .docs-footer .docs-footer-content { - color: rgba(255, 255, 255, 0.5); -} -.docs-header .docs-footer .docs-footer-content a { - font-weight: bold; - color: rgba(255, 255, 255, 0.8); -} - -.docs-component-toolbar { - padding-top: 8px; - padding-bottom: 8px; - position: fixed; - top: 0; - bottom: auto; - left: 0; - right: 0; - z-index: 20; - height: 44px; - background-color: #fff; - border-bottom: 1px solid #ddd; - -webkit-transition: -webkit-transform .5s; - -moz-transition: -moz-transform .5s; - transition: transform .5s; - -webkit-transform: translate3d(0, -55px, 0); - -ms-transform: translate3d(0, -55px, 0); - transform: translate3d(0, -55px, 0); -} -.docs-component-toolbar.visible { - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); - -webkit-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.docs-component-toolbar .segmented-control { - max-width: 300px; - margin: 0 auto; -} -.docs-component-toolbar .segmented-control .control-item { - cursor: pointer; -} - -.docs-examples { - margin-top: 50px; - margin-bottom: 50px; -} - -.docs-example-group { - margin-top: 30px; -} -.docs-example-group .example-wrap { - display: inline-block; - margin-right: 10px; -} -.docs-example-group .example-wrap:last-child { - margin-right: 10px; -} -.docs-example-group .example-wrap .example { - display: block; - padding: 4px; - overflow: hidden; - padding: 3px; - width: 100%; - border: 1px solid #dddddd; - border-radius: 3px; -} -.docs-example-group .example-wrap h5 { - margin-top: 10px; - font-weight: 300; -} -.docs-example-group .example-wrap img { - display: block; - width: 100%; -} - -code { - padding: 2px 4px; - font-size: 90%; - background-color: #f9f9f9; - border-radius: 3px; -} - -.component { - padding: 50px 15px; - margin-left: -15px; - margin-right: -15px; - border-bottom: 1px solid #ddd; -} -.component.no-border { - border-bottom: 0; -} - -.component-title { - margin-bottom: 10px; - font-size: 24px; - font-weight: 300; - line-height: 34px; -} - -.component-description { - margin-bottom: 15px; - font-size: 16px; - font-weight: 300; -} - -.component-example { - font-family: "Helvetica Neue", Helvetica, sans-serif; - font-size: 17px; - line-height: 21px; -} - -.component-example, -.component-example .bar, -.component-example .content { - position: relative; -} - -.component-example .bar { - border-top: 1px solid #dddddd; - border-bottom: 1px solid #dddddd; -} -.component-example .bar.bar-header-secondary { - top: 0 !important; - border-top: 0; -} - -.component-example > .content-padded { - margin: 15px; -} - -.component-example > .card { - margin: 15px 0 0; -} -.component-example > .card .control-content { - padding: 15px; -} - -.component-example > .btn, -.component-example > .toggle { - margin-bottom: 10px; -} - -.component-example .slider { - height: 200px; -} - -.component-example .slide img { - width: 100%; - height: 200px; -} - -.component-example .slide-text { - position: absolute; - top: 45%; - left: 0; - width: 100%; - color: #fff; - text-align: center; - font-size: 24px; - font-weight: 300; - text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); -} - -.component-example-fullbleed, -.highlight { - margin-left: -15px; - margin-right: -15px; -} - -.bar-nav ~ .content { - padding: 0; -} - -.highlight pre { - margin-top: 15px; - padding: 15px; - font-size: 13px; - overflow-x: auto; - color: #777; - background-color: #fafafa; - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - white-space: pre; - word-wrap: normal; -} - -#ratchicons .icon, -#ratchiconsInDevice .icon { - width: 50px; - height: 50px; - margin: 3px; - font-size: 24px; - line-height: 50px; - text-align: center; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 25px; -} - -#modals .modal { - left: 0; - z-index: 50; -} - -#push .component-example { - height: 150px; - overflow: hidden; -} - -#buttonsInDevice .btn, -#buttonsBadgesInDevice .btn { - margin-top: 10px; - margin-right: 100px; - margin-left: 10px; -} - -#blockButtonsInDevice .btn-block { - margin: 10px; -} - -#segmentedControlsInDevice .segmented-control { - margin-top: 10px; - margin-right: 10px; - margin-left: 10px; -} -#segmentedControlsInDevice .card span { - padding: 10px; -} - -#badgesInDevice { - text-align: center; -} -#badgesInDevice .badge { - margin-top: 10px; -} - -#formsInDevice form { - margin: 10px; -} -#formsInDevice form.input-group { - margin: 0; -} - -#togglesInDevice .toggle { - margin: 10px auto; -} - -#popoversInDevice #iwindow:before { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 11; - background-color: rgba(0, 0, 0, 0.3); - content: ''; -} - -#modalsInDevice #iwindow > .btn { - margin: 10px; -} - -.device { - font-family: "Helvetica Neue", Helvetica, sans-serif; - font-size: 17px; - line-height: 21px; - display: none; -} - -hr { - height: 0; - margin: 10px 0 30px; - border: solid #ddd; - border-width: 1px 0 0; - clear: both; -} - -.column-group { - *zoom: 1; -} - -.column-group:before, -.column-group:after { - display: table; - line-height: 0; - content: ""; -} - -.column-group:after { - clear: both; -} - -.clear { - display: block; - width: 0; - height: 0; - overflow: hidden; - visibility: hidden; - clear: both; -} - -@media screen and (min-width: 768px) { - .docs-header { - min-height: 830px; - } - .docs-header .carbonad { - bottom: 180px !important; - left: 50% !important; - margin-left: -165px !important; - } - - .docs-sub-header .carbonad { - position: absolute !important; - top: 50% !important; - right: 15px !important; - margin-top: 0 !important; - -webkit-transform: translateY(-50%) !important; - -ms-transform: translateY(-50%) !important; - transform: translateY(-50%) !important; - } - - .docs-sub-content { - margin-right: 380px; - text-align: left; - } - - .docs-title { - position: static; - float: left; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); - } - - .docs-header-content { - top: 32%; - -webkit-transform: translateY(-50%); - -ms-transform: translateY(-50%); - transform: translateY(-50%); - } - .docs-header-content .btn { - display: inline-block; - } - - .docs-subtitle { - margin-bottom: 30px; - font-size: 41px; - line-height: 60px; - } - - .docs-nav { - float: right; - } - .docs-nav .docs-nav-trigger { - display: none; - } - .docs-nav .docs-nav-group { - position: static; - display: block; - height: auto; - background-color: transparent; - opacity: 1; - } - .docs-nav .docs-nav-item { - position: relative; - display: inline-block; - padding: 0 15px; - font-size: 14px; - } - - .docs-jump-menu { - position: absolute; - left: 20px; - display: block; - color: #777; - cursor: pointer; - -webkit-transition: opacity 0.2 linear; - -moz-transition: opacity 0.2 linear; - transition: opacity 0.2 linear; - } - .docs-jump-menu:hover { - color: #428bca; - } - .docs-jump-menu:active { - opacity: .5; - } - .docs-jump-menu .icon-list { - font-size: 16px; - margin-right: 3px; - } - .docs-jump-menu .icon-caret { - position: relative; - top: 4px; - } - - .docs-component-group { - position: absolute; - top: 35px; - left: 30px; - padding-top: 10px; - padding-bottom: 10px; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 3px; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.05); - } - .docs-component-group.active { - display: block; - } - .docs-component-group:before, .docs-component-group:after { - position: absolute; - left: 30px; - width: 0; - height: 0; - content: ''; - } - .docs-component-group:before { - top: -11px; - margin-left: -11px; - border-right: 11px solid transparent; - border-bottom: 11px solid rgba(0, 0, 0, 0.3); - border-left: 11px solid transparent; - } - .docs-component-group:after { - top: -10px; - margin-left: -10px; - border-right: 10px solid transparent; - border-bottom: 10px solid #fff; - border-left: 10px solid transparent; - } - .docs-component-group .docs-component-item { - display: block; - padding: 10px 20px; - color: #777; - } - .docs-component-group .docs-component-item:hover { - color: #fff; - background-color: #428bca; - } - - .carbonad { - width: 330px !important; - border-right: 1px solid rgba(255, 255, 255, 0.1) !important; - border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important; - border-left: 1px solid rgba(255, 255, 255, 0.1) !important; - border-radius: 3px !important; - } - - .docs-footer .social .twitter-follow-button { - margin-top: 0px; - } - - .step-title { - font-size: 24px; - } - - .step-title code { - font-size: 18px; - } - - .step-description { - font-size: 18px; - } - - .docs-module { - margin-top: 35px; - } - - .section-heading { - margin-top: 50px; - margin-bottom: 10px; - font-size: 40px; - } - - .section-lead { - font-size: 24px; - } - - .device { - position: relative; - top: 50px; - display: block; - width: 395px; - height: 813px; - margin-left: -20px; - font-family: "Helvetica Neue", sans-serif; - background-image: url("../img/iphone5c.png"); - background-size: 100%; - background-repeat: no-repeat; - -webkit-transition: background-image 0.1s linear; - -moz-transition: background-image 0.1s linear; - transition: background-image 0.1s linear; - } - .device.device-fixed { - position: fixed; - right: auto; - } - - .device .device-content { - position: absolute; - top: 117px; - left: 37px; - width: 320px; - height: 569px; - overflow: hidden; - font-size: 17px; - line-height: 21px; - background-color: #fff; - } - - .device .content, - .device .bar, - .device .modal { - position: absolute; - } - - .device .content { - top: 44px; - left: 0; - right: 0; - bottom: 0; - } - - .component, - .component-example-fullbleed, - .highlight { - margin-left: 0; - margin-right: 0; - } - - .component { - padding-left: 0; - padding-right: 0; - opacity: .3; - -webkit-transition: opacity 0.2s ease-in-out; - -moz-transition: opacity 0.2s ease-in-out; - transition: opacity 0.2s ease-in-out; - } - .component.active { - opacity: 1; - } - - .component-example { - display: none; - } - - .highlight pre { - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; - border-radius: 3px; - } - - .popover { - position: absolute; - display: block; - top: 72px; - opacity: 1; - } - - .slider .slide img { - width: 100%; - height: 570px; - display: block; - } - - .slider .slide-group .slide-text { - position: absolute; - top: 45%; - left: 0; - width: 100%; - color: #fff; - text-align: center; - font-size: 24px; - font-weight: 300; - text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); - } - - .docs-example-group .example-wrap { - display: inline-block; - } - .docs-example-group .example-wrap .example { - width: 180px; - } -} -@media screen and (min-width: 1200px) { - .device { - margin-left: 39px; - } - - .docs-sub-header .carbonad { - right: 30px !important; - } - - .docs-jump-menu { - left: 30px; - } - - .docs-example-group .example-wrap .example { - width: 220px; - } -} -.container { - position: relative; - margin-left: auto; - margin-right: auto; - padding-left: 0; - padding-right: 0; -} - -.column-group { - width: auto; -} - -.column { - padding-left: 15px; - padding-right: 15px; - float: left; -} -.column.pull-right { - float: right; -} - -.column .column-group { - margin-left: -15px; - margin-right: -15px; -} - -.units-1 { - width: 50%; -} - -.units-2 { - width: 100%; -} - -.offset-1 { - margin-left: 50%; -} - -@media screen and (min-width: 768px) { - .container { - padding: 0; - max-width: 940px; - } - - .column { - padding-left: 20px; - padding-right: 20px; - } - - .column .column-group { - margin-left: -20px; - margin-right: -20px; - } - - .units-1 { - width: 50%; - } - - .units-2 { - width: 100%; - } - - .lg-units-1 { - width: 8.333%; - } - - .lg-units-2 { - width: 16.666%; - } - - .lg-units-3 { - width: 25%; - } - - .lg-units-4 { - width: 33.333%; - } - - .lg-units-5 { - width: 41.666%; - } - - .lg-units-6 { - width: 50%; - } - - .lg-units-7 { - width: 58.333%; - } - - .lg-units-8 { - width: 66.666%; - } - - .lg-units-9 { - width: 75%; - } - - .lg-units-10 { - width: 83.333%; - } - - .lg-units-11 { - width: 91.666%; - } - - .lg-units-12 { - width: 100%; - } - - .lg-offset-1 { - margin-left: 8.333%; - } - - .lg-offset-2 { - margin-left: 16.666%; - } - - .lg-offset-3 { - margin-left: 25%; - } - - .lg-offset-4 { - margin-left: 33.333%; - } - - .lg-offset-5 { - margin-left: 41.666%; - } - - .lg-offset-6 { - margin-left: 50%; - } - - .lg-offset-7 { - margin-left: 58.333%; - } - - .lg-offset-8 { - margin-left: 66.666%; - } - - .lg-offset-9 { - margin-left: 75%; - } - - .lg-offset-10 { - margin-left: 83.333%; - } - - .lg-offset-11 { - margin-left: 91.666%; - } -} -@media screen and (min-width: 1200px) { - .container { - max-width: 1170px; - } - - .column { - padding-left: 30px; - padding-right: 30px; - } - - .column .column-group { - margin-left: -30px; - margin-right: -30px; - } -} -.platform-ios { - @-webkit-keyframes fadeOverlay { - from { - -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0), -320px 0 0 rgba(0, 0, 0, 0); - box-shadow: 0 0 10px rgba(0, 0, 0, 0), -320px 0 0 rgba(0, 0, 0, 0); - } - - to { - -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), -320px 0 0 rgba(0, 0, 0, 0.1); - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3), -320px 0 0 rgba(0, 0, 0, 0.1); - } -} - -} -.platform-ios a { - color: #007aff; -} -.platform-ios a:active { - color: #0062cc; -} -.platform-ios .content { - background-color: #efeff4; -} -.platform-ios .h5, .platform-ios h5, -.platform-ios .h6, .platform-ios h6, -.platform-ios p { - color: #8f8f94; -} -.platform-ios .h5, .platform-ios h5, -.platform-ios .h6, .platform-ios h6 { - font-weight: normal; - text-transform: uppercase; -} -.platform-ios .btn { - border: 1px solid #929292; - color: #929292; - background-color: rgba(247, 247, 247, 0.98); - -webkit-transition: all; - -moz-transition: all; - transition: all; - -webkit-transition-duration: 0.2s; - -moz-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: linear; - -moz-transition-timing-function: linear; - transition-timing-function: linear; -} -.platform-ios .btn:active, .platform-ios .btn.active { - color: #fff; - background-color: #929292; -} -.platform-ios .btn-primary { - color: #fff; - border: 1px solid #007aff; - background-color: #007aff; -} -.platform-ios .btn-primary:active, .platform-ios .btn-primary.active { - border: 1px solid #0062cc; - background-color: #0062cc; -} -.platform-ios .btn-positive { - color: #fff; - border: 1px solid #4cd964; - background-color: #4cd964; -} -.platform-ios .btn-positive:active, .platform-ios .btn-positive.active { - border: 1px solid #2ac845; - background-color: #2ac845; -} -.platform-ios .btn-negative { - color: #fff; - border: 1px solid #dd524d; - background-color: #dd524d; -} -.platform-ios .btn-negative:active, .platform-ios .btn-negative.active { - border: 1px solid #cf2d28; - background-color: #cf2d28; -} -.platform-ios .btn-outlined { - background-color: transparent; -} -.platform-ios .btn-outlined.btn-primary { - color: #007aff; -} -.platform-ios .btn-outlined.btn-positive { - color: #4cd964; -} -.platform-ios .btn-outlined.btn-negative { - color: #dd524d; -} -.platform-ios .btn-outlined.btn-primary:active, .platform-ios .btn-outlined.btn-positive:active, .platform-ios .btn-outlined.btn-negative:active { - color: #fff; -} -.platform-ios .btn-link { - color: #007aff; - background-color: transparent; - border: none; -} -.platform-ios .btn-link:active, .platform-ios .btn-link.active { - color: #0062cc; - background-color: transparent; -} -.platform-ios .btn .badge { - background-color: rgba(0, 0, 0, 0.15); -} -.platform-ios .btn .badge.badge-inverted { - background-color: transparent; -} -.platform-ios .btn:active .badge { - color: #fff; -} -.platform-ios .bar { - border-bottom: 0; - background-color: rgba(247, 247, 247, 0.98); - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.85); - box-shadow: 0 0 1px rgba(0, 0, 0, 0.85); -} -.platform-ios .bar.bar-header-secondary { - top: 44px; -} -.platform-ios .bar.bar-footer-secondary { - bottom: 44px; -} -.platform-ios .bar.bar-footer-secondary-tab { - bottom: 50px; -} -.platform-ios .bar .bar-footer, -.platform-ios .bar .bar-footer-secondary, -.platform-ios .bar .bar-footer-secondary-tab { - border-top: 0; - -webkit-box-shadow: 0 0 -1px rgba(0, 0, 0, 0.85); - box-shadow: 0 0 -1px rgba(0, 0, 0, 0.85); -} -.platform-ios .bar-tab { - border-top: 0; - -webkit-box-shadow: 0 0 -1px rgba(0, 0, 0, 0.85); - box-shadow: 0 0 -1px rgba(0, 0, 0, 0.85); -} -.platform-ios .tab-item { - color: #929292; -} -.platform-ios .tab-item.active, .platform-ios .tab-item:active { - color: #007aff; -} -.platform-ios .bar-nav .btn-link { - color: #007aff; -} -.platform-ios .bar-nav .btn-link:active { - color: #007aff; - opacity: .6; -} -.platform-ios .badge.badge-inverted { - color: #929292; - background-color: transparent; -} -.platform-ios .badge-primary { - color: #fff; - background-color: #007aff; -} -.platform-ios .badge-primary.badge-inverted { - color: #007aff; - background-color: transparent; -} -.platform-ios .badge-positive { - color: #fff; - background-color: #4cd964; -} -.platform-ios .badge-positive.badge-inverted { - color: #4cd964; - background-color: transparent; -} -.platform-ios .badge-negative { - color: #fff; - background-color: #dd524d; -} -.platform-ios .badge-negative.badge-inverted { - color: #dd524d; - background-color: transparent; -} -.platform-ios .card .table-view { - background-image: none; -} -.platform-ios .card .table-view-cell:last-child { - background-image: none; -} -.platform-ios .table-view { - border-top: 0; - border-bottom: 0; - background-image: url("data:image/svg+xml;utf8,"), url("data:image/svg+xml;utf8,"); - background-position: 0 100%, 0 0%; - background-repeat: no-repeat; -} -.platform-ios .table-view .table-view-cell { - border-bottom: 0; - background-image: url("data:image/svg+xml;utf8,"); - background-position: 15px 100%; - background-repeat: no-repeat; -} -.platform-ios .table-view .table-view-cell:last-child { - background-image: none; -} -.platform-ios .table-view .table-view-divider { - border-top: 0; - border-bottom: 0; - background-image: url("data:image/svg+xml;utf8,"), url("data:image/svg+xml;utf8,"); - background-position: 0 100%, 0 0%; - background-repeat: no-repeat; -} -.platform-ios select, -.platform-ios textarea, -.platform-ios input[type="text"], -.platform-ios input[type="search"], -.platform-ios input[type="password"], -.platform-ios input[type="datetime"], -.platform-ios input[type="datetime-local"], -.platform-ios input[type="date"], -.platform-ios input[type="month"], -.platform-ios input[type="time"], -.platform-ios input[type="week"], -.platform-ios input[type="number"], -.platform-ios input[type="email"], -.platform-ios input[type="url"], -.platform-ios input[type="tel"], -.platform-ios input[type="color"], -.platform-ios .input-group { - height: 40px; - padding: 10px 15px; - border: 1px solid rgba(0, 0, 0, 0.2); -} -.platform-ios input[type="search"] { - height: 34px; - text-align: center; - background-color: rgba(0, 0, 0, 0.1); - border: 0; - border-radius: 6px; -} -.platform-ios input[type="search"]:focus { - text-align: left; -} -.platform-ios select, -.platform-ios textarea, -.platform-ios .input-group { - height: auto; -} -.platform-ios .input-group { - padding: 0; - border: 0; - background-image: url("data:image/svg+xml;utf8,"), url("data:image/svg+xml;utf8,"); - background-position: 0 100%, 0 0%; - background-repeat: no-repeat; -} -.platform-ios .input-group input { - border: 0; - background-image: url("data:image/svg+xml;utf8,"); - background-position: 15px 100%; - background-repeat: no-repeat; -} -.platform-ios .input-group input:last-child { - background-image: none; -} -.platform-ios .input-row { - border-bottom: 0; - background-image: url("data:image/svg+xml;utf8,"); - background-position: 15px 100%; - background-repeat: no-repeat; -} -.platform-ios .input-row:last-child, -.platform-ios .input-row label + input { - background-image: none; -} -.platform-ios .segmented-control { - background-color: transparent; - border: 1px solid #929292; -} -.platform-ios .segmented-control .control-item { - color: #929292; - border-color: #929292; - -webkit-transition: background-color 0.1s linear; - -moz-transition: background-color 0.1s linear; - transition: background-color 0.1s linear; -} -.platform-ios .segmented-control .control-item:active { - background-color: #ebebeb; -} -.platform-ios .segmented-control .control-item.active { - color: #fff; - background-color: #929292; -} -.platform-ios .segmented-control-primary { - border: 1px solid #007aff; -} -.platform-ios .segmented-control-primary .control-item { - color: #007aff; - border-color: inherit; -} -.platform-ios .segmented-control-primary .control-item:active { - background-color: #b3d7ff; -} -.platform-ios .segmented-control-primary .control-item.active { - color: #fff; - background-color: #007aff; -} -.platform-ios .segmented-control-positive { - border: 1px solid #4cd964; -} -.platform-ios .segmented-control-positive .control-item { - color: #4cd964; - border-color: inherit; -} -.platform-ios .segmented-control-positive .control-item:active { - background-color: #dff8e3; -} -.platform-ios .segmented-control-positive .control-item.active { - color: #fff; - background-color: #4cd964; -} -.platform-ios .segmented-control-negative { - border: 1px solid #dd524d; -} -.platform-ios .segmented-control-negative .control-item { - color: #dd524d; - border-color: inherit; -} -.platform-ios .segmented-control-negative .control-item:active { - background-color: #fae4e3; -} -.platform-ios .segmented-control-negative .control-item.active { - color: #fff; - background-color: #dd524d; -} -.platform-ios .popover { - border-radius: 12px; - -webkit-transition: -webkit-transform .2s ease-in-out, opacity .2s ease-in-out; - -moz-transition: -moz-transform .2s ease-in-out, opacity .2s ease-in-out; - transition: transform .2s ease-in-out, opacity .2s ease-in-out; - -webkit-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; - -moz-transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; - transition: -webkit-transform 0.2s ease-in-out, opacity 0.2s ease-in-out; -} -.platform-ios .popover:before { - border-bottom: 15px solid rgba(247, 247, 247, 0.98); -} -.platform-ios .popover .bar { - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-ios .popover .bar-nav { - border-bottom: 1px solid rgba(0, 0, 0, 0.15); -} -.platform-ios .popover .table-view { - border-radius: 12px; - background-image: none; -} -.platform-ios .modal { - -webkit-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - -moz-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); -} -.platform-ios .modal.active { - -webkit-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - -moz-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); -} -.platform-ios .toggle { - width: 47px; - border: 2px solid #e6e6e6; - -webkit-box-shadow: inset 0 0 0 0 #e1e1e1; - box-shadow: inset 0 0 0 0 #e1e1e1; - -webkit-transition-property: box-shadow, border; - -moz-transition-property: box-shadow, border; - transition-property: box-shadow, border; - -webkit-transition-duration: 0.2s; - -moz-transition-duration: 0.2s; - transition-duration: 0.2s; -} -.platform-ios .toggle .toggle-handle { - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-transition-property: -webkit-transform, border, width; - -moz-transition-property: -moz-transform, border, width; - transition-property: transform, border, width; - -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.08); - box-shadow: 0 3px 3px rgba(0, 0, 0, 0.08); -} -.platform-ios .toggle:before { - display: none; -} -.platform-ios .toggle.active { - border: 2px solid #4cd964; - background-color: transparent; - -webkit-box-shadow: inset 0 0 0 13px #4cd964; - box-shadow: inset 0 0 0 13px #4cd964; -} -.platform-ios .toggle.active .toggle-handle { - -webkit-transform: translate3d(17px, 0, 0); - -ms-transform: translate3d(17px, 0, 0); - transform: translate3d(17px, 0, 0); -} -.platform-ios .toggle.active .toggle-handle { - border-color: #4cd964; -} -.platform-ios .content.fade { - -webkit-transition: opacity 0.2s ease-in-out; - -moz-transition: opacity 0.2s ease-in-out; - transition: opacity 0.2s ease-in-out; -} -.platform-ios .content.sliding { - -webkit-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - -moz-transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); - transition-timing-function: cubic-bezier(0.1, 0.5, 0.1, 1); -} -.platform-ios .content.sliding.sliding-in, .platform-ios .content.sliding.right:not([class*="sliding-in"]) { - -webkit-animation-name: fadeOverlay; - -moz-animation-name: fadeOverlay; - animation-name: fadeOverlay; - -webkit-animation-duration: 0.4s; - -moz-animation-duration: 0.4s; - animation-duration: 0.4s; -} -.platform-ios .content.sliding.right:not([class*="sliding-in"]) { - -webkit-animation-direction: reverse; - -moz-animation-direction: reverse; - animation-direction: reverse; -} -.platform-ios .content.sliding.left { - -webkit-transform: translate3d(-20%, 0, 0); - -ms-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); -} -.platform-ios .device { - background-image: url("../img/iphone5s.png"); -} -.platform-ios .device .device-content { - background-color: #efeff4; -} - -.platform-android body { - font-family: "Roboto", sans-serif; - font-size: 18px; - line-height: 22px; - color: #222222; -} -.platform-android a { - color: #33b5e5; -} -.platform-android a:active { - color: #1a9bcb; -} -.platform-android .content { - background-color: #f2f2f2; -} -.platform-android .bar-nav ~ .content { - padding-top: 50px; -} -.platform-android .bar-tab ~ .content { - padding-bottom: 50px; -} -.platform-android .bar-header-secondary ~ .content { - padding-top: 100px; -} -.platform-android .btn { - padding: 8px 15px; - font-size: 14px; - color: #222222; - background-color: #cecece; - border: 0; - border-radius: 2px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 1px rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 1px rgba(0, 0, 0, 0.25); -} -.platform-android .btn:active, .platform-android .btn.active { - color: #222222; - border: 0; - background-color: #999999; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2); -} -.platform-android .btn-primary { - color: #fff; - border: 0; - background-color: #33b5e5; -} -.platform-android .btn-primary:active, .platform-android .btn-primary.active { - color: #fff; - border: 0; - background-color: #1a9bcb; -} -.platform-android .btn-positive { - color: #fff; - border: 0; - background-color: #99cc00; -} -.platform-android .btn-positive:active, .platform-android .btn-positive.active { - color: #fff; - border: 0; - background-color: #739900; -} -.platform-android .btn-negative { - color: #fff; - border: 0; - background-color: #ff4444; -} -.platform-android .btn-negative:active, .platform-android .btn-negative.active { - color: #fff; - border: 0; - background-color: #ff1111; -} -.platform-android .btn-outlined { - border: 1px solid #999999; - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .btn-outlined.btn-primary { - border: 1px solid #33b5e5; - color: #33b5e5; -} -.platform-android .btn-outlined.btn-primary:active { - border: 1px solid #33b5e5; - background-color: #33b5e5; -} -.platform-android .btn-outlined.btn-positive { - border: 1px solid #99cc00; - color: #99cc00; -} -.platform-android .btn-outlined.btn-positive:active { - border: 1px solid #99cc00; - background-color: #99cc00; -} -.platform-android .btn-outlined.btn-negative { - border: 1px solid #ff4444; - color: #ff4444; -} -.platform-android .btn-outlined.btn-negative:active { - border: 1px solid #ff4444; - background-color: #ff4444; -} -.platform-android .btn-outlined:active { - border: 1px solid #999999; - background-color: #999999; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .btn-outlined.btn-primary:active, .platform-android .btn-outlined.btn-positive:active, .platform-android .btn-outlined.btn-negative:active { - color: #fff; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .btn-link { - color: #33b5e5; - background-color: transparent; - border: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .btn-link:active, .platform-android .btn-link.active { - color: #1a9bcb; - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .btn-block { - padding: 15px 0; - font-size: 18px; -} -.platform-android .btn .badge { - background-color: rgba(0, 0, 0, 0.15); -} -.platform-android .btn .badge.badge-inverted { - background-color: transparent; -} -.platform-android .btn:active .badge { - color: #fff; -} -.platform-android .bar { - height: 50px; - background-color: #dddddd; - border-bottom: 1px solid #b1b1b1; - -webkit-box-shadow: inset 0 -2px 0 #d2d2d2, 0 3px 3px rgba(0, 0, 0, 0.07); - box-shadow: inset 0 -2px 0 #d2d2d2, 0 3px 3px rgba(0, 0, 0, 0.07); -} -.platform-android .bar.bar-header-secondary { - top: 50px; -} -.platform-android .bar.bar-footer-secondary { - bottom: 50px; -} -.platform-android .bar.bar-footer-secondary-tab { - bottom: 50px; -} -.platform-android .bar .bar-footer, -.platform-android .bar .bar-footer-secondary, -.platform-android .bar .bar-footer-secondary-tab { - border-bottom: 0; - border-top: 1px solid #b1b1b1; - -webkit-box-shadow: inset 0 -2px 0 #33b5e5; - box-shadow: inset 0 -2px 0 #33b5e5; -} -.platform-android .bar-tab { - top: 0; - bottom: auto; - height: 50px; - border-top: 0; -} -.platform-android .bar-tab .tab-item { - color: #929292; -} -.platform-android .bar-tab .tab-item.active { - color: #33b5e5; - -webkit-box-shadow: inset 0 -2px 0 #33b5e5; - box-shadow: inset 0 -2px 0 #33b5e5; -} -.platform-android .bar-tab .tab-item:active { - color: #929292; - background-color: #78c6e3; -} -.platform-android .bar-tab .tab-item .icon { - top: 3px; - padding-top: 0; - padding-bottom: 0; -} -.platform-android .title { - position: static; - padding-left: 15px; - font-size: 18px; - line-height: 49px; - text-align: left; -} -.platform-android .bar .btn { - top: 7px; - padding-top: 10px; - padding-bottom: 10px; -} -.platform-android .bar .btn-link { - top: 0; - padding: 0; - color: #33b5e5; - font-size: 18px; - line-height: 49px; -} -.platform-android .bar .btn-link:active, .platform-android .bar .btn-link.active { - color: #1a9bcb; -} -.platform-android .bar .btn-link .icon { - top: 2px; - padding: 0; -} -.platform-android .bar .btn-block { - top: 4px; -} -.platform-android .bar .segmented-control { - top: 7px; -} -.platform-android .bar .icon { - padding-top: 13px; - padding-bottom: 13px; -} -.platform-android .bar .title .icon { - padding: 0; -} -.platform-android .bar .title .icon.icon-caret { - top: 10px; - color: #777; -} -.platform-android .bar input[type="search"] { - height: 35px; -} -.platform-android .badge.badge-inverted { - color: #999999; - background-color: transparent; -} -.platform-android .badge-primary { - color: #fff; - background-color: #33b5e5; -} -.platform-android .badge-primary.badge-inverted { - color: #33b5e5; - background-color: transparent; -} -.platform-android .badge-positive { - color: #fff; - background-color: #99cc00; -} -.platform-android .badge-positive.badge-inverted { - color: #99cc00; - background-color: transparent; -} -.platform-android .badge-negative { - color: #fff; - background-color: #ff4444; -} -.platform-android .badge-negative.badge-inverted { - color: #ff4444; - background-color: transparent; -} -.platform-android .card { - border-color: #d9d9d9; - border-radius: 2px; - background-color: transparent; -} -.platform-android .table-view { - background-color: transparent; -} -.platform-android .table-view .table-view-cell { - border-bottom: 1px solid #d9d9d9; -} -.platform-android .table-view .table-view-cell:last-child { - background-image: none; -} -.platform-android .table-view .table-view-cell > a:not(.btn):active { - background-color: #e0e0e0; -} -.platform-android .table-view .table-view-cell > a:not(.btn):active .icon { - color: #fff; -} -.platform-android .table-view .table-view-divider { - padding-top: 25px; - font-size: 12px; - font-weight: bold; - text-transform: uppercase; - border-top: 0; - border-bottom: 2px solid #a9a9a9; - background-color: transparent; -} -.platform-android select, -.platform-android textarea, -.platform-android input[type="text"], -.platform-android input[type="search"], -.platform-android input[type="password"], -.platform-android input[type="datetime"], -.platform-android input[type="datetime-local"], -.platform-android input[type="date"], -.platform-android input[type="month"], -.platform-android input[type="time"], -.platform-android input[type="week"], -.platform-android input[type="number"], -.platform-android input[type="email"], -.platform-android input[type="url"], -.platform-android input[type="tel"], -.platform-android input[type="color"], -.platform-android .input-group { - height: 40px; - padding: 10px 15px; - border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); -} -.platform-android input[type="search"] { - border-radius: 2px; -} -.platform-android select, -.platform-android textarea, -.platform-android .input-group { - height: auto; -} -.platform-android .input-group { - padding: 0; - border: 0; -} -.platform-android .input-group input { - border: 0; - border-bottom: 1px solid #d9d9d9; - -webkit-box-shadow: none; - box-shadow: none; -} -.platform-android .input-group input:last-child { - background-image: none; -} -.platform-android .input-row { - border-bottom: 1px solid #d9d9d9; -} -.platform-android .input-row label + input { - background-image: none; - border-bottom: 0; -} -.platform-android .segmented-control { - font-size: 14px; - background-color: #cecece; - border: 0; - border-radius: 2px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); -} -.platform-android .segmented-control .control-item { - padding-top: 10px; - padding-bottom: 10px; - color: #222222; - border-left: 1px solid #999; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.2); -} -.platform-android .segmented-control .control-item:first-child { - border-left-width: 0; -} -.platform-android .segmented-control .control-item:active, .platform-android .segmented-control .control-item.active { - background-color: #999999; -} -.platform-android .segmented-control-primary { - border: 0; -} -.platform-android .segmented-control-primary .control-item { - color: #fff; - border-color: inherit; -} -.platform-android .segmented-control-primary .control-item:active, .platform-android .segmented-control-primary .control-item.active { - color: #fff; - background-color: #33b5e5; -} -.platform-android .segmented-control-positive { - border: 0; -} -.platform-android .segmented-control-positive .control-item { - color: #fff; - border-color: inherit; -} -.platform-android .segmented-control-positive .control-item:active, .platform-android .segmented-control-positive .control-item.active { - color: #fff; - background-color: #99cc00; -} -.platform-android .segmented-control-negative { - border: 0; -} -.platform-android .segmented-control-negative .control-item { - color: #fff; - border-color: inherit; -} -.platform-android .segmented-control-negative .control-item:active, .platform-android .segmented-control-negative .control-item.active { - color: #fff; - background-color: #ff4444; -} -.platform-android .popover { - top: 47px; - left: 15px; - width: 200px; - margin-left: 0; - border: 1px solid #9b9b9b; - border-radius: 0; - -webkit-transition: -webkit-transform .1s ease-in-out, opacity .2s ease-in-out; - -moz-transition: -moz-transform .1s ease-in-out, opacity .2s ease-in-out; - transition: transform .1s ease-in-out, opacity .2s ease-in-out; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); - -webkit-transform: scale(0.75); - -ms-transform: scale(0.75); - transform: scale(0.75); -} -.platform-android .popover:before { - display: none; -} -.platform-android .popover.visible { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); -} -.platform-android .backdrop { - background-color: none; -} -.platform-android .popover .bar { - border-radius: 0; -} -.platform-android .popover .bar-nav ~ .table-view { - padding-top: 50px; -} -.platform-android .popover .table-view { - border-radius: 12px; -} -.platform-android .toggle { - width: 104px; - height: 28px; - border: 2px solid #d7d7d7; - border-radius: 0; - background-color: #d7d7d7; -} -.platform-android .toggle .toggle-handle { - top: 0; - left: 0; - width: 50px; - height: 24px; - border: 1px solid #b5b5b5; - border-radius: 2px; - background-color: #bebebe; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.1); -} -.platform-android .toggle:before { - top: 1px; - right: auto; - left: 11px; - z-index: 3; - color: #fff; -} -.platform-android .toggle.active { - border: 2px solid #d7d7d7; - background-color: #d7d7d7; -} -.platform-android .toggle.active .toggle-handle { - margin-right: 2px; - background-color: #33b5e5; - border-color: #33b5e5; - -webkit-transform: translate3d(50px, 0, 0); - -ms-transform: translate3d(50px, 0, 0); - transform: translate3d(50px, 0, 0); -} -.platform-android .toggle.active:before { - left: auto; - right: 14px; - color: #fff; - content: "On"; -} -.platform-android .push-left:after { - content: '\e803'; -} -.platform-android .push-right:after { - content: '\e806'; -} -.platform-android .icon-caret:before { - content: '\e800'; -} -.platform-android .icon-down:before, -.platform-android .icon-down-nav:before { - content: '\e801'; -} -.platform-android .icon-download:before { - content: '\e802'; -} -.platform-android .icon-left:before, -.platform-android .icon-left-nav:before { - content: '\e803'; -} -.platform-android .icon-more-vertical:before { - content: '\e804'; -} -.platform-android .icon-more:before { - content: '\e805'; -} -.platform-android .icon-right:before, -.platform-android .icon-right-nav:before { - content: '\e806'; -} -.platform-android .icon-search:before { - content: '\e807'; -} -.platform-android .icon-share:before { - content: '\e808'; -} -.platform-android .icon-up:before, -.platform-android .icon-up-nav:before { - content: '\e809'; -} -.platform-android .device { - font-family: 'Roboto', sans-serif; - background-image: url("../img/android.png"); -} -.platform-android .device .device-content { - font-size: 18px; - line-height: 22px; - background-color: #f2f2f2; -} -.platform-android .device .content { - top: 50px; -} -.platform-android .device .popover { - -webkit-transform: scale(1); - -ms-transform: scale(1); - transform: scale(1); -} -.platform-android .bar ~ .content { - padding: 0; -} - -@-webkit-keyframes fadeintext { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} diff --git a/assets/css/pygments.css b/assets/css/pygments.css deleted file mode 100644 index 67fe210..0000000 --- a/assets/css/pygments.css +++ /dev/null @@ -1,61 +0,0 @@ -.hll { background-color: #ffffcc } -.c { color: #999988; font-style: italic } /* Comment */ -.err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.k { color: #000000; font-weight: bold } /* Keyword */ -.o { color: #000000; font-weight: bold } /* Operator */ -.cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ -.c1 { color: #999988; font-style: italic } /* Comment.Single */ -.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.ge { color: #000000; font-style: italic } /* Generic.Emph */ -.gr { color: #aa0000 } /* Generic.Error */ -.gh { color: #999999 } /* Generic.Heading */ -.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.go { color: #888888 } /* Generic.Output */ -.gp { color: #555555 } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #aaaaaa } /* Generic.Subheading */ -.gt { color: #aa0000 } /* Generic.Traceback */ -.kc { color: #000000; font-weight: bold } /* Keyword.Constant */ -.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ -.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.m { color: #009999 } /* Literal.Number */ -.s { color: #d01040 } /* Literal.String */ -.na { color: #008080 } /* Name.Attribute */ -.nb { color: #0086B3 } /* Name.Builtin */ -.nc { color: #445588; font-weight: bold } /* Name.Class */ -.no { color: #008080 } /* Name.Constant */ -.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ -.ni { color: #800080 } /* Name.Entity */ -.ne { color: #990000; font-weight: bold } /* Name.Exception */ -.nf { color: #990000; font-weight: bold } /* Name.Function */ -.nl { color: #990000; font-weight: bold } /* Name.Label */ -.nn { color: #555555 } /* Name.Namespace */ -.nt { color: #000080 } /* Name.Tag */ -.nv { color: #008080 } /* Name.Variable */ -.ow { color: #000000; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mf { color: #009999 } /* Literal.Number.Float */ -.mh { color: #009999 } /* Literal.Number.Hex */ -.mi { color: #009999 } /* Literal.Number.Integer */ -.mo { color: #009999 } /* Literal.Number.Oct */ -.sb { color: #d01040 } /* Literal.String.Backtick */ -.sc { color: #d01040 } /* Literal.String.Char */ -.sd { color: #d01040 } /* Literal.String.Doc */ -.s2 { color: #d01040 } /* Literal.String.Double */ -.se { color: #d01040 } /* Literal.String.Escape */ -.sh { color: #d01040 } /* Literal.String.Heredoc */ -.si { color: #d01040 } /* Literal.String.Interpol */ -.sx { color: #d01040 } /* Literal.String.Other */ -.sr { color: #009926 } /* Literal.String.Regex */ -.s1 { color: #d01040 } /* Literal.String.Single */ -.ss { color: #990073 } /* Literal.String.Symbol */ -.bp { color: #999999 } /* Name.Builtin.Pseudo */ -.vc { color: #008080 } /* Name.Variable.Class */ -.vg { color: #008080 } /* Name.Variable.Global */ -.vi { color: #008080 } /* Name.Variable.Instance */ -.il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/assets/img/android.png b/assets/img/android.png deleted file mode 100644 index ebe34b7..0000000 Binary files a/assets/img/android.png and /dev/null differ diff --git a/assets/img/apple-touch-icon-114x114.png b/assets/img/apple-touch-icon-114x114.png deleted file mode 100644 index de14661..0000000 Binary files a/assets/img/apple-touch-icon-114x114.png and /dev/null differ diff --git a/assets/img/apple-touch-icon-57x57.png b/assets/img/apple-touch-icon-57x57.png deleted file mode 100644 index 5396942..0000000 Binary files a/assets/img/apple-touch-icon-57x57.png and /dev/null differ diff --git a/assets/img/apple-touch-icon-72x72.png b/assets/img/apple-touch-icon-72x72.png deleted file mode 100644 index a214d69..0000000 Binary files a/assets/img/apple-touch-icon-72x72.png and /dev/null differ diff --git a/assets/img/example-android.png b/assets/img/example-android.png deleted file mode 100644 index 259b478..0000000 Binary files a/assets/img/example-android.png and /dev/null differ diff --git a/assets/img/example-ios.png b/assets/img/example-ios.png deleted file mode 100644 index 34bd81c..0000000 Binary files a/assets/img/example-ios.png and /dev/null differ diff --git a/assets/img/example.png b/assets/img/example.png deleted file mode 100644 index 82f45eb..0000000 Binary files a/assets/img/example.png and /dev/null differ diff --git a/assets/img/iphone5c.png b/assets/img/iphone5c.png deleted file mode 100644 index 36d24d6..0000000 Binary files a/assets/img/iphone5c.png and /dev/null differ diff --git a/assets/img/iphone5s.png b/assets/img/iphone5s.png deleted file mode 100644 index d6cfc09..0000000 Binary files a/assets/img/iphone5s.png and /dev/null differ diff --git a/assets/img/pattern.png b/assets/img/pattern.png deleted file mode 100644 index a67b04d..0000000 Binary files a/assets/img/pattern.png and /dev/null differ diff --git a/assets/img/slide-1.png b/assets/img/slide-1.png deleted file mode 100644 index 06745c0..0000000 Binary files a/assets/img/slide-1.png and /dev/null differ diff --git a/assets/img/slide-2.png b/assets/img/slide-2.png deleted file mode 100644 index d7e87d0..0000000 Binary files a/assets/img/slide-2.png and /dev/null differ diff --git a/assets/img/slide-3.png b/assets/img/slide-3.png deleted file mode 100644 index 91af277..0000000 Binary files a/assets/img/slide-3.png and /dev/null differ diff --git a/assets/js/docs.js b/assets/js/docs.js deleted file mode 100644 index b016137..0000000 --- a/assets/js/docs.js +++ /dev/null @@ -1,172 +0,0 @@ -$(function() { - - var doc; - var device; - var platformToggle; - var windowWidth; - var windowHeight; - var pageHeight; - var contentPadding; - var footerHeight; - var navComponentLinks; - var componentsList; - var contentSection; - var currentActive; - var topCache; - var eventListeners; - var toolbarToggle; - var toggleTop; - var toggleHeight; - - - var initialize = function () { - currentActive = 0; - topCache = []; - win = $(window); - doc = $(document); - bod = $(document.body) - device = device || $('.js-device'); - navComponentLinks = $('.js-jump-menu'); - componentsList = $('.js-component-group'); - componentLinks = $('.component-example a'); - contentSection = $('.component'); - topCache = contentSection.map(function () { return $(this).offset().top }) - windowHeight = $(window).height() / 3 - windowWidth = $(window).width(); - pageHeight = $(document).height(); - contentPadding = parseInt($('.docs-content').css('padding-bottom')); - footerHeight = $('.docs-footer').outerHeight(false); - toolbarToggle = $('.js-docs-component-toolbar'); - - // Device placement - if (windowWidth >= 768) { - device.initialLeft = device.offset().left; - device.initialTop = device.initialTop || device.offset().top; - device.dockingOffset = ($(window).height() - device.height())/2; - } - - checkDesktopContent(); - calculateScroll(); - calculateToggle(); - - if (!eventListeners) addEventListeners(); - } - - var addEventListeners = function () { - eventListeners = true; - - device.on('click', function (e) { - e.preventDefault(); - }); - - // Mobile navigation - $('.js-docs-nav-trigger').on('click', function () { - var nav = $('.docs-nav-group'); - var trigger = $('.js-docs-nav-trigger'); - - trigger.toggleClass('active'); - nav.toggleClass('active'); - }); - - navComponentLinks.click(function(e) { - e.stopPropagation(); - e.preventDefault(); - componentsList.toggleClass('active'); - }) - - doc.on('click', function () { - componentsList.removeClass('active'); - }) - - // Platform switcher - $('.platform-switch').on('click', function () { - var components = $('.docs-components'); - var platform = $(this).attr('data-platform'); - - // Set platform - if (components.hasClass('platform-ios')) { - components.removeClass('platform-ios'); - components.addClass(platform); - } else if (components.hasClass('platform-android')) { - components.removeClass('platform-android'); - components.addClass(platform); - } else { - components.addClass(platform); - } - - // Deal with active states - $(this).siblings('.active').removeClass('active'); - $(this).addClass('active'); - }); - - win.on('scroll', calculateScroll); - win.on('scroll', calculateToggle); - } - - var checkDesktopContent = function () { - windowWidth = $(window).width(); - if (windowWidth <= 768) { - var content = $('.content') - if (content.length > 1) { - $(content[0]).remove() - } - } - } - - var calculateScroll = function() { - // if small screen don't worry about this - if (windowWidth <= 768) return - - // Save scrollTop value - var contentSectionItem; - var currentTop = win.scrollTop(); - - if((device.initialTop - currentTop) <= device.dockingOffset) { - device[0].className = "device device-fixed"; - device.css({top: device.dockingOffset}) - } else { - device[0].className = "device" - device[0].setAttribute('style','') - } - - // Injection of components into device - for (var l = contentSection.length; l--;) { - if ((topCache[l] - currentTop) < windowHeight) { - if (currentActive == l) return; - currentActive = l; - bod.find('.component.active').removeClass('active'); - contentSectionItem = $(contentSection[l]) - contentSectionItem.addClass('active') - if(contentSectionItem.attr('id')) { - device.attr("id", contentSectionItem.attr('id') + "InDevice"); - } else { - device.attr("id", "") - } - if (!contentSectionItem.hasClass('informational')) { - updateContent(contentSectionItem.find('.highlight .html').text()) - } - break - } - } - - function updateContent(content) { - $('#iwindow').html(content); - } - } - - // Toolbar toggle - var calculateToggle = function () { - var currentTop = win.scrollTop(); - var headerHeight = $('.docs-sub-header').outerHeight(); - - if(currentTop >= headerHeight) { - toolbarToggle.addClass('visible'); - } else if (currentTop <= headerHeight) { - toolbarToggle.removeClass('visible'); - componentsList.removeClass('active'); - } - } - - $(window).on('load resize', initialize); - $(window).on('load', function () { new FingerBlast('.device-content'); }); -}); diff --git a/assets/js/fingerblast.js b/assets/js/fingerblast.js deleted file mode 100644 index 58543c2..0000000 --- a/assets/js/fingerblast.js +++ /dev/null @@ -1,221 +0,0 @@ -// FINGERBLAST.js -// -------------- -// Adapted from phantom limb by brian cartensen - -function FingerBlast(element) { - this.element = typeof element == 'string' ? document.querySelector(element) : element; - this.listen(); -} - -FingerBlast.prototype = { - x: NaN, - y: NaN, - - startDistance: NaN, - startAngle: NaN, - - mouseIsDown: false, - - listen: function () { - - var activate = this.activate.bind(this); - var deactivate = this.deactivate.bind(this); - - function contains (element, ancestor) { - var descendants, index, descendant; - if ("compareDocumentPosition" in ancestor) { - return !!(ancestor.compareDocumentPosition(element) & 16); - } else if ("contains" in ancestor) { - return ancestor != element && ancestor.contains(element); - } else { - for (descendants = ancestor.getElementsByTagName("*"), index = 0; descendant = descendants[index++];) { - if (descendant == element) return true; - } - return false; - } - } - - this.element.addEventListener('mouseover', function (e) { - var target = e.relatedTarget; - if (target != this && !contains(target, this)) activate(); - }); - - this.element.addEventListener("mouseout", function (e) { - var target = e.relatedTarget; - if (target != this && !contains(target, this)) deactivate(e); - }); - }, - - activate: function () { - if (this.active) return; - this.element.addEventListener('mousedown', (this.touchStart = this.touchStart.bind(this)), true); - this.element.addEventListener('mousemove', (this.touchMove = this.touchMove.bind(this)), true); - this.element.addEventListener('mouseup', (this.touchEnd = this.touchEnd.bind(this)), true); - this.element.addEventListener('click', (this.click = this.click.bind(this)), true); - this.active = true; - }, - - deactivate: function (e) { - this.active = false; - if (this.mouseIsDown) this.touchEnd(e); - this.element.removeEventListener('mousedown', this.touchStart, true); - this.element.removeEventListener('mousemove', this.touchMove, true); - this.element.removeEventListener('mouseup', this.touchEnd, true); - this.element.removeEventListener('click', this.click, true); - }, - - click: function (e) { - if (e.synthetic) return; - e.preventDefault(); - e.stopPropagation(); - }, - - touchStart: function (e) { - if (e.synthetic || /input|textarea/.test(e.target.tagName.toLowerCase())) return; - - this.mouseIsDown = true; - - e.preventDefault(); - e.stopPropagation(); - - this.fireTouchEvents('touchstart', e); - }, - - touchMove: function (e) { - if (e.synthetic) return; - - e.preventDefault(); - e.stopPropagation(); - - this.move(e.clientX, e.clientY); - - if (this.mouseIsDown) this.fireTouchEvents('touchmove', e); - }, - - touchEnd: function (e) { - if (e.synthetic) return; - - this.mouseIsDown = false; - - e.preventDefault(); - e.stopPropagation(); - - this.fireTouchEvents('touchend', e); - - if (!this.target) return; - - // Mobile Safari moves all the mouse events to fire after the touchend event. - this.target.dispatchEvent(this.createMouseEvent('mouseover', e)); - this.target.dispatchEvent(this.createMouseEvent('mousemove', e)); - this.target.dispatchEvent(this.createMouseEvent('mousedown', e)); - }, - - fireTouchEvents: function (eventName, originalEvent) { - var events = []; - var gestures = []; - - if (!this.target) return; - - // Convert "ontouch*" properties and attributes to listeners. - var onEventName = 'on' + eventName; - - if (onEventName in this.target) { - console.warn('Converting `' + onEventName + '` property to event listener.', this.target); - this.target.addEventListener(eventName, this.target[onEventName], false); - delete this.target[onEventName]; - } - - if (this.target.hasAttribute(onEventName)) { - console.warn('Converting `' + onEventName + '` attribute to event listener.', this.target); - var handler = new GLOBAL.Function('event', this.target.getAttribute(onEventName)); - this.target.addEventListener(eventName, handler, false); - this.target.removeAttribute(onEventName); - } - - // Set up a new event with the coordinates of the finger. - var touch = this.createMouseEvent(eventName, originalEvent); - - events.push(touch); - - // Figure out scale and rotation. - if (events.length > 1) { - var x = events[0].pageX - events[1].pageX; - var y = events[0].pageY - events[1].pageY; - - var distance = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); - var angle = Math.atan2(x, y) * (180 / Math.PI); - - var gestureName = 'gesturechange'; - - if (eventName === 'touchstart') { - gestureName = 'gesturestart'; - this.startDistance = distance; - this.startAngle = angle; - } - - if (eventName === 'touchend') gestureName = 'gestureend'; - - events.forEach(function(event) { - var gesture = this.createMouseEvent.call(event._finger, gestureName, event); - gestures.push(gesture); - }.bind(this)); - - events.concat(gestures).forEach(function(event) { - event.scale = distance / this.startDistance; - event.rotation = this.startAngle - angle; - }); - } - - // Loop through the events array and fill in each touch array. - events.forEach(function(touch) { - touch.touches = events.filter(function(e) { - return ~e.type.indexOf('touch') && e.type !== 'touchend'; - }); - - touch.changedTouches = events.filter(function(e) { - return ~e.type.indexOf('touch') && e._finger.target === touch._finger.target; - }); - - touch.targetTouches = touch.changedTouches.filter(function(e) { - return ~e.type.indexOf('touch') && e.type !== 'touchend'; - }); - }); - - // Then fire the events. - events.concat(gestures).forEach(function(event, i) { - event.identifier = i; - event._finger.target.dispatchEvent(event); - }); - }, - - createMouseEvent: function (eventName, originalEvent) { - var e = document.createEvent('MouseEvent'); - - e.initMouseEvent(eventName, true, true, - originalEvent.view, originalEvent.detail, - this.x || originalEvent.screenX, this.y || originalEvent.screenY, - this.x || originalEvent.clientX, this.y || originalEvent.clientY, - originalEvent.ctrlKey, originalEvent.shiftKey, - originalEvent.altKey, originalEvent.metaKey, - originalEvent.button, this.target || originalEvent.relatedTarget - ); - - e.synthetic = true; - e._finger = this; - - return e; - }, - - move: function (x, y) { - if (isNaN(x) || isNaN(y)) { - this.target = null; - } else { - this.x = x; - this.y = y; - - if (!this.mouseIsDown) { - this.target = document.elementFromPoint(x, y); - } - } - } -}; \ No newline at end of file diff --git a/components/index.html b/components/index.html deleted file mode 100644 index b7abf3c..0000000 --- a/components/index.html +++ /dev/null @@ -1,1453 +0,0 @@ - - -
- -Design patterns that serve as basic building blocks
-Title bars are full width and docked to the top of the viewport.
- -<header class="bar bar-nav">
- <h1 class="title">Title</h1>
-</header>
-
Buttons in a title bar are left or right aligned and should be used for actions. Use the .pull-right
or .pull-right
utility classes to float the buttons. Also, be sure to place any floated elements bofore the title.
<header class="bar bar-nav">
- <a class="btn pull-left">
- Left
- </a>
- <a class="btn pull-right">
- Right
- </a>
- <h1 class="title">Title</h1>
-</header>
-
Icons can also be used for actions in toolbars. Again, be sure to use utility classes to float the icons into position.
- - - -<header class="bar bar-nav">
- <a class="icon icon-left-nav pull-left"></a>
- <a class="icon icon-compose pull-right"></a>
- <h1 class="title">Title</h1>
-</header>
-
Link buttons can be used in tool bars to remove the outline. Use these in conjuction with icons to recreate the nav feel from iOS7. Note the use of .btn-nav
to bring the buttons a little bit closer to the edge of the viewport.
<header class="bar bar-nav">
- <a class="btn btn-link btn-nav pull-left">
- <span class="icon icon-left-nav"></span>
- Left
- </a>
- <a class="btn btn-link btn-nav pull-right">
- Right
- <span class="icon icon-right-nav"></span>
- </a>
- <h1 class="title">Title</h1>
-</header>
-
Title bars can also house segmented controls. Feel free to add accompanying buttons too. The control will automatically layout itself out correctly.
- - - -<header class="bar bar-nav">
- <a class="btn pull-left">
- Left
- </a>
- <a class="btn pull-right">
- Right
- </a>
- <div class="segmented-control">
- <a class="control-item active">One</a>
- <a class="control-item">Two</a>
- <a class="control-item">Three</a>
- </div>
-</header>
-
Use Ratchicons in the .tab-bar
to represent different sections of your app.
<nav class="bar bar-tab">
- <a class="tab-item active" href="#">
- <span class="icon icon-home"></span>
- <span class="tab-label">Home</span>
- </a>
- <a class="tab-item" href="#">
- <span class="icon icon-person"></span>
- <span class="tab-label">Profile</span>
- </a>
- <a class="tab-item" href="#">
- <span class="icon icon-star-filled"></span>
- <span class="tab-label">Favorites</span>
- </a>
- <a class="tab-item" href="#">
- <span class="icon icon-search"></span>
- <span class="tab-label">Search</span>
- </a>
- <a class="tab-item" href="#">
- <span class="icon icon-gear"></span>
- <span class="tab-label">Settings</span>
- </a>
-</nav>
-
Note: Use push.js to actually change content.
-If you don't want to use icons, that's okay too. The text will appear larger to use the additional space.
- -<nav class="bar bar-tab">
- <a class="tab-item active" href="#">
- Label
- </a>
- <a class="tab-item" href="#">
- Label
- </a>
- <a class="tab-item" href="#">
- Label
- </a>
-</nav>
-
Note: Use push.js to actually change content.
-Standard bars are basic fixed elements that can be positioned in four places. These can be used to house buttons, icons, or segmented controls (see following examples).
- -<!-- Segmented control in standard bar fixed to top -->
-<nav class="bar bar-standard">
- <div class="segmented-control">
- <a class="control-item active">Thing one</a>
- <a class="control-item">Thing two</a>
- <a class="control-item">Thing three</a>
- </div>
-</nav>
-
-<!-- Block button in standard bar fixed below top bar -->
-<div class="bar bar-standard bar-header-secondary">
- <a class="btn btn-block">Block level button</a>
-</div>
-
-<!-- Block button in standard bar fixed above the footer -->
-<div class="bar bar-standard bar-footer-secondary">
- <a class="btn btn-block">Block level button</a>
-</div>
-
-<!-- Icons in standard bar fixed to the bottom of the screen -->
-<div class="bar bar-standard bar-footer">
- <a class="icon icon-compose pull-left"></a>
- <a class="icon icon-gear pull-right"></a>
-</div>
-
Use headings and paragraphs to title and describe sections of your app. Apply or wrap elements with .content-padded
to give the content space around the screen.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco.
-<div class="content-padded">
- <h1>h1. Heading</h1>
- <h2>h2. Heading</h2>
- <h3>h3. Heading</h3>
- <h4>h4. Heading</h4>
- <h5>h5. Heading</h5>
- <h6>h6. Heading</h6>
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
- tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
- quis nostrud exercitation ullamco.</p>
-</div>
-
Table views can be used for organizing data, showing collections of links, or a series of controls.
- -<ul class="table-view">
- <li class="table-view-cell">Item 1</li>
- <li class="table-view-cell table-view-cell">Item 2</li>
- <li class="table-view-divider">Divider</li>
- <li class="table-view-cell">Item 3</li>
-</ul>
-
Chevrons should be used to indicate that the item is linked. Just apply the classes .push-right
or .push-left
to use a chevron.
<ul class="table-view">
- <li class="table-view-cell">
- <a class="push-right">
- Item 1
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right">
- Item 2
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right">
- Item 3
- </a>
- </li>
-</ul>
-
Badges are a great way of showing data.
- -<ul class="table-view">
- <li class="table-view-cell">Item 1 <span class="badge">4</span></li>
- <li class="table-view-cell">Item 2 <span class="badge">1</span></li>
- <li class="table-view-cell">Item 3 <span class="badge">5</span></li>
-</ul>
-
Feel free to use chevrons and badges together. They'll automatically positon themselves correctly.
- -<ul class="table-view">
- <li class="table-view-cell">
- <a class="push-right">
- <span class="badge">5</span>
- Item 1
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right">
- <span class="badge">5</span>
- Item 2
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right">
- <span class="badge">5</span>
- Item 3
- </a>
- </li>
-</ul>
-
Showing media inside table views is easy. This component to perfect for images and text.
- -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.
-<ul class="table-view">
- <li class="table-view-cell media">
- <a class="push-right">
- <img class="media-object pull-left" src="http://placehold.it/42x42">
- <div class="media-body">
- Item 1
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.</p>
- </div>
- </a>
- </li>
- <li class="table-view-cell media">
- <a class="push-right">
- <img class="media-object pull-left" src="http://placehold.it/42x42">
- <div class="media-body">
- Item 1
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.</p>
- </div>
- </a>
- </li>
- <li class="table-view-cell media">
- <a class="push-right">
- <img class="media-object pull-left" src="http://placehold.it/42x42">
- <div class="media-body">
- Item 1
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore. Lorem ipsum dolor sit amet.</p>
- </div>
- </a>
- </li>
-</ul>
-
Ratchicons can also used instead of images.
- -<ul class="table-view">
- <li class="table-view-cell media">
- <a class="push-right">
- <span class="media-object pull-left icon icon-trash"></span>
- <div class="media-body">
- Item 1
- </div>
- </a>
- </li>
- <li class="table-view-cell media">
- <a class="push-right">
- <span class="media-object pull-left icon icon-gear"></span>
- <div class="media-body">
- Item 2
- </div>
- </a>
- </li>
- <li class="table-view-cell media">
- <a class="push-right">
- <span class="media-object pull-left icon icon-pages"></span>
- <div class="media-body">
- Item 3
- </div>
- </a>
- </li>
-</ul>
-
<ul class="table-view">
- <li class="table-view-cell">Item 1 <a class="btn">Button</a></li>
- <li class="table-view-cell">Item 2 <a class="btn btn-primary">Button</a></li>
- <li class="table-view-cell">Item 3 <a class="btn btn-positive">Button</a></li>
- <li class="table-view-cell">Item 4 <a class="btn btn-negative">Button</a></li>
-</ul>
-
<ul class="table-view">
- <li class="table-view-cell">
- Item 1
- <div class="toggle">
- <div class="toggle-handle"></div>
- </div>
- </li>
- <li class="table-view-cell">
- Item 2
- <div class="toggle active">
- <div class="toggle-handle"></div>
- </div>
- </li>
- <li class="table-view-cell">
- Item 3
- <div class="toggle">
- <div class="toggle-handle"></div>
- </div>
- </li>
-</ul>
-
Use .card
to wrap any content in a padded element.
<div class="card">
- <ul class="table-view">
- <li class="table-view-cell">Item 1</li>
- <li class="table-view-cell">Item 2</li>
- <li class="table-view-cell table-view-divider">Divider</li>
- <li class="table-view-cell">Item 3</li>
- <li class="table-view-cell">Item 4</li>
- </ul>
-</div>
-
Buttons come in many flavors and should be used for user actions.
- - - -<a class="btn">Button</a>
-<a class="btn btn-primary">Button</a>
-<a class="btn btn-positive">Button</a>
-<a class="btn btn-negative">Button</a>
-<a class="btn btn-link">Button</a>
-
-<a class="btn btn-outlined">Button</a>
-<a class="btn btn-primary btn-outlined">Button</a>
-<a class="btn btn-positive btn-outlined">Button</a>
-<a class="btn btn-negative btn-outlined">Button</a>
-
Ratchicons work inside buttons too.
- - - -<a class="btn">
- <span class="icon icon-search"></span>
- Button
-</a>
-<a class="btn btn-primary">
- <span class="icon icon-search"></span>
- Button
-</a>
-<a class="btn btn-positive">
- <span class="icon icon-search"></span>
- Button
-</a>
-<a class="btn btn-negative">
- <span class="icon icon-search"></span>
- Button
-</a>
-<a class="btn btn-link">
- <span class="icon icon-left"></span>
- Button
-</a>
-
<a class="btn">Badge button <span class="badge">1</span></a>
-<a class="btn btn-primary">Badge button <span class="badge badge-primary">1</span></a>
-<a class="btn btn-positive">Badge button <span class="badge badge-positive">1</span></a>
-<a class="btn btn-negative">Badge button <span class="badge badge-negative">1</span></a>
-
-<a class="btn btn-outlined">Badge button <span class="badge badge-inverted">1</span></a>
-<a class="btn btn-outlined btn-primary">Badge button <span class="badge badge-primary badge-inverted">1</span></a>
-<a class="btn btn-outlined btn-positive">Badge button <span class="badge badge-positive badge-inverted">1</span></a>
-<a class="btn btn-outlined btn-negative">Badge button <span class="badge badge-negative badge-inverted">1</span></a>
-
<a class="btn btn-block">Block button</a>
-<a class="btn btn-primary btn-block">Block button</a>
-<a class="btn btn-positive btn-block">Block button</a>
-<a class="btn btn-negative btn-block">Block button</a>
-
-<a class="btn btn-block btn-outlined">Block button</a>
-<a class="btn btn-primary btn-block btn-outlined">Block button</a>
-<a class="btn btn-positive btn-block btn-outlined">Block button</a>
-<a class="btn btn-negative btn-block btn-outlined">Block button</a>
-
Content sections that are to be swapped in and out by the controller should all be siblings and have the class .control-content
. Then, just give each content section an id and point the link in the segmented control to that id.
<div class="segmented-control">
- <a class="control-item active" href="#item1mobile">
- Thing one
- </a>
- <a class="control-item" href="#item2mobile">
- Thing two
- </a>
- <a class="control-item" href="#item3mobile">
- Thing three
- </a>
-</div>
-<div class="card">
- <span id="item1mobile" class="control-content active">Item 1</span>
- <span id="item2mobile" class="control-content">Item 2</span>
- <span id="item3mobile" class="control-content">Item 3</span>
-</div>
-
Badges come in four flavors and should be used to indicate "how many" of something there are. Adding the a class of .badge-inverted
will remove the badges background color.
<span class="badge">1</span>
-<span class="badge badge-primary">2</span>
-<span class="badge badge-positive">3</span>
-<span class="badge badge-negative">4</span>
-
-<span class="badge badge-inverted">1</span>
-<span class="badge badge-primary badge-inverted">2</span>
-<span class="badge badge-positive badge-inverted">3</span>
-<span class="badge badge-negative badge-inverted">4</span>
-
<form>
- <input type="text" placeholder="Full name">
- <input type="search" placeholder="Search">
- <textarea rows="5"></textarea>
- <a class="btn btn-positive btn-block">Choose existing</a>
-</form>
-
<form class="input-group">
- <input type="text" placeholder="Full name">
- <input type="email" placeholder="Email">
- <input type="text" placeholder="Username">
-</form>
-
<form class="input-group">
- <div class="input-row">
- <label>Full name</label>
- <input type="text" placeholder="Mister Ratchet">
- </div>
- <div class="input-row">
- <label>Email</label>
- <input type="email" placeholder="ratchetframework@gmail.com">
- </div>
- <div class="input-row">
- <label>Username</label>
- <input type="text" placeholder="goRatchet">
- </div>
-</form>
-
Toggles can be used by sliding or tapping the control.
- -<div class="toggle active">
- <div class="toggle-handle"></div>
-</div>
-<div class="toggle">
- <div class="toggle-handle"></div>
-</div>
-
Toggles.js binds an event to the document that returns a detail object and can be used to fire a callback.
- -// Only needed if you want to fire a callback
-document
-.querySelector('#myToggle')
-.addEventListener('toggle', myFunction)
-
<div id="popover" class="popover">
- <header class="bar bar-nav">
- <h1 class="title">Popover title</h1>
- </header>
- <ul class="table-view">
- <li class="table-view-cell">Item1</li>
- <li class="table-view-cell">Item2</li>
- <li class="table-view-cell">Item3</li>
- <li class="table-view-cell">Item4</li>
- <li class="table-view-cell">Item5</li>
- <li class="table-view-cell">Item6</li>
- <li class="table-view-cell">Item7</li>
- <li class="table-view-cell">Item8</li>
- </ul>
-</div>
-
Popovers are designed to only fire from title bars. Set the value of the title href to the id of a popover, like so:
- -<header class="bar bar-nav">
- <a href="#myPopover">
- <h1 class="title">
- Tap title
- <span class="icon icon-caret"></span>
- </h1>
- </a>
-</header>
-
<a href="#myModalexample" class="btn">Open modal</a>
-<div id="myModalexample" class="modal">
- <header class="bar bar-nav">
- <a class="icon icon-close pull-right" href="#myModalexample"></a>
- <h1 class="title">Modal</h1>
- </header>
-
- <div class="content">
- <p class="content-padded">The contents of my modal go here. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.</p>
- </div>
-</div>
-
Modals are designed to only fire from links. Set the value of the toggle links href to the id of a modal.
- -Can be used with any number of slides with any type of content.
- -<div class="slider" id="mySlider">
- <div class="slide-group">
- <div class="slide">
- <img src="../assets/img/slide-1.png">
- <span class="slide-text">
- <span class="icon icon-left-nav"></span>
- Slide me
- </span>
- </div>
- <div class="slide">
- <img src="../assets/img/slide-2.png">
- </div>
- <div class="slide">
- <img src="../assets/img/slide-3.png">
- </div>
- </div>
-</div>
-
Sliders.js binds an event to the document that returns a detail object and can be used to fire a callback.
- -// Only needed if you want to fire a callback
-document
-.querySelector('#mySlider')
-.addEventListener('slide', myFunction)
-
Push.js is the engine that connects Ratchet pages together with AJAX and the history api. Push.js is listening to all clicks on a page, so just make sure it's included and link something in your Ratchet project up.
- -<!-- A one.html link -->
-<a href="two.html">Two</a>
-
This will use push to replace everything in the .content div with the .content of two.html. Also, it will either update or remove .bar-nav and .bar-tab according to their presences in two.html.
- -Now that pages are being loaded through push, it's easy to specify transitions for animations between pages. There are three different transitions to chose from: fade
, slide-in
, or slide-out
.
<!-- An one.html link that animates to two.html -->
-<a href="two.html" data-transition="fade">Two</a>
-
A working version of push:
- -<header class="bar bar-nav">
- <h1 class="title">Push</h1>
-</header>
-<div class="content">
- <div class="card">
- <ul class="table-view">
- <li class="table-view-cell">
- <a class="push-right" href="../two.html" data-transition="slide-in">
- Load new page with push
- </a>
- </li>
- </ul>
- </div>
-</div>
-
Have a link you don't want to intercepted by push? Try this:
- -<!-- Use data-ignore="push" to prevent the push.js interception -->
-<a href="http://www.google.com" data-ignore="push">Google<a>
-
Push.js binds an event to the document that returns a detail object and can be used to fire a callback.
- -// Only needed if you want to fire a callback
-window.addEventListener('push', myFunction);
-
Use Ratchicons in your application to help inform interactions.
- -<div class="content-padded">
- <span class="icon icon-home"></span>
- <span class="icon icon-person"></span>
- <span class="icon icon-bars"></span>
- <span class="icon icon-caret"></span>
- <span class="icon icon-check"></span>
- <span class="icon icon-close"></span>
- <span class="icon icon-code"></span>
- <span class="icon icon-compose"></span>
- <span class="icon icon-edit"></span>
- <span class="icon icon-gear"></span>
- <span class="icon icon-info"></span>
- <span class="icon icon-list"></span>
- <span class="icon icon-more"></span>
- <span class="icon icon-more-vertical"></span>
- <span class="icon icon-pages"></span>
- <span class="icon icon-play"></span>
- <span class="icon icon-pause"></span>
- <span class="icon icon-stop"></span>
- <span class="icon icon-back"></span>
- <span class="icon icon-forward"></span>
- <span class="icon icon-plus"></span>
- <span class="icon icon-refresh"></span>
- <span class="icon icon-search"></span>
- <span class="icon icon-download"></span>
- <span class="icon icon-share"></span>
- <span class="icon icon-sound"></span>
- <span class="icon icon-sound2"></span>
- <span class="icon icon-sound3"></span>
- <span class="icon icon-sound4"></span>
- <span class="icon icon-star-filled"></span>
- <span class="icon icon-star"></span>
- <span class="icon icon-trash"></span>
- <span class="icon icon-down-nav"></span>
- <span class="icon icon-down"></span>
- <span class="icon icon-left-nav"></span>
- <span class="icon icon-left"></span>
- <span class="icon icon-right-nav"></span>
- <span class="icon icon-right"></span>
- <span class="icon icon-up-nav"></span>
- <span class="icon icon-up"></span>
-</div>
-
Thanks for downloading Ratchet. This is an example HTML page that's linked up to compiled Ratchet CSS and JS, has the proper meta tags and the HTML structure. Need some more help before you start filling this with your own content? Check out some Ratchet resources:
-Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -Lorem ipsum dolor sit amet...
- -1.3 miles away
- Buy Tickets -3.5 miles away
- Buy Tickets -7.3 miles away
- Buy Tickets -12.5 miles away
- Buy Tickets -12.2 miles away
- Buy Tickets -13.4 miles away
- Buy Tickets -14.1 miles away
- Buy Tickets -14.3 miles away
- Buy Tickets -14.7 miles away
- Buy Tickets -15 miles away
- Buy Tickets -Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Lorem ipsum dolor sit amet, consectetur.
-Take a look at some of these example apps built on Ratchet.
-Checkout out the examples on a desktop browser or visit on your mobile device see the apps as intended.
- - -If you haven't already, download the source code for Ratchet.
- Download Ratchet -Once you've downloaded Ratchet, here's what to do next.
-Use the documentation as a reference for all the available components and piece together the pages of your app. Be sure to look at the basic page template and example applications. Make sure to add ratchet-theme-ios.css
or ratchet-theme-android.css
to your app's <head>
if you have a specific platform in mind.
Read about push.js then start connecting your pages. Push.js allows you to create a prototype that feels like a real app when you save it to your phone. (Need to have a server running).
-There are a few ways to do this, but the simplest is to run a local server on your computer, point Safari on your iPhone to your computer, then click the button and "Add to Home Screen". For Android, check out this guide.
-Three simple rules for structuring your Ratchet pages
-All fixed bars (.bar
) should always be the first thing in the <body>
of the page. This is really important!
.content
Anything that's not a .bar
should be put in a div with the class .content
. Put this div after the bars in the <body>
tag. The .content
div is what actually scrolls in a Ratchet prototype.
They're included in the template.html page included in the download, but make sure they stay in the page. They are important to Ratchet working just right.
-Use this basic template to get your app started.
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8">
- <title>Ratchet template page</title>
-
- <!-- Sets initial viewport load and disables zooming -->
- <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
-
- <!-- Makes your prototype chrome-less once bookmarked to your phone's home screen -->
- <meta name="apple-mobile-web-app-capable" content="yes">
- <meta name="apple-mobile-web-app-status-bar-style" content="black">
-
- <!-- Include the compiled Ratchet CSS -->
- <link href="ratchet.css" rel="stylesheet">
-
- <!-- Include the compiled Ratchet JS -->
- <script src="ratchet.js"></script>
-
- </head>
- <body>
-
- <!-- Make sure all your bars are the first things in your <body> -->
- <header class="bar bar-nav">
- <h1 class="title">Ratchet</h1>
- </header>
-
- <!-- Wrap all non-bar HTML in the .content div (this is actually what scrolls) -->
- <div class="content">
- <p class="content-padded">Thanks for downloading Ratchet. This is an example HTML page that's linked up to compiled Ratchet CSS and JS, has the proper meta tags and the HTML structure. Need some more help before you start filling this with your own content? Check out some Ratchet resources:</p>
- <div class="card">
- <ul class="table-view">
- <li class="table-view-cell">
- <a class="push-right" href="http://goratchet.com">
- <strong>Ratchet documentation</strong>
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right" href="https://www.github.com/twbs/ratchet/">
- <strong>Ratchet on Github</strong>
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right" href="https://groups.google.com/forum/#!forum/goratchet">
- <strong>Ratchet Google group</strong>
- </a>
- </li>
- <li class="table-view-cell">
- <a class="push-right" href="http://www.twitter.com/GoRatchet">
- <strong>Ratchet on Twitter</strong>
- </a>
- </li>
- </ul>
- </div>
- </div>
-
- </body>
-</html>
-
If you haven't already, download the source code for Ratchet.
- Download Ratchet -Currently v2.0.0
-Build mobile apps with simple HTML‚ CSS‚ and JS components.
- Download Ratchet -Currently v2.0.0
-