@@ -0,0 +1,85 @@
// Ionic Starter App

// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.services' is found in services.js
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])

.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);

}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})

.config(function($stateProvider, $urlRouterProvider) {

// Ionic uses AngularUI Router which uses the concept of states
// Learn more here: https://github.com/angular-ui/ui-router
// Set up the various states which the app can be in.
// Each state's controller can be found in controllers.js
$stateProvider

// setup an abstract state for the tabs directive
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'templates/tabs.html'
})

// Each tab has its own nav history stack:

.state('tab.dash', {
url: '/dash',
views: {
'tab-dash': {
templateUrl: 'templates/tab-dash.html',
controller: 'DashCtrl'
}
}
})

.state('tab.chats', {
url: '/chats',
views: {
'tab-chats': {
templateUrl: 'templates/tab-chats.html',
controller: 'ChatsCtrl'
}
}
})
.state('tab.chat-detail', {
url: '/chats/:chatId',
views: {
'tab-chats': {
templateUrl: 'templates/chat-detail.html',
controller: 'ChatDetailCtrl'
}
}
})

.state('tab.account', {
url: '/account',
views: {
'tab-account': {
templateUrl: 'templates/tab-account.html',
controller: 'AccountCtrl'
}
}
});

// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/tab/dash');

});
@@ -0,0 +1,28 @@
angular.module('starter.controllers', [])

.controller('DashCtrl', function($scope) {})

.controller('ChatsCtrl', function($scope, Chats) {
// With the new view caching in Ionic, Controllers are only called
// when they are recreated or on app start, instead of every page change.
// To listen for when this page is active (for example, to refresh data),
// listen for the $ionicView.enter event:
//
//$scope.$on('$ionicView.enter', function(e) {
//});

$scope.chats = Chats.all();
$scope.remove = function(chat) {
Chats.remove(chat);
};
})

.controller('ChatDetailCtrl', function($scope, $stateParams, Chats) {
$scope.chat = Chats.get($stateParams.chatId);
})

.controller('AccountCtrl', function($scope) {
$scope.settings = {
enableFriends: true
};
});
@@ -0,0 +1,50 @@
angular.module('starter.services', [])

.factory('Chats', function() {
// Might use a resource here that returns a JSON array

// Some fake testing data
var chats = [{
id: 0,
name: 'Ben Sparrow',
lastText: 'You on your way?',
face: 'img/ben.png'
}, {
id: 1,
name: 'Max Lynx',
lastText: 'Hey, it\'s me',
face: 'img/max.png'
}, {
id: 2,
name: 'Adam Bradleyson',
lastText: 'I should buy a boat',
face: 'img/adam.jpg'
}, {
id: 3,
name: 'Perry Governor',
lastText: 'Look at my mukluks!',
face: 'img/perry.png'
}, {
id: 4,
name: 'Mike Harrington',
lastText: 'This is wicked good ice cream.',
face: 'img/mike.png'
}];

return {
all: function() {
return chats;
},
remove: function(chat) {
chats.splice(chats.indexOf(chat), 1);
},
get: function(chatId) {
for (var i = 0; i < chats.length; i++) {
if (chats[i].id === parseInt(chatId)) {
return chats[i];
}
}
return null;
}
};
});

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

@@ -0,0 +1,170 @@
/**
* Action Sheets
* --------------------------------------------------
*/

.action-sheet-backdrop {
@include transition(background-color 150ms ease-in-out);
position: fixed;
top: 0;
left: 0;
z-index: $z-index-action-sheet;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0);

&.active {
background-color: rgba(0,0,0,0.4);
}
}

.action-sheet-wrapper {
@include translate3d(0, 100%, 0);
@include transition(all cubic-bezier(.36, .66, .04, 1) 500ms);
position: absolute;
bottom: 0;
left: 0;
right: 0;
width: 100%;
max-width: 500px;
margin: auto;
}

.action-sheet-up {
@include translate3d(0, 0, 0);
}

.action-sheet {
margin-left: $sheet-margin;
margin-right: $sheet-margin;
width: auto;
z-index: $z-index-action-sheet;
overflow: hidden;

.button {
display: block;
padding: 1px;
width: 100%;
border-radius: 0;
border-color: $sheet-options-border-color;
background-color: transparent;

color: $sheet-options-text-color;
font-size: 21px;

&:hover {
color: $sheet-options-text-color;
}
&.destructive {
color: #ff3b30;
&:hover {
color: #ff3b30;
}
}
}

.button.active, .button.activated {
box-shadow: none;
border-color: $sheet-options-border-color;
color: $sheet-options-text-color;
background: $sheet-options-bg-active-color;
}
}

.action-sheet-has-icons .icon {
position: absolute;
left: 16px;
}

.action-sheet-title {
padding: $sheet-margin * 2;
color: #8f8f8f;
text-align: center;
font-size: 13px;
}

.action-sheet-group {
margin-bottom: $sheet-margin;
border-radius: $sheet-border-radius;
background-color: #fff;
overflow: hidden;

.button {
border-width: 1px 0px 0px 0px;
}
.button:first-child:last-child {
border-width: 0;
}
}

.action-sheet-options {
background: $sheet-options-bg-color;
}

.action-sheet-cancel {
.button {
font-weight: 500;
}
}

.action-sheet-open {
pointer-events: none;

&.modal-open .modal {
pointer-events: none;
}

.action-sheet-backdrop {
pointer-events: auto;
}
}


.platform-android {

.action-sheet-backdrop.active {
background-color: rgba(0,0,0,0.2);
}

.action-sheet {
margin: 0;

.action-sheet-title,
.button {
text-align: left;
border-color: transparent;
font-size: 16px;
color: inherit;
}

.action-sheet-title {
font-size: 14px;
padding: 16px;
color: #666;
}

.button.active,
.button.activated {
background: #e8e8e8;
}
}

.action-sheet-group {
margin: 0;
border-radius: 0;
background-color: #fafafa;
}

.action-sheet-cancel {
display: none;
}

.action-sheet-has-icons {

.button {
padding-left: 56px;
}

}

}
@@ -0,0 +1,48 @@

// Slide up from the bottom, used for modals
// -------------------------------

.slide-in-up {
@include translate3d(0, 100%, 0);
}
.slide-in-up.ng-enter,
.slide-in-up > .ng-enter {
@include transition(all cubic-bezier(.1, .7, .1, 1) 400ms);
}
.slide-in-up.ng-enter-active,
.slide-in-up > .ng-enter-active {
@include translate3d(0, 0, 0);
}

.slide-in-up.ng-leave,
.slide-in-up > .ng-leave {
@include transition(all ease-in-out 250ms);
}


// Scale Out
// Scale from hero (1 in this case) to zero
// -------------------------------

@-webkit-keyframes scaleOut {
from { -webkit-transform: scale(1); opacity: 1; }
to { -webkit-transform: scale(0.8); opacity: 0; }
}
@keyframes scaleOut {
from { transform: scale(1); opacity: 1; }
to { transform: scale(0.8); opacity: 0; }
}


