| @@ -0,0 +1,18 @@ | ||
| module SenchaTouch | ||
| module SassExtensions | ||
| module Functions | ||
| module ThemeImages | ||
| def theme_image(theme, path, mime_type = nil) | ||
| path = path.value | ||
| images_path = File.join(File.dirname(__FILE__), "..", "images", theme.value) | ||
| real_path = File.join(images_path, path) | ||
| inline_image_string(data(real_path), compute_mime_type(path, mime_type)) | ||
| end | ||
| end | ||
| end | ||
| end | ||
| end | ||
|
|
||
| module Sass::Script::Functions | ||
| include SenchaTouch::SassExtensions::Functions::ThemeImages | ||
| end |
| @@ -0,0 +1,2 @@ | ||
| @import 'core'; | ||
| @import 'widgets'; |
| @@ -0,0 +1,3 @@ | ||
| @import 'core/reset'; | ||
| @import 'core/core'; | ||
| @import 'core/layout'; |
| @@ -0,0 +1,2 @@ | ||
| @import 'variables'; | ||
| @import 'mixins'; |
| @@ -0,0 +1,196 @@ | ||
| @import 'compass/css3'; | ||
|
|
||
| /** | ||
| * @class Global_CSS | ||
| */ | ||
|
|
||
| /** | ||
| * Add a background gradient to a selector. | ||
| * | ||
| * .my-element { | ||
| * @include background-gradient(green, 'recessed') | ||
| * } | ||
| * | ||
| * @param {color} $bg-color The base color of the gradient. | ||
| * @param {string} $type The style of the gradient, one of five pre-defined options: matte, bevel, glossy, recessed, or flat. | ||
| */ | ||
| @mixin background-gradient($bg-color, $type: $base-gradient) { | ||
| background-color: $bg-color; | ||
| @if $include-highlights { | ||
| @if $type == bevel { | ||
| @include background-image(linear-gradient(color_stops(lighten($bg-color, 30%), lighten($bg-color, 15%) 2%, lighten($bg-color, 8%) 30%, $bg-color 65%, darken($bg-color, 10%)))); | ||
| } @else if $type == glossy { | ||
| @include background-image(linear-gradient(color_stops(lighten($bg-color, 15%), lighten($bg-color, 5%) 50%, $bg-color 51%, darken($bg-color, 5%)))); | ||
| } @else if $type == recessed { | ||
| @include background-image(linear-gradient(color_stops(darken($bg-color, 10%), darken($bg-color, 5%) 10%, $bg-color 65%, lighten($bg-color, .5%)))); | ||
| } @else if $type == matte { | ||
| @include background-image(linear-gradient(color_stops(lighten($bg-color, 30%), lighten($bg-color, 7%) 2%, darken($bg-color, 7%)))); | ||
| } @else { | ||
| background-image: none; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Includes a base64-encoded icon for use within tab bars and buttons (With the component parameter iconMask: true). | ||
| * | ||
| * @include pictos-iconmask('attachment'); | ||
| * | ||
| * @param {string} $name The name of the icon to be included. This is to match the name of the icon file (located at resources/themes/images/default/pictos) without its extention (.png). | ||
| */ | ||
| @mixin pictos-iconmask($name) { | ||
| .x-tab .x-button-icon.#{$name}, | ||
| .x-button .x-button-icon.x-icon-mask.#{$name} { | ||
| -webkit-mask-image: theme_image($theme-name, "pictos/" + $name + ".png"); | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Includes the default styles for toolbar buttons, mostly used as a helper function. | ||
| * | ||
| * @param {color} $bg-color Base color to be used for the button. | ||
| * @param {color} $type Gradient style for the button, will automatically use "recessed" when pressed. | ||
| */ | ||
| @mixin toolbar-button($bg-color, $type: $button-gradient){ | ||
| &, .x-toolbar & { | ||
| border: 1px solid darken($bg-color, 20%); | ||
| border-top-color: darken($bg-color, 15%); | ||
| @include color-by-background($bg-color); | ||
|
|
||
| &.x-button-back:before, &.x-button-forward:before { | ||
| background: darken($bg-color, 20%); | ||
| } | ||
|
|
||
| &, &.x-button-back:after, &.x-button-forward:after { | ||
| @include background-gradient($bg-color, $type); | ||
| } | ||
|
|
||
| .x-button-icon.x-icon-mask { | ||
| @include mask-by-background($bg-color); | ||
| } | ||
|
|
||
| &.x-button-pressing, &.x-button-pressed, &.x-button-active { | ||
| &, &:after { | ||
| @include background-gradient(darken($bg-color, 3%), 'recessed'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Adds a small text shadow (or highlight) to give the impression of beveled text. | ||
| * | ||
| * @param {string} $type Either shadow or highlight, decides whether to apply a light shadow or dark. | ||
| */ | ||
| @mixin bevel-text($type: 'shadow') { | ||
| @if $include-highlights { | ||
| @if $type == shadow { | ||
| text-shadow: rgba(0,0,0,.5) 0 -.08em 0; | ||
| } @else { | ||
| text-shadow: rgba(255,255,255,.25) 0 .08em 0; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Adds a small box shadow (or highlight) to give the impression of being beveled. | ||
| * | ||
| * @param {string} $type Either shadow or highlight, decides whether to apply a light shadow or dark. | ||
| */ | ||
| @mixin bevel-box($type: 'light') { | ||
| @if $include-highlights { | ||
| @if $type == shadow { | ||
| -webkit-box-shadow: rgba(#000, .5) 0 -.06em 0; | ||
| } @else { | ||
| -webkit-box-shadow: rgba(#fff, .35) 0 .06em 0; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Adds basic styles to :before or :after pseudo-elements. | ||
| * | ||
| * .my-element:after { | ||
| * @include insertion(50px, 50px); | ||
| * } | ||
| * | ||
| * @param {measurement} $width Height of pseudo-element. | ||
| * @param {measurement} $height Height of pseudo-element. | ||
| * @param {measurement} $top Top positioning of pseudo-element. | ||
| * @param {measurement} $left Left positioning of pseudo-element. | ||
| * | ||
| */ | ||
| @mixin insertion($width: 30px, $height: 30px, $top: 0, $left: 0) { | ||
| content: ""; | ||
| position: absolute; | ||
| width: $width; | ||
| height: $height; | ||
| top: $top; | ||
| left: $left; | ||
| } | ||
|
|
||
| /** | ||
| * Makes an element stretch to its parent's bounds. | ||
| */ | ||
| @mixin stretch { | ||
| position: absolute; | ||
| top: 0; | ||
| right: 0; | ||
| bottom: 0; | ||
| left: 0; | ||
| } | ||
|
|
||
| /** | ||
| * Colors the text of an element based on lightness of its background. | ||
| * | ||
| * .my-element { | ||
| * @include color-by-background(#fff); // Colors text black. | ||
| * } | ||
| * | ||
| * .my-element { | ||
| * @include color-by-background(#fff, 40%); // Colors text gray. | ||
| * } | ||
| * | ||
| * @param {color} $bg-color Background color of element. | ||
| * @param {percent} $contrast Contrast of text color to its background. | ||
| * | ||
| */ | ||
| @mixin color-by-background($bg-color, $contrast: 100%) { | ||
| @if (lightness($bg-color) > 50) { color: darken($bg-color, $contrast) } | ||
| @else { color: lighten($bg-color, $contrast) } | ||
| } | ||
|
|
||
| /** | ||
| * Bevels the text based on its background. | ||
| * | ||
| * @param {color} $bg-color Background color of element. | ||
| * @see bevel-text | ||
| * | ||
| */ | ||
| @mixin bevel-by-background($bg-color) { | ||
| @if (lightness($bg-color) > 50) { @include bevel-text(light) } | ||
| @else { @include bevel-text; } | ||
| } | ||
|
|
||
| /** | ||
| * Creates a background gradient for masked elements, based on the lightness of their background. | ||
| * | ||
| * @param {color} $bg-color Background color of element. | ||
| * @param {percent} $percent Contrast of the new gradient to its background. | ||
| * @param {percent} $style Gradient style of the gradient. | ||
| * @see background-gradient | ||
| * | ||
| */ | ||
| @mixin mask-by-background($bg-color, $contrast: 100%, $style: $base-gradient) { | ||
| @if (lightness($bg-color) > 50) { @include background-gradient(darken($bg-color, $contrast), $style) } | ||
| @else { @include background-gradient(lighten($bg-color, $contrast), $style) } | ||
| } | ||
|
|
||
| /** | ||
| * Makes the element text overflow to use ellipsis. | ||
| */ | ||
| @mixin ellipsis { | ||
| white-space: nowrap; | ||
| overflow: hidden; | ||
| text-overflow: ellipsis; | ||
| } |
| @@ -0,0 +1,116 @@ | ||
| $theme-name: 'default'; | ||
|
|
||
| /** | ||
| * @class Global_CSS | ||
| * | ||
| * Global CSS variables and mixins of Sencha Touch. | ||
| */ | ||
|
|
||
| /** | ||
| * @var {boolean} $include-html-style | ||
| * Optionally remove included HTML styles/typography (for components with styleHtmlContent: true). | ||
| * Styles are scoped to .x-html. Set to false to reduce CSS weight. | ||
| */ | ||
| $include-html-style: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-default-icons | ||
| * Optionally remove the default icon set which includes the following toolbar and tab bar icons: action, | ||
| * add, arrow_down, arrow_left, arrow_right, arrow_up, bookmarks, compose, delete, download, favorites, | ||
| * home, info, locate, maps, more, organize, refresh, reply, search, settings, star, team, time, trash, | ||
| * and user. Set to false to reduce CSS weight. | ||
| */ | ||
| $include-default-icons: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-form-sliders | ||
| * Decides if default HTML styles are included (for components with styleHtmlContent: true). Class is applied to .x-html. | ||
| */ | ||
| $include-form-sliders: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-floating-panels | ||
| * Decides whether or not to include floating panels (useful to disable for iPhone applications which do not typically have floating menus). | ||
| */ | ||
| $include-floating-panels: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-default-uis | ||
| * Decides whether or not to include the default UIs for all components. | ||
| */ | ||
| $include-default-uis: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-highlights=true | ||
| * Optionally disable all gradients, text-shadows, and box-shadows. Useful for CSS debugging, | ||
| * non-performant browsers, or minimalist designs. | ||
| */ | ||
| $include-highlights: true !default; // Can disable all theme-generated gradients, text-shadows, and box-shadows. | ||
|
|
||
| /** | ||
| * @var {boolean} $include-border-radius | ||
| * Optionally disable all border-radius. Useful for CSS debugging, non-performant browsers, or minimalist designs. | ||
| */ | ||
| $include-border-radius: true !default; // Can disable all rounded corners | ||
|
|
||
| /** | ||
| * @var {boolean} $basic-slider | ||
| * Optionally remove CSS3 effects from the slider component for improved performance. | ||
| */ | ||
| $basic-slider: false !default; | ||
|
|
||
| /** | ||
| * @var {color} $base-color | ||
| * The primary color variable from which most elements derive their color scheme. | ||
| */ | ||
| $base-color: #1985D0 !default; // Triton Blue | ||
|
|
||
| /** | ||
| * @var {string} $base-gradient | ||
| * The primary gradient variable from which most elements derive their color scheme. | ||
| * @see background-gradient | ||
| */ | ||
| $base-gradient: 'matte' !default; | ||
|
|
||
| /** | ||
| * @var {font-family} $font-family | ||
| * The font-family to be used throughout the theme. | ||
| * @see background-gradient | ||
| */ | ||
| $font-family: "Helvetica Neue", HelveticaNeue, "Helvetica-Neue", Helvetica, "BBAlpha Sans", sans-serif !default; | ||
|
|
||
| /** | ||
| * @var {color} $alert-color | ||
| * Color used for elements like badges, errors, and "decline" UIs (eg. on buttons). | ||
| */ | ||
| $alert-color: red !default; | ||
|
|
||
| /** | ||
| * @var {color} $confirm-color | ||
| * Color used for elements like success messages, and "confirm" UIs (eg. on buttons). | ||
| */ | ||
| $confirm-color: #92cf00 !default; // Green | ||
|
|
||
| /** | ||
| * @var {color} $active-color | ||
| * Color used for elements like selected rows, "action" UIs (eg. on buttons) and certain overlays like the picker mask. | ||
| */ | ||
| $active-color: darken(saturate($base-color, 55%), 10%) !default; | ||
|
|
||
| /** | ||
| * @var {color} $neutral-color | ||
| * Color used for the neautral `ui` for Toolbars and Tabbars. | ||
| */ | ||
| $neutral-color: #e0e0e0; | ||
|
|
||
| /** | ||
| * @var {color} $page-bg-color | ||
| * Background color for fullscreen components. | ||
| */ | ||
| $page-bg-color: #eee !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $global-row-height | ||
| * The minimum row height for items like toolbars and list items. | ||
| */ | ||
| $global-row-height: 2.6em !default; |
| @@ -0,0 +1,16 @@ | ||
| @import 'widgets/map'; | ||
| @import 'widgets/picker'; | ||
| @import 'widgets/panel'; | ||
| @import 'widgets/toolbar'; | ||
| @import 'widgets/buttons'; | ||
| @import 'widgets/tabs'; | ||
| @import 'widgets/carousel'; | ||
| @import 'widgets/indexbar'; | ||
| @import 'widgets/list'; | ||
| @import 'widgets/form'; | ||
| @import 'widgets/sheets'; | ||
| @import 'widgets/msgbox'; | ||
| @import 'widgets/toolbar-forms'; | ||
| @import 'widgets/loading-spinner'; | ||
| @import 'widgets/img'; | ||
| @import 'widgets/media'; |
| @@ -0,0 +1,189 @@ | ||
| @import '../global'; | ||
| @import 'compass/css3/box-sizing'; | ||
| @import 'blueprint/typography'; | ||
|
|
||
| $experimental-support-for-mozilla: false; | ||
| $experimental-support-for-opera: false; | ||
| $experimental-support-for-microsoft: false; | ||
| $experimental-support-for-khtml: false; | ||
|
|
||
| html, body { | ||
| font-family: $font-family; | ||
| font-weight: normal; | ||
| position: relative; | ||
| -webkit-text-size-adjust: none; | ||
| } | ||
|
|
||
| body.x-desktop { | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| *, *:after, *:before { | ||
| @include box-sizing(border-box); | ||
| -webkit-tap-highlight-color: rgba(0, 0, 0, 0); | ||
| -webkit-user-select: none; | ||
| -webkit-touch-callout: none; | ||
| -webkit-user-drag: none; | ||
| } | ||
|
|
||
| .x-ios.x-tablet .x-landscape * { | ||
| -webkit-text-stroke: 1px transparent; | ||
| } | ||
|
|
||
| body { | ||
| font-size: 104%; | ||
| } | ||
|
|
||
| body.x-ios { | ||
| -webkit-backface-visibility: hidden; | ||
| } | ||
|
|
||
| body.x-android.x-phone { | ||
| font-size: 116%; | ||
| } | ||
|
|
||
| body.x-android.x-phone.x-silk { | ||
| font-size: 130%; | ||
| } | ||
|
|
||
| body.x-ios.x-phone { | ||
| font-size: 114%; | ||
| } | ||
|
|
||
| body.x-desktop { | ||
| font-size: 114%; | ||
| } | ||
|
|
||
| input, textarea { | ||
| -webkit-user-select: text; | ||
| } | ||
|
|
||
| .x-hidden-visibility { | ||
| visibility: hidden !important; | ||
| } | ||
|
|
||
| .x-hidden-display { | ||
| display: none !important; | ||
| } | ||
|
|
||
| .x-hidden-offsets { | ||
| position: absolute !important; | ||
| left: -10000em; | ||
| top: -10000em; | ||
| visibility: hidden; | ||
| } | ||
|
|
||
| .x-fullscreen { | ||
| position: absolute !important; | ||
| // removing this so floating items dont always stick to the top. i've seen no downside to this. ^robert | ||
| // top: 0px; | ||
| // left: 0px; | ||
| } | ||
|
|
||
| .x-desktop .x-body-stretcher { | ||
| margin-bottom: 0px; | ||
| } | ||
|
|
||
| .x-mask { | ||
| $min-width: 8.5em; | ||
|
|
||
| position: absolute; | ||
| top: 0; | ||
| left: 0; | ||
| bottom: 0; | ||
| right: 0; | ||
| height: 100%; | ||
| z-index: 10; | ||
|
|
||
| @include display-box; | ||
| @include box-align(center); | ||
| @include box-pack(center); | ||
|
|
||
| background: rgba(0,0,0,.3) center center no-repeat; | ||
|
|
||
| &.x-mask-gray { | ||
| background-color: rgba(0, 0, 0, 0.5); | ||
| } | ||
|
|
||
| &.x-mask-transparent { | ||
| background-color: transparent; | ||
| } | ||
|
|
||
| .x-mask-inner { | ||
| background: rgba(0, 0, 0, .25); | ||
| color: #fff; | ||
| text-align: center; | ||
| padding: .4em; | ||
| font-size: .95em; | ||
| font-weight: bold; | ||
| @if $include-border-radius { @include border-radius(.5em); } | ||
| } | ||
|
|
||
| .x-loading-spinner-outer { | ||
| @include display-box; | ||
| @include box-orient(vertical); | ||
| @include box-align(center); | ||
| @include box-pack(center); | ||
| width: 100%; | ||
| min-width: $min-width; | ||
| height: $min-width; | ||
| } | ||
|
|
||
| &.x-indicator-hidden { | ||
| .x-loading-spinner-outer { | ||
| display: none; | ||
| } | ||
| } | ||
|
|
||
| .x-mask-message { | ||
| @include bevel-text; | ||
| -webkit-box-flex: 0 !important; | ||
| max-width: 13em; | ||
| min-width: $min-width; | ||
| } | ||
| } | ||
|
|
||
| .x-draggable { | ||
| z-index: 1; | ||
| } | ||
|
|
||
| .x-dragging { | ||
| opacity: 0.7; | ||
| } | ||
|
|
||
| .x-panel-list { | ||
| background-color: saturate(lighten($base-color, 50%), 15%); | ||
| } | ||
|
|
||
| @if $include-html-style { | ||
| .x-html { | ||
| -webkit-user-select: auto; | ||
| -webkit-touch-callout: inherit; | ||
|
|
||
| @include blueprint-typography; | ||
| line-height: 1.5; | ||
| color: #333; | ||
| font-size: .8em; | ||
| padding: 1.2em; | ||
|
|
||
| ul li { | ||
| list-style-type: circle; | ||
| } | ||
| ol li { | ||
| list-style-type: decimal; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| .x-video { | ||
| background-color: #000; | ||
| } | ||
|
|
||
| .x-sortable .x-dragging { | ||
| opacity: 1; | ||
| z-index: 5; | ||
| } | ||
|
|
||
| .x-layout-card-item { | ||
| background: $page-bg-color; | ||
| } |
| @@ -0,0 +1,362 @@ | ||
| @mixin sencha-layout { | ||
| html, body { | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-translatable { | ||
| position: absolute; | ||
| top: 100%; | ||
| left: 100%; | ||
| z-index: 1; | ||
| } | ||
|
|
||
| .x-translatable-container { | ||
| position: relative; | ||
| } | ||
|
|
||
| .x-translatable-wrapper { | ||
| width: 100%; | ||
| height: 100%; | ||
| position: absolute; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .x-translatable-stretcher { | ||
| width: 300%; | ||
| height: 300%; | ||
| position: absolute; | ||
| visibility: hidden; | ||
| z-index: -1; | ||
| } | ||
|
|
||
| .x-translatable-nested-stretcher { | ||
| width: 100%; | ||
| height: 100%; | ||
| left: 100%; | ||
| top: 100%; | ||
| position: absolute; | ||
| visibility: hidden; | ||
| z-index: -1; | ||
| } | ||
|
|
||
| .x-layout-fit, | ||
| .x-layout-card { | ||
| position: relative; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .x-layout-fit-item, .x-layout-card-item { | ||
| position: absolute !important; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-layout-hbox, .x-layout-vbox { | ||
| display: -webkit-box; | ||
| > * { | ||
| -webkit-box-flex: 0; | ||
| } | ||
| } | ||
|
|
||
| .x-layout-hbox { | ||
| -webkit-box-orient: horizontal; | ||
| } | ||
|
|
||
| .x-layout-vbox { | ||
| -webkit-box-orient: vertical; | ||
| } | ||
|
|
||
| .x-layout-hbox > .x-layout-box-item { | ||
| width: 0 !important; | ||
| } | ||
|
|
||
| .x-layout-vbox > .x-layout-box-item { | ||
| height: 0 !important; | ||
| } | ||
|
|
||
| .x-table-inner { | ||
| display: table !important; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-table-inner.x-table-fixed { | ||
| table-layout: fixed !important; | ||
| } | ||
|
|
||
| .x-table-row { | ||
| display: table-row !important; | ||
| } | ||
|
|
||
| .x-table-row > * { | ||
| display: table-cell !important; | ||
| vertical-align: middle; | ||
| } | ||
|
|
||
| .x-container, .x-body { | ||
| display: -webkit-box; | ||
| } | ||
|
|
||
| .x-body { | ||
| overflow: hidden; | ||
| -webkit-box-flex: 1; | ||
| min-width: 100%; | ||
| min-height: 100%; | ||
| } | ||
|
|
||
| .x-body > .x-inner, .x-container > .x-inner { | ||
| -webkit-box-flex: 1; | ||
| min-width: 100%; | ||
| min-height: 100%; | ||
| position: relative; | ||
| } | ||
|
|
||
| .x-docking-horizontal { | ||
| display: -webkit-box; | ||
| -webkit-box-flex: 1; | ||
| -webkit-box-orient: horizontal; | ||
| min-width: 100%; | ||
| min-height: 100%; | ||
| } | ||
|
|
||
| .x-docking-vertical { | ||
| display: -webkit-box; | ||
| -webkit-box-flex: 1; | ||
| -webkit-box-orient: vertical; | ||
| min-width: 100%; | ||
| min-height: 100%; | ||
| } | ||
|
|
||
| .x-centered { | ||
| position: absolute !important; | ||
| width: 100%; | ||
| height: 100%; | ||
| display: -webkit-box; | ||
| -webkit-box-align: center; | ||
| -webkit-box-pack: center; | ||
| } | ||
|
|
||
| .x-floating { | ||
| position: absolute !important; | ||
| } | ||
|
|
||
| .x-centered > * { | ||
| position: relative !important; | ||
| -webkit-box-flex: 0 !important; | ||
| } | ||
|
|
||
| .x-size-change-detector { | ||
| visibility: hidden; | ||
| position: absolute; | ||
| left: 0; | ||
| top: 0; | ||
| z-index: -1; | ||
| width: 100%; | ||
| height: 100%; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .x-size-change-detector > * { | ||
| visibility: hidden; | ||
| } | ||
|
|
||
| .x-size-change-detector-shrink > * { | ||
| width: 200%; | ||
| height: 200%; | ||
| } | ||
|
|
||
| .x-size-change-detector-expand > * { | ||
| width: 100000px; | ||
| height: 100000px; | ||
| } | ||
|
|
||
| .x-scroll-view { | ||
| position: relative; | ||
| display: block; | ||
| } | ||
|
|
||
| .x-scroll-container { | ||
| position: absolute; | ||
| overflow: hidden; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-scroll-scroller { | ||
| position: absolute; | ||
| min-width: 100%; | ||
| min-height: 100%; | ||
| } | ||
|
|
||
| .x-ios .x-scroll-scroller { | ||
| -webkit-transform: translate3d(0, 0, 0); | ||
| } | ||
|
|
||
| .x-scroll-stretcher { | ||
| position: absolute; | ||
| visibility: hidden; | ||
| } | ||
|
|
||
| .x-scroll-bar-grid-wrapper { | ||
| position: absolute; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-scroll-bar-grid { | ||
| display: table; | ||
| width: 100%; | ||
| height: 100%; | ||
|
|
||
| > * { | ||
| display: table-row; | ||
| } | ||
|
|
||
| > * > * { | ||
| display: table-cell; | ||
| } | ||
|
|
||
| > :first-child > :first-child { | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| > :first-child > :nth-child(2) { | ||
| padding: 3px 3px 0 0; | ||
| } | ||
|
|
||
| > :nth-child(2) > :first-child { | ||
| padding: 0 0 3px 3px; | ||
| } | ||
| } | ||
|
|
||
| .x-scroll-bar { | ||
| position: relative; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .x-scroll-bar-stretcher { | ||
| position: absolute; | ||
| visibility: hidden; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-scroll-bar-x { | ||
| width: 100%; | ||
|
|
||
| > .x-scroll-bar-stretcher { | ||
| width: 300%; | ||
| } | ||
|
|
||
| &.active { | ||
| height: 6px; | ||
| } | ||
| } | ||
|
|
||
| .x-scroll-bar-y { | ||
| height: 100%; | ||
|
|
||
| > .x-scroll-bar-stretcher { | ||
| height: 300%; | ||
| } | ||
|
|
||
| &.active { | ||
| width: 6px; | ||
| } | ||
| } | ||
|
|
||
| .x-scroll-indicator { | ||
| background: #333; | ||
| position: absolute; | ||
| z-index: 2; | ||
| opacity: 0.5; | ||
| } | ||
|
|
||
| .x-scroll-indicator.default { | ||
| @include border-top-radius(3px); | ||
| @include border-bottom-radius(3px); | ||
| } | ||
|
|
||
| .x-list-light, | ||
| .x-dataview-light { | ||
| .x-scroll-indicator { | ||
| background: #fff; | ||
| opacity: 1; | ||
| } | ||
| } | ||
|
|
||
| .x-scroll-indicator-x { | ||
| height: 100%; | ||
| } | ||
|
|
||
| .x-scroll-indicator-y { | ||
| width: 100%; | ||
| } | ||
|
|
||
| .x-scroll-indicator.csstransform { | ||
| background: none; | ||
| /*-webkit-transition: opacity 0.2s ease-out;*/ | ||
|
|
||
| > * { | ||
| position: absolute; | ||
| background-color: #333; | ||
| } | ||
|
|
||
| > :nth-child(2) { | ||
| -webkit-transform-origin: 0% 0%; | ||
| background: none; | ||
| content: url(data:image/bmp;base64,Qk08AAAAAAAAADYAAAAoAAAAAQAAAAEAAAABABAAAAAAAAYAAAASCwAAEgsAAAAAAAAAAAAAxhgAAAAA); | ||
| } | ||
|
|
||
| &.x-scroll-indicator-light { | ||
| > * { | ||
| background-color: #eee; | ||
| } | ||
|
|
||
| > :nth-child(2) { | ||
| content: url(data:image/bmp;base64,Qk08AAAAAAAAADYAAAAoAAAAAQAAAAEAAAABABAAAAAAAAYAAAASCwAAEgsAAAAAAAAAAAAAvXcAAAAA); | ||
| } | ||
| } | ||
|
|
||
| &.x-scroll-indicator-y { | ||
| > * { | ||
| width: 100%; | ||
| } | ||
|
|
||
| > :first-child { | ||
| height: 3px; | ||
| @include border-top-radius(3px); | ||
| } | ||
|
|
||
| > :nth-child(2) { | ||
| height: 1px; | ||
| } | ||
|
|
||
| > :last-child { | ||
| height: 3px; | ||
| @include border-bottom-radius(3px); | ||
| } | ||
| } | ||
|
|
||
| &.x-scroll-indicator-x { | ||
| > * { | ||
| height: 100%; | ||
| } | ||
|
|
||
| > :first-child { | ||
| width: 3px; | ||
| @include border-left-radius(3px); | ||
| } | ||
|
|
||
| > :nth-child(2) { | ||
| width: 1px; | ||
| } | ||
| > :last-child { | ||
| width: 3px; | ||
| @include border-right-radius(3px); | ||
| } | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,62 @@ | ||
| body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, | ||
| h4, h5, h6, pre, code, form, fieldset, legend, | ||
| input, textarea, p, blockquote, th, td { | ||
| margin: 0; | ||
| padding: 0; | ||
| } | ||
|
|
||
| table { | ||
| border-collapse: collapse; | ||
| border-spacing: 0; | ||
| } | ||
|
|
||
| fieldset, img { | ||
| border: 0; | ||
| } | ||
|
|
||
| address, caption, cite, code, | ||
| dfn, em, strong, th, var { | ||
| font-style: normal; | ||
| font-weight: normal; | ||
| } | ||
|
|
||
| li { | ||
| list-style: none; | ||
| } | ||
|
|
||
| caption, th { | ||
| text-align: left; | ||
| } | ||
|
|
||
| h1, h2, h3, h4, h5, h6 { | ||
| font-size: 100%; | ||
| font-weight: normal; | ||
| } | ||
|
|
||
| q:before, | ||
| q:after { | ||
| content: ""; | ||
| } | ||
|
|
||
| abbr, acronym { | ||
| border: 0; | ||
| font-variant: normal; | ||
| } | ||
|
|
||
| sup { | ||
| vertical-align: text-top; | ||
| } | ||
|
|
||
| sub { | ||
| vertical-align: text-bottom; | ||
| } | ||
|
|
||
| input, textarea, select { | ||
| font-family: inherit; | ||
| font-size: inherit; | ||
| font-weight: inherit; | ||
| } | ||
|
|
||
| *:focus { | ||
| outline: none; | ||
| } |
| @@ -0,0 +1,354 @@ | ||
| // Toolbar icons used with permission from Drew Wilson | ||
| // http://pictos.drewwilson.com/ | ||
| // Pictos icons are (c) 2010 Drew Wilson | ||
|
|
||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.Button | ||
| */ | ||
|
|
||
| /** | ||
| * @var {measurement} $button-height Default height for buttons. | ||
| */ | ||
| $button-height: 1.8em; | ||
|
|
||
| /** | ||
| * @var {measurement} $button-radius Default border-radius for buttons. | ||
| */ | ||
| $button-radius: .4em !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $button-stroke-weight Default border width for buttons. | ||
| */ | ||
| $button-stroke-weight: .1em !default; | ||
|
|
||
| /** | ||
| * @var {string} $button-gradient Default gradient for buttons. | ||
| * | ||
| * See {@link Global_CSS#background-gradient background-gradient}. | ||
| */ | ||
| $button-gradient: $base-gradient !default; | ||
|
|
||
| /** | ||
| * @var {string} $toolbar-icon-size Default size (width and height) for toolbar icons. | ||
| */ | ||
| $toolbar-icon-size: 1.4em !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-button-uis Optionally disable separate button UIs, including action, confirm, and decline. | ||
| */ | ||
| $include-button-uis: $include-default-uis !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-button-highlights Optionally disable special CSS3 effects on buttons including gradients, text-shadows, and box-shadows. | ||
| */ | ||
| $include-button-highlights: $include-highlights !default; | ||
|
|
||
|
|
||
| /** | ||
| * Includes default button styles. | ||
| * | ||
| * See {@link Global_CSS#background-gradient background-gradient}. | ||
| */ | ||
| @mixin sencha-buttons { | ||
| // Basic button style | ||
| .x-button { | ||
| @include background-clip(padding-box); | ||
| @if $include-border-radius { @include border-radius($button-radius); } | ||
| @include display-box; | ||
| @include box-align(center); | ||
| @include toolbar-button(#ccc, $button-gradient); | ||
| min-height: $button-height; // Why was this !important? Breaks small uis - DK | ||
| padding: .3em .6em; | ||
| position: relative; | ||
| overflow: hidden; | ||
| -webkit-user-select: none; | ||
|
|
||
| // Default icon style | ||
| .x-button-icon { | ||
| width: 2.1em; | ||
| height: 2.1em; | ||
| background-repeat: no-repeat; | ||
| background-position: center; | ||
| display: block; | ||
|
|
||
| &.x-icon-mask { | ||
| width: 1.3em; | ||
| height: 1.3em; | ||
| -webkit-mask-size: 1.3em; | ||
| } | ||
| } | ||
|
|
||
| &.x-item-disabled .x-button-label, &.x-item-disabled .x-button-icon { | ||
| opacity: .5; | ||
| } | ||
| } | ||
|
|
||
| .x-button-round { | ||
| @if $include-border-radius { @include border-radius($button-height/2); } | ||
| padding: .1em $button-height/2; | ||
| } | ||
|
|
||
| // Button icon alignment | ||
| .x-iconalign-left, .x-icon-align-right { | ||
| @include box-orient(horizontal); | ||
| } | ||
| .x-iconalign-top, .x-iconalign-bottom { | ||
| @include box-orient(vertical); | ||
| } | ||
| .x-iconalign-bottom, .x-iconalign-right { | ||
| @include box-direction(reverse); | ||
| } | ||
| .x-iconalign-center { | ||
| @include box-pack(center); | ||
| } | ||
| .x-iconalign-left .x-button-label { | ||
| margin-left: $toolbar-spacing * 1.5; | ||
| } | ||
| .x-iconalign-right .x-button-label { | ||
| margin-right: $toolbar-spacing * 1.5; | ||
| } | ||
| .x-iconalign-top .x-button-label { | ||
| margin-top: $toolbar-spacing * 1.5; | ||
| } | ||
| .x-iconalign-bottom .x-button-label { | ||
| margin-bottom: $toolbar-spacing * 1.5; | ||
| } | ||
|
|
||
| // Button labels | ||
| .x-button-label { | ||
| @include box-flex(1); | ||
| @include box-align(center); | ||
| white-space: nowrap; | ||
| text-overflow: ellipsis; | ||
| text-align: center; | ||
| font-weight: bold; | ||
| line-height: 1.2em; | ||
| display: block; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| // Toolbar button styling | ||
| .x-toolbar .x-button { | ||
| margin: 0 .2em; | ||
| padding: .3em .6em; | ||
|
|
||
| .x-button-label { | ||
| font-size: .7em; | ||
| } | ||
| } | ||
|
|
||
| .x-button-small, .x-toolbar .x-button-small { | ||
| @if $include-border-radius { @include border-radius(.3em); } | ||
| padding: .2em .4em; | ||
| min-height: 0; | ||
|
|
||
| .x-button-label { | ||
| font-size: .6em; | ||
| } | ||
|
|
||
| .x-button-icon { | ||
| width: .75em; | ||
| height: .75em; | ||
| } | ||
| } | ||
|
|
||
| // Back/Forward buttons | ||
| $shadow-width: .065em; // Space between tip and its shadow | ||
| $overlap-width: .2em; // how far the mask is clipped | ||
|
|
||
| // $mask-height: $button-height + $button-stroke-weight * 2; // Ugh, this is non-specific... borders? | ||
| $mask-height: $button-height; | ||
| $mask-width: $mask-height/2.33; | ||
|
|
||
| $mask-offset: $button-radius - $overlap-width - $button-stroke-weight + $shadow-width - .02em; | ||
|
|
||
| $tip-width: $mask-width - $mask-offset + $shadow-width; | ||
|
|
||
| .x-button-forward, .x-button-back { | ||
| position: relative; | ||
| overflow: visible; | ||
| height: $button-height; | ||
| z-index: 1; | ||
| &:before, &:after { | ||
| @include insertion($mask-width, $mask-height, -$button-stroke-weight, auto); | ||
| z-index: 2; | ||
| -webkit-mask: $mask-offset 0 theme_image($theme-name, "tip.png") no-repeat; | ||
| -webkit-mask-size: $mask-width $mask-height; | ||
| overflow: hidden; | ||
| } | ||
| } | ||
|
|
||
| .x-button-back, | ||
| .x-toolbar .x-button-back { | ||
| margin-left: $tip-width - $shadow-width + $toolbar-spacing; | ||
| padding-left: .4em; | ||
| &:before { | ||
| left: - $tip-width; | ||
| } | ||
| &:after { | ||
| left: - $tip-width + $shadow-width; | ||
| } | ||
| } | ||
|
|
||
| .x-button-forward, | ||
| .x-toolbar .x-button-forward { | ||
| margin-right: $tip-width - $shadow-width + $toolbar-spacing; | ||
| padding-right: .4em; | ||
| &:before, &:after { | ||
| -webkit-mask: -$mask-offset 0 theme_image($theme-name, "tip_right.png") no-repeat; | ||
| } | ||
| &:before { | ||
| right: - $tip-width; | ||
| } | ||
| &:after { | ||
| right: - $tip-width + $shadow-width; | ||
| } | ||
| } | ||
|
|
||
| // Plain buttons automatically use a margin trick to have a | ||
| // wide gradial glow for pressed state. | ||
| .x-button.x-button-plain, | ||
| .x-toolbar .x-button.x-button-plain { | ||
| background: none; | ||
| border: 0 none; | ||
| @if $include-border-radius { @include border-radius(none); } | ||
| min-height: 0; | ||
| text-shadow: none; | ||
| line-height: auto; | ||
| height: auto; | ||
| padding: 0.5em; | ||
|
|
||
| & > * { | ||
| overflow: visible; | ||
| } | ||
|
|
||
| .x-button-icon { | ||
| -webkit-mask-size: $toolbar-icon-size; | ||
| width: $toolbar-icon-size; | ||
| height: $toolbar-icon-size; | ||
| } | ||
|
|
||
| &.x-button-pressing, &.x-button-pressed { | ||
| background: none; | ||
|
|
||
| $mask-radial-glow: lighten($active-color, 50%); | ||
| @include background-image(radial-gradient(fade-out($mask-radial-glow, .3), fade-out($mask-radial-glow, 1) 24px)); | ||
| .x-button-icon.x-button-mask { | ||
| @include background-gradient(#fff, 'recessed'); | ||
| } | ||
| } | ||
| } | ||
|
|
||
| // SegmentedButtons | ||
| .x-segmentedbutton .x-button { | ||
| margin: 0; | ||
|
|
||
| @if $include-border-radius { | ||
| @include border-radius(0); | ||
|
|
||
| &.x-first { | ||
| @include border-left-radius($button-radius); | ||
| } | ||
| &.x-last { | ||
| @include border-right-radius($button-radius); | ||
| } | ||
| } | ||
|
|
||
| &:not(:first-child) { | ||
| border-left: 0; | ||
| } | ||
| } | ||
|
|
||
| // Badges | ||
| $badge-size: 2em !default; | ||
| $badge-radius: .2em !default; | ||
| $badge-bg-color: darken($alert-color, 10%) !default; | ||
| $badge-bg-gradient: $base-gradient !default; | ||
|
|
||
| .x-hasbadge { | ||
| overflow: visible; | ||
| .x-badge { | ||
| @extend .x-button-label; | ||
| @include background-clip(padding-box); | ||
| @if $include-border-radius { @include border-radius($badge-radius); } | ||
| padding: .1em .3em; | ||
| z-index: 2; | ||
| @if $include-button-highlights { | ||
| @include bevel-by-background($badge-bg-color); | ||
| @include box-shadow(rgba(#000, .5) 0 .1em .1em); | ||
| } | ||
| overflow: hidden; | ||
| @include color-by-background($badge-bg-color, $contrast: 50%); | ||
| border: 1px solid darken($badge-bg-color, 10%); | ||
| position: absolute; | ||
| width: auto; | ||
| min-width: $badge-size; | ||
| line-height: 1.2em; | ||
| font-size: .6em; | ||
| right: 0px; | ||
| top: -.2em; | ||
| max-width: 95%; | ||
| @include background-gradient($badge-bg-color, $badge-bg-gradient); | ||
| display: inline-block; | ||
| } | ||
| } | ||
|
|
||
| @if $include-default-icons { | ||
| @include pictos-iconmask('action'); | ||
| @include pictos-iconmask('add'); | ||
| @include pictos-iconmask('arrow_down'); | ||
| @include pictos-iconmask('arrow_left'); | ||
| @include pictos-iconmask('arrow_right'); | ||
| @include pictos-iconmask('arrow_up'); | ||
| @include pictos-iconmask('compose'); | ||
| @include pictos-iconmask('delete'); | ||
| @include pictos-iconmask('organize'); | ||
| @include pictos-iconmask('refresh'); | ||
| @include pictos-iconmask('reply'); | ||
| @include pictos-iconmask('search'); | ||
| @include pictos-iconmask('settings'); | ||
| @include pictos-iconmask('star'); | ||
| @include pictos-iconmask('trash'); | ||
| @include pictos-iconmask('maps'); | ||
| @include pictos-iconmask('locate'); | ||
| @include pictos-iconmask('home'); | ||
| } | ||
|
|
||
| @if $include-button-uis { | ||
| @include sencha-button-ui('action', $active-color); | ||
| @include sencha-button-ui('confirm', desaturate(darken($confirm-color, 10%), 5%)); | ||
| @include sencha-button-ui('decline', desaturate(darken($alert-color, 10%), 5%)); | ||
| } | ||
| } | ||
|
|
||
|
|
||
| /** | ||
| * Creates a theme UI for buttons. | ||
| * Also automatically generates UIs for {ui-label}-round and {ui-label}-small. | ||
| * | ||
| * // SCSS | ||
| * @include sencha-button-ui('secondary', #99A4AE, 'glossy'); | ||
| * | ||
| * // JS | ||
| * var cancelBtn = new Ext.Button({text: 'Cancel', ui: 'secondary'}); | ||
| * | ||
| * @param {string} $ui-label The name of the UI being created. | ||
| * Can not included spaces or special punctuation (used in class names) | ||
| * @param {color} $color Base color for the UI. | ||
| * @param {string} $gradient Default gradient for the UI. | ||
| */ | ||
| @mixin sencha-button-ui($ui-label, $color, $gradient: $button-gradient) { | ||
| .x-button.x-button-#{$ui-label}, .x-button.x-button-#{$ui-label}-round, .x-button.x-button-#{$ui-label}-small { | ||
| @include toolbar-button($color, $gradient); | ||
| } | ||
|
|
||
| .x-button.x-button-#{$ui-label}-round { | ||
| @extend .x-button-round; | ||
| } | ||
|
|
||
| .x-button.x-button-#{$ui-label}-small { | ||
| @extend .x-button-small; | ||
| } | ||
| } |
| @@ -0,0 +1,113 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.carousel.Indicator | ||
| */ | ||
|
|
||
| /** | ||
| * @var {measurement} $carousel-indicator-size Size (width/height) of carousel indicator dots. | ||
| */ | ||
| $carousel-indicator-size: .5em !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $carousel-indicator-spacing | ||
| * Amount of space between carousel indicator dots. | ||
| */ | ||
| $carousel-indicator-spacing: .2em !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $carousel-track-size Size of the track the carousel indicator dots are in. | ||
| */ | ||
| $carousel-track-size: 1.5em !default; | ||
|
|
||
| /** | ||
| * Creates a theme UI for carousel indicator components. | ||
| * | ||
| * @param {string} $ui-label The name of the UI being created. | ||
| * Can not included spaces or special punctuation (used in class names) | ||
| * @param {color} $color Base color for the UI. | ||
| * @param {string} $gradient Default gradient for the UI. | ||
| * @param {color} $active-color Active color for the UI. | ||
| * @param {string} $active-gradient Active gradient for the UI. | ||
| */ | ||
| @mixin sencha-carousel-indicator-ui($ui-label, $color, $gradient, $active-color, $active-gradient) { | ||
| .x-carousel-indicator-#{$ui-label} span { | ||
| @include background-gradient($color, $gradient); | ||
|
|
||
| &.x-carousel-indicator-active { | ||
| @include background-gradient($active-color, $active-gradient) | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * @class Ext.carousel.Carousel | ||
| */ | ||
|
|
||
| /** | ||
| * Includes basic carousel formatting. | ||
| */ | ||
| @mixin sencha-carousel { | ||
| .x-carousel { | ||
| position: relative; | ||
| overflow: hidden; | ||
| } | ||
|
|
||
| .x-carousel-item { | ||
| position: absolute; | ||
| width: 100%; | ||
| height: 100%; | ||
|
|
||
| > * { | ||
| position: absolute; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
| } | ||
|
|
||
| .x-carousel-indicator { | ||
| // @TODO: we should not have to cancel out the x-floating styling | ||
| padding: 0; | ||
| -webkit-border-radius: 0; | ||
| border-radius: 0; | ||
| -webkit-box-shadow: none; | ||
| background-color: transparent; | ||
| background-image: none; | ||
| } | ||
|
|
||
| .x-carousel-indicator { | ||
| -webkit-box-flex: 1; | ||
|
|
||
| @include display-box; | ||
| @include box-pack(center); | ||
| @include box-align(center); | ||
|
|
||
| span { | ||
| display: block; | ||
| width: $carousel-indicator-size; | ||
| height: $carousel-indicator-size; | ||
| @if $include-border-radius { @include border-radius($carousel-indicator-size / 2); } | ||
| margin: $carousel-indicator-spacing; | ||
| } | ||
| } | ||
|
|
||
| .x-carousel-indicator-horizontal { | ||
| height: $carousel-track-size; | ||
| width: 100%; | ||
| } | ||
|
|
||
| .x-carousel-indicator-vertical { | ||
| @include box-orient(vertical); | ||
| width: $carousel-track-size; | ||
| height: 100%; | ||
| } | ||
|
|
||
| $indicator-light: rgba(#fff, .1); | ||
| $indicator-light-active: rgba(#fff, .3); | ||
| $indicator-dark: rgba(#000, .1); | ||
| $indicator-dark-active: rgba(#000, .3); | ||
|
|
||
| @include sencha-carousel-indicator-ui('light', $indicator-light, 'flat', $indicator-light-active, 'flat'); | ||
| @include sencha-carousel-indicator-ui('dark', $indicator-dark, 'flat', $indicator-dark-active, 'flat'); | ||
| } | ||
|
|
| @@ -0,0 +1,102 @@ | ||
| @import '../global'; | ||
|
|
||
| /* | ||
| * Includes basic form slider styles. | ||
| */ | ||
| @mixin sencha-form-sliders { | ||
|
|
||
| .x-slider { | ||
| position: relative; | ||
| height: $form-thumb-size; | ||
| margin: $form-spacing; | ||
| min-height: 0; | ||
| } | ||
|
|
||
| .x-thumb { | ||
| position: absolute; | ||
| height: $form-thumb-size; | ||
| width: $form-thumb-size; | ||
| border: 1px solid red; | ||
|
|
||
| &.x-dragging { | ||
| background-color: red; | ||
| } | ||
| } | ||
|
|
||
| .x-input-slider { | ||
| width: auto; | ||
| background-color: #000; | ||
| } | ||
|
|
||
| .x-field-toggle, .x-field-slider { | ||
| background-color: #fff; | ||
| // @extend .x-input-el; | ||
| } | ||
|
|
||
| .x-field-toggle .x-slider { | ||
| width: $form-thumb-size * 2; | ||
| @if $include-border-radius { @include border-radius($form-thumb-size/2); } | ||
| overflow: hidden; | ||
| border: .1em solid darken($form-light, 15%); | ||
| // -webkit-transform: translate3d(0px, 0px, 0px); | ||
| @include background-gradient($form-light, 'recessed'); | ||
| z-index: 2; | ||
|
|
||
| // Masking the slider doesn't work in iOS 3, so we're fake-masking the outer area | ||
| // UPDATED: Doesnt fly on Android... | ||
| // &:after { | ||
| // @include insertion($form-thumb-size*2, $form-thumb-size, 0, 0); | ||
| // -webkit-mask: theme_image($theme-name, "trackmask_outer.png"); | ||
| // background-color: white; | ||
| // -webkit-mask-size: $form-thumb-size*2 $form-thumb-size; | ||
| // pointer-events: none; | ||
| // z-index: 4; | ||
| // } | ||
|
|
||
| .x-thumb { | ||
|
|
||
| .x-toggle-thumb-off, .x-toggle-thumb-on { | ||
| display: none; | ||
| } | ||
|
|
||
| &.x-dragging { | ||
| opacity: 1; | ||
| } | ||
|
|
||
| &:before { | ||
| top: ($form-thumb-size - $form-toggle-size) / 2; | ||
| } | ||
|
|
||
| // Actual thumb | ||
| // &:after { | ||
| // @include insertion($form-thumb-size, $form-thumb-size, 0, 0); | ||
| // -webkit-box-shadow: rgba(0,0,0,.5) 0 0 .15em; | ||
| // @if $include-border-radius { @include border-radius($form-thumb-size/2); } | ||
| // -webkit-transform: scale(.65); | ||
| // @include background-gradient($complement_light, 'glossy'); | ||
| // border: 1px solid $complement; | ||
| // overflow: visible; | ||
| // z-index: 2; | ||
| // } | ||
|
|
||
| // &.x-dragging { | ||
| // &:after { | ||
| // -webkit-transform: scale(.75); | ||
| // } | ||
| // } | ||
| // | ||
| // Used to animate the thumb. class added/removed by javascript when needed. | ||
| // &.x-animate { | ||
| // -webkit-transition: left .2s ease-in-out; | ||
| // } | ||
| } | ||
|
|
||
| &.x-toggle-on { | ||
| @include background-gradient($confirm-color, 'recessed'); | ||
| } | ||
| } | ||
|
|
||
| .x-android .x-field-toggle .x-slider { | ||
| //-webkit-transform: translate(0px, 0px); | ||
| } | ||
| } |
| @@ -0,0 +1,149 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * Includes default form slider styles. | ||
| * | ||
| * @member Ext.field.Slider | ||
| */ | ||
| @mixin sencha-form-sliders { | ||
|
|
||
| .x-slider-field, .x-toggle-field { | ||
| .x-component-outer { | ||
| padding: $form-spacing; | ||
| } | ||
| } | ||
|
|
||
| .x-slider, | ||
| .x-toggle { | ||
| position: relative; | ||
| height: $form-thumb-size; | ||
| min-height: 0; | ||
| min-width: 0; | ||
|
|
||
| > * { | ||
| position: absolute; | ||
| width: 100%; | ||
| height: 100%; | ||
| } | ||
| } | ||
|
|
||
| .x-slider.x-item-disabled { | ||
| opacity: .6; | ||
| } | ||
|
|
||
| @if $basic-slider { | ||
| .x-thumb { | ||
| position: absolute; | ||
| height: $form-thumb-size; | ||
| width: $form-thumb-size; | ||
| border: #000; | ||
| background-color: #777; | ||
|
|
||
| &.x-dragging { | ||
| background-color: #AAA; | ||
| } | ||
| } | ||
|
|
||
| // Create the slider track | ||
| .x-slider:after { | ||
| @include insertion(auto, $form-slider-size, $form-toggle-size / 2 - $form-slider-size/2 + $form-spacing/2 - $form-thumb-space / 2, 0); | ||
| right: 0; | ||
| margin: 0 $form-toggle-size/2; | ||
| border: .1em solid rgba(#000, .1); | ||
| border-bottom: 0; | ||
| background-color: $form-light; | ||
| } | ||
| } @else { | ||
| .x-thumb { | ||
| position: absolute; | ||
| height: $form-thumb-size; | ||
| width: $form-thumb-size; | ||
|
|
||
| // The actual thumb | ||
| &:before { | ||
| @include insertion($form-toggle-size, $form-toggle-size, $form-thumb-space, $form-thumb-space); | ||
| border: 1px solid darken($form-light, 30%); | ||
| @if $include-border-radius { @include border-radius($form-toggle-size/2); } | ||
| // overflow: visible; | ||
| @include background-gradient($form-light); | ||
| @include background-clip(padding-box); | ||
| } | ||
|
|
||
| &.x-dragging { | ||
| &:before { | ||
| @include background-gradient(darken($form-light, 5%)); | ||
| } | ||
| opacity: 1; | ||
| } | ||
| } | ||
|
|
||
| // Create the slider track | ||
| .x-slider:after { | ||
| @include insertion(auto, $form-slider-size, $form-toggle-size / 2 - $form-slider-size/2 + $form-spacing/2 - $form-thumb-space / 2, 0); | ||
| right: 0; | ||
| margin: 0 $form-toggle-size/2; | ||
| @include background-gradient($form-light, 'recessed'); | ||
| border: .1em solid rgba(#000, .1); | ||
| border-bottom: 0; | ||
| -webkit-box-shadow: rgba(#fff,.7) 0 .1em 0; | ||
| @if $include-border-radius { @include border-radius($form-slider-size/2); } | ||
| } | ||
| } | ||
|
|
||
| .x-toggle { | ||
| width: $form-thumb-size * 2; | ||
| @if $include-border-radius { @include border-radius($form-thumb-size/2); } | ||
| overflow: hidden; | ||
| border: 1px solid darken($form-light, 15%); | ||
| @include background-gradient($form-light, 'recessed'); | ||
| -webkit-box-flex: 0; | ||
|
|
||
| // Masking the slider doesn't work in iOS 3, so we're fake-masking the outer area | ||
| // UPDATED: Doesnt fly on Android... | ||
| // &:after { | ||
| // @include insertion($form-thumb-size*2, $form-thumb-size, 0, 0); | ||
| // -webkit-mask: theme_image($theme-name, "trackmask_outer.png"); | ||
| // background-color: white; | ||
| // -webkit-mask-size: $form-thumb-size*2 $form-thumb-size; | ||
| // pointer-events: none; | ||
| // z-index: 4; | ||
| // } | ||
|
|
||
| .x-thumb { | ||
| &.x-dragging { | ||
| opacity: 1; | ||
| } | ||
|
|
||
| &:before { | ||
| top: ($form-thumb-size - $form-toggle-size) / 2; | ||
| } | ||
|
|
||
| // Actual thumb | ||
| // &:after { | ||
| // @include insertion($form-thumb-size, $form-thumb-size, 0, 0); | ||
| // -webkit-box-shadow: rgba(0,0,0,.5) 0 0 .15em; | ||
| // @if $include-border-radius { @include border-radius($form-thumb-size/2); } | ||
| // -webkit-transform: scale(.65); | ||
| // @include background-gradient($complement_light, 'glossy'); | ||
| // border: 1px solid $complement; | ||
| // overflow: visible; | ||
| // z-index: 2; | ||
| // } | ||
|
|
||
| // &.x-dragging { | ||
| // &:after { | ||
| // -webkit-transform: scale(.75); | ||
| // } | ||
| // } | ||
| // | ||
| // Used to animate the thumb. class added/removed by javascript when needed. | ||
| // &.x-animate { | ||
| // -webkit-transition: left .2s ease-in-out; | ||
| // } | ||
| } | ||
| } | ||
|
|
||
| .x-toggle-on { | ||
| @include background-gradient($confirm-color, 'recessed'); | ||
| } | ||
| } |
| @@ -0,0 +1,5 @@ | ||
| @import '../global'; | ||
|
|
||
| .x-img { | ||
| background-repeat: no-repeat; | ||
| } |
| @@ -0,0 +1,76 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.dataview.IndexBar | ||
| */ | ||
|
|
||
| /** | ||
| * @var {measurement} $index-bar-width | ||
| * Width of the index bar. | ||
| */ | ||
| $index-bar-width: 1.1em !default; | ||
|
|
||
| /** | ||
| * @var {color} $index-bar-bg-color | ||
| * Background-color of the index bar. | ||
| */ | ||
| $index-bar-bg-color: hsla(hue($base-color), 10%, 60%, .8) !default; | ||
|
|
||
| /** | ||
| * @var {color} $index-bar-color | ||
| * Text color of the index bar. | ||
| */ | ||
| $index-bar-color: darken(desaturate($base-color, 5%), 15%) !default; | ||
|
|
||
| /** | ||
| * Includes default index bar styles. | ||
| */ | ||
| @mixin sencha-indexbar { | ||
| .x-indexbar-wrapper { | ||
| -webkit-box-pack: end !important; | ||
| box-pack: end !important; | ||
| pointer-events: none; | ||
| } | ||
|
|
||
| .x-indexbar-vertical { | ||
| width: $index-bar-width; | ||
| @include box-orient(vertical); | ||
| margin-right: 8px; | ||
| } | ||
|
|
||
| .x-indexbar-horizontal { | ||
| height: $index-bar-width; | ||
| @include box-orient(horizontal); | ||
| margin-bottom: 8px; | ||
| } | ||
|
|
||
| .x-indexbar { | ||
| pointer-events: auto; | ||
| z-index: 2; | ||
| padding: .3em 0; | ||
| min-height: 0 !important; | ||
| height: auto !important; | ||
| -webkit-box-flex: 0 !important; | ||
|
|
||
| > div { | ||
| color: $index-bar-color; | ||
| font-size: 0.6em; | ||
| text-align: center; | ||
| line-height: 1.1em; | ||
| font-weight: bold; | ||
| display: block; | ||
| } | ||
| } | ||
|
|
||
| .x-phone.x-landscape .x-indexbar { | ||
| > div { | ||
| font-size: 0.38em; | ||
| line-height: 1em; | ||
| } | ||
| } | ||
|
|
||
| .x-indexbar-pressed { | ||
| @include border-radius(($index-bar-width)/2); | ||
| background-color: $index-bar-bg-color; | ||
| } | ||
| } |
| @@ -0,0 +1,121 @@ | ||
| /** | ||
| * @class Ext.LoadMask | ||
| */ | ||
|
|
||
| /** | ||
| * @var {color} $loading-spinner-color | ||
| * Background-color for the bars in the loading spinner. | ||
| */ | ||
| $loading-spinner-color: #aaa !default; | ||
|
|
||
| // Private | ||
| $loading-spinner-size: 1em; | ||
| $loading-spinner-bar-width: .1em; | ||
| $loading-spinner-bar-height: .25em; | ||
|
|
||
| /** | ||
| * Includes default loading spinner styles (for dataviews). | ||
| */ | ||
| @mixin sencha-loading-spinner { | ||
| .x-loading-spinner { | ||
| font-size: 250%; | ||
| height: $loading-spinner-size; | ||
| width: $loading-spinner-size; | ||
| position: relative; | ||
|
|
||
| -webkit-transform-origin: $loading-spinner-size/2 $loading-spinner-size/2; | ||
|
|
||
| /* Shared Properties for all the bars */ | ||
| & > span, & > span:before, & > span:after { | ||
| display: block; | ||
| position: absolute; | ||
| width: $loading-spinner-bar-width; | ||
| height: $loading-spinner-bar-height; | ||
| top: 0; | ||
| -webkit-transform-origin: $loading-spinner-bar-width/2 $loading-spinner-size/2; | ||
| @if $include-border-radius { @include border-radius($loading-spinner-bar-width/2); } | ||
| content: " "; | ||
| } | ||
|
|
||
| & > span { | ||
| &.x-loading-top { background-color: rgba($loading-spinner-color,0.99); } | ||
| &.x-loading-top::after { background-color: rgba($loading-spinner-color,0.90); } | ||
| &.x-loading-left::before { background-color: rgba($loading-spinner-color,0.80); } | ||
| &.x-loading-left { background-color: rgba($loading-spinner-color,0.70); } | ||
| &.x-loading-left::after { background-color: rgba($loading-spinner-color,0.60); } | ||
| &.x-loading-bottom::before{ background-color: rgba($loading-spinner-color,0.50); } | ||
| &.x-loading-bottom { background-color: rgba($loading-spinner-color,0.40); } | ||
| &.x-loading-bottom::after { background-color: rgba($loading-spinner-color,0.35); } | ||
| &.x-loading-right::before { background-color: rgba($loading-spinner-color,0.30); } | ||
| &.x-loading-right { background-color: rgba($loading-spinner-color,0.25); } | ||
| &.x-loading-right::after { background-color: rgba($loading-spinner-color,0.20); } | ||
| &.x-loading-top::before { background-color: rgba($loading-spinner-color,0.15); } | ||
| } | ||
| } | ||
|
|
||
| .x-loading-spinner > span { | ||
| left: 50%; | ||
| margin-left: -0.05em; | ||
| } | ||
|
|
||
| // .x-loading-spinner > span::before, .x-loading-spinner > span::after{ content: " "; } | ||
|
|
||
| /* Rotate each of the 4 Spans */ | ||
|
|
||
| .x-loading-spinner > span.x-loading-top{ -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); } | ||
| .x-loading-spinner > span.x-loading-right{ -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); } | ||
| .x-loading-spinner > span.x-loading-bottom{ -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); } | ||
| .x-loading-spinner > span.x-loading-left{ -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); } | ||
|
|
||
| /* These are the two lines that surround each of the 4 Span lines */ | ||
|
|
||
| .x-loading-spinner > span::before{-webkit-transform: rotate(30deg); -moz-transform: rotate(30deg); } | ||
| .x-loading-spinner > span::after{ -webkit-transform: rotate(-30deg); -moz-transform: rotate(-30deg); } | ||
|
|
||
| /* Set Animation */ | ||
|
|
||
| .x-loading-spinner { | ||
| -webkit-animation-name: x-loading-spinner-rotate; | ||
| -webkit-animation-duration: .5s; | ||
| -webkit-animation-iteration-count: infinite; | ||
| -webkit-animation-timing-function: linear; | ||
| } | ||
|
|
||
| @-webkit-keyframes x-loading-spinner-rotate{ | ||
| 0%{ -webkit-transform: rotate(0deg); } | ||
| 8.32%{ -webkit-transform: rotate(0deg); } | ||
|
|
||
| 8.33%{ -webkit-transform: rotate(30deg); } | ||
| 16.65%{ -webkit-transform: rotate(30deg); } | ||
|
|
||
| 16.66%{ -webkit-transform: rotate(60deg); } | ||
| 24.99%{ -webkit-transform: rotate(60deg); } | ||
|
|
||
| 25%{ -webkit-transform: rotate(90deg); } | ||
| 33.32%{ -webkit-transform: rotate(90deg); } | ||
|
|
||
| 33.33%{ -webkit-transform: rotate(120deg); } | ||
| 41.65%{ -webkit-transform: rotate(120deg); } | ||
|
|
||
| 41.66%{ -webkit-transform: rotate(150deg); } | ||
| 49.99%{ -webkit-transform: rotate(150deg); } | ||
|
|
||
| 50%{ -webkit-transform: rotate(180deg); } | ||
| 58.32%{ -webkit-transform: rotate(180deg); } | ||
|
|
||
| 58.33%{ -webkit-transform: rotate(210deg); } | ||
| 66.65%{ -webkit-transform: rotate(210deg); } | ||
|
|
||
| 66.66%{ -webkit-transform: rotate(240deg); } | ||
| 74.99%{ -webkit-transform: rotate(240deg); } | ||
|
|
||
| 75%{ -webkit-transform: rotate(270deg); } | ||
| 83.32%{ -webkit-transform: rotate(270deg); } | ||
|
|
||
| 83.33%{ -webkit-transform: rotate(300deg); } | ||
| 91.65%{ -webkit-transform: rotate(300deg); } | ||
|
|
||
| 91.66%{ -webkit-transform: rotate(330deg); } | ||
| 100%{ -webkit-transform: rotate(330deg); } | ||
| } | ||
| } |
| @@ -0,0 +1,11 @@ | ||
| .x-map { | ||
| background-color: #edeae2; //GMap tan background | ||
| * { | ||
| -webkit-box-sizing: content-box; | ||
| box-sizing: content-box; | ||
| } | ||
| } | ||
|
|
||
| .x-mask-map { | ||
| background: transparent !important; | ||
| } |
| @@ -0,0 +1,21 @@ | ||
| @import '../global'; | ||
|
|
||
| .x-video { | ||
| height: 100%; | ||
| width: 100%; | ||
| } | ||
|
|
||
| .x-video > * { | ||
| height: 100%; | ||
| width: 100%; | ||
| position: absolute; | ||
| } | ||
|
|
||
| .x-video-ghost { | ||
| -webkit-background-size: 100% auto; | ||
| background: #000 url() center center no-repeat; | ||
| } | ||
|
|
||
| audio { | ||
| width: 100%; | ||
| } |
| @@ -0,0 +1,94 @@ | ||
| /** | ||
| * Includes default message box styles. | ||
| * | ||
| * @member Ext.MessageBox | ||
| */ | ||
| @mixin sencha-msgbox { | ||
| .x-msgbox { | ||
| min-width: 15em; | ||
| max-width: 20em; | ||
| padding: 0.8em; | ||
| margin: .5em; | ||
| -webkit-box-shadow: rgba(#000, .4) 0 .1em .5em; | ||
| @if $include-border-radius { @include border-radius($panel-border-radius); } | ||
| border: .15em solid $base-color; | ||
|
|
||
| .x-icon { | ||
| margin-left: 1.3em; | ||
| } | ||
|
|
||
| .x-title { | ||
| font-size: .9em; | ||
| line-height: 1.4em; | ||
| } | ||
|
|
||
| .x-body { | ||
| background:transparent !important; | ||
| } | ||
|
|
||
| .x-toolbar { | ||
| background: transparent none; | ||
| -webkit-box-shadow: none; | ||
|
|
||
| &.x-docked-top { | ||
| border-bottom: 0; | ||
| height: 1.3em; | ||
| } | ||
|
|
||
| &.x-docked-bottom { | ||
| border-top: 0; | ||
| } | ||
| } | ||
|
|
||
| .x-field { | ||
| min-height:2em; | ||
| background: #fff; | ||
| @if $include-border-radius { @include border-radius(.2em); } | ||
| } | ||
|
|
||
| .x-form-field { | ||
| min-height:1.5em; | ||
| padding-right: 0 !important; | ||
| -webkit-appearance: none; | ||
| } | ||
|
|
||
| .x-field-input { | ||
| padding-right: 2.2em; | ||
| } | ||
| } | ||
|
|
||
| .x-msgbox-text { | ||
| text-align: center; | ||
| padding: 6px 0; | ||
| line-height: 1.4em; | ||
| } | ||
|
|
||
| .x-msgbox-buttons { | ||
| padding: 0.4em 0; | ||
| height: auto; | ||
|
|
||
| .x-button { | ||
| min-width: 4.5em; | ||
| } | ||
|
|
||
| .x-button-normal span { | ||
| opacity: .7; | ||
| } | ||
| } | ||
|
|
||
| // TODO: Refactor along with Sheet | ||
| @include msgbox-ui('dark'); | ||
| } | ||
|
|
||
| @mixin msgbox-ui($ui-label) { | ||
| .x-msgbox-#{$ui-label} { | ||
| .x-msgbox-text { | ||
| @include color-by-background($sheet-bg-color, 80%); | ||
| @include bevel-by-background($sheet-bg-color); | ||
| } | ||
| .x-msgbox-input { | ||
| @include background-gradient(lighten($sheet-bg-color, 80%), 'recessed'); | ||
| border: .1em solid lighten($sheet-bg-color, 40%); | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,79 @@ | ||
| @import '../global'; | ||
|
|
||
| $panel-border-radius: .3em; | ||
|
|
||
| @mixin sencha-panel($include-floating: $include-floating-panels) { | ||
| .x-panel, | ||
| .x-msgbox, | ||
| .x-panel-body { | ||
| position: relative; | ||
| } | ||
|
|
||
| @if $include-floating { | ||
| .x-panel.x-floating, | ||
| .x-msgbox.x-floating, | ||
| .x-form.x-floating { | ||
| padding: 6px; | ||
| @if $include-border-radius { @include border-radius($panel-border-radius); } | ||
| -webkit-box-shadow: rgba(0,0,0,.8) 0 .2em .6em; | ||
| @include background-gradient(darken($base-color, 40%), 'flat'); | ||
|
|
||
| &.x-floating-light { | ||
| @include background-gradient($base-color, 'flat'); | ||
| } | ||
|
|
||
| > .x-panel-inner, | ||
| .x-scroll-view, | ||
| .x-body { | ||
| background-color: #fff; | ||
| @if $include-border-radius { @include border_radius($panel-border-radius); } | ||
| } | ||
| } | ||
|
|
||
| $anchor-height: .7em; | ||
| $anchor-width: $anchor-height*2.33; | ||
| $anchor-offset: 0.1em; | ||
|
|
||
| .x-anchor { | ||
| width: $anchor-width; | ||
| height: $anchor-height; | ||
| position: absolute; | ||
| left: 0; | ||
| top: 0; | ||
| z-index: 1; | ||
| -webkit-mask: 0 0 theme_image($theme-name, "tip_horizontal.png") no-repeat; | ||
| -webkit-mask-size: $anchor-width $anchor-height; | ||
| overflow: hidden; | ||
| background-color: darken($base-color, 40%); | ||
| -webkit-transform-origin: 0% 0%; | ||
|
|
||
| &.x-anchor-top { | ||
| margin-left: -($anchor-width / 2); | ||
| margin-top: -$anchor-height; | ||
| } | ||
|
|
||
| &.x-anchor-bottom { | ||
| -webkit-transform: rotate(180deg); | ||
| margin-left: $anchor-width / 2; | ||
| margin-top: $anchor-height - $anchor-offset; | ||
| } | ||
|
|
||
| &.x-anchor-left { | ||
| -webkit-transform: rotate(270deg); | ||
| margin-left: -$anchor-height; | ||
| margin-top: -$anchor-offset; | ||
| } | ||
|
|
||
| &.x-anchor-right { | ||
| -webkit-transform: rotate(90deg); | ||
| margin-left: $anchor-height; | ||
| margin-top: 0; | ||
| } | ||
| } | ||
| .x-floating.x-panel-light { | ||
| &:after { | ||
| background-color: $base-color; | ||
| } | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,154 @@ | ||
| @import '../global'; | ||
|
|
||
| $picker-row-height: 2.5em !default; | ||
| $picker-active-border: .12em solid $active-color !default; | ||
| $picker-sheet-radius: .4em !default; | ||
| $picker-title-color: darken(desaturate($base-color, 10%), 25%) !default; | ||
| $picker-title-bg-color: lighten(saturate($base-color, 10%), 5%) !default; | ||
| $picker-title-bg-gradient: $base-gradient !default; | ||
| $include-picker-highlights: $include-highlights !default; | ||
| $picker-bar-gradient: $base-gradient !default; | ||
|
|
||
| @mixin sencha-picker { | ||
|
|
||
| .x-sheet.x-picker { | ||
| padding: 0; | ||
| } | ||
|
|
||
| .x-sheet.x-picker .x-sheet-inner { | ||
| position: relative; | ||
| background-color: #fff; | ||
| @if $include-border-radius { @include border-radius($picker-sheet-radius); } | ||
| @include background-clip(padding-box); | ||
| overflow: hidden; | ||
| margin: $sheet-padding; | ||
|
|
||
| @if $include-picker-highlights { | ||
| &:before, &:after { | ||
| z-index: 1; | ||
| @include insertion(100%, 30%, 0, 0); | ||
| } | ||
|
|
||
| &:before { | ||
| top: auto; | ||
| @if $include-border-radius { @include border-bottom-radius($picker-sheet-radius); } | ||
| bottom: 0; | ||
| @include background-image(linear-gradient(color-stops(#fff, #bbb))); | ||
| } | ||
| &:after { | ||
| @if $include-border-radius { @include border-top-radius($picker-sheet-radius); } | ||
| @include background-image(linear-gradient(color-stops(#bbb, #fff))); | ||
| } | ||
| } | ||
|
|
||
| .x-picker-slot { | ||
| .x-body { | ||
| border-left: 1px solid #999999; | ||
| border-right: 1px solid #ACACAC; | ||
| } | ||
|
|
||
| &.x-first { | ||
| .x-body { | ||
| border-left: 0; | ||
| } | ||
| } | ||
|
|
||
| &.x-last { | ||
| .x-body { | ||
| border-left: 0; | ||
| border-right: 0; | ||
| } | ||
| } | ||
| } | ||
| } | ||
|
|
||
| .x-picker-slot .x-scroll-view { | ||
| z-index: 2; | ||
| position: relative; | ||
|
|
||
| @if $include-highlights { | ||
| -webkit-box-shadow: rgba(#000,.4) -1px 0 1px; | ||
| } | ||
| &:first-child { | ||
| -webkit-box-shadow: none; | ||
| } | ||
| } | ||
|
|
||
| .x-picker-mask { | ||
| position: absolute; | ||
| top: 0; | ||
| left: 0; | ||
| right: 0; | ||
| bottom: 0; | ||
| z-index: 3; | ||
| @include display-box; | ||
| @include box-align(stretch); | ||
| @include box-orient(vertical); | ||
| @include box-pack(center); | ||
| pointer-events: none; | ||
| } | ||
|
|
||
| .x-picker-bar { | ||
| border-top: $picker-active-border; | ||
| border-bottom: $picker-active-border; | ||
| height: $picker-row-height; | ||
| @include background-gradient(hsla(hue($active-color), 90, 50, .3), $picker-bar-gradient); | ||
| @if $include-highlights { | ||
| -webkit-box-shadow: rgba(#000,0.2) 0 .2em .2em; | ||
| } | ||
| } | ||
|
|
||
| .x-use-titles { | ||
| .x-picker-bar { | ||
| margin-top: 1.5em; | ||
| } | ||
| } | ||
|
|
||
| .x-picker-slot-title { | ||
| height: 1.5em; | ||
| position:relative; | ||
| z-index: 2; | ||
| @include background-gradient($picker-title-bg-color, $picker-title-bg-gradient); | ||
| border-top: 1px solid $picker-title-bg-color; | ||
| border-bottom: 1px solid darken($picker-title-bg-color, 20%); | ||
| -webkit-box-shadow: 0px .1em .3em rgba(0, 0, 0, 0.3); | ||
| padding: 0.2em 1.02em; | ||
|
|
||
| > div { | ||
| font-weight: bold; | ||
| font-size: 0.8em; | ||
| color: $picker-title-color; | ||
| @if $include-picker-highlights { | ||
| @include bevel-text('light'); | ||
| } | ||
| } | ||
| } | ||
|
|
||
| .x-picker-slot { | ||
| .x-dataview-inner { | ||
| width: 100%; | ||
| } | ||
|
|
||
| .x-dataview-item { | ||
| vertical-align: middle; | ||
| height: $picker-row-height; | ||
| line-height: $picker-row-height; | ||
| font-weight: bold; | ||
| padding: 0 10px; | ||
| } | ||
|
|
||
| .x-picker-item { | ||
| @include ellipsis; | ||
| } | ||
| } | ||
|
|
||
| .x-picker-right { | ||
| text-align: right; | ||
| } | ||
| .x-picker-center { | ||
| text-align: center; | ||
| } | ||
| .x-picker-left { | ||
| text-align: left; | ||
| } | ||
| } |
| @@ -0,0 +1,52 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.Sheet | ||
| */ | ||
|
|
||
| /** | ||
| * @var {color} $sheet-bg-color | ||
| * Background-color for action sheets and message boxes. | ||
| */ | ||
| $sheet-bg-color: transparentize(darken($base-color, 40%), .1) !default; | ||
|
|
||
| /** | ||
| * @var {color} $sheet-bg-gradient | ||
| * Background gradient style for action sheets and message boxes. | ||
| */ | ||
| $sheet-bg-gradient: $base-gradient !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $sheet-button-spacing | ||
| * Vertical spacing between sheet buttons. | ||
| */ | ||
| $sheet-button-spacing: .5em !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $sheet-padding | ||
| * Overall padding in a sheet. | ||
| */ | ||
| $sheet-padding: .7em !default; | ||
|
|
||
| /** | ||
| * Includes default sheet styles (also required for message box). | ||
| */ | ||
| @mixin sencha-sheet { | ||
| .x-sheet, .x-sheet-action { | ||
| padding: $sheet-padding; | ||
| border-top: 1px solid darken($base-color, 30%); | ||
| height: auto; | ||
| @include background-gradient($sheet-bg-color, $sheet-bg-gradient); | ||
| @include border-radius(0); | ||
| } | ||
|
|
||
| .x-sheet-inner, .x-sheet-action-inner { | ||
| > .x-button { | ||
| margin-bottom: $sheet-button-spacing; | ||
|
|
||
| &:last-child { | ||
| margin-bottom: 0; | ||
| } | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,269 @@ | ||
| // Tab icons used with permission from Drew Wilson | ||
| // http://pictos.drewwilson.com/ | ||
| // Pictos icons are (c) 2010 Drew Wilson | ||
|
|
||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.tab.Bar | ||
| */ | ||
|
|
||
| /** | ||
| * @var {boolean} $include-tabbar-uis Optionally disable separate tabbar UIs (light and dark). | ||
| */ | ||
| $include-tabbar-uis: $include-default-uis !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-top-tabs | ||
| * Optionally exclude top tab styles by setting to false. | ||
| */ | ||
| $include-top-tabs: true !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-bottom-tabs | ||
| * Optionally exclude bottom tab styles by setting to false. | ||
| */ | ||
| $include-bottom-tabs: true !default; | ||
|
|
||
| /** | ||
| * @var {color} $tabs-light | ||
| * Base color for "light" UI tabs. | ||
| */ | ||
| $tabs-light: desaturate($base-color, 10%) !default; | ||
|
|
||
| /** | ||
| * @var {color} $tabs-light-active | ||
| * Active color for "light" UI tabs. | ||
| */ | ||
| $tabs-light-active: lighten(saturate($active-color, 20%), 20%) !default; | ||
|
|
||
| /** | ||
| * @var {color} $tabs-dark | ||
| * Base color for "dark" UI tabs. | ||
| */ | ||
| $tabs-dark: darken($base-color, 20%) !default; | ||
|
|
||
| /** | ||
| * @var {color} $tabs-dark-active | ||
| * Active color for "dark" UI tabs. | ||
| */ | ||
| $tabs-dark-active-color: saturate(lighten($active-color, 30%), 70%) !default; | ||
|
|
||
| /** | ||
| * @var {string} $tabs-bar-gradient | ||
| * Background gradient style for tab bars. | ||
| */ | ||
| $tabs-bar-gradient: $base-gradient !default; | ||
|
|
||
| /** | ||
| * @class Ext.tab.Tab | ||
| */ | ||
|
|
||
| /** | ||
| * @var {string} $tabs-bottom-radius | ||
| * Border-radius for bottom tabs. | ||
| */ | ||
| $tabs-bottom-radius: .25em !default; | ||
|
|
||
| /** | ||
| * @var {string} $tabs-bottom-icon-size | ||
| * Icon size for bottom tabs | ||
| */ | ||
| $tabs-bottom-icon-size: 1.65em !default; | ||
|
|
||
| /** | ||
| * @var {string} $tabs-bottom-active-gradient | ||
| * Background gradient style for active bottom tabs. | ||
| */ | ||
| $tabs-bottom-active-gradient: $base-gradient !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-tab-highlights | ||
| * Optionally disable all gradients, text-shadows, and box-shadows. Useful for CSS debugging, | ||
| * non-performant browsers, or minimalist designs. | ||
| */ | ||
| $include-tab-highlights: $include-highlights !default; | ||
|
|
||
| // Private | ||
|
|
||
| $tabs-top-height: $global-row-height - .8em; | ||
|
|
||
| /** | ||
| * Includes default tab styles. | ||
| * | ||
| * @member Ext.tab.Bar | ||
| */ | ||
| @mixin sencha-tabs { | ||
| @if $include-top-tabs { | ||
| @include sencha-top-tabs; | ||
| } | ||
| @if $include-bottom-tabs { | ||
| @include sencha-bottom-tabs; | ||
| } | ||
|
|
||
| @if $include-tabbar-uis { | ||
| @include sencha-tabbar-ui('light', $tabs-light, $tabs-bar-gradient, $tabs-light-active); | ||
| @include sencha-tabbar-ui('dark', $tabs-dark, $tabs-bar-gradient, $tabs-dark-active-color); | ||
| @include sencha-tabbar-ui('neutral', $neutral-color, $tabs-bar-gradient, darken($neutral-color, 40)); | ||
| } | ||
|
|
||
| // Rules for all tabs | ||
| .x-tab.x-item-disabled span.x-button-label, .x-tab.x-item-disabled .x-button-icon { | ||
| @include opacity(.5); | ||
| } | ||
| .x-tab.x-draggable { | ||
| @include opacity(.7); | ||
| } | ||
|
|
||
| .x-tab { | ||
| -webkit-user-select: none; | ||
| overflow: visible !important; | ||
| } | ||
| } | ||
|
|
||
|
|
||
| @mixin sencha-top-tabs { | ||
| .x-tabbar.x-docked-top { | ||
| border-bottom-width: .1em; | ||
| border-bottom-style: solid; | ||
| height: $global-row-height; | ||
| padding: 0 .8em; | ||
|
|
||
| .x-tab { | ||
| padding: (($tabs-top-height - 1em) / 2) .8em; | ||
| height: $tabs-top-height; | ||
| @if $include-border-radius { @include border-radius($tabs-top-height / 2); } | ||
| } | ||
|
|
||
| .x-button-label { | ||
| font-size: .8em; | ||
| line-height: 1.2em; | ||
| text-rendering: optimizeLegibility; | ||
| -webkit-font-smoothing: antialiased; | ||
| } | ||
| } | ||
| } | ||
|
|
||
|
|
||
| @mixin sencha-bottom-tabs { | ||
| .x-tabbar.x-docked-bottom { | ||
| border-top-width: .1em; | ||
| border-top-style: solid; | ||
| height: 3em; | ||
| padding: 0; | ||
|
|
||
| .x-tab { | ||
| @if $include-border-radius { @include border-radius($tabs-bottom-radius); } | ||
| min-width: 3.3em; | ||
| position: relative; | ||
| padding-top: .2em; | ||
|
|
||
| .x-button-icon { | ||
| -webkit-mask-size: $tabs-bottom-icon-size; | ||
| width: $tabs-bottom-icon-size; | ||
| height: $tabs-bottom-icon-size; | ||
| display: block; | ||
| margin: 0 auto; | ||
| position: relative; | ||
| } | ||
|
|
||
| .x-button-label { | ||
| margin: 0; | ||
| padding: .1em 0 .2em 0; | ||
| font-size: 9px; | ||
| line-height: 12px; | ||
| text-rendering: optimizeLegibility; | ||
| -webkit-font-smoothing: antialiased; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| @if $include-default-icons { | ||
| @include pictos-iconmask('bookmarks'); | ||
| @include pictos-iconmask('download'); | ||
| @include pictos-iconmask('favorites'); | ||
| @include pictos-iconmask('info'); | ||
| @include pictos-iconmask('more'); | ||
| @include pictos-iconmask('time'); | ||
| @include pictos-iconmask('user'); | ||
| @include pictos-iconmask('team'); | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Creates a theme UI for tabbar/tab components. | ||
| * | ||
| * // SCSS | ||
| * @include sencha-button-ui('pink', #333, 'matte', #AE537A); | ||
| * | ||
| * // JS | ||
| * var tabs = new Ext.tab.Panel({ | ||
| * tabBar: { | ||
| * ui: 'pink', | ||
| * dock: 'bottom', | ||
| * layout: { pack: 'center' } | ||
| * }, | ||
| * ... | ||
| * }); | ||
| * | ||
| * @param {string} $ui-label The name of the UI being created. | ||
| * Can not included spaces or special punctuation (used in class names) | ||
| * @param {color} $bar-color Base color for the tab bar. | ||
| * @param {string} $bar-gradient Background gradient style for the tab bar. | ||
| * @param {color} $tab-active-color Background-color for active tab icons. | ||
| * | ||
| * @member Ext.tab.Bar | ||
| */ | ||
| @mixin sencha-tabbar-ui($ui-label, $bar-color, $bar-gradient, $tab-active-color) { | ||
| .x-tabbar-#{$ui-label} { | ||
| @include background-gradient($bar-color, $bar-gradient); | ||
| border-top-color: darken($bar-color, 5%); | ||
| border-bottom-color: darken($bar-color, 15%); | ||
|
|
||
| .x-tab { | ||
| @include color-by-background($bar-color, 40%); | ||
| } | ||
|
|
||
| .x-tab-active { | ||
| @include color-by-background($bar-color, 90%); | ||
| border-bottom: 1px solid lighten($bar-color, 3%); | ||
| } | ||
|
|
||
| .x-tab-pressed { | ||
| @include color-by-background($bar-color, 100%); | ||
| } | ||
| } | ||
|
|
||
| @if $include-bottom-tabs { | ||
| .x-tabbar-#{$ui-label}.x-docked-bottom { | ||
| .x-tab { | ||
| @include bevel-by-background($bar-color); | ||
| .x-button-icon { | ||
| @include mask-by-background($bar-color, 20%, $tabs-bar-gradient); | ||
| } | ||
| } | ||
|
|
||
| .x-tab-active { | ||
| @include background-gradient(darken($bar-color, 5%), recessed); | ||
| @include bevel-by-background(lighten($bar-color, 10%)); | ||
|
|
||
| @if ($include-tab-highlights) { | ||
| @include box-shadow(darken($bar-color, 10%) 0 0 .25em inset); | ||
| } | ||
|
|
||
| .x-button-icon { | ||
| @include background-gradient($tab-active-color, $tabs-bottom-active-gradient); | ||
| } | ||
| } | ||
| } | ||
| } | ||
|
|
||
| @if $include-top-tabs { | ||
| .x-tabbar-#{$ui-label}.x-docked-top { | ||
| .x-tab-active { | ||
| @include background-gradient(darken($bar-color, 5%), 'recessed'); | ||
| @include color-by-background(darken($bar-color, 5%)); | ||
| } | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1,182 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.field.Field | ||
| */ | ||
|
|
||
| /** | ||
| * @var {color} $toolbar-input-bg | ||
| * Background-color for toolbar form fields. | ||
| */ | ||
| $toolbar-input-bg: #fff !default; | ||
|
|
||
| /** | ||
| * @var {color} $toolbar-input-color | ||
| * Text color for toolbar form fields. | ||
| */ | ||
| $toolbar-input-color: #000 !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $toolbar-input-height | ||
| * Text color for toolbar form fields. | ||
| */ | ||
| $toolbar-input-height: 1.6em !default; | ||
|
|
||
| /** | ||
| * @var {color} $toolbar-input-border-color | ||
| * Border color for toolbar form fields. | ||
| */ | ||
| $toolbar-input-border-color: rgba(#000, .5) !default; | ||
|
|
||
| // Private | ||
| $toolbar-select-overflow-mask-width: 3em; | ||
| $toolbar-search-left-padding: 1.67em; | ||
|
|
||
| /** | ||
| * Includes default toolbar form field styles. | ||
| * | ||
| * @member Ext.tab.Bar | ||
| */ | ||
| @mixin sencha-toolbar-forms { | ||
| //so disabled fields are still dark | ||
| .x-spinner .x-input-el, | ||
| .x-field-select .x-input-el { | ||
| -webkit-text-fill-color: #000; | ||
| -webkit-opacity: 1; | ||
| } | ||
|
|
||
| .x-spinner.x-item-disabled .x-input-el, | ||
| .x-field-select.x-item-disabled .x-input-el { | ||
| -webkit-text-fill-color: currentcolor; | ||
| } | ||
|
|
||
| //and inside toolbars | ||
| .x-toolbar .x-field-select .x-input-el { | ||
| -webkit-text-fill-color: #fff; | ||
| } | ||
|
|
||
| .x-toolbar .x-field-select.x-item-disabled .x-input-el { | ||
| -webkit-text-fill-color: rgba(255,255,255,.6); | ||
| } | ||
|
|
||
| .x-toolbar { | ||
| .x-form-field-container { | ||
| @if $include-border-radius { padding: 0 .3em; } | ||
| } | ||
|
|
||
| .x-field { | ||
| width: 13em; | ||
| margin: .5em; | ||
| min-height: 0; | ||
| border-bottom: 0; | ||
| background: transparent; | ||
|
|
||
| .x-clear-icon { | ||
| background-size: 50% 50%; | ||
| right: -0.8em; | ||
| margin-top: -1.06em; | ||
| } | ||
| } | ||
|
|
||
| .x-field-input { | ||
| padding-right: 1.6em !important; | ||
| } | ||
|
|
||
| .x-field-textarea, | ||
| .x-field-text, | ||
| .x-field-number, | ||
| .x-field-search { | ||
| .x-component-outer { | ||
| @if $include-border-radius { @include border-radius(.3em); } | ||
| background-color: $toolbar-input-bg; | ||
|
|
||
| @if $include-highlights { | ||
| -webkit-box-shadow: inset $toolbar-input-border-color 0 .1em 0, inset $toolbar-input-border-color 0 -.1em 0, inset $toolbar-input-border-color .1em 0 0, inset $toolbar-input-border-color -.1em 0 0, inset rgba(#000, .5) 0 .15em .4em; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| .x-form-label { | ||
| background: transparent; | ||
| border: 0; | ||
| padding: 0; | ||
| line-height: 1.4em; | ||
| } | ||
|
|
||
| .x-form-field { | ||
| height: $toolbar-input-height; | ||
| color: lighten($toolbar-input-color, 43%); | ||
| background: transparent; | ||
| min-height: 0; | ||
| -webkit-appearance: none; | ||
| padding: 0em .3em; | ||
| margin: 0; | ||
|
|
||
| &:focus { | ||
| color: $toolbar-input-color; | ||
| } | ||
| } | ||
|
|
||
| .x-field-select, | ||
| .x-field-search { | ||
| .x-component-outer { | ||
| @if $include-border-radius { @include border-radius($toolbar-input-height/2); } | ||
| } | ||
| } | ||
|
|
||
| .x-field-search { | ||
| .x-field-input { | ||
| background-position: .5em 50%; | ||
| } | ||
| } | ||
|
|
||
| .x-field-select { | ||
| -webkit-box-shadow: none; | ||
|
|
||
| .x-form-field { | ||
| height: 1.4em; | ||
| } | ||
| } | ||
|
|
||
| .x-field-select { | ||
| background: transparent; | ||
|
|
||
| .x-component-outer { | ||
| &:after { | ||
| right: .4em; | ||
| } | ||
| } | ||
|
|
||
| &.x-item-disabled { | ||
| .x-component-outer:after { | ||
| opacity: .6; | ||
| } | ||
| } | ||
|
|
||
| // Background is set in _toolbar file | ||
| .x-component-outer:before { | ||
| width: $toolbar-select-overflow-mask-width; | ||
| border-left: none; | ||
| @if $include-border-radius { @include border-right-radius($toolbar-input-height/2); } | ||
| @if $include-highlights { | ||
| -webkit-mask: theme_image($theme-name, "select_mask.png"); | ||
| -webkit-mask-position: right top; | ||
| -webkit-mask-repeat: repeat-y; | ||
| -webkit-mask-size: $toolbar-select-overflow-mask-width .05em; | ||
| } | ||
| @else { | ||
| width: 0.5em !important; | ||
| } | ||
| } | ||
|
|
||
| .x-input-text { | ||
| color: #fff; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| .x-android .x-field-search .x-field-input { | ||
| padding-left: .2em !important; | ||
| padding-right: 2.2em !important; | ||
| } | ||
| } |
| @@ -0,0 +1,156 @@ | ||
| @import '../global'; | ||
|
|
||
| /** | ||
| * @class Ext.Toolbar | ||
| */ | ||
|
|
||
| /** | ||
| * @var {color} $toolbar-base-color | ||
| * The primary color variable from which toolbars derive their light and dark UIs. | ||
| */ | ||
| $toolbar-base-color: $base-color !default; | ||
|
|
||
| /** | ||
| * @var {measurement} $toolbar-spacing | ||
| * Space between items in a toolbar (like buttons and fields) | ||
| */ | ||
| $toolbar-spacing: .2em !default; | ||
|
|
||
| /** | ||
| * @var {string} $toolbar-gradient | ||
| * Background gradient style for toolbars. | ||
| */ | ||
| $toolbar-gradient: $base-gradient !default; | ||
|
|
||
| /** | ||
| * @var {boolean} $include-toolbar-uis | ||
| * Optionally disable separate toolbar UIs (light and dark). | ||
| */ | ||
| $include-toolbar-uis: $include-default-uis !default; | ||
|
|
||
| /** | ||
| * Includes default toolbar styles. | ||
| */ | ||
| @mixin sencha-toolbar { | ||
|
|
||
| .x-toolbar { | ||
| padding: 0 $toolbar-spacing; | ||
| overflow: hidden; | ||
| position: relative; | ||
| height: $global-row-height; | ||
|
|
||
| & > * { | ||
| z-index: 1; | ||
| } | ||
|
|
||
| &.x-docked-top { | ||
| border-bottom: .1em solid; | ||
| } | ||
|
|
||
| &.x-docked-bottom { | ||
| border-top: .1em solid; | ||
| } | ||
|
|
||
| &.x-docked-left { | ||
| width: 7em; | ||
| height: auto; | ||
| padding: $toolbar-spacing; | ||
| border-right: .1em solid; | ||
| } | ||
|
|
||
| &.x-docked-right { | ||
| width: 7em; | ||
| height: auto; | ||
| padding: $toolbar-spacing; | ||
| border-left: .1em solid; | ||
| } | ||
| } | ||
|
|
||
| .x-title { | ||
| line-height: $global-row-height - .5em; | ||
| font-size: 1.2em; | ||
| text-align: center; | ||
| font-weight: bold; | ||
| white-space: nowrap; | ||
| overflow: hidden; | ||
| text-overflow: ellipsis; | ||
| margin: 0 0.3em; | ||
| max-width: 100%; | ||
|
|
||
| .x-innerhtml { | ||
| white-space: nowrap; | ||
| overflow: hidden; | ||
| text-overflow: ellipsis; | ||
| padding: 0 .3em; | ||
| } | ||
| } | ||
|
|
||
| @if $include-toolbar-uis { | ||
| @include sencha-toolbar-ui('dark', darken($toolbar-base-color, 10%)); | ||
| @include sencha-toolbar-ui('light', $toolbar-base-color); | ||
| @include sencha-toolbar-ui('neutral', $neutral-color); | ||
| } | ||
|
|
||
| .x-navigation-bar { | ||
| .x-container { | ||
| overflow: visible; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| /** | ||
| * Creates a theme UI for toolbars. | ||
| * | ||
| * // SCSS | ||
| * @include sencha-toolbar-ui('sub', #58710D, 'glossy'); | ||
| * | ||
| * // JS | ||
| * var myTb = new Ext.Toolbar({title: 'My Green Glossy Toolbar', ui: 'sub'}) | ||
| * | ||
| * @param {string} $ui-label The name of the UI being created. | ||
| * Can not included spaces or special punctuation (used in class names) | ||
| * @param {color} $color Base color for the UI. | ||
| * @param {string} $gradient: $toolbar-gradien Background gradient style for the UI. | ||
| */ | ||
| @mixin sencha-toolbar-ui($ui-label, $color, $gradient: $toolbar-gradient) { | ||
|
|
||
| $toolbar-border-color: darken($color, 50%); | ||
| $toolbar-button-color: darken($color, 5%); | ||
|
|
||
| .x-toolbar-#{$ui-label} { | ||
| @include background-gradient($color, $gradient); | ||
| border-color: $toolbar-border-color; | ||
|
|
||
| .x-title { | ||
| @include color-by-background($color); | ||
| @include bevel-by-background($color); | ||
| } | ||
|
|
||
| &.x-docked-top { | ||
| border-bottom-color: $toolbar-border-color; | ||
| } | ||
|
|
||
| &.x-docked-bottom { | ||
| border-top-color: $toolbar-border-color; | ||
| } | ||
|
|
||
| &.x-docked-left { | ||
| border-right-color: $toolbar-border-color; | ||
| } | ||
|
|
||
| &.x-docked-right { | ||
| border-left-color: $toolbar-border-color; | ||
| } | ||
|
|
||
| .x-button, | ||
| .x-field-select .x-component-outer, | ||
| .x-field-select .x-component-outer:before { | ||
| @include toolbar-button($toolbar-button-color, $gradient); | ||
| } | ||
|
|
||
| .x-form-label { | ||
| @include color-by-background($color); | ||
| @include bevel-by-background($color); | ||
| } | ||
| } | ||
| } |
| @@ -0,0 +1 @@ | ||
| stylesheet 'sencha-touch.scss' |
| @@ -0,0 +1,17 @@ | ||
| @import 'sencha-touch/default/all'; | ||
|
|
||
| // You may remove any of the following modules that you | ||
| // do not use in order to create a smaller css file. | ||
| @include sencha-panel; | ||
| @include sencha-buttons; | ||
| @include sencha-sheet; | ||
| @include sencha-picker; | ||
| @include sencha-tabs; | ||
| @include sencha-toolbar; | ||
| @include sencha-toolbar-forms; | ||
| @include sencha-indexbar; | ||
| @include sencha-list; | ||
| @include sencha-layout; | ||
| @include sencha-carousel; | ||
| @include sencha-form; | ||
| @include sencha-msgbox; |