Fix desktop glass and hero image
This commit is contained in:
@@ -24,6 +24,7 @@ All notable changes to the New Optic website will be documented in this file.
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- Fixed desktop hero image visibility by removing liquid glass from image-bearing containers, while applying liquid glass to navbar/buttons and adding a stronger CSS glass fallback.
|
||||||
- Re-enabled liquid glass on desktop PCs using user-agent and pointer capability detection, while keeping it disabled on phones and tablets.
|
- Re-enabled liquid glass on desktop PCs using user-agent and pointer capability detection, while keeping it disabled on phones and tablets.
|
||||||
- Changed trust stat label accent from blue to a softer neutral white tone.
|
- Changed trust stat label accent from blue to a softer neutral white tone.
|
||||||
- Refined contact and trust UI: stat labels are now accented above values, French WhatsApp CTA says "Discuter sur WhatsApp", hours information is emphasized, and mobile navbar shows WhatsApp without opening the menu.
|
- Refined contact and trust UI: stat labels are now accented above values, French WhatsApp CTA says "Discuter sur WhatsApp", hours information is emphasized, and mobile navbar shows WhatsApp without opening the menu.
|
||||||
|
|||||||
@@ -83,6 +83,32 @@ a {
|
|||||||
backdrop-filter: blur(24px);
|
backdrop-filter: blur(24px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.premium-glass::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
border-radius: inherit;
|
||||||
|
pointer-events: none;
|
||||||
|
background:
|
||||||
|
linear-gradient(135deg, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.06) 42%, rgba(255, 255, 255, 0.2)),
|
||||||
|
radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.55), transparent 34%),
|
||||||
|
radial-gradient(circle at 82% 100%, rgba(49, 95, 143, 0.12), transparent 38%);
|
||||||
|
opacity: 0.72;
|
||||||
|
mix-blend-mode: screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
.premium-glass::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
inset: 1px;
|
||||||
|
border-radius: inherit;
|
||||||
|
pointer-events: none;
|
||||||
|
box-shadow:
|
||||||
|
inset 0 1px 0 rgba(255, 255, 255, 0.8),
|
||||||
|
inset 0 -18px 32px rgba(49, 95, 143, 0.08),
|
||||||
|
inset 18px 0 34px rgba(255, 255, 255, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
.hairline {
|
.hairline {
|
||||||
background: linear-gradient(90deg, transparent, rgba(17, 19, 23, 0.15), transparent);
|
background: linear-gradient(90deg, transparent, rgba(17, 19, 23, 0.15), transparent);
|
||||||
height: 1px;
|
height: 1px;
|
||||||
@@ -156,6 +182,11 @@ a {
|
|||||||
box-shadow: 0 10px 30px rgba(17, 19, 23, 0.07);
|
box-shadow: 0 10px 30px rgba(17, 19, 23, 0.07);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.premium-glass::before,
|
||||||
|
.premium-glass::after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
main > section {
|
main > section {
|
||||||
content-visibility: auto;
|
content-visibility: auto;
|
||||||
contain-intrinsic-size: 1px 780px;
|
contain-intrinsic-size: 1px 780px;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default function HeroSection({ t, whatsappUrl }: { t: Messages; whatsappU
|
|||||||
className="relative mx-auto w-full max-w-xl lg:max-w-none lg:will-change-transform"
|
className="relative mx-auto w-full max-w-xl lg:max-w-none lg:will-change-transform"
|
||||||
>
|
>
|
||||||
<div className="absolute -inset-6 hidden rounded-[3rem] bg-gradient-to-br from-optical/14 via-white/0 to-silver/45 blur-2xl lg:block" />
|
<div className="absolute -inset-6 hidden rounded-[3rem] bg-gradient-to-br from-optical/14 via-white/0 to-silver/45 blur-2xl lg:block" />
|
||||||
<div className="glass liquidGL-pane relative overflow-hidden rounded-[2.6rem] p-3">
|
<div className="glass premium-glass relative overflow-hidden rounded-[2.6rem] p-3">
|
||||||
<span className="floating-sheen" />
|
<span className="floating-sheen" />
|
||||||
<div className="relative aspect-[4/3] overflow-hidden rounded-[2rem] bg-silver/40">
|
<div className="relative aspect-[4/3] overflow-hidden rounded-[2rem] bg-silver/40">
|
||||||
<Image src={business.assets.hero} alt={t.hero.imageAlt} fill sizes="(min-width: 1024px) 45vw, 92vw" className="object-cover" priority />
|
<Image src={business.assets.hero} alt={t.hero.imageAlt} fill sizes="(min-width: 1024px) 45vw, 92vw" className="object-cover" priority />
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default function Navbar({ locale, onLocaleChange, t, whatsappUrl }: { loc
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<header className="fixed inset-x-0 top-0 z-50 px-4 pt-4 sm:px-6">
|
<header className="fixed inset-x-0 top-0 z-50 px-4 pt-4 sm:px-6">
|
||||||
<nav className="glass mx-auto flex max-w-7xl items-center justify-between gap-2 rounded-full px-3 py-3 sm:px-5" aria-label="Main navigation">
|
<nav className="glass premium-glass liquidGL-pane mx-auto flex max-w-7xl items-center justify-between gap-2 rounded-full px-3 py-3 sm:px-5" aria-label="Main navigation">
|
||||||
<a href="#home" onClick={(event) => scrollToSection(event, "#home")} className="relative z-[3] flex items-center gap-3" aria-label="New Optic home">
|
<a href="#home" onClick={(event) => scrollToSection(event, "#home")} className="relative z-[3] flex items-center gap-3" aria-label="New Optic home">
|
||||||
<span className="relative grid size-10 place-items-center overflow-hidden rounded-full bg-white shadow-sm">
|
<span className="relative grid size-10 place-items-center overflow-hidden rounded-full bg-white shadow-sm">
|
||||||
<Image src={business.assets.logo} alt="New Optic logo" fill sizes="40px" className="object-contain p-1" priority />
|
<Image src={business.assets.logo} alt="New Optic logo" fill sizes="40px" className="object-contain p-1" priority />
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export default function PhysicsButton({ href, children, className, external = fa
|
|||||||
whileHover={{ scale: 1.035 }}
|
whileHover={{ scale: 1.035 }}
|
||||||
style={{ x, y, scaleX, scaleY, rotate }}
|
style={{ x, y, scaleX, scaleY, rotate }}
|
||||||
transition={{ type: "spring", stiffness: 520, damping: 18, mass: 0.45 }}
|
transition={{ type: "spring", stiffness: 520, damping: 18, mass: 0.45 }}
|
||||||
className={cn("group relative inline-flex touch-manipulation select-none items-center justify-center overflow-hidden will-change-transform", className)}
|
className={cn("premium-glass liquidGL-pane group relative inline-flex touch-manipulation select-none items-center justify-center overflow-hidden will-change-transform", className)}
|
||||||
>
|
>
|
||||||
<motion.span
|
<motion.span
|
||||||
className="pointer-events-none absolute inset-0 rounded-full bg-white/15 opacity-0 blur-xl transition-opacity duration-300 group-hover:opacity-100"
|
className="pointer-events-none absolute inset-0 rounded-full bg-white/15 opacity-0 blur-xl transition-opacity duration-300 group-hover:opacity-100"
|
||||||
|
|||||||
Reference in New Issue
Block a user