Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 54f54cfda5 | |||
| 3dc2e9e65d | |||
| c06bf88381 | |||
| abdd7b1b36 | |||
| f1dff452c5 | |||
| e82b81bbde | |||
| 9377be51f2 | |||
| ca12c56782 |
@@ -20,8 +20,8 @@ import { TransitionProvider } from '@/components/providers/TransitionProvider';
|
||||
import { DynamicInitialLoader as InitialLoader } from '@/components/providers/DynamicInitialLoader';
|
||||
import { DynamicMobileBottomNav as MobileBottomNav } from '@/components/layout/DynamicMobileBottomNav';
|
||||
|
||||
import { DynamicCorporateBackground as CorporateBackground } from '@/components/decorations/DynamicCorporateBackground';
|
||||
const corporateBackground = null; // Removed to prevent line shifting
|
||||
// Removed CorporateBackground to improve LCP by eliminating Framer Motion main thread block
|
||||
const corporateBackground = null;
|
||||
|
||||
const inter = Inter({
|
||||
subsets: ['latin'],
|
||||
@@ -190,8 +190,6 @@ export default async function Layout(props: {
|
||||
<body className="relative flex flex-col min-h-screen font-sans antialiased overflow-x-hidden selection:bg-primary/90 selection:text-white" suppressHydrationWarning>
|
||||
<NextIntlClientProvider messages={clientMessages} locale={safeLocale}>
|
||||
<TransitionProvider>
|
||||
<CorporateBackground />
|
||||
{!hasSeenLoader && <InitialLoader shouldShowLoader={!hasSeenLoader} />}
|
||||
{/* PageTransitionShutter loaded dynamically in TransitionProvider */}
|
||||
<SkipLink />
|
||||
<Header navLinks={navLinks} />
|
||||
|
||||
@@ -132,10 +132,10 @@ export default async function Home(props: { params: Promise<{ locale: string }>
|
||||
}
|
||||
|
||||
setRequestLocale(locale);
|
||||
preload('/assets/videos/web/hero-kabelpflug-poster.webp', {
|
||||
preload('/assets/videos/web/hero-kabelpflug-poster-v2.webp', {
|
||||
as: 'image',
|
||||
fetchPriority: 'high',
|
||||
imageSrcSet: '/assets/videos/web/hero-kabelpflug-poster-mobile.webp 800w, /assets/videos/web/hero-kabelpflug-poster.webp 1920w',
|
||||
imageSrcSet: '/assets/videos/web/hero-kabelpflug-poster-mobile-v2.webp 800w, /assets/videos/web/hero-kabelpflug-poster-v2.webp 1920w',
|
||||
imageSizes: '100vw'
|
||||
});
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ export function HeroVideo(props: HeroVideoProps) {
|
||||
|
||||
let defaultPoster = "/assets/photos/DJI_0048.JPG";
|
||||
if (videoUrl && videoUrl.endsWith('.mp4')) {
|
||||
defaultPoster = videoUrl.replace('.mp4', '-poster.webp');
|
||||
defaultPoster = videoUrl.replace('.mp4', '-poster-v2.webp');
|
||||
}
|
||||
|
||||
const posterSrc = props.backgroundImage?.url || props.posterImage?.url || data?.posterImage?.url || defaultPoster;
|
||||
@@ -56,8 +56,8 @@ export function HeroVideo(props: HeroVideoProps) {
|
||||
<img
|
||||
key={`img-${pathname}-${posterSrc}`}
|
||||
src={posterSrc}
|
||||
srcSet={posterSrc.includes('-poster.webp') ? `${posterSrc.replace('-poster.webp', '-poster-mobile.webp')} 800w, ${posterSrc} 1920w` : undefined}
|
||||
sizes={posterSrc.includes('-poster.webp') ? "100vw" : undefined}
|
||||
srcSet={posterSrc.includes('-poster-v2.webp') ? `${posterSrc.replace('-poster-v2.webp', '-poster-mobile-v2.webp')} 800w, ${posterSrc} 1920w` : undefined}
|
||||
sizes={posterSrc.includes('-poster-v2.webp') ? "100vw" : undefined}
|
||||
alt={posterAlt}
|
||||
className="absolute inset-0 w-full h-full object-cover z-[1] pointer-events-none"
|
||||
decoding="async"
|
||||
|
||||
14
compress_images.py
Normal file
14
compress_images.py
Normal file
@@ -0,0 +1,14 @@
|
||||
import os
|
||||
from PIL import Image
|
||||
|
||||
def optimize_webp_aggressive(path, width):
|
||||
if not os.path.exists(path):
|
||||
return
|
||||
img = Image.open(path)
|
||||
wpercent = (width / float(img.size[0]))
|
||||
hsize = int((float(img.size[1]) * float(wpercent)))
|
||||
img = img.resize((width, hsize), Image.Resampling.LANCZOS)
|
||||
img.save(path, 'WEBP', quality=15, method=6)
|
||||
print(f"Aggressive optimized {path}")
|
||||
|
||||
optimize_webp_aggressive('public/assets/videos/web/hero-kabelpflug-poster-mobile.webp', 600)
|
||||
6993
lh-report-prod-en-v5.json
Normal file
6993
lh-report-prod-en-v5.json
Normal file
File diff suppressed because one or more lines are too long
6924
lh-report-prod-en-v7.json
Normal file
6924
lh-report-prod-en-v7.json
Normal file
File diff suppressed because one or more lines are too long
6950
lh-report-prod-en-v8.json
Normal file
6950
lh-report-prod-en-v8.json
Normal file
File diff suppressed because one or more lines are too long
6700
lh-report-prod-en-v9.json
Normal file
6700
lh-report-prod-en-v9.json
Normal file
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "e-tib-nextjs",
|
||||
"version": "2.4.14",
|
||||
"version": "2.4.18",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@10.18.3",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
public/assets/videos/web/hero-kabelpflug-poster-mobile-v2.webp
Normal file
BIN
public/assets/videos/web/hero-kabelpflug-poster-mobile-v2.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 39 KiB |
BIN
public/assets/videos/web/hero-kabelpflug-poster-v2.webp
Normal file
BIN
public/assets/videos/web/hero-kabelpflug-poster-v2.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB |
Reference in New Issue
Block a user