From a69c9875102c1e8c44bca7a9bec51bcd344881b4 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Fri, 10 Nov 2023 21:57:23 +0100 Subject: [PATCH] PhotosIndex: add blurred versions of thumbnails for added coolness --- public/css/default.css | 36 ++++++++++++++++++++++++++++++------ templates/PhotosIndex.php | 28 +++++++++++++++++----------- 2 files changed, 47 insertions(+), 17 deletions(-) diff --git a/public/css/default.css b/public/css/default.css index 32ac1f9f..d2d0edb5 100644 --- a/public/css/default.css +++ b/public/css/default.css @@ -199,33 +199,57 @@ i.space-invader.alt-7::before { div.polaroid { background: #fff; - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); + box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.3); line-height: 0; position: relative; + transition: 0.25s; } -div.polaroid img { - background: url('../images/nothumb.svg') center no-repeat; +div.polaroid:hover { + box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.5); +} +div.polaroid img.normal-photo { + background: #fff url('../images/nothumb.svg') center no-repeat; border: none; + left: 0; object-fit: cover; + position: absolute; + top: 0; width: 100%; + z-index: 20; +} +div.polaroid img.blur-photo { + filter: blur(50px); + left: 0; + object-fit: cover; + position: absolute; + top: 0; + width: 100%; + z-index: 0; +} +div.polaroid img.placeholder-image { + background: #fff; + z-index: 20; } div.polaroid h4 { + background: #fff; + bottom: 0; color: #000; margin: 0; font: 400 18px 'Coda', sans-serif; padding: 15px 5px; + position: absolute; text-overflow: ellipsis; text-align: center; + width: 100%; white-space: nowrap; overflow: hidden; + z-index: 20; } div.polaroid a { display: block; text-decoration: none; } -div.polaroid:hover { - box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); -} + /* Album title boxes diff --git a/templates/PhotosIndex.php b/templates/PhotosIndex.php index 196e870c..b01a9230 100644 --- a/templates/PhotosIndex.php +++ b/templates/PhotosIndex.php @@ -83,27 +83,33 @@ class PhotosIndex extends Template protected function photo(Image $image, $className, $width, $height, $crop = true, $fit = true) { + // Prefer thumbnail aspect ratio if available, otherwise use image aspect ratio. + $aspectRatio = isset($width, $height) ? $width / $height : $image->ratio(); + echo ' -
'; +