Launcher screenshots

This commit is contained in:
Santiago Fisela
2026-03-14 19:20:27 -03:00
parent c72b820900
commit 447a53b9e0
6 changed files with 171 additions and 6 deletions

View File

@@ -169,7 +169,7 @@
<div class="content-footer">
<div class="roadmap-link">
<a href="#">DEVELOPMENT ROADMAP &rarr;</a>
<a href="https://github.com/orgs/Emerald-Legacy-Launcher/projects/2">DEVELOPMENT ROADMAP &rarr;</a>
</div>
<div class="acknowledgments">
<p>Developed by the Emerald Team. Original creators: 4J Studios & Mojang.</p>
@@ -181,6 +181,32 @@
<section class="tab-content" id="media">
<div class="features-layout scroll-content">
<div class="overview-box" style="text-align: center;">
<h2>Launcher Screenshots</h2>
<p>Experience the definitive way to launch and manage your legacy console editions.</p>
</div>
<div class="gallery-grid launcher-previews">
<div class="gallery-item large">
<div class="gallery-frame">
<img src="Launcher/home.png" alt="Launcher Home">
<div class="frame-caption">Interface</div>
</div>
</div>
<div class="gallery-item large">
<div class="gallery-frame">
<img src="Launcher/versions.png" alt="Version Selection">
<div class="frame-caption">Versions</div>
</div>
</div>
<div class="gallery-item large">
<div class="gallery-frame">
<img src="Launcher/settings.png" alt="Launcher Settings">
<div class="frame-caption">Settings</div>
</div>
</div>
</div>
<div class="overview-box" style="text-align: center; margin-top: 40px;">
<h2>Community Gallery</h2>
<p>A collection of moments and creations shared by the Emerald Legacy community.</p>
</div>
@@ -297,7 +323,14 @@
</div>
</div>
<script type="module" src="/src/main.ts"></script>
<div id="image-modal" class="modal-overlay">
<div class="image-modal-content">
<button id="close-image-modal" class="close-btn expansion-close">X</button>
<img id="expanded-image" src="" alt="Expanded Preview">
</div>
</div>
<script type="module" src="src/main.ts"></script>
</body>
</html>

BIN
public/Launcher/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

View File

@@ -269,6 +269,45 @@ document.addEventListener('DOMContentLoaded', () => {
}
});
const imageModal = document.getElementById('image-modal');
const expandedImg = document.getElementById('expanded-image') as HTMLImageElement;
const closeImageModal = document.getElementById('close-image-modal');
const openImageModal = (src: string) => {
if (!imageModal || !expandedImg) return;
audio.playSFX('levelup.ogg');
expandedImg.src = src;
imageModal.classList.add('active');
};
document.querySelectorAll('.gallery-frame img, .carousel-img').forEach(img => {
(img as HTMLElement).style.cursor = 'pointer';
img.addEventListener('click', () => {
openImageModal((img as HTMLImageElement).src);
});
});
closeImageModal?.addEventListener('click', () => {
audio.playSFX('back.ogg');
imageModal?.classList.remove('active');
});
imageModal?.addEventListener('click', (e) => {
if (e.target === imageModal) {
audio.playSFX('back.ogg');
imageModal.classList.remove('active');
}
});
window.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
if (imageModal?.classList.contains('active')) {
audio.playSFX('back.ogg');
imageModal.classList.remove('active');
}
}
});
updateDownloadButtons();
setInterval(() => rotateScreenshot(1, false), 5000);

View File

@@ -25,8 +25,8 @@ body {
font-family: var(--font-pixel);
background-color: var(--color-bg);
color: var(--color-text);
overflow: hidden;
height: 100vh;
overflow-x: hidden;
min-height: 100vh;
width: 100vw;
user-select: none;
image-rendering: pixelated;
@@ -82,8 +82,9 @@ body {
.menu-container {
display: flex;
flex-direction: column;
height: 100vh;
padding: 20px 0;
min-height: 100vh;
height: auto;
padding: 40px 0;
align-items: center;
}
@@ -897,6 +898,9 @@ body {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
justify-content: center;
max-width: 900px;
margin: 0 auto;
}
.gallery-item {
@@ -940,3 +944,92 @@ body {
grid-template-columns: 1fr;
}
}
.launcher-previews {
grid-template-columns: repeat(3, 1fr);
gap: 30px;
margin-bottom: 20px;
max-width: 1000px;
margin-left: auto;
margin-right: auto;
}
@media (max-width: 1200px) {
.launcher-previews {
grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 900px) {
.launcher-previews {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 600px) {
.launcher-previews {
grid-template-columns: 1fr;
}
}
.gallery-item.large {
max-width: 100%;
}
.gallery-item.large .gallery-frame {
height: auto;
aspect-ratio: 16/9;
}
.frame-caption {
position: absolute;
bottom: 10px;
right: 15px;
background: rgba(0, 0, 0, 0.8);
padding: 6px 14px;
border: 2px solid #5c5c5c;
color: #fff;
font-family: var(--font-silk);
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 1px;
pointer-events: none;
z-index: 5;
box-shadow: 2px 2px 0 #000;
}
.gallery-item:hover .frame-caption {
border-color: var(--color-emerald);
color: var(--color-emerald);
}
.image-modal-content {
position: relative;
max-width: 90vw;
max-height: 90vh;
display: flex;
justify-content: center;
align-items: center;
}
.image-modal-content img {
max-width: 100%;
max-height: 90vh;
border: 8px solid #3c3c3c;
outline: 4px solid #1a1a1a;
box-shadow: 0 0 50px rgba(0, 0, 0, 1);
}
.expansion-close {
position: absolute;
top: -20px;
right: -20px;
z-index: 100;
}
@media (max-width: 800px) {
.menu-container {
width: 95vw;
margin: 20px auto;
}
}