This commit is contained in:
Adrian Victor 2024-11-11 14:33:16 -03:00
parent d8418b1622
commit fb1bcccc51
7 changed files with 194 additions and 55 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
assets/img/toilettycoon.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -1,52 +1,164 @@
html {
scroll-behavior: smooth;
}
body {
display: grid; /* Define o grid no body */
display: grid;
grid-template-areas:
"header header"
"aside main"
"footer footer";
grid-template-columns: 250px 1fr; /* Largura do aside e do main */
grid-template-rows: 100px 1fr 100px; /* Alturas do header, main e footer */
height: 100vh; /* Altura total da viewport */
grid-template-columns: 250px 1fr;
grid-template-rows: 140px 1fr 60px;
height: 100vh;
background-color: black;
color: white;
}
a {
color: lightgray;
text-decoration: none;
}
a:hover {
color: black;
}
header {
background-color: darkred;
grid-area: header; /* Define a área do header */
background-color: gray;
grid-area: header;
border-bottom: 4px solid white;
text-align: center;
}
footer {
background-color: darkred;
grid-area: footer; /* Define a área do footer */
background-color: gray;
border-top: 4px solid white;
grid-area: footer;
text-align: center;
}
aside {
grid-area: aside; /* Define a área do aside */
background-color: aquamarine;
grid-area: aside;
background-color: gray;
border-right: 4px solid white;
}
main {
grid-area: main; /* Define a área do main */
grid-area: main;
}
.generalDisclaimer {
padding: 20px;
background-color: burlywood;
background-clip: padding-box;
color: black;
}
.generalDisclaimer a {
color: darkslategray;
}
.comingSoonPicture {
opacity: .2;
transition: .2s;
height: 100%;
width: 100%;
filter: grayscale();
}
.galleryEntry:hover .comingSoonText {
background-color: black;
border: 2px solid white;
padding: 4px;
display: block;
opacity: 1;
}
.galleryEntry:hover .comingSoonPicture {
opacity: 1;
filter: saturate(20%);
}
.galleryEntry {
position: relative;
width: 100%;
height: 100%;
}
.galleryEntry:hover {
border-right: 4px solid gray;
border-bottom: 4px solid gray;
}
.comingSoonText, .galleryEntryName {
font-size: small;
}
.comingSoonText {
opacity: 0;
color: white;
position: absolute;
/* top: 50%; */
left: 100%;
transform: translate(-100%, -50%);
transition: .1s;
width: 100%;
}
.galleryEntryName {
opacity: 0;
color: white;
position: absolute;
top: 0;
left: 100%;
transform: translate(-100%, -50%);
transition: .1s;
width: 100%;
}
.galleryEntry:hover .galleryEntryName {
background-color: black;
border: 2px solid white;
padding: 4px;
display: block;
opacity: 1;
}
.galHeader {
padding: 10px;
}
.galHP {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
grid-auto-rows: 100px;
padding: 10px; /* Adiciona espaçamento ao redor da galeria */
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-auto-rows: 200px;
padding: 20px;
}
.galHP > img {
object-fit: cover;
.galImg {
/* object-fit: cover; */
width: 100%;
height: 100%;
}
#popupImage {
max-height: 50vh;
max-width: 80vw;
}
#ipImageLink {
color: black;
}
#ipImageLink:hover {
color: gray;
}
@media screen and (max-width: 1000px) {
body {
grid-template-columns: 1fr; /* Colunas em tela pequena */
grid-template-columns: 1fr;
grid-template-areas:
"header"
"aside"
@ -54,4 +166,8 @@ main {
"footer";
grid-template-rows: 100px 100px 1fr 100px;
}
aside {
border: none;
}
}

View file

@ -4,65 +4,70 @@
<meta charset="UTF-8">
<title>Galeria Fodástica</title>
<link rel="stylesheet" type="text/css" href="./assets/main.css">
<script src="main.js" defer></script>
</head>
<body>
<header>
<h1>Meu Header</h1>
<h1><i>oh meu <b>deus</b> isso é <b>pirataria</b>?</i></h1>
<p>O lugar onde os mais malvados podem fazer seus executivos favoritos receberem uma fração a menos de seus salários!</p>
</header>
<aside>
<h2>Menu Lateral</h2>
<h2>Ir para:</h2>
<a href="#repacks">repacks</a>
</aside>
<main>
<div class="generalDisclaimer">
<p>Lembre-se de suportar os artistas (principalmente independentes) quando puder, esses downloads estão disponíveis apenas como forma de tornar certas experiências mais acessíveis. Você é responsável pelas suas ações, e se você escolhe não pagar pelo que você consome - mesmo podendo - você está cuspindo na cara de quem te faz feliz, sinta-se envergonhado.</p>
</div>
<div class="galeria">
<h1>CENSURADO</h1>
<div class="galHeader" id="repacks">
<h1>repacks</h1>
</div>
<div class="galHP">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<div class="galleryEntry">
<img class="galImg" src="assets/img/penumbraoverture.jpg">
<div class="galleryEntryName"><p>Penumbra: Overture</p></div>
</div>
<div class="galleryEntry">
<img class="galImg" src="assets/img/toilettycoon.gif">
<div class="galleryEntryName"><p>Toilet Tycoon</p></div>
</div>
<div class="galleryEntry">
<img class="comingSoonPicture galImg" src="assets/img/penumbrarequiem.jpg">
<div class="comingSoonText"><p>Em breve...</p></div>
<div class="galleryEntryName"><p>Penumbra: Requiem</p></div>
</div>
<div class="galleryEntry">
<img class="comingSoonPicture galImg" src="assets/img/eurotrucksimulator.png">
<div class="comingSoonText"><p>Em breve...</p></div>
<div class="galleryEntryName"><p>Euro Truck Simulator</p></div>
</div>
</div>
</div>
<div class="galeria">
<h1>Minecraft legal</h1>
<div class="galHeader">
<h1>repacks</h1>
</div>
<div class="galHP">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img class="galImg" src="assets/img/penumbraoverture.jpg">
</div>
</div>
<div class="galeria">
<h1>Minecraft ilegal</h1>
<div class="galHeader">
<h1>repacks</h1>
</div>
<div class="galHP">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img src="https://picsum.photos/200/300?grayscale">
<img class="galImg" src="assets/img/penumbraoverture.jpg">
</div>
</div>
</main>
<footer>
<p>Meu Footer</p>
<p>2024, feito por Linus Torvalds <b>(é isso aí FBI, já sabem quem pegar!)</b></p>
</footer>
<dialog id="imagePopup">
<p><button id="ipClose">Fechar</button> | <a id="ipImageLink">nomedaimagem.png</a></p>
<div id="popupContent"></div>
</dialog>
</body>
</html>

18
main.js Normal file
View file

@ -0,0 +1,18 @@
const galleryImages = document.querySelectorAll('.galeria img');
const popupCloseButton = document.querySelector('#ipClose');
const popupImageLink = document.querySelector('#ipImageLink');
const popup = document.querySelector('#imagePopup')
const popupContent = document.querySelector('#popupContent')
popupCloseButton.addEventListener('click', () => {
popup.close()
})
galleryImages.forEach(img => {
img.addEventListener('click', () => {
popupContent.innerHTML = `<img src="${img.src}" id="popupImage">`
popupImageLink.setAttribute('href', img.src)
popupImageLink.textContent = img.src.substring(img.src.lastIndexOf('/') + 1)
popup.showModal()
})
})