diff options
| author | Fuwn <[email protected]> | 2026-05-15 10:27:00 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-05-15 10:27:00 +0000 |
| commit | 0d041c6b61fddb96fe3c65764bf54298cdadbeba (patch) | |
| tree | a6069215ed797880d2cd1b096b30777b3cabb8f5 /src/lib/Events | |
| parent | fix(a11y): give CommandPalette real dialog and combobox semantics (diff) | |
| download | due.moe-0d041c6b61fddb96fe3c65764bf54298cdadbeba.tar.xz due.moe-0d041c6b61fddb96fe3c65764bf54298cdadbeba.zip | |
perf(images): lazy-load and async-decode off-screen imagery
Add loading=lazy and decoding=async to the 16 <img> elements that
weren't already deferring across Tools/Wrapped, Events, EasterEvent,
Hololive, and the rate-limited fallback. Also drop the
backdrop-filter: blur(160px) the dropdown items were paying on every
hover; the background-color change already gives sufficient feedback,
and the parent card's own blur stays.
Diffstat (limited to 'src/lib/Events')
| -rw-r--r-- | src/lib/Events/AniListBadges/EasterEvent2025/ClickableAreaPage.svelte | 2 | ||||
| -rw-r--r-- | src/lib/Events/AniListBadges/EasterEvent2025/EasterEgg.svelte | 8 | ||||
| -rw-r--r-- | src/lib/Events/Event.svelte | 4 | ||||
| -rw-r--r-- | src/lib/Events/Group.svelte | 4 |
4 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/Events/AniListBadges/EasterEvent2025/ClickableAreaPage.svelte b/src/lib/Events/AniListBadges/EasterEvent2025/ClickableAreaPage.svelte index 8faf0ba3..f606f366 100644 --- a/src/lib/Events/AniListBadges/EasterEvent2025/ClickableAreaPage.svelte +++ b/src/lib/Events/AniListBadges/EasterEvent2025/ClickableAreaPage.svelte @@ -21,6 +21,8 @@ const handleClick = (index: number) => { <img src={url} alt="Option {i + 1}" + loading="lazy" + decoding="async" style={selectedIndex === i ? i === correctIndex ? 'border: 3px solid var(--base0B)' diff --git a/src/lib/Events/AniListBadges/EasterEvent2025/EasterEgg.svelte b/src/lib/Events/AniListBadges/EasterEvent2025/EasterEgg.svelte index d717f5d0..bd77ab4c 100644 --- a/src/lib/Events/AniListBadges/EasterEvent2025/EasterEgg.svelte +++ b/src/lib/Events/AniListBadges/EasterEvent2025/EasterEgg.svelte @@ -107,6 +107,8 @@ const onLeavePopup = () => { id="egg-visual-{targetID}-{id}" src="https://images.vexels.com/media/users/3/162149/isolated/preview/7f9f0546b21308e4851956e9c15313c9-egg-easter-painted-easter-egg-easter-egg-spot-pattern-stripe-flat.png" alt="Easter Egg" + loading="lazy" + decoding="async" class="egg" /> @@ -133,6 +135,8 @@ const onLeavePopup = () => { <img src="https://files.anilist-badges.com/badges/events/2025/04/20-Easter-2025-Epexity-event-banner-1.png" alt="Banner" + loading="lazy" + decoding="async" /> </a> </div> @@ -156,6 +160,8 @@ const onLeavePopup = () => { <img src="https://files.anilist-badges.com/badges/events/2025/04/20-Easter-2025-Basurahan-1.png" alt="Badge 1" + loading="lazy" + decoding="async" /> </a> @@ -169,6 +175,8 @@ const onLeavePopup = () => { <img src="https://files.anilist-badges.com/badges/events/2025/04/20-Easter-2025-Dxvxdffm-1.png" alt="Badge 2" + loading="lazy" + decoding="async" /> </a> </div> diff --git a/src/lib/Events/Event.svelte b/src/lib/Events/Event.svelte index f8d0efbc..a1d6cf42 100644 --- a/src/lib/Events/Event.svelte +++ b/src/lib/Events/Event.svelte @@ -12,14 +12,14 @@ let { event, avatar = false }: { event: Event; avatar?: boolean } = $props(); style={`background-image: ${event.banner ? `url(${event.banner})` : 'none'}; padding: 0;`} > {#if event} - <img src={event.banner} alt="" id="cover-image" /> + <img src={event.banner} alt="" loading="lazy" decoding="async" id="cover-image" /> {/if} <div class="card" id="user-grid-content"> {#if avatar} <div id="user-grid-avatar"> <a href={root(`/events/group/${event.group.anilist_username}`)}> - <img src={event.group.avatar} alt="" width="100vw" id="avatar" /> + <img src={event.group.avatar} alt="" loading="lazy" decoding="async" width="100vw" id="avatar" /> </a> </div> {/if} diff --git a/src/lib/Events/Group.svelte b/src/lib/Events/Group.svelte index 02cd53ac..9b0ddba5 100644 --- a/src/lib/Events/Group.svelte +++ b/src/lib/Events/Group.svelte @@ -11,13 +11,13 @@ let { group }: { group: Group } = $props(); style={`background-image: ${group.banner ? `url(${group.banner})` : 'none'}; padding: 0;`} > {#if group} - <img src={group.banner} alt="" id="cover-image" /> + <img src={group.banner} alt="" loading="lazy" decoding="async" id="cover-image" /> {/if} <div class="card" id="user-grid-content"> <div id="user-grid-avatar"> <a href={`https://anilist.co/user/${group.anilist_username}`} target="_blank"> - <img src={group.avatar} alt="" width="100vw" id="avatar" /> + <img src={group.avatar} alt="" loading="lazy" decoding="async" width="100vw" id="avatar" /> </a> </div> |