fixed some responsive design details
This commit is contained in:
@@ -25,8 +25,12 @@ export default function HeroSection() {
|
|||||||
ref={sectionRef}
|
ref={sectionRef}
|
||||||
className="w-full min-h-[calc(100vh-(2*11px))] rounded-[10px] bg-brand-brown text-brand-beige flex flex-col overflow-hidden relative"
|
className="w-full min-h-[calc(100vh-(2*11px))] rounded-[10px] bg-brand-brown text-brand-beige flex flex-col overflow-hidden relative"
|
||||||
>
|
>
|
||||||
|
{/* Spacer: clears the fixed header (~91px) + mirrors the bottom bar height (~52px)
|
||||||
|
so justify-center lands on the visual centre of the viewport below the header */}
|
||||||
|
<div className="shrink-0" style={{ height: 'clamp(120px, 15vh, 160px)' }} />
|
||||||
|
|
||||||
{/* Main content */}
|
{/* Main content */}
|
||||||
<div className="flex flex-col lg:flex-row flex-1 px-8 md:px-14 lg:px-20 pt-16 pb-12 gap-10 lg:gap-0">
|
<div className="flex flex-col lg:flex-row flex-1 items-center px-8 md:px-14 lg:px-20 gap-10 lg:gap-0">
|
||||||
|
|
||||||
{/* Left — editorial text */}
|
{/* Left — editorial text */}
|
||||||
<div className="flex flex-col justify-center lg:w-[55%] lg:pr-12 gap-8 lg:gap-10">
|
<div className="flex flex-col justify-center lg:w-[55%] lg:pr-12 gap-8 lg:gap-10">
|
||||||
@@ -91,10 +95,7 @@ export default function HeroSection() {
|
|||||||
className="hero-reveal relative flex items-center justify-center lg:w-[45%]"
|
className="hero-reveal relative flex items-center justify-center lg:w-[45%]"
|
||||||
style={{ opacity: 0, transform: 'translateY(28px)', transition: 'opacity 900ms cubic-bezier(0.22,1,0.36,1), transform 900ms cubic-bezier(0.22,1,0.36,1)' }}
|
style={{ opacity: 0, transform: 'translateY(28px)', transition: 'opacity 900ms cubic-bezier(0.22,1,0.36,1), transform 900ms cubic-bezier(0.22,1,0.36,1)' }}
|
||||||
>
|
>
|
||||||
{/* Decorative accent ring */}
|
<div className="relative rounded-[10px] overflow-hidden" style={{ width: 'clamp(260px, 32vw, 420px)', height: 'clamp(320px, 40vw, 520px)' }}>
|
||||||
<div className="absolute inset-4 rounded-[14px] border border-brand-beige/8 pointer-events-none" />
|
|
||||||
|
|
||||||
<div className="relative w-full h-full min-h-[320px] lg:min-h-0 rounded-[10px] overflow-hidden">
|
|
||||||
<img
|
<img
|
||||||
src="/images/pofile.png"
|
src="/images/pofile.png"
|
||||||
alt="Mathéo Guilbert, développeur Full Stack"
|
alt="Mathéo Guilbert, développeur Full Stack"
|
||||||
|
|||||||
@@ -47,8 +47,11 @@ export function ProjectHero({ title, description, dateLabel, locale, cover }: pr
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Back link */}
|
{/* Top zone: clears the fixed header (~91px) + anchors the back link */}
|
||||||
<div className="relative z-10 px-8 md:px-14 lg:px-20 pt-30">
|
<div
|
||||||
|
className="relative z-10 shrink-0 flex items-end px-8 md:px-14 lg:px-20 pb-4"
|
||||||
|
style={{ height: 'clamp(120px, 15vh, 160px)' }}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
className="hero-reveal"
|
className="hero-reveal"
|
||||||
style={{ opacity: 0, transform: 'translateY(20px)', transition: 'opacity 500ms ease, transform 500ms cubic-bezier(0.22,1,0.36,1)' }}
|
style={{ opacity: 0, transform: 'translateY(20px)', transition: 'opacity 500ms ease, transform 500ms cubic-bezier(0.22,1,0.36,1)' }}
|
||||||
@@ -71,8 +74,8 @@ export function ProjectHero({ title, description, dateLabel, locale, cover }: pr
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Main content — vertically centred */}
|
{/* Main content — centred in the remaining visible area */}
|
||||||
<div className="relative z-10 flex flex-col flex-1 items-center justify-center px-8 md:px-14 lg:px-20 py-16 text-center">
|
<div className="relative z-10 flex flex-col flex-1 items-center justify-center px-8 md:px-14 lg:px-20 text-center">
|
||||||
{/* Category pill */}
|
{/* Category pill */}
|
||||||
<div
|
<div
|
||||||
className="hero-reveal mb-6"
|
className="hero-reveal mb-6"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default function LanguageSwitcher() {
|
|||||||
return (
|
return (
|
||||||
<div className="flex items-center gap-2 font-sans text-xs uppercase tracking-widest text-brand-beige">
|
<div className="flex items-center gap-2 font-sans text-xs uppercase tracking-widest text-brand-beige">
|
||||||
{locales.map((language, index) => (
|
{locales.map((language, index) => (
|
||||||
<div key={index}>
|
<div key={index} className="flex items-center gap-2">
|
||||||
<button
|
<button
|
||||||
onClick={() => switchLanguage(language)}
|
onClick={() => switchLanguage(language)}
|
||||||
className={`transition-opacity duration-200 cursor-pointer ${currentLocale === language ? 'opacity-100 font-medium' : 'opacity-40 hover:opacity-70'}`}
|
className={`transition-opacity duration-200 cursor-pointer ${currentLocale === language ? 'opacity-100 font-medium' : 'opacity-40 hover:opacity-70'}`}
|
||||||
|
|||||||
Reference in New Issue
Block a user