// Super Scale In
// Scale from super (1.x) to duper (1 in this case)
// -------------------------------

@-webkit-keyframes superScaleIn {
from { -webkit-transform: scale(1.2); opacity: 0; }
to { -webkit-transform: scale(1); opacity: 1 }
}
@keyframes superScaleIn {
from { transform: scale(1.2); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
@@ -0,0 +1,24 @@

.backdrop {
position: fixed;
top: 0;
left: 0;
z-index: $z-index-backdrop;

width: 100%;
height: 100%;

background-color: $loading-backdrop-bg-color;

visibility: hidden;
opacity: 0;

&.visible {
visibility: visible;
}
&.active {
opacity: 1;
}

@include transition($loading-backdrop-fadein-duration opacity linear);
}
@@ -0,0 +1,62 @@

/**
* Badges
* --------------------------------------------------
*/

.badge {
@include badge-style($badge-default-bg, $badge-default-text);
z-index: $z-index-badge;
display: inline-block;
padding: 3px 8px;
min-width: 10px;
border-radius: $badge-border-radius;
vertical-align: baseline;
text-align: center;
white-space: nowrap;
font-weight: $badge-font-weight;
font-size: $badge-font-size;
line-height: $badge-line-height;

&:empty {
display: none;
}
}

//Be sure to override specificity of rule that 'badge color matches tab color by default'
.tabs .tab-item .badge,
.badge {
&.badge-light {
@include badge-style($badge-light-bg, $badge-light-text);
}
&.badge-stable {
@include badge-style($badge-stable-bg, $badge-stable-text);
}
&.badge-positive {
@include badge-style($badge-positive-bg, $badge-positive-text);
}
&.badge-calm {
@include badge-style($badge-calm-bg, $badge-calm-text);
}
&.badge-assertive {
@include badge-style($badge-assertive-bg, $badge-assertive-text);
}
&.badge-balanced {
@include badge-style($badge-balanced-bg, $badge-balanced-text);
}
&.badge-energized {
@include badge-style($badge-energized-bg, $badge-energized-text);
}
&.badge-royal {
@include badge-style($badge-royal-bg, $badge-royal-text);
}
&.badge-dark {
@include badge-style($badge-dark-bg, $badge-dark-text);
}
}

// Quick fix for labels/badges in buttons
.button .badge {
position: relative;
top: -1px;
}

Large diffs are not rendered by default.

@@ -0,0 +1,64 @@

/**
* Button Bar
* --------------------------------------------------
*/

.button-bar {
@include display-flex();
@include flex(1);
width: 100%;

&.button-bar-inline {
display: block;
width: auto;

@include clearfix();

> .button {
width: auto;
display: inline-block;
float: left;
}
}
}

.button-bar > .button {
@include flex(1);
display: block;

overflow: hidden;

padding: 0 16px;

width: 0;

border-width: 1px 0px 1px 1px;
border-radius: 0;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;

&:before,
.icon:before {
line-height: 44px;
}

&:first-child {
border-radius: $button-border-radius 0px 0px $button-border-radius;
}
&:last-child {
border-right-width: 1px;
border-radius: 0px $button-border-radius $button-border-radius 0px;
}
&:only-child {
border-radius: $button-border-radius;
}
}

.button-bar > .button-small {
&:before,
.icon:before {
line-height: 28px;
}
}
@@ -0,0 +1,252 @@

/**
* Buttons
* --------------------------------------------------
*/

.button {
// set the color defaults
@include button-style($button-default-bg, $button-default-border, $button-default-active-bg, $button-default-active-border, $button-default-text);

position: relative;
display: inline-block;
margin: 0;
padding: 0 $button-padding;

min-width: ($button-padding * 3) + $button-font-size;
min-height: $button-height + 5px;

border-width: $button-border-width;
border-style: solid;
border-radius: $button-border-radius;

vertical-align: top;
text-align: center;

text-overflow: ellipsis;
font-size: $button-font-size;
line-height: $button-height - $button-border-width + 1px;

cursor: pointer;

&:after {
// used to create a larger button "hit" area
position: absolute;
top: -6px;
right: -6px;
bottom: -6px;
left: -6px;
content: ' ';
}

.icon {
vertical-align: top;
pointer-events: none;
}

.icon:before,
&.icon:before,
&.icon-left:before,
&.icon-right:before {
display: inline-block;
padding: 0 0 $button-border-width 0;
vertical-align: inherit;
font-size: $button-icon-size;
line-height: $button-height - $button-border-width;
pointer-events: none;
}
&.icon-left:before {
float: left;
padding-right: .2em;
padding-left: 0;
}
&.icon-right:before {
float: right;
padding-right: 0;
padding-left: .2em;
}

&.button-block, &.button-full {
margin-top: $button-block-margin;
margin-bottom: $button-block-margin;
}

&.button-light {
@include button-style($button-light-bg, $button-light-border, $button-light-active-bg, $button-light-active-border, $button-light-text);
@include button-clear($button-light-border);
@include button-outline($button-light-border);
}

&.button-stable {
@include button-style($button-stable-bg, $button-stable-border, $button-stable-active-bg, $button-stable-active-border, $button-stable-text);
@include button-clear($button-stable-border);
@include button-outline($button-stable-border);
}

&.button-positive {
@include button-style($button-positive-bg, $button-positive-border, $button-positive-active-bg, $button-positive-active-border, $button-positive-text);
@include button-clear($button-positive-bg);
@include button-outline($button-positive-bg);
}

&.button-calm {
@include button-style($button-calm-bg, $button-calm-border, $button-calm-active-bg, $button-calm-active-border, $button-calm-text);
@include button-clear($button-calm-bg);
@include button-outline($button-calm-bg);
}

&.button-assertive {
@include button-style($button-assertive-bg, $button-assertive-border, $button-assertive-active-bg, $button-assertive-active-border, $button-assertive-text);
@include button-clear($button-assertive-bg);
@include button-outline($button-assertive-bg);
}

&.button-balanced {
@include button-style($button-balanced-bg, $button-balanced-border, $button-balanced-active-bg, $button-balanced-active-border, $button-balanced-text);
@include button-clear($button-balanced-bg);
@include button-outline($button-balanced-bg);
}

&.button-energized {
@include button-style($button-energized-bg, $button-energized-border, $button-energized-active-bg, $button-energized-active-border, $button-energized-text);
@include button-clear($button-energized-bg);
@include button-outline($button-energized-bg);
}

&.button-royal {
@include button-style($button-royal-bg, $button-royal-border, $button-royal-active-bg, $button-royal-active-border, $button-royal-text);
@include button-clear($button-royal-bg);
@include button-outline($button-royal-bg);
}

&.button-dark {
@include button-style($button-dark-bg, $button-dark-border, $button-dark-active-bg, $button-dark-active-border, $button-dark-text);
@include button-clear($button-dark-bg);
@include button-outline($button-dark-bg);
}
}

.button-small {
padding: 2px $button-small-padding 1px;
min-width: $button-small-height;
min-height: $button-small-height + 2;
font-size: $button-small-font-size;
line-height: $button-small-height - $button-border-width - 1;

.icon:before,
&.icon:before,
&.icon-left:before,
&.icon-right:before {
font-size: $button-small-icon-size;
line-height: $button-small-icon-size + 3;
margin-top: 3px;
}
}

.button-large {
padding: 0 $button-large-padding;
min-width: ($button-large-padding * 3) + $button-large-font-size;
min-height: $button-large-height + 5;
font-size: $button-large-font-size;
line-height: $button-large-height - $button-border-width;

.icon:before,
&.icon:before,
&.icon-left:before,
&.icon-right:before {
padding-bottom: ($button-border-width * 2);
font-size: $button-large-icon-size;
line-height: $button-large-height - ($button-border-width * 2) - 1;
}
}

.button-icon {
@include transition(opacity .1s);
padding: 0 6px;
min-width: initial;
border-color: transparent;
background: none;

&.button.active,
&.button.activated {
border-color: transparent;
background: none;
box-shadow: none;
opacity: 0.3;
}

.icon:before,
&.icon:before {
font-size: $button-large-icon-size;
}
}

.button-clear {
@include button-clear($button-default-border);
@include transition(opacity .1s);
padding: 0 $button-clear-padding;
max-height: $button-height;
border-color: transparent;
background: none;
box-shadow: none;

&.active,
&.activated {
opacity: 0.3;
}
}

.button-outline {
@include button-outline($button-default-border);
@include transition(opacity .1s);
background: none;
box-shadow: none;
}

.padding > .button.button-block:first-child {
margin-top: 0;
}

.button-block {
display: block;
clear: both;

&:after {
clear: both;
}
}

.button-full,
.button-full > .button {
display: block;
margin-right: 0;
margin-left: 0;
border-right-width: 0;
border-left-width: 0;
border-radius: 0;
}

button.button-block,
button.button-full,
.button-full > button.button,
input.button.button-block {
width: 100%;
}

a.button {
text-decoration: none;

.icon:before,
&.icon:before,
&.icon-left:before,
&.icon-right:before {
margin-top: 2px;
}
}

.button.disabled,
.button[disabled] {
opacity: .4;
cursor: default !important;
pointer-events: none;
}
@@ -0,0 +1,180 @@

/**
* Checkbox
* --------------------------------------------------
*/

.checkbox {
// set the color defaults
@include checkbox-style($checkbox-off-border-default, $checkbox-on-bg-default, $checkbox-on-border-default);

position: relative;
display: inline-block;
padding: ($checkbox-height / 4) ($checkbox-width / 4);
cursor: pointer;
}
.checkbox-light {
@include checkbox-style($checkbox-off-border-light, $checkbox-on-bg-light, $checkbox-off-border-light);
}
.checkbox-stable {
@include checkbox-style($checkbox-off-border-stable, $checkbox-on-bg-stable, $checkbox-off-border-stable);
}
.checkbox-positive {
@include checkbox-style($checkbox-off-border-positive, $checkbox-on-bg-positive, $checkbox-off-border-positive);
}
.checkbox-calm {
@include checkbox-style($checkbox-off-border-calm, $checkbox-on-bg-calm, $checkbox-off-border-calm);
}
.checkbox-assertive {
@include checkbox-style($checkbox-off-border-assertive, $checkbox-on-bg-assertive, $checkbox-off-border-assertive);
}
.checkbox-balanced {
@include checkbox-style($checkbox-off-border-balanced, $checkbox-on-bg-balanced, $checkbox-off-border-balanced);
}
.checkbox-energized{
@include checkbox-style($checkbox-off-border-energized, $checkbox-on-bg-energized, $checkbox-off-border-energized);
}
.checkbox-royal {
@include checkbox-style($checkbox-off-border-royal, $checkbox-on-bg-royal, $checkbox-off-border-royal);
}
.checkbox-dark {
@include checkbox-style($checkbox-off-border-dark, $checkbox-on-bg-dark, $checkbox-off-border-dark);
}

.checkbox input:disabled:before,
.checkbox input:disabled + .checkbox-icon:before {
border-color: $checkbox-off-border-light;
}

.checkbox input:disabled:checked:before,
.checkbox input:disabled:checked + .checkbox-icon:before {
background: $checkbox-on-bg-light;
}


.checkbox.checkbox-input-hidden input {
display: none !important;
}

.checkbox input,
.checkbox-icon {
position: relative;
width: $checkbox-width;
height: $checkbox-height;
display: block;
border: 0;
background: transparent;
cursor: pointer;
-webkit-appearance: none;

&:before {
// what the checkbox looks like when its not checked
display: table;
width: 100%;
height: 100%;
border-width: $checkbox-border-width;
border-style: solid;
border-radius: $checkbox-border-radius;
background: $checkbox-off-bg-color;
content: ' ';
@include transition(background-color 20ms ease-in-out);
}
}

.checkbox input:checked:before,
input:checked + .checkbox-icon:before {
border-width: $checkbox-border-width + 1;
}

// the checkmark within the box
.checkbox input:after,
.checkbox-icon:after {
@include transition(opacity .05s ease-in-out);
@include rotate(-45deg);
position: absolute;
top: 33%;
left: 25%;
display: table;
width: ($checkbox-width / 2);
height: ($checkbox-width / 4) - 1;
border: $checkbox-check-width solid $checkbox-check-color;
border-top: 0;
border-right: 0;
content: ' ';
opacity: 0;
}

.platform-android .checkbox-platform input:before,
.platform-android .checkbox-platform .checkbox-icon:before,
.checkbox-square input:before,
.checkbox-square .checkbox-icon:before {
border-radius: 2px;
width: 72%;
height: 72%;
margin-top: 14%;
margin-left: 14%;
border-width: 2px;
}

.platform-android .checkbox-platform input:after,
.platform-android .checkbox-platform .checkbox-icon:after,
.checkbox-square input:after,
.checkbox-square .checkbox-icon:after {
border-width: 2px;
top: 19%;
left: 25%;
width: ($checkbox-width / 2) - 1;
height: 7px;
}

.platform-android .item-checkbox-right .checkbox-square .checkbox-icon::after {
top: 31%;
}

.grade-c .checkbox input:after,
.grade-c .checkbox-icon:after {
@include rotate(0);
top: 3px;
left: 4px;
border: none;
color: $checkbox-check-color;
content: '\2713';
font-weight: bold;
font-size: 20px;
}

// what the checkmark looks like when its checked
.checkbox input:checked:after,
input:checked + .checkbox-icon:after {
opacity: 1;
}

// make sure item content have enough padding on left to fit the checkbox
.item-checkbox {
padding-left: ($item-padding * 2) + $checkbox-width;

&.active {
box-shadow: none;
}
}

// position the checkbox to the left within an item
.item-checkbox .checkbox {
position: absolute;
top: 50%;
right: $item-padding / 2;
left: $item-padding / 2;
z-index: $z-index-item-checkbox;
margin-top: (($checkbox-height + ($checkbox-height / 2)) / 2) * -1;
}


.item-checkbox.item-checkbox-right {
padding-right: ($item-padding * 2) + $checkbox-width;
padding-left: $item-padding;
}

.item-checkbox-right .checkbox input,
.item-checkbox-right .checkbox-icon {
float: right;
}
@@ -0,0 +1,327 @@
/**
* Forms
* --------------------------------------------------
*/

// Make all forms have space below them
form {
margin: 0 0 $line-height-base;
}

// Groups of fields with labels on top (legends)
legend {
display: block;
margin-bottom: $line-height-base;
padding: 0;
width: 100%;
border: $input-border-width solid $input-border;
color: $dark;
font-size: $font-size-base * 1.5;
line-height: $line-height-base * 2;

small {
color: $stable;
font-size: $line-height-base * .75;
}
}

// Set font for forms
label,
input,
button,
select,
textarea {
@include font-shorthand($font-size-base, normal, $line-height-base); // Set size, weight, line-height here
}
input,
button,
select,
textarea {
font-family: $font-family-base; // And only set font-family here for those that need it (note the missing label element)
}


// Input List
// -------------------------------

.item-input {
@include display-flex();
@include align-items(center);
position: relative;
overflow: hidden;
padding: 6px 0 5px 16px;

input {
@include border-radius(0);
@include flex(1, 220px);
@include appearance(none);
margin: 0;
padding-right: 24px;
background-color: transparent;
}

.button .icon {
@include flex(0, 0, 24px);
position: static;
display: inline-block;
height: auto;
text-align: center;
font-size: 16px;
}

.button-bar {
@include border-radius(0);
@include flex(1, 0, 220px);
@include appearance(none);
}

.icon {
min-width: 14px;
}
}
// prevent flex-shrink on WP
.platform-windowsphone .item-input input{
flex-shrink: 1;
}

.item-input-inset {
@include display-flex();
@include align-items(center);
position: relative;
overflow: hidden;
padding: ($item-padding / 3) * 2;
}

.item-input-wrapper {
@include display-flex();
@include flex(1, 0);
@include align-items(center);
@include border-radius(4px);
padding-right: 8px;
padding-left: 8px;
background: #eee;
}

.item-input-inset .item-input-wrapper input {
padding-left: 4px;
height: 29px;
background: transparent;
line-height: 18px;
}

.item-input-wrapper ~ .button {
margin-left: ($item-padding / 3) * 2;
}

.input-label {
display: table;
padding: 7px 10px 7px 0px;
max-width: 200px;
width: 35%;
color: $input-label-color;
font-size: 16px;
}

.placeholder-icon {
color: #aaa;
&:first-child {
padding-right: 6px;
}
&:last-child {
padding-left: 6px;
}
}

.item-stacked-label {
display: block;
background-color: transparent;
box-shadow: none;

.input-label, .icon {
display: inline-block;
padding: 4px 0 0 0px;
vertical-align: middle;
}
}

.item-stacked-label input,
.item-stacked-label textarea {
@include border-radius(2px);
padding: 4px 8px 3px 0;
border: none;
background-color: $input-bg;
}
.item-stacked-label input {
overflow: hidden;
height: $line-height-computed + $font-size-base + 12px;
}

.item-select.item-stacked-label select {
position: relative;
padding: 0px;
max-width: 90%;
direction:ltr;
white-space: pre-wrap;
margin: -3px;
}

.item-floating-label {
display: block;
background-color: transparent;
box-shadow: none;

.input-label {
position: relative;
padding: 5px 0 0 0;
opacity: 0;
top: 10px;
@include transition(opacity .15s ease-in, top .2s linear);

&.has-input {
opacity: 1;
top: 0;
@include transition(opacity .15s ease-in, top .2s linear);
}
}
}


// Form Controls
// -------------------------------

// Shared size and type resets
textarea,
input[type="text"],
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="search"],
input[type="tel"],
input[type="color"] {
display: block;
padding-top: 2px;
padding-left: 0;
height: $line-height-computed + $font-size-base;
color: $input-color;
vertical-align: middle;
font-size: $font-size-base;
line-height: $font-size-base + 2;
}

.platform-ios,
.platform-android {
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"] {
padding-top: 8px;
}
}

