diff options
author | PortableProgrammer <[email protected]> | 2025-01-08 17:44:39 +0000 |
---|---|---|
committer | PortableProgrammer <[email protected]> | 2025-01-08 17:44:39 +0000 |
commit | e351d76a0e3dfc99a2ea3747ecb3aa06c7c6a613 (patch) | |
tree | 9c6867e2f7a3d630d89561f26a121fd641af662e | |
parent | dcd33d89e28c97cc620397d912316a116ac091ba (diff) |
Feat: Card View - Update `media` page, allow zooming
-rw-r--r-- | src/public/styles.css | 33 | ||||
-rw-r--r-- | src/views/media.pug | 11 |
2 files changed, 32 insertions, 12 deletions
diff --git a/src/public/styles.css b/src/public/styles.css index 7a6345a..abc2f13 100644 --- a/src/public/styles.css +++ b/src/public/styles.css | |||
@@ -51,6 +51,21 @@ body:has(details.card[open]) { | |||
51 | overflow: hidden; | 51 | overflow: hidden; |
52 | } | 52 | } |
53 | 53 | ||
54 | body.media-maximized { | ||
55 | /* Fix for Safari User Agent stylesheet */ | ||
56 | margin: 0; | ||
57 | } | ||
58 | |||
59 | body.media-maximized.zoom, | ||
60 | div.media-maximized.container.zoom { | ||
61 | overflow: auto; | ||
62 | } | ||
63 | |||
64 | img.media-maximized.zoom { | ||
65 | max-width: unset; | ||
66 | max-height: unset; | ||
67 | } | ||
68 | |||
54 | main { | 69 | main { |
55 | display: flex; | 70 | display: flex; |
56 | flex-direction: column; | 71 | flex-direction: column; |
@@ -326,15 +341,6 @@ summary::before { | |||
326 | padding: 1rem; | 341 | padding: 1rem; |
327 | } | 342 | } |
328 | 343 | ||
329 | .media-maximized-container { | ||
330 | display: flex; | ||
331 | justify-content: center; | ||
332 | align-items: center; | ||
333 | width: 100vw; | ||
334 | height: 100vh; | ||
335 | overflow: hidden; | ||
336 | } | ||
337 | |||
338 | .media-maximized { | 344 | .media-maximized { |
339 | max-width: 100vw; | 345 | max-width: 100vw; |
340 | max-height: 100vh; | 346 | max-height: 100vh; |
@@ -345,6 +351,15 @@ summary::before { | |||
345 | object-fit: contain; | 351 | object-fit: contain; |
346 | } | 352 | } |
347 | 353 | ||
354 | .media-maximized.container { | ||
355 | display: flex; | ||
356 | justify-content: center; | ||
357 | align-items: center; | ||
358 | width: 100vw; | ||
359 | height: 100vh; | ||
360 | overflow: hidden; | ||
361 | } | ||
362 | |||
348 | .post-author { | 363 | .post-author { |
349 | display: none | 364 | display: none |
350 | } | 365 | } |
diff --git a/src/views/media.pug b/src/views/media.pug index 4476dbb..e945704 100644 --- a/src/views/media.pug +++ b/src/views/media.pug | |||
@@ -2,9 +2,14 @@ include ../mixins/head | |||
2 | doctype html | 2 | doctype html |
3 | html | 3 | html |
4 | +head("home") | 4 | +head("home") |
5 | body | 5 | script(type='text/javascript'). |
6 | div.media-maximized-container | 6 | function toggleZoom() { |
7 | Array.from(document.getElementsByClassName('media-maximized')).forEach(element => element.classList.toggle('zoom')); | ||
8 | } | ||
9 | |||
10 | body.media-maximized | ||
11 | div.media-maximized.container | ||
7 | if kind == 'img' | 12 | if kind == 'img' |
8 | img(src=url).media-maximized | 13 | img(src=url onclick=`toggleZoom()`).media-maximized |
9 | else | 14 | else |
10 | video(src=url controls).media-maximized | 15 | video(src=url controls).media-maximized |