2 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

View File

@@ -139,17 +139,30 @@ const HeroBillboard = ({
center={true} center={true}
/> />
<div className="flex flex-col gap-6" > <div className="flex flex-col gap-6" >
<div ref={mediaContainerRef} className={cls("w-full overflow-hidden rounded-theme-capped card p-4 [perspective:1000px]", mediaWrapperClassName)}> <div ref={mediaContainerRef} className={cls("w-full overflow-hidden rounded-theme-capped card p-4 [perspective:1000px]", mediaWrapperClassName)}>
<div className="w-full h-full transition-transform duration-500 [transform-style:preserve-3d] hover:[transform:rotateX(180deg)]"> <style>{`
<MediaContent @keyframes infiniteSpin {
imageSrc={imageSrc} from {
videoSrc={videoSrc} transform: rotate(0deg);
imageAlt={imageAlt} }
videoAriaLabel={videoAriaLabel} to {
imageClassName={cls("z-1 aspect-square md:aspect-video", imageClassName)} transform: rotate(360deg);
/> }
</div> }
</div> .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 && ( {marqueeItems && marqueeItems.length > 0 && (
<LogoMarquee <LogoMarquee
items={marqueeItems} items={marqueeItems}