.item-input {
input,
textarea {
width: 100%;
}
}

textarea {
padding-left: 0;
@include placeholder($input-color-placeholder, -3px);
}

// Reset height since textareas have rows
textarea {
height: auto;
}

// Everything else
textarea,
input[type="text"],
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="search"],
input[type="tel"],
input[type="color"] {
border: 0;
}

// Position radios and checkboxes better
input[type="radio"],
input[type="checkbox"] {
margin: 0;
line-height: normal;
}

// Reset width of input images, buttons, radios, checkboxes
.item-input {
input[type="file"],
input[type="image"],
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
width: auto; // Override of generic input selector
}
}

// Set the height of file to match text inputs
input[type="file"] {
line-height: $input-height-base;
}

// Text input classes to hide text caret during scroll
.previous-input-focus,
.cloned-text-input + input,
.cloned-text-input + textarea {
position: absolute !important;
left: -9999px;
width: 200px;
}


// Placeholder
// -------------------------------
input,
textarea {
@include placeholder();
}


// DISABLED STATE
// -------------------------------

// Disabled and read-only inputs
input[disabled],
select[disabled],
textarea[disabled],
input[readonly]:not(.cloned-text-input),
textarea[readonly]:not(.cloned-text-input),
select[readonly] {
background-color: $input-bg-disabled;
cursor: not-allowed;
}
// Explicitly reset the colors here
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
background-color: transparent;
}
@@ -0,0 +1,159 @@
/**
* Grid
* --------------------------------------------------
* Using flexbox for the grid, inspired by Philip Walton:
* http://philipwalton.github.io/solved-by-flexbox/demos/grids/
* By default each .col within a .row will evenly take up
* available width, and the height of each .col with take
* up the height of the tallest .col in the same .row.
*/

