Add photo slideshow screensaver with inactivity timer
- After 1 hour of inactivity the screen switches to a fullscreen crossfade slideshow of photos from static/photos/ - Touch anywhere on screen to dismiss and return to the calendar - /api/photos endpoint serves a shuffled list of images from static/photos/ - Two-slot A/B image swap for smooth 1.5s crossfades; next image preloads in the background while current is displayed (15s per photo) - Slideshow only activates if static/photos/ contains at least one image Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -299,6 +299,45 @@ html, body {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* ---------- Photo slideshow screensaver ---------- */
|
||||
|
||||
.slideshow-overlay {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
background: #000;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.slideshow-overlay.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.slide-img {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
opacity: 0;
|
||||
transition: opacity 1.5s ease-in-out;
|
||||
}
|
||||
|
||||
.slide-img.active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.slideshow-hint {
|
||||
position: absolute;
|
||||
bottom: 32px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
color: rgba(255, 255, 255, 0.35);
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.04em;
|
||||
pointer-events: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Scrollbar styling for day columns */
|
||||
.day-events::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
|
||||
Reference in New Issue
Block a user