Skip to content

Commit 99f2b2c

Browse files
committed
Try optimizing the hero blur
1 parent 1d2ca08 commit 99f2b2c

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/app/conf/2025/components/image-loaded.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client"
22

33
import type { StaticImageData } from "next/image"
4-
import { useEffect, useState } from "react"
4+
import { useEffect, useState, useRef } from "react"
55

66
const _cache = new Map<string, HTMLImageElement>()
77

@@ -13,6 +13,7 @@ export interface ImageLoadedProps extends React.HTMLAttributes<HTMLDivElement> {
1313
export function ImageLoaded({
1414
image,
1515
fetchPriority = "auto",
16+
style,
1617
...rest
1718
}: ImageLoadedProps) {
1819
const [loaded, setLoaded] = useState(false)
@@ -38,5 +39,14 @@ export function ImageLoaded({
3839
}
3940
}, [src, fetchPriority])
4041

41-
return <div data-loaded={alreadyLoaded || loaded} {...rest} />
42+
return (
43+
<div
44+
data-loaded={alreadyLoaded || loaded}
45+
style={{
46+
["--src" as string]: alreadyLoaded || loaded ? `url(${src})` : "",
47+
...style,
48+
}}
49+
{...rest}
50+
/>
51+
)
4252
}

src/components/index-page/hero/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ function HeroStripes() {
5757
image={logoBlurred}
5858
className="relative h-full bg-gradient-to-b from-pri-base to-pri-lighter opacity-0 transition-opacity duration-[1.5s] [mask-position:center_12%] [mask-size:110%] data-[loaded=true]:opacity-100 dark:to-pri-base sm:[mask-size:auto_300%] lg:[mask-position:7%_7%] lg:[mask-size:200%]"
5959
style={{
60-
maskImage: `url(${logoBlurred.src})`,
61-
WebkitMaskImage: `url(${logoBlurred.src})`,
60+
maskImage: `var(--src)`,
61+
WebkitMaskImage: `var(--src)`,
6262
maskRepeat: "no-repeat",
6363
WebkitMaskRepeat: "no-repeat",
6464
}}

0 commit comments

Comments
 (0)