.row {
@include display-flex();
padding: ($grid-padding-width / 2);
width: 100%;
}

.row-wrap {
@include flex-wrap(wrap);
}

.row-no-padding {
padding: 0;

> .col {
padding: 0;
}
}

.row + .row {
margin-top: ($grid-padding-width / 2) * -1;
padding-top: 0;
}

.col {
@include flex(1);
display: block;
padding: ($grid-padding-width / 2);
width: 100%;
}


/* Vertically Align Columns */
/* .row-* vertically aligns every .col in the .row */
.row-top {
@include align-items(flex-start);
}
.row-bottom {
@include align-items(flex-end);
}
.row-center {
@include align-items(center);
}
.row-stretch {
@include align-items(stretch);
}
.row-baseline {
@include align-items(baseline);
}

/* .col-* vertically aligns an individual .col */
.col-top {
@include align-self(flex-start);
}
.col-bottom {
@include align-self(flex-end);
}
.col-center {
@include align-self(center);
}

/* Column Offsets */
.col-offset-10 {
margin-left: 10%;
}
.col-offset-20 {
margin-left: 20%;
}
.col-offset-25 {
margin-left: 25%;
}
.col-offset-33, .col-offset-34 {
margin-left: 33.3333%;
}
.col-offset-50 {
margin-left: 50%;
}
.col-offset-66, .col-offset-67 {
margin-left: 66.6666%;
}
.col-offset-75 {
margin-left: 75%;
}
.col-offset-80 {
margin-left: 80%;
}
.col-offset-90 {
margin-left: 90%;
}


