Add meter reading mode and clickable screenshot lightbox

This commit is contained in:
Smittix
2026-01-21 12:19:39 +00:00
parent 95f3836edd
commit 5bafb88377
2 changed files with 96 additions and 2 deletions
+47 -2
View File
@@ -34,8 +34,8 @@
</div>
<div class="hero-stats">
<div class="stat">
<span class="stat-value">8+</span>
<span class="stat-label">SDR Modes</span>
<span class="stat-value">10+</span>
<span class="stat-label">Modes</span>
</div>
<div class="stat">
<span class="stat-value">200+</span>
@@ -105,6 +105,12 @@
<h3>TSCM</h3>
<p>Counter-surveillance with baseline recording, threat detection, device correlation, and risk scoring.</p>
</div>
<div class="feature-card">
<div class="feature-icon"></div>
<h3>Meter Reading</h3>
<p>Intercept smart utility meters via rtl_amr. Monitor electricity, gas, and water meter transmissions.</p>
</div>
</div>
</div>
</section>
@@ -238,5 +244,44 @@ docker compose up -d</code></pre>
</div>
</div>
</footer>
<!-- Lightbox Modal -->
<div id="lightbox" class="lightbox">
<span class="lightbox-close">&times;</span>
<img class="lightbox-img" id="lightbox-img" src="" alt="">
<div class="lightbox-caption" id="lightbox-caption"></div>
</div>
<script>
// Lightbox functionality
const lightbox = document.getElementById('lightbox');
const lightboxImg = document.getElementById('lightbox-img');
const lightboxCaption = document.getElementById('lightbox-caption');
const closeBtn = document.querySelector('.lightbox-close');
document.querySelectorAll('.screenshot-item').forEach(item => {
item.addEventListener('click', () => {
const img = item.querySelector('img');
const label = item.querySelector('.screenshot-label');
lightbox.classList.add('active');
lightboxImg.src = img.src;
lightboxCaption.textContent = label.textContent;
document.body.style.overflow = 'hidden';
});
});
function closeLightbox() {
lightbox.classList.remove('active');
document.body.style.overflow = '';
}
closeBtn.addEventListener('click', closeLightbox);
lightbox.addEventListener('click', (e) => {
if (e.target === lightbox) closeLightbox();
});
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') closeLightbox();
});
</script>
</body>
</html>
+49
View File
@@ -323,6 +323,55 @@ section h2 {
font-weight: 500;
}
/* Lightbox */
.lightbox {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.95);
z-index: 1000;
justify-content: center;
align-items: center;
flex-direction: column;
padding: 20px;
}
.lightbox.active {
display: flex;
}
.lightbox-close {
position: absolute;
top: 20px;
right: 30px;
font-size: 40px;
color: var(--text-primary);
cursor: pointer;
transition: color 0.2s;
z-index: 1001;
}
.lightbox-close:hover {
color: var(--accent);
}
.lightbox-img {
max-width: 90%;
max-height: 80vh;
border-radius: 8px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.lightbox-caption {
margin-top: 20px;
font-size: 1.1rem;
color: var(--text-secondary);
font-weight: 500;
}
/* Installation */
.installation {
background: var(--bg-secondary);