3 Commits

Author SHA1 Message Date
kudinDmitriyUp
50b0860872 feat: Update hero section with testimonial cards and thicker title 2026-05-09 13:53:38 +00:00
a5deb35a54 Merge version_3_1778332459679 into main
Merge version_3_1778332459679 into main
2026-05-09 13:17:05 +00:00
2dca9e5f5b Merge version_3_1778332459679 into main
Merge version_3_1778332459679 into main
2026-05-09 13:16:56 +00:00

View File

@@ -38,20 +38,7 @@ const HeroBillboard = ({
<HeroBackgroundSlot /> <HeroBackgroundSlot />
<div className="flex flex-col gap-10 w-content-width mx-auto"> <div className="flex flex-col gap-10 w-content-width mx-auto">
<div className="flex flex-col items-center gap-2 text-center"> <div className="flex flex-col items-center gap-2 text-center">
{testimonials && testimonials.length > 0 ? ( {tag ? (
<div className="flex flex-col items-center gap-4">
<AvatarGroup avatars={testimonials.map(t => ({ src: t.imageSrc }))} label={avatarsLabel} />
<div className="flex flex-wrap justify-center gap-8 mt-4">
{testimonials.map((testimonial, index) => (
<div key={index} className="max-w-xs text-center">
<p className="italic">"{testimonial.testimonial}"</p>
<p className="mt-2 font-semibold">{testimonial.name}</p>
<p className="text-sm text-gray-600">{testimonial.role}</p>
</div>
))}
</div>
</div>
) : tag ? (
<span className="px-3 py-1 mb-1 text-sm card rounded">{tag}</span> <span className="px-3 py-1 mb-1 text-sm card rounded">{tag}</span>
) : null} ) : null}
@@ -60,7 +47,7 @@ const HeroBillboard = ({
variant="slide-up" variant="slide-up"
gradientText={true} gradientText={true}
tag="h1" tag="h1"
className="text-6xl font-bold text-balance" className="text-6xl font-extrabold text-balance"
/> />
<TextAnimation <TextAnimation
@@ -77,8 +64,19 @@ const HeroBillboard = ({
</div> </div>
</div> </div>
<ScrollReveal variant="fade" delay={0.2} className="w-full p-3 xl:p-4 2xl:p-5 card rounded overflow-hidden"> <ScrollReveal variant="fade" delay={0.2} className="relative w-full p-3 xl:p-4 2xl:p-5 card rounded overflow-hidden">
<ImageOrVideo imageSrc={imageSrc} videoSrc={videoSrc} className="aspect-4/5 md:aspect-video" /> <ImageOrVideo imageSrc={imageSrc} videoSrc={videoSrc} className="aspect-4/5 md:aspect-video" />
{testimonials && testimonials.length > 0 && (
<div className="absolute inset-0 grid grid-cols-1 md:grid-cols-3 gap-4 p-4 md:p-8 pointer-events-none">
{testimonials.map((testimonial, index) => (
<div key={index} className="card p-4 bg-white/80 backdrop-blur-sm rounded-lg shadow-lg pointer-events-auto self-start">
<p className="italic">"{testimonial.testimonial}"</p>
<p className="mt-2 font-semibold">{testimonial.name}</p>
<p className="text-sm text-gray-600">{testimonial.role}</p>
</div>
))}
</div>
)}
</ScrollReveal> </ScrollReveal>
</div> </div>
</section> </section>