/* Explicit Column Percent Sizes */
/* By default each grid column will evenly distribute */
/* across the grid. However, you can specify individual */
/* columns to take up a certain size of the available area */
.col-10 {
@include flex(0, 0, 10%);
max-width: 10%;
}
.col-20 {
@include flex(0, 0, 20%);
max-width: 20%;
}
.col-25 {
@include flex(0, 0, 25%);
max-width: 25%;
}
.col-33, .col-34 {
@include flex(0, 0, 33.3333%);
max-width: 33.3333%;
}
.col-40 {
@include flex(0, 0, 40%);
max-width: 40%;
}
.col-50 {
@include flex(0, 0, 50%);
max-width: 50%;
}
.col-60 {
@include flex(0, 0, 60%);
max-width: 60%;
}
.col-66, .col-67 {
@include flex(0, 0, 66.6666%);
max-width: 66.6666%;
}
.col-75 {
@include flex(0, 0, 75%);
max-width: 75%;
}
.col-80 {
@include flex(0, 0, 80%);
max-width: 80%;
}
.col-90 {
@include flex(0, 0, 90%);
max-width: 90%;
}


/* Responsive Grid Classes */
/* Adding a class of responsive-X to a row */
/* will trigger the flex-direction to */
/* change to column and add some margin */
/* to any columns in the row for clearity */

@include responsive-grid-break('.responsive-sm', $grid-responsive-sm-break);
@include responsive-grid-break('.responsive-md', $grid-responsive-md-break);
@include responsive-grid-break('.responsive-lg', $grid-responsive-lg-break);

Large diffs are not rendered by default.

@@ -0,0 +1,125 @@

/**
* Lists
* --------------------------------------------------
*/

.list {
position: relative;
padding-top: $item-border-width;
padding-bottom: $item-border-width;
padding-left: 0; // reset padding because ul and ol
margin-bottom: 20px;
}
.list:last-child {
margin-bottom: 0px;
&.card{
margin-bottom:40px;
}
}


/**
* List Header
* --------------------------------------------------
*/

.list-header {
margin-top: $list-header-margin-top;
padding: $list-header-padding;
background-color: $list-header-bg;
color: $list-header-color;
font-weight: bold;
}

// when its a card make sure it doesn't duplicate top and bottom borders
.card.list .list-item {
padding-right: 1px;
padding-left: 1px;
}


/**
* Cards and Inset Lists
* --------------------------------------------------
* A card and list-inset are close to the same thing, except a card as a box shadow.
*/

.card,
.list-inset {
overflow: hidden;
margin: ($content-padding * 2) $content-padding;
border-radius: $card-border-radius;
background-color: $card-body-bg;
}

.card {
padding-top: $item-border-width;
padding-bottom: $item-border-width;
box-shadow: $card-box-shadow;

.item {
border-left: 0;
border-right: 0;
}
.item:first-child {
border-top: 0;
}
.item:last-child {
border-bottom: 0;
}
}

.padding {
.card, .list-inset {
margin-left: 0;
margin-right: 0;
}
}

.card .item,
.list-inset .item,
.padding > .list .item
{
&:first-child {
border-top-left-radius: $card-border-radius;
border-top-right-radius: $card-border-radius;

.item-content {
border-top-left-radius: $card-border-radius;
border-top-right-radius: $card-border-radius;
}
}
&:last-child {
border-bottom-right-radius: $card-border-radius;
border-bottom-left-radius: $card-border-radius;

.item-content {
border-bottom-right-radius: $card-border-radius;
border-bottom-left-radius: $card-border-radius;
}
}
}

.card .item:last-child,
.list-inset .item:last-child {
margin-bottom: $item-border-width * -1;
}

.card .item,
.list-inset .item,
.padding > .list .item,
.padding-horizontal > .list .item {
margin-right: 0;
margin-left: 0;

&.item-input input {
padding-right: 44px;
}
}
.padding-left > .list .item {
margin-left: 0;
}
.padding-right > .list .item {
margin-right: 0;
}
@@ -0,0 +1,51 @@

/**
* Loading
* --------------------------------------------------
*/

.loading-container {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;

z-index: $z-index-loading;

@include display-flex();
@include justify-content(center);
@include align-items(center);

@include transition(0.2s opacity linear);
visibility: hidden;
opacity: 0;

&:not(.visible) .icon,
&:not(.visible) .spinner{
display: none;
}
&.visible {
visibility: visible;
}
&.active {
opacity: 1;
}

.loading {
padding: $loading-padding;

border-radius: $loading-border-radius;
background-color: $loading-bg-color;

color: $loading-text-color;

text-align: center;
text-overflow: ellipsis;
font-size: $loading-font-size;

h1, h2, h3, h4, h5, h6 {
color: $loading-text-color;
}
}
}
@@ -0,0 +1,70 @@

/**
* Menus
* --------------------------------------------------
* Side panel structure
*/

.menu {
position: absolute;
top: 0;
bottom: 0;
z-index: $z-index-menu;
overflow: hidden;

min-height: 100%;
max-height: 100%;
width: $menu-width;

background-color: $menu-bg;

.scroll-content {
z-index: $z-index-menu-scroll-content;
}

.bar-header {
z-index: $z-index-menu-bar-header;
}
}

.menu-content {
@include transform(none);
box-shadow: $menu-side-shadow;
}

.menu-open .menu-content .pane,
.menu-open .menu-content .scroll-content {
pointer-events: none;
}
.menu-open .menu-content .scroll-content .scroll {
pointer-events: none;
}
.menu-open .menu-content .scroll-content:not(.overflow-scroll) {
overflow: hidden;
}

.grade-b .menu-content,
.grade-c .menu-content {
@include box-sizing(content-box);
right: -1px;
left: -1px;
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
box-shadow: none;
}

.menu-left {
left: 0;
}

.menu-right {
right: 0;
}

