UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

259 lines (250 loc) 6.42 kB
/* === Toolbar === */ @import './toolbar-vars.less'; .toolbar { width: 100%; position: relative; margin: 0; transform: translate3d(0, 0, 0); backface-visibility: hidden; z-index: 600; box-sizing: border-box; left: 0; height: var(--f7-toolbar-height); flex-shrink: 0; color: var(--f7-toolbar-text-color, var(--f7-bars-text-color)); font-size: var(--f7-toolbar-font-size); b { font-weight: 600; } a { color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); box-sizing: border-box; flex-shrink: 1; position: relative; white-space: nowrap; text-overflow: ellipsis; } .link { display: flex; font-weight: var(--f7-toolbar-link-font-weight); } i.icon { display: block; } &:after, &:before { backface-visibility: hidden; } } .views, .view, .page { > .toolbar { position: absolute; } } .toolbar-top, .ios .toolbar-top-ios, .md .toolbar-top-md { top: 0; } .toolbar-bottom, .ios .toolbar-bottom-ios, .md .toolbar-bottom-md { bottom: 0; height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); .toolbar-inner { height: auto; top: 0; bottom: var(--f7-safe-area-bottom); } } .toolbar-inner { position: absolute; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; display: flex; box-sizing: border-box; align-items: center; align-content: center; padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left)); } .tabbar, .tabbar-icons { .views > & { z-index: 5001; } a { color: var(--f7-tabbar-link-inactive-color); } .link { line-height: 1.4; } .tab-link, .link { height: 100%; width: 100%; box-sizing: border-box; display: flex; justify-content: center; align-items: center; flex-direction: column; text-transform: var(--f7-tabbar-link-text-transform); font-weight: var(--f7-tabbar-link-font-weight); letter-spacing: var(--f7-tabbar-link-letter-spacing); overflow: hidden; } .tab-link-active { color: var(--f7-tabbar-link-active-color, var(--f7-theme-color)); background-color: var(--f7-tabbar-link-active-bg-color, transparent); } i.icon { font-size: var(--f7-tabbar-icon-size); height: var(--f7-tabbar-icon-size); line-height: var(--f7-tabbar-icon-size); } } .tabbar-icons { --f7-toolbar-height: var(--f7-tabbar-icons-height); .tab-link, .link { height: 100%; justify-content: center; align-items: center; } .tabbar-label { display: block; line-height: 1; margin: 0; position: relative; text-overflow: ellipsis; white-space: nowrap; font-size: var(--f7-tabbar-label-font-size); text-transform: var(--f7-tabbar-label-text-transform); font-weight: var(--f7-tabbar-label-font-weight); letter-spacing: var(--f7-tabbar-label-letter-spacing); } } @media (min-width: 768px) and (min-height: 600px) { :root { --f7-tabbar-icons-height: var(--f7-tabbar-icons-tablet-height); --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size); } } .tabbar-scrollable { .toolbar-inner { justify-content: flex-start; .scrollable(); .no-scrollbar(); } .tab-link, .link { width: auto; flex-shrink: 0; } } // Transitions .toolbar-transitioning, .navbar-transitioning + .toolbar, .navbar-transitioning ~ * .toolbar { transition-duration: var(--f7-toolbar-hide-show-transition-duration); } // Relation with page .toolbar-bottom, .ios .toolbar-bottom-ios, .md .toolbar-bottom-md { ~ * { --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height); } &.tabbar-icons ~ * { --f7-page-toolbar-bottom-offset: var(--f7-tabbar-icons-height); } } .toolbar-bottom, .ios .toolbar-bottom-ios, .md .toolbar-bottom-md { &.toolbar-hidden { transform: translate3d(0, 100%, 0); } } .toolbar-top, .ios .toolbar-top-ios, .md .toolbar-top-md, .sheet-modal-bottom > .toolbar:not(.toolbar-bottom) { ~ * { --f7-page-toolbar-top-offset: var(--f7-toolbar-height); } &.tabbar-icons ~ * { --f7-page-toolbar-top-offset: var(--f7-tabbar-icons-height); } } .toolbar-top, .ios .toolbar-top-ios, .md .toolbar-top-md { &.toolbar-hidden { transform: translate3d(0, -100%, 0); } } .navbar ~ .toolbar-top, .navbars ~ .toolbar-top, .ios .navbar ~ .toolbar-top-ios, .ios .navbars ~ .toolbar-top-ios, .md .navbar ~ .toolbar-top-md, .navbar ~ * .toolbar-top, .navbars ~ * .toolbar-top, .ios .navbar ~ * .toolbar-top-ios, .ios .navbars ~ * .toolbar-top-ios, .md .navbar ~ * .toolbar-top-md, .navbar ~ .page:not(.no-navbar) .toolbar-top, .navbars ~ .page:not(.no-navbar) .toolbar-top, .ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios, .ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios, .md .navbar ~ .page:not(.no-navbar) .toolbar-top-md { top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); &.toolbar-hidden { transform: translate3d( 0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0 ); &.tabbar-icons { transform: translate3d( 0, calc( -1 * (var(--f7-navbar-height) + var(--f7-tabbar-icons-height) + var(--f7-safe-area-top)) ), 0 ); } } } .navbar-hidden + .toolbar-top:not(.toolbar-hidden), .ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden), .md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden), .navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden), .ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), .md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden) { transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0); } .navbar-large-hidden + .toolbar-top:not(.toolbar-hidden), .ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden), .md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden), .navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden), .ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), .md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden) { transform: translate3d( 0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0 ); } .if-ios-theme({ @import './toolbar-ios.less'; }); .if-md-theme({ @import './toolbar-md.less'; });