UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

1,705 lines (1,704 loc) 605 kB
/** * Framework7 8.3.4 * Full featured mobile HTML framework for building iOS & Android apps * https://framework7.io/ * * Copyright 2014-2024 Vladimir Kharlampidi * * Released under the MIT License * * Released on: September 18, 2024 */ /*==================== Core ==================== */ :root { --f7-safe-area-left: 0px; --f7-safe-area-right: 0px; --f7-safe-area-top: 0px; --f7-safe-area-bottom: 0px; --f7-safe-area-outer-left: 0px; --f7-safe-area-outer-right: 0px; --f7-device-pixel-ratio: 1; } @supports (left: env(safe-area-inset-left)) { :root { --f7-safe-area-top: env(safe-area-inset-top); --f7-safe-area-bottom: env(safe-area-inset-bottom); } :root .ios-left-edge, :root .ios-edges, :root .safe-area-left, :root .safe-areas, :root .popup, :root .sheet-modal, :root .panel-left { --f7-safe-area-left: env(safe-area-inset-left); --f7-safe-area-outer-left: env(safe-area-inset-left); } :root .ios-right-edge, :root .ios-edges, :root .safe-area-right, :root .safe-areas, :root .popup, :root .sheet-modal, :root .panel-right { --f7-safe-area-right: env(safe-area-inset-right); --f7-safe-area-outer-right: env(safe-area-inset-right); } :root .no-safe-areas, :root .no-safe-area-left, :root .no-ios-edges, :root .no-ios-left-edge { --f7-safe-area-left: 0px; --f7-safe-area-outer-left: 0px; } :root .no-safe-areas, :root .no-safe-area-right, :root .no-ios-edges, :root .no-ios-right-edge { --f7-safe-area-right: 0px; --f7-safe-area-outer-right: 0px; } } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { :root { --f7-device-pixel-ratio: 2; } } @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { :root { --f7-device-pixel-ratio: 3; } } /*==================== Fonts & Bars ==================== */ :root { --f7-font-size: 14px; --f7-bars-translucent-opacity: 0.8; --f7-bars-translucent-blur: 20px; } .ios { --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif; --f7-line-height: 1.4; /* --f7-bars-link-color: var(--f7-theme-color); */ --f7-bars-text-color: #000; --f7-text-color: #000; --f7-bars-bg-color: #f7f7f8; --f7-bars-bg-color-rgb: 247, 247, 248; --f7-bars-border-color: rgba(0, 0, 0, 0.25); } .ios .dark, .ios.dark { --f7-bars-text-color: #fff; --f7-text-color: #fff; --f7-bars-bg-color: #121212; --f7-bars-bg-color-rgb: 22, 22, 22; --f7-bars-border-color: rgba(255, 255, 255, 0.16); } .md { --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif; --f7-line-height: 1.5; --f7-bars-border-color: transparent; --f7-text-color: #212121; } .md .dark, .md.dark { --f7-text-color: rgba(255, 255, 255, 0.87); } .md, .md .dark, .md [class*='color-'] { --f7-bars-link-color: var(--f7-md-on-surface); --f7-bars-bg-color: var(--f7-md-surface-2); --f7-bars-bg-color-rgb: var(--f7-md-surface-2-rgb); } /*==================== Color Themes ==================== */ .text-color-primary { --f7-theme-color-text-color: var(--f7-theme-color); } .bg-color-primary { --f7-theme-color-bg-color: var(--f7-theme-color); } .border-color-primary { --f7-theme-color-border-color: var(--f7-theme-color); } .ripple-color-primary { --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3); } @font-face { font-family: 'framework7-core-icons'; src: url('data:application/font-woff;charset=utf-8;base64, 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') format('woff'); font-weight: 400; font-style: normal; } html { overscroll-behavior: none; } html, body, .framework7-root { position: relative; height: 100%; width: 100%; overflow-x: hidden; } body { margin: 0; padding: 0; width: 100%; background: #fff; overflow: hidden; overflow-y: scroll; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; font-family: var(--f7-font-family); font-size: var(--f7-font-size); line-height: var(--f7-line-height); color: var(--f7-text-color); scrollbar-width: none; scrollbar-color: transparent; } body::-webkit-scrollbar { -webkit-appearance: none; appearance: none; width: 0px; display: none; opacity: 0; background: transparent; } body::-webkit-scrollbar-track { box-shadow: none; background: transparent; } body::-webkit-scrollbar-thumb { background-color: transparent; outline: none; border-radius: 9999px; position: relative; } .dark body, body.dark { background: #000; } .dark { color: var(--f7-text-color); } .framework7-root { overflow: hidden; box-sizing: border-box; } .framework7-initializing *, .framework7-initializing *:before, .framework7-initializing *:after { transition-duration: 0ms !important; } .device-ios, .device-android { cursor: pointer; } .device-ios { touch-action: manipulation; } @media (width: 1024px) and (height: 691px) and (orientation: landscape) { html, body, .framework7-root { height: 671px; } } @media (width: 1024px) and (height: 692px) and (orientation: landscape) { html, body, .framework7-root { height: 672px; } } * { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-touch-callout: none; } a, input, textarea, select { outline: 0; } a { cursor: pointer; text-decoration: none; color: var(--f7-theme-color); } .link, .item-link { cursor: pointer; } p { margin: 1em 0; } .disabled { opacity: 0.55 !important; pointer-events: none !important; } html.device-full-viewport, html.device-full-viewport body { height: 100vh; } .ios .md-only, .ios .if-md, .ios .if-not-ios, .ios .not-ios { display: none !important; } @media (width: 1024px) and (height: 691px) and (orientation: landscape) { .ios, .ios body, .ios .framework7-root { height: 671px; } } @media (width: 1024px) and (height: 692px) and (orientation: landscape) { .ios, .ios body, .ios .framework7-root { height: 672px; } } .md .ios-only, .md .if-ios, .md .if-not-md, .md .not-md { display: none !important; } /* === Statusbar === */ /* === Views === */ .views, .view { position: relative; height: 100%; z-index: 5000; overflow: hidden; box-sizing: border-box; } .framework7-root > .view, .framework7-root > .views { height: 100%; } .view-resize-handler { width: 6px; height: 100%; position: absolute; left: var(--f7-page-master-width); margin-left: -3px; top: 0; cursor: col-resize; z-index: 1000; display: none; } .view-master-detail .view-resize-handler { display: block; } /* === Pages === */ :root { --f7-page-master-width: 320px; --f7-page-master-border-color: rgba(0, 0, 0, 0.1); --f7-page-master-border-width: 1px; --f7-page-swipeback-transition-duration: 300ms; --f7-page-parallax-transition-duration: 500ms; --f7-page-cover-transition-duration: 450ms; --f7-page-dive-transition-duration: 500ms; --f7-page-fade-transition-duration: 500ms; --f7-page-flip-transition-duration: 700ms; --f7-page-push-transition-duration: 500ms; /* --f7-page-content-extra-padding-top: 0px; --f7-page-content-extra-padding-bottom: 0px; */ --f7-page-title-line-height: 1.2; --f7-page-title-text-color: inherit; --f7-page-title-padding-left: 16px; --f7-page-title-padding-right: 16px; } .ios { --f7-page-transition-duration: 400ms; --f7-page-title-font-size: 34px; --f7-page-title-font-weight: 700; --f7-page-title-letter-spacing: -0.03em; --f7-page-title-padding-vertical: 6px; --f7-page-bg-color: #efeff4; } .ios .dark, .ios.dark { --f7-page-bg-color: #000; } .md { --f7-page-transition-duration: 400ms; --f7-page-title-font-size: 34px; --f7-page-title-font-weight: 500; --f7-page-title-letter-spacing: 0; --f7-page-title-padding-vertical: 8px; } .md, .md .dark, .md [class*='color-'] { --f7-page-bg-color: var(--f7-md-surface); } .dark { --f7-page-master-border-color: rgba(255, 255, 255, 0.2); } .pages { position: relative; width: 100%; height: 100%; overflow: hidden; } .page { box-sizing: border-box; position: absolute; left: 0; top: 0; width: 100%; height: 100%; transform: none; background-color: var(--f7-page-bg-color); z-index: 1; } .page-with-navbar-large-collapsed { --f7-navbar-large-collapse-progress: 1; } .page-previous { pointer-events: none; } .page-content { overflow: auto; -webkit-overflow-scrolling: touch; box-sizing: border-box; height: 100%; position: relative; z-index: 1; padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px)); padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px)); } .page-transitioning, .page-transitioning .page-shadow-effect, .page-transitioning .page-opacity-effect { transition-duration: var(--f7-page-transition-duration); } .page-transitioning-swipeback, .page-transitioning-swipeback .page-shadow-effect, .page-transitioning-swipeback .page-opacity-effect { transition-duration: var(--f7-page-swipeback-transition-duration); } .router-transition-forward .page-next, .router-transition-backward .page-next, .router-transition-forward .page-current, .router-transition-backward .page-current { pointer-events: none; } .page-shadow-effect { position: absolute; top: 0; width: 16px; bottom: 0; z-index: -1; content: ''; opacity: 0; right: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); } .page-opacity-effect { position: absolute; left: 0; top: 0; background: rgba(0, 0, 0, 0.1); width: 100%; bottom: 0; content: ''; opacity: 0; z-index: 10000; } .ios .page-previous { transform: translate3d(-20%, 0, 0); } .ios .page-next { transform: translate3d(100%, 0, 0); } .ios .page-previous .page-opacity-effect { opacity: 1; } .ios .page-previous:after { opacity: 1; } .ios .page-current .page-shadow-effect { opacity: 1; } .ios .router-transition-forward .page-next { animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards; } .ios .router-transition-forward .page-next:before { position: absolute; top: 0; width: 16px; bottom: 0; z-index: -1; content: ''; opacity: 0; right: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; } .ios .router-transition-forward .page-current { animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards; } .ios .router-transition-forward .page-current:after { position: absolute; left: 0; top: 0; background: rgba(0, 0, 0, 0.1); width: 100%; bottom: 0; content: ''; opacity: 0; z-index: 10000; animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; } .ios .router-transition-backward .page-previous { animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards; } .ios .router-transition-backward .page-previous:after { position: absolute; left: 0; top: 0; background: rgba(0, 0, 0, 0.1); width: 100%; bottom: 0; content: ''; opacity: 0; z-index: 10000; animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; } .ios .router-transition-backward .page-current { animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards; } .ios .router-transition-backward .page-current:before { position: absolute; top: 0; width: 16px; bottom: 0; z-index: -1; content: ''; opacity: 0; right: 100%; background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; } @keyframes ios-page-next-to-current { from { transform: translate3d(100%, 0, 0); } to { transform: translate3d(0%, 0, 0); } } @keyframes ios-page-previous-to-current { from { transform: translate3d(-20%, 0, 0); } to { transform: translate3d(0%, 0, 0); } } @keyframes ios-page-current-to-previous { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-20%, 0, 0); } } @keyframes ios-page-current-to-next { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(100%, 0, 0); } } @keyframes ios-page-element-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes ios-page-element-fade-out { from { opacity: 1; } to { opacity: 0; } } .md .page-previous { transform: translate3d(0, -20px, 0); } .md .page-next { pointer-events: none; transform: translate3d(0, 128px, 0); opacity: 0; } .md .page-next.page-next-on-right { transform: translate3d(100%, 0, 0); opacity: 1; } .md .router-transition-forward .page-next { opacity: 1; animation: md-page-next-to-current var(--f7-page-transition-duration) forwards cubic-bezier(0, 0.8, 0.3, 1); } .md .router-transition-forward .page-current { animation: md-page-current-to-previous var(--f7-page-transition-duration) forwards cubic-bezier(0, 0.8, 0.3, 1); } .md .router-transition-backward .page-current { animation: md-page-current-to-next calc(var(--f7-page-transition-duration) / 4) forwards cubic-bezier(0.8, 0, 1, 0.3), md-page-current-to-next-opacity 0ms calc(var(--f7-page-transition-duration) / 4) forwards; } .md .router-transition-backward .page-previous { animation: md-page-previous-to-current var(--f7-page-transition-duration) forwards; } @keyframes md-page-next-to-current { from { transform: translate3d(0, 128px, 0); } to { transform: translate3d(0, 0px, 0); } } @keyframes md-page-current-to-next { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, 128px, 0); } } @keyframes md-page-current-to-next-opacity { from { opacity: 1; } to { opacity: 0; } } @keyframes md-page-current-to-previous { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -20px, 0); } } @keyframes md-page-previous-to-current { from { transform: translate3d(0, -20px, 0); } to { transform: translate3d(0, 0px, 0); } } .view:not(.view-master-detail) .page-master-stacked { display: none; } .view:not(.view-master-detail) .navbar-master-stacked { display: none; } .view-master-detail .page-master, .view-master-detail .navbar-master { width: var(--f7-page-master-width); --f7-safe-area-right: 0px; --f7-safe-area-outer-right: 0px; border-right: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color); } .view-master-detail .page-master-detail, .view-master-detail .navbar-master-detail { width: calc(100% - var(--f7-page-master-width)); --f7-safe-area-left: 0px; --f7-safe-area-outer-left: 0px; left: var(--f7-page-master-width); } .view-master-detail .page-master-detail > .navbar-master-detail { left: 0; right: 0; width: 100%; } .view-master-detail .page-master { z-index: 2; transform: none; pointer-events: auto; } .view-master-detail .page-master:before, .view-master-detail .page-master:after { display: none; } .view-master-detail.router-transition .page-master { animation: none; } .md .router-transition-custom .page-previous, .ios .router-transition-custom .page-previous, .md .router-transition-custom .page-next, .ios .router-transition-custom .page-next { opacity: 1; transform: none; } .md .router-transition-custom.view-master-detail .page-master, .ios .router-transition-custom.view-master-detail .page-master { animation: none; } .page-title { position: relative; z-index: 10; text-overflow: ellipsis; white-space: nowrap; color: var(--f7-page-title-text-color); letter-spacing: var(--f7-page-title-letter-spacing); font-size: var(--f7-page-title-font-size); font-weight: var(--f7-page-title-font-weight); line-height: var(--f7-page-title-line-height); padding-left: calc(var(--f7-page-title-padding-left) + var(--f7-safe-area-left)); padding-right: calc(var(--f7-page-title-padding-right) + var(--f7-safe-area-right)); padding-top: var(--f7-page-title-padding-vertical); padding-bottom: var(--f7-page-title-padding-vertical); box-sizing: border-box; overflow: hidden; width: 100%; } .router-transition-f7-circle-forward:after, .router-transition-f7-circle-backward:after { content: ''; position: absolute; left: 50%; top: 50%; width: 100vmax; height: 100vmax; margin-left: -50vmax; margin-top: -50vmax; background: var(--f7-page-bg-color); z-index: 100; } .router-transition-f7-circle-forward .page, .router-transition-f7-circle-backward .page { pointer-events: none; } .router-transition-f7-circle-forward:after { transform: scale(0); border-radius: 50%; animation: f7-circle-circle-in 400ms forwards; } .ios .router-transition-f7-circle-forward .page-next, .md .router-transition-f7-circle-forward .page-next { opacity: 0; transform: scale(0.9); animation: f7-circle-next-to-current 300ms forwards; animation-delay: 300ms; z-index: 150; } .router-transition-f7-circle-backward:after { animation: f7-circle-circle-out 300ms forwards; animation-delay: 350ms; } .ios .router-transition-f7-circle-backward .page-current, .md .router-transition-f7-circle-backward .page-current { animation: f7-circle-current-to-next 700ms forwards; z-index: 150; } @keyframes f7-circle-circle-in { from { transform: scale(0); border-radius: 50%; } 50% { border-radius: 50%; } to { transform: scale(1); border-radius: 0%; } } @keyframes f7-circle-circle-out { from { transform: scale(1); border-radius: 0%; } 50% { border-radius: 50%; } to { transform: scale(0); border-radius: 50%; } } @keyframes f7-circle-next-to-current { from { transform: scale(0.9); opacity: 0; } 40% { transform: scale(1.035); opacity: 1; } to { transform: scale(1); opacity: 1; } } @keyframes f7-circle-current-to-next { from { transform: scale(1); opacity: 1; } 34% { transform: scale(1.035); opacity: 1; } 57% { transform: scale(0.9); opacity: 0; } to { transform: scale(0.9); opacity: 0; } } .router-transition-f7-cover-v-forward, .router-transition-f7-cover-v-backward { background: #000; perspective: 1200px; } .router-transition-f7-cover-v-forward .page, .router-transition-f7-cover-v-backward .page { pointer-events: none; } .router-transition-f7-cover-v-forward .page-next { animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-v-forward .page-current { animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-v-backward .page-current { animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-v-backward .page-previous { animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards; } @keyframes f7-cover-v-next-to-current { from { transform: translateY(100%); } to { transform: translateY(0%); } } @keyframes f7-cover-v-current-to-next { from { transform: translateY(0%); } to { transform: translateY(100%); } } @keyframes f7-cover-v-current-to-prev { from { transform: translateZ(0); opacity: 1; } to { transform: translateZ(-300px); opacity: 0.5; } } @keyframes f7-cover-v-prev-to-current { from { transform: translateZ(-300px); opacity: 0.5; } to { transform: translateZ(0); opacity: 1; } } .router-transition-f7-cover-forward, .router-transition-f7-cover-backward { background: #000; perspective: 1200px; } .router-transition-f7-cover-forward .page, .router-transition-f7-cover-backward .page { pointer-events: none; } .router-transition-f7-cover-forward .page-next { animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-forward .page-current { animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-backward .page-current { animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards; } .router-transition-f7-cover-backward .page-previous { animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards; } @keyframes f7-cover-next-to-current { from { transform: translateX(100%); } to { transform: translateX(0%); } } @keyframes f7-cover-current-to-next { from { transform: translateX(0%); } to { transform: translateX(100%); } } @keyframes f7-cover-current-to-prev { from { transform: translateZ(0); opacity: 1; } to { transform: translateZ(-300px); opacity: 0.5; } } @keyframes f7-cover-prev-to-current { from { transform: translateZ(-300px); opacity: 0.5; } to { transform: translateZ(0); opacity: 1; } } .router-transition-f7-dive-forward, .router-transition-f7-dive-backward { background: var(--f7-page-bg-color); perspective: 1200px; } .router-transition-f7-dive-forward .page, .router-transition-f7-dive-backward .page { pointer-events: none; } .router-transition-f7-dive-forward .page-next { animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards; } .router-transition-f7-dive-forward .page-current { animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards; } .router-transition-f7-dive-backward .page-current { animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards; } .router-transition-f7-dive-backward .page-previous { animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards; } @keyframes f7-dive-next-to-current { from { opacity: 0; transform: translateZ(-150px); } 50% { opacity: 0; } to { opacity: 1; transform: translateZ(0px); } } @keyframes f7-dive-current-to-next { from { opacity: 1; transform: translateZ(0px); } 50% { opacity: 0; } to { opacity: 0; transform: translateZ(-150px); } } @keyframes f7-dive-current-to-prev { from { transform: translateZ(0px); opacity: 1; } 50% { opacity: 0; } to { opacity: 0; transform: translateZ(150px); } } @keyframes f7-dive-prev-to-current { from { opacity: 0; transform: translateZ(150px); } 50% { opacity: 0; } to { opacity: 1; transform: translateZ(0px); } } .router-transition-f7-fade-forward, .router-transition-f7-fade-backward { background: var(--f7-page-bg-color); } .router-transition-f7-fade-forward .page, .router-transition-f7-fade-backward .page { pointer-events: none; } .ios .router-transition-f7-fade-forward .page-next, .md .router-transition-f7-fade-forward .page-next { opacity: 0; animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; } .ios .router-transition-f7-fade-forward .page-current, .md .router-transition-f7-fade-forward .page-current { animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; } .ios .router-transition-f7-fade-backward .page-current, .md .router-transition-f7-fade-backward .page-current { animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; } .ios .router-transition-f7-fade-backward .page-previous, .md .router-transition-f7-fade-backward .page-previous { animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; } @keyframes f7-fade-in { from { opacity: 0; } 50% { opacity: 0; } to { opacity: 1; } } @keyframes f7-fade-out { from { opacity: 1; } 50% { opacity: 0; } to { opacity: 0; } } .router-transition-f7-flip-forward, .router-transition-f7-flip-backward { background: #000; perspective: 1200px; } .router-transition-f7-flip-forward .page, .router-transition-f7-flip-backward .page { -webkit-backface-visibility: hidden; backface-visibility: hidden; overflow: hidden; pointer-events: none; } .router-transition-f7-flip-forward .page-next { transform-style: preserve-3d; animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards; } .router-transition-f7-flip-forward .page-current { transform-style: preserve-3d; animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards; } .router-transition-f7-flip-backward .page-current { transform-style: preserve-3d; animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards; } .router-transition-f7-flip-backward .page-previous { transform-style: preserve-3d; animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards; } @keyframes f7-flip-next-to-current { from { border-radius: 32px; transform: translateZ(-100vmax) rotateY(180deg); } to { border-radius: 0; transform: translateZ(0px) rotateY(0deg); } } @keyframes f7-flip-current-to-next { from { border-radius: 0px; transform: translateZ(0px) rotateY(0deg); } to { border-radius: 32px; transform: translateZ(-100vmax) rotateY(180deg); } } @keyframes f7-flip-current-to-prev { from { border-radius: 0px; transform: translateZ(0px) rotateY(0deg); } to { border-radius: 32px; transform: translateZ(-100vmax) rotateY(-180deg); } } @keyframes f7-flip-prev-to-current { from { border-radius: 32px; transform: translateZ(-100vmax) rotateY(-180deg); } to { border-radius: 0px; transform: translateZ(0px) rotateY(0deg); } } .router-transition-f7-parallax-forward .page { pointer-events: none; } .router-transition-f7-parallax-forward .page-next { animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards; } .router-transition-f7-parallax-forward .page-current { animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards; } .router-transition-f7-parallax-backward .page { pointer-events: none; } .router-transition-f7-parallax-backward .page-current { animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards; } .router-transition-f7-parallax-backward .page-previous { animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards; } @keyframes f7-parallax-next-to-current { from { transform: translateX(100%); } to { transform: translateX(0%); } } @keyframes f7-parallax-current-to-next { from { transform: translateX(0%); } to { transform: translateX(100%); } } @keyframes f7-parallax-current-to-prev { from { transform: translateX(0%); } to { transform: translateX(-20%); } } @keyframes f7-parallax-prev-to-current { from { transform: translateX(-20%); } to { transform: translateX(0%); } } .router-transition-f7-push-forward .page { pointer-events: none; } .router-transition-f7-push-forward .page-next { animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards; } .router-transition-f7-push-forward .page-current { animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards; } .router-transition-f7-push-backward .page { pointer-events: none; } .router-transition-f7-push-backward .page-current { animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards; } .router-transition-f7-push-backward .page-previous { animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards; } @keyframes f7-push-next-to-current { from { transform: translateX(100%); } to { transform: translateX(0%); } } @keyframes f7-push-current-to-next { from { transform: translateX(0%); } to { transform: translateX(100%); } } @keyframes f7-push-current-to-prev { from { transform: translateX(0%); } to { transform: translateX(-100%); } } @keyframes f7-push-prev-to-current { from { transform: translateX(-100%); } to { transform: translateX(0%); } } /* === Link === */ :root { --f7-link-highlight-black: rgba(0, 0, 0, 0.1); --f7-link-highlight-white: rgba(255, 255, 255, 0.15); --f7-link-highlight-color: rgba(var(--f7-theme-color-rgb), 0.15); } .ios { --f7-link-pressed-opacity: 0.3; } .link, .tab-link { display: inline-flex; align-items: center; align-content: center; justify-content: center; position: relative; box-sizing: border-box; z-index: 1; --f7-touch-ripple-color: var(--f7-link-touch-ripple-color, rgba(var(--f7-theme-color-rgb), 0.25)); } .link i + span, .link i + i, .link span + i, .link span + span { margin-left: 4px; } .link[class*='color-'] { color: var(--f7-theme-color); } .ios .link { transition: opacity 300ms; } .ios .link.active-state { opacity: var(--f7-link-pressed-opacity); transition-duration: 0ms; } /* === Navbar === */ :root { /* --f7-navbar-bg-color: var(--f7-bars-bg-color); --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); --f7-navbar-border-color: var(--f7-bars-border-color); */ --f7-navbar-hide-show-transition-duration: 400ms; --f7-navbar-title-line-height: 1.2; --f7-navbar-subtitle-text-align: inherit; --f7-navbar-large-title-line-height: 1.2; --f7-navbar-large-title-text-color: inherit; --f7-navbar-large-title-padding-left: 16px; --f7-navbar-large-title-padding-right: 16px; } .ios { /* --f7-navbar-link-color: var(--f7-bars-link-color); --f7-navbar-text-color: var(--f7-bars-text-color); */ --f7-navbar-height: 44px; --f7-navbar-font-size: 17px; --f7-navbar-title-font-size: inherit; --f7-navbar-inner-padding-left: 8px; --f7-navbar-inner-padding-right: 8px; --f7-navbar-title-font-weight: 600; --f7-navbar-title-margin-left: 0; --f7-navbar-title-margin-right: 0; --f7-navbar-title-text-align: center; --f7-navbar-subtitle-font-size: 10px; --f7-navbar-subtitle-line-height: 1; --f7-navbar-large-title-height: 52px; --f7-navbar-large-title-font-size: 34px; --f7-navbar-large-title-font-weight: 700; --f7-navbar-large-title-letter-spacing: -0.03em; --f7-navbar-large-title-padding-vertical: 6px; /* --f7-navbar-link-height: var(--f7-navbar-height); --f7-navbar-link-line-height: var(--f7-navbar-height); */ --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55); } .ios .dark, .ios.dark { --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55); } .md { --f7-navbar-height: 64px; --f7-navbar-font-size: 16px; --f7-navbar-title-font-size: 22px; --f7-navbar-inner-padding-left: 0px; --f7-navbar-inner-padding-right: 0px; --f7-navbar-title-font-weight: 400; --f7-navbar-title-margin-left: 0px; --f7-navbar-title-margin-right: 16px; --f7-navbar-title-text-align: left; --f7-navbar-subtitle-font-size: 14px; --f7-navbar-subtitle-line-height: 1.2; --f7-navbar-large-title-font-size: 28px; --f7-navbar-large-title-height: 88px; --f7-navbar-large-title-font-weight: 400; --f7-navbar-large-title-letter-spacing: 0; --f7-navbar-large-title-padding-vertical: 8px; --f7-navbar-link-height: 48px; --f7-navbar-link-line-height: 48px; } .md, .md .dark, .md [class*='color-'] { --f7-navbar-link-color: var(--f7-md-on-surface); --f7-navbar-text-color: var(--f7-md-on-surface); --f7-navbar-subtitle-text-color: var(--f7-md-on-surface-variant); } .navbars, .navbar { z-index: 500; left: 0; top: 0; width: 100%; } .navbars { position: absolute; } .navbars .navbar { z-index: auto; } .navbars .navbar-transitioning { z-index: 500; } .navbar { --f7-navbar-large-collapse-progress: 0; position: relative; -webkit-backface-visibility: hidden; backface-visibility: hidden; box-sizing: border-box; margin: 0; height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); color: var(--f7-navbar-text-color, var(--f7-bars-text-color)); font-size: var(--f7-navbar-font-size); } .navbar b { font-weight: 500; } .navbar a { color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); } .navbar a.link { display: flex; justify-content: flex-start; line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height)); height: var(--f7-navbar-link-height, var(--f7-navbar-height)); } .navbar .title, .navbar .left, .navbar .right { position: relative; z-index: 10; } .navbar .title { position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 10; font-weight: var(--f7-navbar-title-font-weight); display: inline-block; line-height: var(--f7-navbar-title-line-height); text-align: var(--f7-navbar-title-text-align); font-size: var(--f7-navbar-title-font-size); margin-left: var(--f7-navbar-title-margin-left); margin-right: var(--f7-navbar-title-margin-left); } .navbar .subtitle { display: block; color: var(--f7-navbar-subtitle-text-color); font-weight: normal; font-size: var(--f7-navbar-subtitle-font-size); line-height: var(--f7-navbar-subtitle-line-height); text-align: var(--f7-navbar-subtitle-text-align); } .navbar .left, .navbar .right { flex-shrink: 0; display: flex; justify-content: flex-start; align-items: center; } .navbar .right:first-child { position: absolute; height: 100%; } .navbar.no-outline .navbar-bg:after, .navbar .no-outline .navbar-bg:after { display: none !important; } .navbar.no-outline .title-large:after, .navbar .no-outline .title-large:after { display: none !important; } .navbar.navbar-hidden .navbar-bg:before, .navbar-hidden .navbar .navbar-bg:before { opacity: 0 !important; } .navbar-bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; background: var(--f7-navbar-bg-color); background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color)); transition-property: transform; } @supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { .ios-translucent-bars .navbar-bg { background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); } } .navbar-bg:after, .navbar-bg:before { -webkit-backface-visibility: hidden; backface-visibility: hidden; } .navbar-bg:after { content: ''; position: absolute; background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); display: block; z-index: 15; top: auto; right: auto; bottom: 0; left: 0; height: 1px; width: 100%; transform-origin: 50% 100%; transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); } .navbar-bg:after { z-index: 1; } .navbar-transitioning, .navbar-transitioning .left, .navbar-transitioning .title, .navbar-transitioning .right, .navbar-transitioning .title-large-text, .navbar-transitioning .navbar-bg, .navbar-transitioning .subnavbar, .navbar-transitioning .navbar-bg:before { transition-duration: var(--f7-navbar-hide-show-transition-duration); } .navbar-page-transitioning { transition-duration: var(--f7-page-swipeback-transition-duration) !important; } .navbar-page-transitioning .title-large-text, .navbar-page-transitioning .navbar-bg { transition-duration: var(--f7-page-swipeback-transition-duration) !important; } .navbar-hidden { transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0); } .navbar-hidden .navbar-inner { pointer-events: none; } .navbar-hidden .navbar-inner > .left, .navbar-hidden .navbar-inner > .title, .navbar-hidden .navbar-inner > .right { opacity: 0 !important; } .navbar-hidden .subnavbar { pointer-events: auto; } .navbar-hidden-statusbar { transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0); } .navbar-large-hidden .navbar-large { --f7-navbar-large-collapse-progress: 1; } .navbar-inner { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; display: flex; align-items: center; box-sizing: border-box; padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left)); transform: translate3d(0, 0, 0); z-index: 10; } .views > .navbar, .view > .navbar, .page > .navbar, .navbars > .navbar { position: absolute; } .navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not( .with-searchbar-expandable-enabled ) .navbar-bg, .navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not( .with-searchbar-expandable-enabled ) .title { opacity: 0; } .navbar-large .navbar-bg { height: calc(100% + var(--f7-navbar-large-title-height)); transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); } .navbar-large-transparent .navbar-bg, .navbar-large.navbar-transparent .navbar-bg { opacity: var(--f7-navbar-large-collapse-progress); } .ios .router-navbar-transition-to-large .navbar-bg, .ios .router-navbar-transition-from-large .navbar-bg, .navbar-bg.ios-swipeback-navbar-bg-large, .navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large, .navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large { height: calc(100% + var(--f7-navbar-large-title-height)); transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); } .ios .navbar:not(.navbar-large) .navbar-bg { --f7-navbar-large-collapse-progress: 1; } .navbar-large .title { opacity: var(--f7-navbar-large-collapse-progress); } .navbar-large-collapsed { --f7-navbar-large-collapse-progress: 1; } .navbar-large-collapsed .title-large { pointer-events: none; } .navbar .title-large { box-sizing: border-box; position: absolute; left: 0; right: 0; top: 100%; display: flex; white-space: nowrap; overflow: hidden; height: var(--f7-navbar-large-title-height); z-index: 5; } .navbar .title-large-text { text-overflow: ellipsis; white-space: nowrap; color: var(--f7-navbar-large-title-text-color); letter-spacing: var(--f7-navbar-large-title-letter-spacing); font-size: var(--f7-navbar-large-title-font-size); font-weight: var(--f7-navbar-large-title-font-weight); line-height: var(--f7-navbar-large-title-line-height); padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)); padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right)); padding-top: var(--f7-navbar-large-title-padding-vertical); padding-bottom: var(--f7-navbar-large-title-padding-vertical); box-sizing: border-box; overflow: hidden; width: 100%; transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); transform-origin: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center; } .navbar-no-title-large-transition .title-large-text { transition-duration: 0ms; } .navbar ~ *, .navbars ~ * { --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); } .navbar ~ * .page-with-navbar-large, .navbar ~ .page-with-navbar-large, .navbars ~ * .page-with-navbar-large, .navbars ~ .page-with-navbar-large, .page-with-navbar-large .navbar ~ * { --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); } .page.no-navbar, .page.no-navbar .navbar ~ * { --f7-page-navbar-offset: var(--f7-safe-area-top); } .ios { --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left)); --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left); --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height))); --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0); --f7-navbar-large-bg-left-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); --f7-navbar-large-bg-left-bottom: translateX(-100%) translateY(0); --f7-navbar-large-bg-right-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); --f7-navbar-large-bg-right-bottom: translateX(100%) translateY(0); } .ios .navbar .title-large { align-items: flex-end; } .ios .navbar a.icon-only { width: 44px; margin: 0; justify-content: center; } .ios .navbar .left a + a, .ios .navbar .right a + a { margin-left: 16px; } .ios .navbar b { font-weight: 600; } .ios .navbar .left { margin-right: 10px; } .ios .navbar .right { margin-left: 10px; } .ios .navbar .right:first-child { right: calc(8px + var(--f7-safe-area-right)); } .ios .navbar-inner { justify-content: space-between; } .ios .navbar-inner-left-title { justify-content: flex-start; } .ios .navbar-inner-left-title .right { margin-left: auto; } .ios .navbar-inner-left-title .title { text-align: left; margin-right: 10px; } .ios .view-master-detail .navbar-previous:not(.navbar-master) .left, .ios .view:not(.view-master-detail) .navbar-previous .left, .ios .navbar-next .left, .ios .view-master-detail .navbar-previous:not(.navbar-master) .title, .ios .view:not(.view-master-detail) .navbar-previous .title, .ios .navbar-next .title, .ios .view-master-detail .navbar-previous:not(.navbar-master) .right, .ios .view:not(.view-master-detail) .navbar-previous .right, .ios .navbar-next .right, .ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar, .ios .view:not(.view-master-detail) .navbar-previous .subnavbar, .ios .navbar-next .subnavbar, .ios .view-master-detail .navbar-previous:not(.navbar-master) .fading, .ios .view:not(.view-master-detail) .navbar-previous .fading, .ios .navbar-next .fading { opacity: 0; } .ios .view-master-detail .navbar-previous:not(.navbar-master), .ios .view:not(.view-master-detail) .navbar-previous { pointer-events: none; } .ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large, .ios .view:not(.view-master-detail) .navbar-previous .title-large { opacity: 0; transition-duration: 0ms; } .ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text, .ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text { transform: scale(0.5); transition-duration: 0ms; } .ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding, .ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding, .ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar, .ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar { opacity: 1; transform: translate3d(-100%, 0, 0); } .ios .view:not(.view-master-detail) .navbar-previous .navbar-bg, .ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg { transform: translateX(-100%); } .ios .navbar-next { pointer-events: none; } .ios .navbar-next .navbar-bg { transform: translateX(100%); } .ios .navbar-next .title-large .title-large-text { transition-duration: 0ms; transform: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); } .ios .navbar-next .subnavbar.sliding, .ios .navbar-next .sliding .subnavbar { opacity: 1; transform: translate3d(100%, 0, 0); } .ios .router-transition .navbar, .ios .router-transition .navbar-bg { transition-duration: var(--f7-page-transition-duration); } .ios .router-transition .navbar-bg { animation-duration: var(--f7-page-transition-duration); animation-fill-mode: forwards; } .ios .router-transition .title-large, .ios .router-transition .title-large-text { transition-duration: 0ms; } .ios .router-transition .navbar-current .left, .ios .router-transition .navbar-current .title, .ios .router-transition .navbar-current .right, .ios .router-transition .navbar-current .subnavbar { animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards; } .ios .router-transition .navbar-current .sliding.left, .ios .router-transition .navbar-current .sliding.left .icon + span, .ios .router-transition .navbar-current .sliding.title, .ios .router-transition .navbar-current .sliding.right, .ios .router-transition .navbar-current .sliding .left, .ios .router-transition .navbar-current .sliding .left .icon + span, .ios .router-transition .navbar-current .sliding .title, .ios .router-transition .navbar-current .sliding .right { transition-duration: var(--f7-page-transition-duration); opacity: 0 !important; animation: none; } .ios .router-transition .navbar-current .sliding .subnavbar, .ios .router-transition .navbar-current .sliding.subnavbar { transition-duration: var(--f7-page-transition-duration); animation: none; opacity: 1; } .ios .router-transition-forward .navbar-next .left, .ios .router-transition-backward .navbar-previous .left, .ios .router-transition-forward .navbar-next .title, .ios .router-transition-backward .navbar-previous .title, .ios .router-transition-forward .navbar-next .right, .ios .router-transition-backward