.aside-open.aside-resizing .menu-right {
display: none;
}

.menu-animated {
@include transition-transform($menu-animation-speed ease);
}

Large diffs are not rendered by default.

@@ -0,0 +1,102 @@

/**
* Modals
* --------------------------------------------------
* Modals are independent windows that slide in from off-screen.
*/

.modal-backdrop,
.modal-backdrop-bg {
position: fixed;
top: 0;
left: 0;
z-index: $z-index-modal;
width: 100%;
height: 100%;
}

.modal-backdrop-bg {
pointer-events: none;
}

.modal {
display: block;
position: absolute;
top: 0;
z-index: $z-index-modal;
overflow: hidden;
min-height: 100%;
width: 100%;
background-color: $modal-bg-color;
}

@media (min-width: $modal-inset-mode-break-point) {
// inset mode is when the modal doesn't fill the entire
// display but instead is centered within a large display
.modal {
top: $modal-inset-mode-top;
right: $modal-inset-mode-right;
bottom: $modal-inset-mode-bottom;
left: $modal-inset-mode-left;
min-height: $modal-inset-mode-min-height;
width: (100% - $modal-inset-mode-left - $modal-inset-mode-right);
}

.modal.ng-leave-active {
bottom: 0;
}

// remove ios header padding from inset header
.platform-ios.platform-cordova .modal-wrapper .modal {
.bar-header:not(.bar-subheader) {
height: $bar-height;
> * {
margin-top: 0;
}
}
.tabs-top > .tabs,
.tabs.tabs-top {
top: $bar-height;
}
.has-header,
.bar-subheader {
top: $bar-height;
}
.has-subheader {
top: $bar-height + $bar-subheader-height;
}
.has-header.has-tabs-top {
top: $bar-height + $tabs-height;
}
.has-header.has-subheader.has-tabs-top {
top: $bar-height + $bar-subheader-height + $tabs-height;
}
}

.modal-backdrop-bg {
@include transition(opacity 300ms ease-in-out);
background-color: $modal-backdrop-bg-active;
opacity: 0;
}

.active .modal-backdrop-bg {
opacity: 0.5;
}
}

// disable clicks on all but the modal
.modal-open {
pointer-events: none;

.modal,
.modal-backdrop {
pointer-events: auto;
}
// prevent clicks on modal when loading overlay is active though
&.loading-active {
.modal,
.modal-backdrop {
pointer-events: none;
}
}
}
@@ -0,0 +1,77 @@

/**
* Platform
* --------------------------------------------------
* Platform specific tweaks
*/

.platform-ios.platform-cordova {
// iOS has a status bar which sits on top of the header.
// Bump down everything to make room for it. However, if
// if its in Cordova, and set to fullscreen, then disregard the bump.
&:not(.fullscreen) {
.bar-header:not(.bar-subheader) {
height: $bar-height + $ios-statusbar-height;

&.item-input-inset .item-input-wrapper {
margin-top: 19px !important;
}

> * {
margin-top: $ios-statusbar-height;
}
}
.tabs-top > .tabs,
.tabs.tabs-top {
top: $bar-height + $ios-statusbar-height;
}

.has-header,
.bar-subheader {
top: $bar-height + $ios-statusbar-height;
}
.has-subheader {
top: $bar-height + $bar-subheader-height + $ios-statusbar-height;
}
.has-header.has-tabs-top {
top: $bar-height + $tabs-height + $ios-statusbar-height;
}
.has-header.has-subheader.has-tabs-top {
top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height;
}
}
.popover{
.bar-header:not(.bar-subheader) {
height: $bar-height;
&.item-input-inset .item-input-wrapper {
margin-top: -1px;
}
> * {
margin-top: 0;
}
}
.has-header,
.bar-subheader {
top: $bar-height;
}
.has-subheader {
top: $bar-height + $bar-subheader-height;
}
}
&.status-bar-hide {
// Cordova doesn't adjust the body height correctly, this makes up for it
margin-bottom: 20px;
}
}

@media (orientation:landscape) {
.platform-ios.platform-browser.platform-ipad {
position: fixed; // required for iPad 7 Safari
}
}

.platform-c:not(.enable-transitions) * {
// disable transitions on grade-c devices (Android 2)
-webkit-transition: none !important;
transition: none !important;
}
@@ -0,0 +1,168 @@

/**
* Popovers
* --------------------------------------------------
* Popovers are independent views which float over content
*/

.popover-backdrop {
position: fixed;
top: 0;
left: 0;
z-index: $z-index-popover;
width: 100%;
height: 100%;
background-color: $popover-backdrop-bg-inactive;

&.active {
background-color: $popover-backdrop-bg-active;
}
}

.popover {
position: absolute;
top: 25%;
left: 50%;
z-index: $z-index-popover;
display: block;
margin-top: 12px;
margin-left: -$popover-width / 2;
height: $popover-height;
width: $popover-width;
background-color: $popover-bg-color;
box-shadow: $popover-box-shadow;
opacity: 0;

.item:first-child {
border-top: 0;
}

.item:last-child {
border-bottom: 0;
}

&.popover-bottom {
margin-top: -12px;
}
}


