framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
271 lines (260 loc) • 5.67 kB
text/less
/* === Photo Browser === */
@import url('./photo-browser-vars.less');
.photo-browser {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 400;
}
.photo-browser-standalone {
&.modal-in {
transition-duration: 0ms;
animation: photo-browser-in 400ms;
}
&.modal-out {
transition-duration: 0ms;
animation: photo-browser-out 400ms;
&.swipe-close-to-bottom,
&.swipe-close-to-top {
animation: none;
}
}
}
.photo-browser-popup {
&.modal-out {
&.swipe-close-to-bottom,
&.swipe-close-to-top {
transition-duration: 300ms;
}
&.swipe-close-to-bottom {
transform: translate3d(0, 100%, 0);
}
&.swipe-close-to-top {
transform: translate3d(0, -100vh, 0);
}
}
}
.photo-browser-page {
background: none;
.toolbar {
transform: none;
}
}
.photo-browser-popup {
background: none;
}
.photo-browser-of {
margin: 0 5px;
}
.photo-browser-captions {
pointer-events:none;
position: absolute;
left: 0;
width: 100%;
bottom: var(--f7-safe-area-bottom);
z-index: 10;
opacity: 1;
transition: 400ms;
&.photo-browser-captions-exposed {
opacity: 0;
}
}
.toolbar ~ .photo-browser-captions {
bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));
transform: translate3d(0, 0px, 0);
&.photo-browser-captions-exposed {
transform: translate3d(0, 0px, 0);
}
}
.photo-browser-caption {
box-sizing: border-box;
transition: 300ms;
position: absolute;
bottom: 0;
left: 0;
opacity: 0;
padding: 4px 5px;
width: 100%;
text-align: center;
font-size: var(--f7-photobrowser-caption-font-size);
&:empty {
display: none;
}
&.photo-browser-caption-active {
opacity: 1;
}
.photo-browser-captions-light & {
color: var(--f7-photobrowser-caption-light-text-color);
background: var(--f7-photobrowser-caption-light-bg-color)
}
.photo-browser-captions-dark & {
color: var(--f7-photobrowser-caption-dark-text-color);
background: var(--f7-photobrowser-caption-dark-bg-color)
}
}
.photo-browser-swiper-container {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: var(--f7-photobrowser-bg-color);
transition: 400ms;
transition-property: background-color;
}
.photo-browser-prev,
.photo-browser-next {
&.swiper-button-disabled {
opacity: 0.3;
pointer-events: none;
}
}
.photo-browser-slide {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
box-sizing: border-box;
&.photo-browser-transitioning {
transition: 400ms;
transition-property: transform;
}
span.swiper-zoom-container {
display: none;
}
img {
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
display: none;
}
&.swiper-slide-active,
&.swiper-slide-next,
&.swiper-slide-prev {
span.swiper-zoom-container {
display: flex;
}
img {
display: inline;
}
&.photo-browser-slide-lazy {
.preloader {
display: block;
}
}
}
iframe {
width: 100%;
height: 100%;
}
.preloader {
display: none;
position: absolute;
width: 42px;
height: 42px;
margin-left: -21px;
margin-top: -21px;
left: 50%;
top: 50%;
}
}
.photo-browser-page,
.view.with-photo-browser-page {
.navbar,
.toolbar {
background-color: var(--f7-photobrowser-bars-bg-color, rgba(var(--f7-bars-bg-color-rgb), 0.95));
background-image: var(--f7-photobrowser-bars-bg-image);
transition: 400ms;
color: var(--f7-photobrowser-bars-text-color, var(--f7-bars-text-color));
a {
color: var(--f7-photobrowser-bars-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
}
}
.photo-browser-exposed {
.navbar,
.toolbar {
opacity: 0;
visibility: hidden;
pointer-events:none;
}
.toolbar ~ .photo-browser-captions {
transform: translate3d(0, var(--f7-toolbar-height), 0);
}
.photo-browser-swiper-container {
background: var(--f7-photobrowser-exposed-bg-color);
}
.photo-browser-caption {
color: var(--f7-photobrowser-caption-dark-text-color);
background: var(--f7-photobrowser-caption-dark-bg-color)
}
}
.view.with-photo-browser-page-exposed {
.navbar {
opacity: 0;
}
}
.photo-browser-dark,
.photo-browser-page-dark,
.view.with-photo-browser-page-dark {
.photo-browser-swiper-container {
background: var(--f7-photobrowser-dark-bg-color);
}
.navbar,
.toolbar {
--f7-touch-ripple-color: var(--f7-touch-ripple-white);
--f7-link-highlight-color: var(--f7-link-highlight-white);
background: var(--f7-photobrowser-dark-bars-bg-color);
.hairline-remove(top);
.hairline-remove(bottom);
color: var(--f7-photobrowser-dark-bars-text-color);
a {
color: var(--f7-photobrowser-dark-bars-link-color);
}
}
}
@keyframes photo-browser-in {
0% {
transform: translate3d(0,0,0) scale(0.5);
opacity: 0;
}
50% {
transform: translate3d(0,0,0) scale(1.05);
opacity: 1;
}
100% {
transform: translate3d(0,0,0) scale(1);
opacity: 1;
}
}
@keyframes photo-browser-out {
0% {
transform: translate3d(0,0,0) scale(1);
opacity: 1;
}
50% {
transform: translate3d(0,0,0) scale(1.05);
opacity: 1;
}
100% {
transform: translate3d(0,0,0) scale(0.5);
opacity: 0;
}
}
.if-ios-theme({
@import url('./photo-browser-ios.less');
});
.if-md-theme({
@import url('./photo-browser-md.less');
});
.if-aurora-theme({
@import url('./photo-browser-aurora.less');
});