/** * 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 !important; 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) { &.#{$style} { .tab-item.tab-item-active, .tab-item.active, .tab-item.activated { margin-top: -4px; color: $color; border-style: solid; border-width: $tabs-striped-border-width 0 0 0; border-color: $color; } } } .tabs-striped { .tabs { background-color: white; background-image: none; border: none; } @include tabs-striped('tabs-light', $light); @include tabs-striped('tabs-stable', $stable); @include tabs-striped('tabs-positive', $positive); @include tabs-striped('tabs-calm', $calm); @include tabs-striped('tabs-assertive', $assertive); @include tabs-striped('tabs-balanced', $balanced); @include tabs-striped('tabs-energized', $energized); @include tabs-striped('tabs-royal', $royal); @include tabs-striped('tabs-dark', $dark); &.tabs-icon-only .icon { } .tab-item { color: $tabs-striped-off-color; opacity: $tabs-striped-off-opacity; } .tab-item + .tab-item:before { border-left: 1px solid #ccc; display: block; float: left; width: 2px; height: 26px; margin: 11px auto; content: " "; } } .tabs-top { &.tabs-striped { .tab-item.tab-item-active, .tab-item.active, .tab-item.activated { margin-top: 0; margin-bottom: -4px; border-width: 0px 0px $tabs-striped-border-width 0px !important; } } } /* 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; padding-bottom: 2px; background-position: bottom; } .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-light-sans-serif; opacity: 0.7; &:hover { cursor: pointer; } } .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; &: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%; // fallback right: 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; } /** Platform styles **/ .tab-item.tab-item-ios { } .tab-item.tab-item-android { border-top: 2px solid inherit; }