diff options
author | Kristóf Marussy <kristof@marussy.com> | 2024-08-15 22:10:06 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2024-08-15 22:10:06 +0200 |
commit | d997936c70da88c3283cdc1547fbdde1d44a7ee7 (patch) | |
tree | e0c96a0c03c25a3ba00adb85486e4d7219a5dc17 /src/components/landing/sections | |
parent | More descriptive link text (diff) | |
download | blog-d997936c70da88c3283cdc1547fbdde1d44a7ee7.tar.gz blog-d997936c70da88c3283cdc1547fbdde1d44a7ee7.tar.zst blog-d997936c70da88c3283cdc1547fbdde1d44a7ee7.zip |
Reduce FOUC on Refinery screenshot
Diffstat (limited to 'src/components/landing/sections')
-rw-r--r-- | src/components/landing/sections/Software.module.css | 15 | ||||
-rw-r--r-- | src/components/landing/sections/Software.tsx | 17 |
2 files changed, 27 insertions, 5 deletions
diff --git a/src/components/landing/sections/Software.module.css b/src/components/landing/sections/Software.module.css index a68b5a6..758a848 100644 --- a/src/components/landing/sections/Software.module.css +++ b/src/components/landing/sections/Software.module.css | |||
@@ -192,8 +192,6 @@ | |||
192 | overflow: hidden; | 192 | overflow: hidden; |
193 | transition-property: box-shadow, transform; | 193 | transition-property: box-shadow, transform; |
194 | z-index: 0; | 194 | z-index: 0; |
195 | background-size: cover; | ||
196 | background-position: center center; | ||
197 | } | 195 | } |
198 | 196 | ||
199 | .software--screenshot:hover, | 197 | .software--screenshot:hover, |
@@ -201,7 +199,18 @@ | |||
201 | transform: scale(120%); | 199 | transform: scale(120%); |
202 | } | 200 | } |
203 | 201 | ||
204 | .screenshot { | 202 | .screenshot__backdrop { |
203 | display: none; | ||
204 | background-size: cover; | ||
205 | background-position: center center; | ||
206 | } | ||
207 | |||
208 | [data-theme='dark'] .screenshot__backdrop--dark, | ||
209 | :root:not([data-theme='dark']) .screenshot__backdrop--light { | ||
210 | display: block; | ||
211 | } | ||
212 | |||
213 | .screenshot, .screenshot__backdrop { | ||
205 | position: absolute; | 214 | position: absolute; |
206 | top: 0; | 215 | top: 0; |
207 | left: 0; | 216 | left: 0; |
diff --git a/src/components/landing/sections/Software.tsx b/src/components/landing/sections/Software.tsx index e905e07..577939c 100644 --- a/src/components/landing/sections/Software.tsx +++ b/src/components/landing/sections/Software.tsx | |||
@@ -58,12 +58,25 @@ function Screenshot() { | |||
58 | )} | 58 | )} |
59 | style={{ | 59 | style={{ |
60 | aspectRatio: refineryScreenshot.width / refineryScreenshot.height, | 60 | aspectRatio: refineryScreenshot.width / refineryScreenshot.height, |
61 | backgroundImage: `url(${refineryScreenshot.placeholder})`, | ||
62 | }} | 61 | }} |
63 | > | 62 | > |
64 | {isBrowser ? screenshot : <noscript>{screenshot}</noscript>} | ||
65 | <div className={clsx(styles.content, styles['content--screenshot'])}> | 63 | <div className={clsx(styles.content, styles['content--screenshot'])}> |
66 | <div | 64 | <div |
65 | className={clsx(styles.screenshot__backdrop, styles['screenshot__backdrop--light'])} | ||
66 | style={{ | ||
67 | aspectRatio: refineryScreenshotDark.width / refineryScreenshotDark.height, | ||
68 | backgroundImage: `url(${refineryScreenshotDark.placeholder})`, | ||
69 | }} | ||
70 | /> | ||
71 | <div | ||
72 | className={clsx(styles.screenshot__backdrop, styles['screenshot__backdrop--dark'])} | ||
73 | style={{ | ||
74 | aspectRatio: refineryScreenshotLight.width / refineryScreenshotLight.height, | ||
75 | backgroundImage: `url(${refineryScreenshotLight.placeholder})`, | ||
76 | }} | ||
77 | /> | ||
78 | {isBrowser ? screenshot : <noscript>{screenshot}</noscript>} | ||
79 | <div | ||
67 | className={clsx( | 80 | className={clsx( |
68 | styles.overlay, | 81 | styles.overlay, |
69 | styles['overlay--screenshot'], | 82 | styles['overlay--screenshot'], |