diff --git a/src/common/screenshot.js b/src/common/screenshot.js index e8742cb..31a57ab 100644 --- a/src/common/screenshot.js +++ b/src/common/screenshot.js @@ -19,6 +19,11 @@ export async function markScreenshotReady({ await nextTick(); await document.fonts?.ready; + + // Screenshots capture the whole layout, including images outside the viewport. + for (let image of document.images) + image.loading = 'eager'; + await Promise.allSettled([...document.images].map(image => image.decode())); await new Promise(resolve => requestAnimationFrame(resolve)); await new Promise(resolve => requestAnimationFrame(resolve)); diff --git a/src/web/assets/css/main.scss b/src/web/assets/css/main.scss index fe100d3..cc4df2f 100644 --- a/src/web/assets/css/main.scss +++ b/src/web/assets/css/main.scss @@ -507,12 +507,16 @@ body.has-modal #main { } .stage-image { - background-size: contain; - background-repeat: no-repeat; border-radius: 10px; position: relative; + > figure > img { + object-fit: contain; + object-position: top; + border-radius: 10px; + } + .stage-title { position: absolute; right: 3px; diff --git a/src/web/components/splatoon/MerchandiseBox.vue b/src/web/components/splatoon/MerchandiseBox.vue index 348e0b2..2fc6a80 100644 --- a/src/web/components/splatoon/MerchandiseBox.vue +++ b/src/web/components/splatoon/MerchandiseBox.vue @@ -2,13 +2,13 @@
@@ -21,7 +21,7 @@
@@ -58,7 +58,7 @@