* feat(SW-3152): Respecting image aspect ratio inside image gallery/lightbox * feat(BOOK-144): Make image clickable instead of a button to avoid being able to click outside of the image area Approved-by: Bianca Widstam Approved-by: Chuma Mcphoy (We Ahead)
179 lines
3.4 KiB
CSS
179 lines
3.4 KiB
CSS
.gallery {
|
|
display: grid;
|
|
gap: var(--Space-x2);
|
|
padding: var(--Space-x2);
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
background-color: var(--Background-Primary);
|
|
}
|
|
|
|
.mobileGallery {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: var(--Space-x1);
|
|
padding-bottom: var(--Space-x3);
|
|
}
|
|
|
|
.thumbnailContainer {
|
|
position: relative;
|
|
height: 242px;
|
|
}
|
|
|
|
.fullWidthImage {
|
|
grid-column: 1 / -1;
|
|
height: 240px;
|
|
}
|
|
|
|
.imageButton {
|
|
position: relative;
|
|
height: 100%;
|
|
width: 100%;
|
|
padding: 0;
|
|
border-width: 0;
|
|
background-color: transparent;
|
|
cursor: pointer;
|
|
overflow: hidden;
|
|
z-index: 0;
|
|
|
|
&:focus-visible {
|
|
outline-offset: -2px; /* Adjust the outline offset as wrappers uses overflow-hidden */
|
|
}
|
|
}
|
|
|
|
.image {
|
|
transition: opacity 0.3s ease-in-out;
|
|
object-fit: cover;
|
|
z-index: -1;
|
|
border-radius: var(--Corner-radius-md);
|
|
}
|
|
|
|
@media screen and (max-width: 767px) {
|
|
.closeButton .desktopCloseIcon,
|
|
.desktopGallery {
|
|
display: none;
|
|
}
|
|
|
|
.gallery {
|
|
align-content: start;
|
|
}
|
|
|
|
.closeButton {
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
@media screen and (min-width: 768px) {
|
|
.mobileGallery,
|
|
.closeButton .mobileCloseIcon {
|
|
display: none;
|
|
}
|
|
|
|
.gallery {
|
|
padding: var(--Space-x5) var(--Space-x6);
|
|
}
|
|
|
|
.closeButton {
|
|
position: absolute;
|
|
top: var(--Space-x2);
|
|
right: var(--Space-x2);
|
|
z-index: 1;
|
|
}
|
|
|
|
.desktopGallery {
|
|
display: grid;
|
|
grid-template-rows: 28px 1fr 125px;
|
|
row-gap: var(--Space-x15);
|
|
background-color: var(--Background-Primary);
|
|
height: 100%;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.header {
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
.caption {
|
|
background-color: var(--Base-Surface-Subtle-Normal);
|
|
padding: var(--Space-x05) var(--Space-x1);
|
|
border-radius: var(--Corner-radius-sm);
|
|
color: var(--Text-Secondary);
|
|
}
|
|
|
|
.content {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.motionContainer {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.mainImage {
|
|
object-fit: contain;
|
|
border-radius: var(--Corner-radius-Medium);
|
|
/* Override Next.js Image styles, we can't set width/height on the image as we don't know the aspect ratio of the image */
|
|
width: auto !important;
|
|
height: auto !important;
|
|
position: relative !important;
|
|
max-width: 100%;
|
|
max-height: 100%;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.desktopThumbnailGrid {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, 1fr);
|
|
gap: var(--Space-x1);
|
|
max-height: 7.8125rem;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.thumbnailContainer {
|
|
height: 125px;
|
|
}
|
|
|
|
.fullWidthImage {
|
|
grid-column: auto;
|
|
height: auto;
|
|
}
|
|
|
|
.thumbnailContainer img {
|
|
border-radius: var(--Corner-radius-sm);
|
|
}
|
|
|
|
.navigationButton {
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background-color: var(--Component-Button-Inverted-Fill-Default);
|
|
color: var(--Component-Button-Inverted-On-fill-Default);
|
|
border-radius: var(--Corner-radius-rounded);
|
|
padding: 10px;
|
|
cursor: pointer;
|
|
border-width: 0;
|
|
display: flex;
|
|
z-index: 1;
|
|
box-shadow: 0px 0px 8px 1px #0000001a;
|
|
|
|
&:hover {
|
|
background-color: var(--Component-Button-Inverted-Fill-Hover);
|
|
color: var(--Component-Button-Inverted-On-fill-Hover);
|
|
}
|
|
}
|
|
|
|
.galleryPrevButton {
|
|
left: var(--Space-x2);
|
|
}
|
|
|
|
.galleryNextButton {
|
|
right: var(--Space-x2);
|
|
}
|
|
}
|