.snap-wrapper { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 10px; } /* Create equal columns in flexbox */ .snap-image { // TODO: Make this configurable with variables width: calc(100% / 4 - 10px); min-width: 200px; img { aspect-ratio: 16/10; width: 100%; object-fit: cover; } } .snap-lightbox { /** Default lightbox to hidden */ display: none; /** Position and style */ position: fixed; z-index: 999; width: 100%; height: 100%; text-align: center; white-space: nowrap; top: 0; left: 0; background: rgba(0, 0, 0, 0.8); /* keep lightbox in middle. TODO: hacky, and not realibly in middle */ &:before { content: ""; display: inline-block; vertical-align: middle; width: 0; /* adjust for white space between pseudo element and next sibling */ margin-right: -.25em; /* stretch line height */ height: 100%; } } // /* Click on the complete background closes the lightbox */ // /* Exception: arrow in gallery, they have higher z-index */ // a.snap-lightbox-close { // position: fixed; // z-index: 800; // width: 100%; // height: 100%; // text-align: center; // white-space: nowrap; // top: 0; // left: 0; // } /* Container for image */ .snap-lightbox-inner { display: inline-block; vertical-align: middle; white-space: normal; max-width: 90%; max-height: 80%; height: 100%; /* Number text (1/3 etc) */ .numbertext { color: #f2f2f2; background-color: #000; font-size: 12px; padding: 8px 12px; position: absolute; top: 10%; } img { max-height: 100%; } // TODO: Untested p { color: #fff; z-index: 810; position: relative; } } // /* Caption text */ // .caption-container { // text-align: center; // background-color: black; // padding: 2px 16px; // color: white; // } /* prev/next arrows & close button */ .snap-lightbox-prev, .snap-lightbox-next { position: fixed; z-index: 800; width: 5%; height: 100%; text-align: center; top: 0; .snap-lightbox-arrow { display: inline-block; position: fixed; top: 50%; z-index: 900; border: solid #fff; border-width: 0 7px 7px 0; display: inline-block; padding: 1%; } &:hover>.snap-lightbox-arrow { border-color: #999; transition: all 0.25s ease; } } .snap-lightbox-prev { left: 0; .snap-lightbox-arrow { left: 2%; transform: rotate(135deg); -webkit-transform: rotate(135deg); } } .snap-lightbox-next { right: 0; .snap-lightbox-arrow { right: 2%; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } } /* The Close Button */ .snap-close { display: flex; justify-content: center; align-items: center; position: absolute; top: 15px; right: 15px; height: 50px; width: 50px; color: white; font-size: 50px; font-weight: bold; z-index: 900; &:hover, &:focus { color: #999; text-decoration: none; cursor: pointer; } } @media screen and (max-width: 767px) { .snap-lightbox-inner { max-width: 80%; } .snap-lightbox-prev, .snap-lightbox-next { width: 10%; } .snap-lightbox-close-button { width: 10%; height: calc(10vw); /* ~10% width */ } }