9 Commits

Author SHA1 Message Date
e3e977c0ce Bob AI: Add infinite continuous spinning animation to the hero image 2026-02-26 13:13:37 +00:00
5f0303afed Merge version_5 into main
Merge version_5 into main
2026-02-26 13:10:23 +00:00
973b38f7a0 Bob AI: Replace the flip animation on hover with a continuous infini 2026-02-26 13:09:42 +00:00
9a3a179ad4 Merge version_4 into main
Merge version_4 into main
2026-02-26 13:07:54 +00:00
2745a435fb Bob AI: Change the hero image flip animation direction from Y-axis ( 2026-02-26 13:07:14 +00:00
174847fd3e Update src/app/layout.tsx 2026-02-26 13:06:58 +00:00
b1bfb8dacf Merge version_3 into main
Merge version_3 into main
2026-02-26 13:05:50 +00:00
e9df669943 Bob AI: Add a flip animation effect to the hero image on hover using 2026-02-26 13:05:09 +00:00
3f01f55a30 Merge version_2 into main
Merge version_2 into main
2026-02-26 13:02:57 +00:00
2 changed files with 1392 additions and 10 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -61,7 +61,7 @@ interface HeroBillboardProps {
buttonTextClassName?: string;
mediaWrapperClassName?: string;
imageClassName?: string;
marqueeClassName?: string;
marqueeClassName?: string;
marqueeItemClassName?: string;
marqueeCardClassName?: string;
marqueeImageClassName?: string;
@@ -139,15 +139,30 @@ const HeroBillboard = ({
center={true}
/>
<div className="flex flex-col gap-6" >
<div ref={mediaContainerRef} className={cls("w-full overflow-hidden rounded-theme-capped card p-4", mediaWrapperClassName)}>
<MediaContent
imageSrc={imageSrc}
videoSrc={videoSrc}
imageAlt={imageAlt}
videoAriaLabel={videoAriaLabel}
imageClassName={cls("z-1 aspect-square md:aspect-video", imageClassName)}
/>
</div>
<div ref={mediaContainerRef} className={cls("w-full overflow-hidden rounded-theme-capped card p-4 [perspective:1000px]", mediaWrapperClassName)}>
<style>{`
@keyframes infiniteSpin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.spin-infinite {
animation: infiniteSpin 8s linear infinite;
}
`}</style>
<div className="spin-infinite w-full h-full [transform-style:preserve-3d]">
<MediaContent
imageSrc={imageSrc}
videoSrc={videoSrc}
imageAlt={imageAlt}
videoAriaLabel={videoAriaLabel}
imageClassName={cls("z-1 aspect-square md:aspect-video", imageClassName)}
/>
</div>
</div>
{marqueeItems && marqueeItems.length > 0 && (
<LogoMarquee
items={marqueeItems}