amis/scss/components/_image-gallery.scss

206 lines
3.3 KiB
SCSS

@keyframes disappear {
to {
opacity: 0;
}
}
@keyframes appear {
from {
opacity: 0;
}
}
.#{$ns}ImageGallery {
display: flex;
flex-direction: column;
background: transparent;
border: none;
border-radius: 0;
max-width: 1010px !important;
&-close {
position: absolute;
right: 0;
top: 0;
color: rgba(255, 255, 255, 0.8);
cursor: pointer;
&:hover {
color: #fff;
}
> svg {
width: px2rem(16px);
height: px2rem(16px);
}
}
&-title {
height: px2rem(30px);
vertical-align: top;
line-height: px2rem(30px);
font-size: px2rem(12px);
color: $white;
text-align: center;
}
&-main {
background: #000;
flex-basis: 0;
flex-grow: 1;
height: 0;
position: relative;
display: flex;
justify-content: center;
align-items: center;
user-select: none;
> img {
display: block;
max-width: 100%;
max-height: 100%;
}
}
&-prevBtn,
&-nextBtn {
> svg {
width: px2rem(48px);
height: px2rem(48px);
}
position: absolute;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
color: #999;
text-shadow: rgba(0, 0, 0, 0.3) 0px 0px 4px;
&:hover {
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 0px 0px 4px;
}
animation-name: disappear;
animation-delay: 3s;
animation-duration: 0.35s;
animation-fill-mode: both;
&.is-disabled {
pointer-events: none;
}
}
&-main:hover &-prevBtn,
&-main:hover &-nextBtn {
animation-name: appear;
animation-delay: 0s;
animation-duration: 0.35s;
}
&-prevBtn {
left: px2rem(20px);
}
&-nextBtn {
right: px2rem(20px);
}
&-footer {
height: px2rem(74px);
background: #222;
display: flex;
flex-direction: row;
user-select: none;
}
&-prevList,
&-nextList {
width: px2rem(20px);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
background: rgba(0, 0, 0, 0.3);
color: #fff;
&.is-disabled {
background: rgba(0, 0, 0, 0.3);
color: rgba(255, 255, 255, 0.1);
pointer-events: none;
}
&:hover {
background: rgba(0, 0, 0, 1);
color: #fff;
}
}
&-itemsWrap {
flex-grow: 1;
flex-basis: 0;
width: 0;
overflow: hidden;
align-items: center;
justify-content: center;
display: flex;
}
&-items {
display: inline-block;
white-space: nowrap;
}
&-item {
margin: 10px 5px;
width: 54px;
height: 54px;
display: inline-flex;
position: relative;
border: 1px solid #666;
justify-content: center;
align-items: center;
cursor: pointer;
> img {
display: block;
max-width: 100%;
max-height: 100%;
}
@supports (object-fit: cover) {
> img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
&:after {
position: absolute;
content: '';
display: block;
background: rgba(0, 0, 0, 0.5);
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
&:hover {
border: 1px solid #e5e5e5;
&:after {
display: none;
}
}
&.is-active {
border: 1px solid #108cee;
&:after {
display: none;
}
}
}
}