Blame | Last modification | View Log | RSS feed
/*** Tabs* --------------------------------------------------* A navigation bar with any number of tab items supported.*/.tabs {@include display-flex();@include flex-direction(horizontal);@include justify-content(center);@include translate3d(0,0,0);@include tab-style($tabs-default-bg, $tabs-default-border, $tabs-default-text);@include tab-badge-style($tabs-default-text, $tabs-default-bg);position: absolute;bottom: 0;z-index: $z-index-tabs;width: 100%;height: $tabs-height;border-style: solid;border-top-width: 1px;background-size: 0;line-height: $tabs-height;@media (min--moz-device-pixel-ratio: 1.5),(-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5),(min-resolution: 144dpi),(min-resolution: 1.5dppx) {padding-top: 2px;border-top: none !important;border-bottom: none;background-position: top;background-size: 100% 1px;background-repeat: no-repeat;}}/* Allow parent element of tabs to define color, or just the tab itself */.tabs-light > .tabs,.tabs.tabs-light {@include tab-style($tabs-light-bg, $tabs-light-border, $tabs-light-text);@include tab-badge-style($tabs-light-text, $tabs-light-bg);}.tabs-stable > .tabs,.tabs.tabs-stable {@include tab-style($tabs-stable-bg, $tabs-stable-border, $tabs-stable-text);@include tab-badge-style($tabs-stable-text, $tabs-stable-bg);}.tabs-positive > .tabs,.tabs.tabs-positive {@include tab-style($tabs-positive-bg, $tabs-positive-border, $tabs-positive-text);@include tab-badge-style($tabs-positive-text, $tabs-positive-bg);}.tabs-calm > .tabs,.tabs.tabs-calm {@include tab-style($tabs-calm-bg, $tabs-calm-border, $tabs-calm-text);@include tab-badge-style($tabs-calm-text, $tabs-calm-bg);}.tabs-assertive > .tabs,.tabs.tabs-assertive {@include tab-style($tabs-assertive-bg, $tabs-assertive-border, $tabs-assertive-text);@include tab-badge-style($tabs-assertive-text, $tabs-assertive-bg);}.tabs-balanced > .tabs,.tabs.tabs-balanced {@include tab-style($tabs-balanced-bg, $tabs-balanced-border, $tabs-balanced-text);@include tab-badge-style($tabs-balanced-text, $tabs-balanced-bg);}.tabs-energized > .tabs,.tabs.tabs-energized {@include tab-style($tabs-energized-bg, $tabs-energized-border, $tabs-energized-text);@include tab-badge-style($tabs-energized-text, $tabs-energized-bg);}.tabs-royal > .tabs,.tabs.tabs-royal {@include tab-style($tabs-royal-bg, $tabs-royal-border, $tabs-royal-text);@include tab-badge-style($tabs-royal-text, $tabs-royal-bg);}.tabs-dark > .tabs,.tabs.tabs-dark {@include tab-style($tabs-dark-bg, $tabs-dark-border, $tabs-dark-text);@include tab-badge-style($tabs-dark-text, $tabs-dark-bg);}@mixin tabs-striped($style, $color, $background) {&.#{$style} {.tabs{background-color: $background;}.tab-item {color: rgba($color, $tabs-striped-off-opacity);opacity: 1;.badge{opacity:$tabs-striped-off-opacity;}&.tab-item-active,&.active,&.activated {margin-top: -$tabs-striped-border-width;color: $color;border-style: solid;border-width: $tabs-striped-border-width 0 0 0;border-color: $color;}}}&.tabs-top{.tab-item {&.tab-item-active,&.active,&.activated {.badge {top: 4%;}}}}}@mixin tabs-background($style, $color, $border-color) {.#{$style} {.tabs,&> .tabs{background-color: $color;background-image: linear-gradient(0deg, $border-color, $border-color 50%, transparent 50%);border-color: $border-color;}}}@mixin tabs-striped-background($style, $color) {&.#{$style} {.tabs {background-color: $color;background-image:none;}}}@mixin tabs-color($style, $color) {.#{$style} {.tab-item {color: rgba($color, $tabs-off-opacity);opacity: 1;.badge{opacity:$tabs-off-opacity;}&.tab-item-active,&.active,&.activated {color: $color;border: 0 solid $color;.badge{opacity: 1;}}}}}@mixin tabs-striped-color($style, $color) {&.#{$style} {.tab-item {color: rgba($color, $tabs-striped-off-opacity);opacity: 1;.badge{opacity:$tabs-striped-off-opacity;}&.tab-item-active,&.active,&.activated {margin-top: -$tabs-striped-border-width;color: $color;border: 0 solid $color;border-top-width: $tabs-striped-border-width;.badge{top:$tabs-striped-border-width;opacity: 1;}}}}}.tabs-striped {.tabs {background-color: white;background-image: none;border: none;border-bottom: 1px solid #ddd;padding-top: $tabs-striped-border-width;}.tab-item {// default android tab style&.tab-item-active,&.active,&.activated {margin-top: -$tabs-striped-border-width;border-style: solid;border-width: $tabs-striped-border-width 0 0 0;border-color: $dark;.badge{top:$tabs-striped-border-width;opacity: 1;}}}@include tabs-striped('tabs-light', $dark, $light);@include tabs-striped('tabs-stable', $dark, $stable);@include tabs-striped('tabs-positive', $light, $positive);@include tabs-striped('tabs-calm', $light, $calm);@include tabs-striped('tabs-assertive', $light, $assertive);@include tabs-striped('tabs-balanced', $light, $balanced);@include tabs-striped('tabs-energized', $light, $energized);@include tabs-striped('tabs-royal', $light, $royal);@include tabs-striped('tabs-dark', $light, $dark);// doing this twice so striped tabs styles don't override specific bg and color vals@include tabs-striped-background('tabs-background-light', $light);@include tabs-striped-background('tabs-background-stable', $stable);@include tabs-striped-background('tabs-background-positive', $positive);@include tabs-striped-background('tabs-background-calm', $calm);@include tabs-striped-background('tabs-background-assertive', $assertive);@include tabs-striped-background('tabs-background-balanced', $balanced);@include tabs-striped-background('tabs-background-energized',$energized);@include tabs-striped-background('tabs-background-royal', $royal);@include tabs-striped-background('tabs-background-dark', $dark);@include tabs-striped-color('tabs-color-light', $light);@include tabs-striped-color('tabs-color-stable', $stable);@include tabs-striped-color('tabs-color-positive', $positive);@include tabs-striped-color('tabs-color-calm', $calm);@include tabs-striped-color('tabs-color-assertive', $assertive);@include tabs-striped-color('tabs-color-balanced', $balanced);@include tabs-striped-color('tabs-color-energized',$energized);@include tabs-striped-color('tabs-color-royal', $royal);@include tabs-striped-color('tabs-color-dark', $dark);}@include tabs-background('tabs-background-light', $light, $bar-light-border);@include tabs-background('tabs-background-stable', $stable, $bar-stable-border);@include tabs-background('tabs-background-positive', $positive, $bar-positive-border);@include tabs-background('tabs-background-calm', $calm, $bar-calm-border);@include tabs-background('tabs-background-assertive', $assertive, $bar-assertive-border);@include tabs-background('tabs-background-balanced', $balanced, $bar-balanced-border);@include tabs-background('tabs-background-energized',$energized, $bar-energized-border);@include tabs-background('tabs-background-royal', $royal, $bar-royal-border);@include tabs-background('tabs-background-dark', $dark, $bar-dark-border);@include tabs-color('tabs-color-light', $light);@include tabs-color('tabs-color-stable', $stable);@include tabs-color('tabs-color-positive', $positive);@include tabs-color('tabs-color-calm', $calm);@include tabs-color('tabs-color-assertive', $assertive);@include tabs-color('tabs-color-balanced', $balanced);@include tabs-color('tabs-color-energized',$energized);@include tabs-color('tabs-color-royal', $royal);@include tabs-color('tabs-color-dark', $dark);@mixin tabs-standard-color($style, $color, $off-color:$dark) {&.#{$style} {.tab-item {color: $off-color;&.tab-item-active,&.active,&.activated {color: $color;}}}}ion-tabs {@include tabs-standard-color('tabs-color-active-light', $light, $dark);@include tabs-standard-color('tabs-color-active-stable', $stable, $dark);@include tabs-standard-color('tabs-color-active-positive', $positive, $dark);@include tabs-standard-color('tabs-color-active-calm', $calm, $dark);@include tabs-standard-color('tabs-color-active-assertive', $assertive, $dark);@include tabs-standard-color('tabs-color-active-balanced', $balanced, $dark);@include tabs-standard-color('tabs-color-active-energized',$energized, $dark);@include tabs-standard-color('tabs-color-active-royal', $royal, $dark);@include tabs-standard-color('tabs-color-active-dark', $dark, $light);}.tabs-top {&.tabs-striped {padding-bottom:0;.tab-item{background: transparent;// animate the top bar, leave bottom for platform consistency-webkit-transition: all .1s ease;-moz-transition: all .1s ease;-ms-transition: all .1s ease;-o-transition: all .1s ease;transition: all .1s ease;&.tab-item-active,&.active,&.activated {margin-top: 0;margin-bottom: -$tabs-striped-border-width;border-width: 0px 0px $tabs-striped-border-width 0px !important;border-style: solid;}.badge{-webkit-transition: all .2s ease;-moz-transition: all .2s ease;-ms-transition: all .2s ease;-o-transition: all .2s ease;transition: all .2s ease;}}}}/* Allow parent element to have tabs-top *//* If you change this, change platform.scss as well */.tabs-top > .tabs,.tabs.tabs-top {top: $bar-height;padding-top: 0;background-position: bottom;border-top-width: 0;border-bottom-width: 1px;.tab-item {&.tab-item-active,&.active,&.activated {.badge {top: 4%;}}}}.tabs-top ~ .bar-header {border-bottom-width: 0;}.tab-item {@include flex(1);display: block;overflow: hidden;max-width: $tab-item-max-width;height: 100%;color: inherit;text-align: center;text-decoration: none;text-overflow: ellipsis;white-space: nowrap;font-weight: 400;font-size: $tabs-text-font-size;font-family: $font-family-sans-serif;opacity: 0.7;&:hover {cursor: pointer;}&.tab-hidden{display:none;}}.tabs-item-hide > .tabs,.tabs.tabs-item-hide {display: none;}.tabs-icon-top > .tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-bottom > .tabs .tab-item,.tabs-icon-bottom.tabs .tab-item {font-size: $tabs-text-font-size-side-icon;line-height: $tabs-text-font-size;}.tab-item .icon {display: block;margin: 0 auto;height: $tabs-icon-size;font-size: $tabs-icon-size;}.tabs-icon-left.tabs .tab-item,.tabs-icon-left > .tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right > .tabs .tab-item {font-size: $tabs-text-font-size-side-icon;.icon {display: inline-block;vertical-align: top;margin-top: -.1em;&:before {font-size: $tabs-icon-size - 8;line-height: $tabs-height;}}}.tabs-icon-left > .tabs .tab-item .icon,.tabs-icon-left.tabs .tab-item .icon {padding-right: 3px;}.tabs-icon-right > .tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon {padding-left: 3px;}.tabs-icon-only > .tabs .icon,.tabs-icon-only.tabs .icon {line-height: inherit;}.tab-item.has-badge {position: relative;}.tab-item .badge {position: absolute;top: 4%;right: 33%; // fallbackright: calc(50% - 26px);padding: $tabs-badge-padding;height: auto;font-size: $tabs-badge-font-size;line-height: $tabs-badge-font-size + 4;}/* Navigational tab *//* Active state for tab */.tab-item.tab-item-active,.tab-item.active,.tab-item.activated {opacity: 1;&.tab-item-light {color: $light;}&.tab-item-stable {color: $stable;}&.tab-item-positive {color: $positive;}&.tab-item-calm {color: $calm;}&.tab-item-assertive {color: $assertive;}&.tab-item-balanced {color: $balanced;}&.tab-item-energized {color: $energized;}&.tab-item-royal {color: $royal;}&.tab-item-dark {color: $dark;}}.item.tabs {@include display-flex();padding: 0;.icon:before {position: relative;}}.tab-item.disabled,.tab-item[disabled] {opacity: .4;cursor: default;pointer-events: none;}