// Set popover border-radius
.popover,
.popover .bar-header {
border-radius: $popover-border-radius;
}
.popover .scroll-content {
z-index: 1;
margin: 2px 0;
}
.popover .bar-header {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.popover .has-header {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.popover-arrow {
display: none;
}


// iOS Popover
.platform-ios {

.popover {
box-shadow: $popover-box-shadow-ios;
border-radius: $popover-border-radius-ios;
}
.popover .bar-header {
@include border-top-radius($popover-border-radius-ios);
}
.popover .scroll-content {
margin: 8px 0;
border-radius: $popover-border-radius-ios;
}
.popover .scroll-content.has-header {
margin-top: 0;
}
.popover-arrow {
position: absolute;
display: block;
top: -17px;
width: 30px;
height: 19px;
overflow: hidden;

&:after {
position: absolute;
top: 12px;
left: 5px;
width: 20px;
height: 20px;
background-color: $popover-bg-color;
border-radius: 3px;
content: '';
@include rotate(-45deg);
}
}
.popover-bottom .popover-arrow {
top: auto;
bottom: -10px;
&:after {
top: -6px;
}
}
}


// Android Popover
.platform-android {

.popover {
margin-top: -32px;
background-color: $popover-bg-color-android;
box-shadow: $popover-box-shadow-android;

.item {
border-color: $popover-bg-color-android;
background-color: $popover-bg-color-android;
color: #4d4d4d;
}
&.popover-bottom {
margin-top: 32px;
}
}

.popover-backdrop,
.popover-backdrop.active {
background-color: transparent;
}
}


// disable clicks on all but the popover
.popover-open {
pointer-events: none;

.popover,
.popover-backdrop {
pointer-events: auto;
}
// prevent clicks on popover when loading overlay is active though
&.loading-active {
.popover,
.popover-backdrop {
pointer-events: none;
}
}
}


// wider popover on larger viewports
@media (min-width: $popover-large-break-point) {
.popover {
width: $popover-large-width;
margin-left: -$popover-large-width / 2;
}
}
@@ -0,0 +1,110 @@

/**
* Popups
* --------------------------------------------------
*/

.popup-container {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0,0,0,0);

@include display-flex();
@include justify-content(center);
@include align-items(center);

z-index: $z-index-popup;

// Start hidden
visibility: hidden;
&.popup-showing {
visibility: visible;
}

&.popup-hidden .popup {
@include animation-name(scaleOut);
@include animation-duration($popup-leave-animation-duration);
@include animation-timing-function(ease-in-out);
@include animation-fill-mode(both);
}

&.active .popup {
@include animation-name(superScaleIn);
@include animation-duration($popup-enter-animation-duration);
@include animation-timing-function(ease-in-out);
@include animation-fill-mode(both);
}

.popup {
width: $popup-width;
max-width: 100%;
max-height: 90%;

border-radius: $popup-border-radius;
background-color: $popup-background-color;

@include display-flex();
@include flex-direction(column);
}

input,
textarea {
width: 100%;
}
}

.popup-head {
padding: 15px 10px;
border-bottom: 1px solid #eee;
text-align: center;
}
.popup-title {
margin: 0;
padding: 0;
font-size: 15px;
}
.popup-sub-title {
margin: 5px 0 0 0;
padding: 0;
font-weight: normal;
font-size: 11px;
}
.popup-body {
padding: 10px;
overflow: auto;
}

.popup-buttons {
@include display-flex();
@include flex-direction(row);
padding: 10px;
min-height: $popup-button-min-height + 20;

.button {
@include flex(1);
display: block;
min-height: $popup-button-min-height;
border-radius: $popup-button-border-radius;
line-height: $popup-button-line-height;

margin-right: 5px;
&:last-child {
margin-right: 0px;
}
}
}

.popup-open {
pointer-events: none;

&.modal-open .modal {
pointer-events: none;
}

.popup-backdrop, .popup {
pointer-events: auto;
}
}
@@ -0,0 +1,11 @@

/**
* Progress
* --------------------------------------------------
*/

progress {
display: block;
margin: $progress-margin;
width: $progress-width;
}
@@ -0,0 +1,47 @@

/**
* Radio Button Inputs
* --------------------------------------------------
*/

.item-radio {
padding: 0;

&:hover {
cursor: pointer;
}
}

.item-radio .item-content {
/* give some room to the right for the checkmark icon */
padding-right: $item-padding * 4;
}

.item-radio .radio-icon {
/* checkmark icon will be hidden by default */
position: absolute;
top: 0;
right: 0;
z-index: $z-index-item-radio;
visibility: hidden;
padding: $item-padding - 2;
height: 100%;
font-size: 24px;
}

.item-radio input {
/* hide any radio button inputs elements (the ugly circles) */
position: absolute;
left: -9999px;

&:checked + .radio-content .item-content {
/* style the item content when its checked */
background: #f7f7f7;
}

&:checked + .radio-content .radio-icon {
/* show the checkmark icon when its checked */
visibility: visible;
}
}

@@ -0,0 +1,160 @@

/**
* Range
* --------------------------------------------------
*/

.range input{
display: inline-block;
overflow: hidden;
margin-top: 5px;
margin-bottom: 5px;
padding-right: 2px;
padding-left: 1px;
width: auto;
height: $range-slider-height + 15;
outline: none;
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, $range-default-track-bg), color-stop(100%, $range-default-track-bg));
background: linear-gradient(to right, $range-default-track-bg 0%, $range-default-track-bg 100%);
background-position: center;
background-size: 99% $range-track-height;
background-repeat: no-repeat;
-webkit-appearance: none;

&::-moz-focus-outer {
/* hide the focus outline in Firefox */
border: 0;
}

&::-webkit-slider-thumb {
position: relative;
width: $range-slider-width;
height: $range-slider-height;
border-radius: $range-slider-border-radius;
background-color: $toggle-handle-off-bg-color;
box-shadow: $range-slider-box-shadow;
cursor: pointer;
-webkit-appearance: none;
border: 0;
}

&::-webkit-slider-thumb:before{
/* what creates the colorful line on the left side of the slider */
position: absolute;
top: ($range-slider-height / 2) - ($range-track-height / 2);
left: -2001px;
width: 2000px;
height: $range-track-height;
background: $dark;
content: ' ';
}

&::-webkit-slider-thumb:after {
/* create a larger (but hidden) hit area */
position: absolute;
top: -15px;
left: -15px;
padding: 30px;
content: ' ';
//background: red;
//opacity: .5;
}
&::-ms-fill-lower{
height: $range-track-height;
background:$dark;
}
/*
&::-ms-track{
background: transparent;
border-color: transparent;
border-width: 11px 0 16px;
color:transparent;
margin-top:20px;
}
&::-ms-thumb {
width: $range-slider-width;
height: $range-slider-height;
border-radius: $range-slider-border-radius;
background-color: $toggle-handle-off-bg-color;
border-color:$toggle-handle-off-bg-color;
box-shadow: $range-slider-box-shadow;
margin-left:1px;
margin-right:1px;
outline:none;
}
&::-ms-fill-upper {
height: $range-track-height;
background:$range-default-track-bg;
}
*/
}

.range {
@include display-flex();
@include align-items(center);
padding: 2px 11px;

&.range-light {
input { @include range-style($range-light-track-bg); }
}
&.range-stable {
input { @include range-style($range-stable-track-bg); }
}
&.range-positive {
input { @include range-style($range-positive-track-bg); }
}
&.range-calm {
input { @include range-style($range-calm-track-bg); }
}
&.range-balanced {
input { @include range-style($range-balanced-track-bg); }
}
&.range-assertive {
input { @include range-style($range-assertive-track-bg); }
}
&.range-energized {
input { @include range-style($range-energized-track-bg); }
}
&.range-royal {
input { @include range-style($range-royal-track-bg); }
}
&.range-dark {
input { @include range-style($range-dark-track-bg); }
}
}

.range .icon {
@include flex(0);
display: block;
min-width: $range-icon-size;
text-align: center;
font-size: $range-icon-size;
}

.range input {
@include flex(1);
display: block;
margin-right: 10px;
margin-left: 10px;
}

.range-label {
@include flex(0, 0, auto);
display: block;
white-space: nowrap;
}

.range-label:first-child {
padding-left: 5px;
}
.range input + .range-label {
padding-right: 5px;
padding-left: 0;
}

// WP range height must be auto
.platform-windowsphone{
.range input{
height:auto;
}
}
@@ -0,0 +1,113 @@

