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 ' -
'; +
'; if ($this->show_edit_buttons) echo ' Edit'; echo ' - + '; + + + foreach (['normal-photo', 'blur-photo'] as $className) + { + echo ' width() >= $width * 2 && $image->height() >= $height * 2) - echo ' srcset="', $image->getThumbnailUrl($width * 2, $height * 2, $crop, $fit), ' 2x"'; - else - echo ' srcset="', $image->getThumbnailUrl($image->width(), $image->height(), true), ' 2x"'; + // Can we offer double-density thumbs? + if ($image->width() >= $width * 2 && $image->height() >= $height * 2) + echo ' srcset="', $image->getThumbnailUrl($width * 2, $height * 2, $crop, $fit), ' 2x"'; + else + echo ' srcset="', $image->getThumbnailUrl($image->width(), $image->height(), true), ' 2x"'; - // Prefer thumbnail aspect ratio if available, otherwise use image aspect ratio. - $aspectRatio = isset($width, $height) ? $width / $height : $image->ratio(); - - echo ' alt="" title="', $image->getTitle(), '" style="aspect-ratio: ', $aspectRatio, '">'; + echo ' alt="" title="', $image->getTitle(), '" class="', $className, '" style="aspect-ratio: ', $aspectRatio, '">'; + } if ($this->show_labels) echo '