Pure CSS Gallery
by Ali Khaled
CSS
* {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
label[for] {
cursor: pointer;
}
input[type="checkbox"] {
display: none;
}
body {
background-color: #000;
}
.lightbox {
width: 100%;
position: fixed;
top: 0;
left: 0;
min-height: 100%;
z-index: 1;
overflow: auto;
-webkit-transform: scale(0);
-ms-transform: scale(0);
transform: scale(0);
-webkit-transition: -webkit-transform .75s ease-out;
transition: transform .75s ease-out;
}
. img {
}
input[type="checkbox"]:checked + .lightbox {
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
}
input[type="checkbox"]:checked ~ .grid {
opacity: .125;
}
.grid {
width: 100%;
position: fixed;
top: 0;
left: 0;
height: 100%;
background-color: #222;
z-index: 0;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
-webkit-align-content: flex-start;
-ms-flex-line-pack: start;
align-content: flex-start;
padding: 16px;
overflow: auto;
text-align: center;
-webkit-transition: opacity .75s;
transition: opacity .75s;
}
.grid .grid-item {
width: 25%;
display: inline-block;
padding: 16px;
opacity: .75;
-webkit-transition: opacity .5s;
transition: opacity .5s;
}
.grid .grid-item:hover {
opacity: 1;
}
@media screen and (max-width: 1024px) {
.grid .grid-item {
width: 50%;
}
}
@media screen and (max-width: 480px) {
.grid .grid-item {
width: 100%;
}
}
.grid img {
}