// Scroll refresher (for pull to refresh)
.scroll-refresher {
position: absolute;
top: -60px;
right: 0;
left: 0;
overflow: hidden;
margin: auto;
height: 60px;
.ionic-refresher-content {
position: absolute;
bottom: 15px;
left: 0;
width: 100%;
color: $scroll-refresh-icon-color;
text-align: center;

font-size: 30px;

.text-refreshing,
.text-pulling {
font-size: 16px;
line-height: 16px;
}
&.ionic-refresher-with-text {
bottom: 10px;
}
}

.icon-refreshing,
.icon-pulling {
width: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.icon-pulling {
@include animation-name(refresh-spin-back);
@include animation-duration(200ms);
@include animation-timing-function(linear);
@include animation-fill-mode(none);
-webkit-transform: translate3d(0,0,0) rotate(0deg);
transform: translate3d(0,0,0) rotate(0deg);
}
.icon-refreshing,
.text-refreshing {
display: none;
}
.icon-refreshing {
@include animation-duration(1.5s);
}

&.active {
.icon-pulling:not(.pulling-rotation-disabled) {
@include animation-name(refresh-spin);
-webkit-transform: translate3d(0,0,0) rotate(-180deg);
transform: translate3d(0,0,0) rotate(-180deg);
}
&.refreshing {
@include transition(-webkit-transform .2s);
@include transition(transform .2s);
-webkit-transform: scale(1,1);
transform: scale(1,1);

.icon-pulling,
.text-pulling {
display: none;
}
.icon-refreshing,
.text-refreshing {
display: block;
}
&.refreshing-tail {
-webkit-transform: scale(0,0);
transform: scale(0,0);
}
}
}
}
.overflow-scroll > .scroll{
&.overscroll{
position:fixed;
right: 0;
left: 0;
}
-webkit-overflow-scrolling:touch;
width:100%;
}

.overflow-scroll.padding > .scroll.overscroll{
padding: 10px;
}
@-webkit-keyframes refresh-spin {
0% { -webkit-transform: translate3d(0,0,0) rotate(0); }
100% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
}

@keyframes refresh-spin {
0% { transform: translate3d(0,0,0) rotate(0); }
100% { transform: translate3d(0,0,0) rotate(180deg); }
}

@-webkit-keyframes refresh-spin-back {
0% { -webkit-transform: translate3d(0,0,0) rotate(180deg); }
100% { -webkit-transform: translate3d(0,0,0) rotate(0); }
}

@keyframes refresh-spin-back {
0% { transform: translate3d(0,0,0) rotate(180deg); }
100% { transform: translate3d(0,0,0) rotate(0); }
}
@@ -0,0 +1,365 @@

/**
* Resets
* --------------------------------------------------
* Adapted from normalize.css and some reset.css. We don't care even one
* bit about old IE, so we don't need any hacks for that in here.
*
* There are probably other things we could remove here, as well.
*
* normalize.css v2.1.2 | MIT License | git.io/normalize
* Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
* http://cssreset.com
*/

html, body, div, span, applet, object, 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, i, u, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, fieldset,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
font: inherit;
font-size: 100%;
}

ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}

/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/

audio:not([controls]) {
display: none;
height: 0;
}

/**
* Hide the `template` element in IE, Safari, and Firefox < 22.
*/

[hidden],
template {
display: none;
}

script {
display: none !important;
}

/* ==========================================================================
Base
========================================================================== */

/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/

html {
@include user-select(none);
font-family: sans-serif; /* 1 */
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}

/**
* Remove default margin.
*/

body {
margin: 0;
line-height: 1;
}


/**
* Remove default outlines.
*/
a,
button,
:focus,
a:focus,
button:focus,
a:active,
a:hover {
outline: 0;
}

/* *
* Remove tap highlight color
*/

a {
-webkit-user-drag: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-tap-highlight-color: transparent;

&[href]:hover {
cursor: pointer;
}
}

/* ==========================================================================
Typography
========================================================================== */


/**
* Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
*/

b,
strong {
font-weight: bold;
}

/**
* Address styling not present in Safari 5 and Chrome.
*/

dfn {
font-style: italic;
}

/**
* Address differences between Firefox and other browsers.
*/

hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}


/**
* Correct font family set oddly in Safari 5 and Chrome.
*/

code,
kbd,
pre,
samp {
font-size: 1em;
font-family: monospace, serif;
}

/**
* Improve readability of pre-formatted text in all browsers.
*/

pre {
white-space: pre-wrap;
}

/**
* Set consistent quote types.
*/

q {
quotes: "\201C" "\201D" "\2018" "\2019";
}

/**
* Address inconsistent and variable font size in all browsers.
*/

small {
font-size: 80%;
}

/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/

sub,
sup {
position: relative;
vertical-align: baseline;
font-size: 75%;
line-height: 0;
}

sup {
top: -0.5em;
}

sub {
bottom: -0.25em;
}

/**
* Define consistent border, margin, and padding.
*/

fieldset {
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
border: 1px solid #c0c0c0;
}

/**
* 1. Correct `color` not being inherited in IE 8/9.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/

legend {
padding: 0; /* 2 */
border: 0; /* 1 */
}

/**
* 1. Correct font family not being inherited in all browsers.
* 2. Correct font size not being inherited in all browsers.
* 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
* 4. Remove any default :focus styles
* 5. Make sure webkit font smoothing is being inherited
* 6. Remove default gradient in Android Firefox / FirefoxOS
*/

button,
input,
select,
textarea {
margin: 0; /* 3 */
font-size: 100%; /* 2 */
font-family: inherit; /* 1 */
outline-offset: 0; /* 4 */
outline-style: none; /* 4 */
outline-width: 0; /* 4 */
-webkit-font-smoothing: inherit; /* 5 */
background-image: none; /* 6 */
}

/**
* Address Firefox 4+ setting `line-height` on `input` using `importnt` in
* the UA stylesheet.
*/

button,
input {
line-height: normal;
}

/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
* Correct `select` style inheritance in Firefox 4+ and Opera.
*/

button,
select {
text-transform: none;
}

/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
cursor: pointer; /* 3 */
-webkit-appearance: button; /* 2 */
}

/**
* Re-set default cursor for disabled elements.
*/

button[disabled],
html input[disabled] {
cursor: default;
}

/**
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
* (include `-moz` to future-proof).
*/

input[type="search"] {
-webkit-box-sizing: content-box; /* 2 */
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield; /* 1 */
}

/**
* Remove inner padding and search cancel button in Safari 5 and Chrome
* on OS X.
*/

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}

/**
* Remove inner padding and border in Firefox 4+.
*/

button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}

/**
* 1. Remove default vertical scrollbar in IE 8/9.
* 2. Improve readability and alignment in all browsers.
*/

textarea {
overflow: auto; /* 1 */
vertical-align: top; /* 2 */
}


img {
-webkit-user-drag: none;
}

/* ==========================================================================
Tables
========================================================================== */

/**
* Remove most spacing between table cells.
*/

table {
border-spacing: 0;
border-collapse: collapse;
}