Files
community-rule/app/components/sections/LogoWall/LogoWall.view.tsx
T
adilalloandCursor 33cdaf135c Match Home, top nav, hero, and logo wall to the current marketing frames.
Puts Workshops in the header, pairs the hero with a static rule card and breakpoint CTAs, and shows the three pilot marks with no wall label.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-02 18:50:32 -07:00

41 lines
1.4 KiB
TypeScript

"use client";
import { memo } from "react";
import Image from "next/image";
import type { LogoWallViewProps } from "./LogoWall.types";
function LogoWallView({ displayLogos, className }: LogoWallViewProps) {
return (
<section
className={`bg-[var(--color-surface-default-primary)] p-[var(--space-800)] md:px-[var(--space-600)] md:py-[var(--space-800)] lg:px-[var(--space-1800)] lg:py-[var(--space-1200)] xl:px-[160px] xl:py-[var(--space-1800)] ${className}`}
data-figma-node="18483-18425"
>
<div className="w-full opacity-60">
<div className="flex w-full flex-col items-center gap-[38.4px] sm:flex-row sm:flex-wrap sm:justify-around md:flex-nowrap md:justify-between lg:gap-[var(--space-1200)]">
{displayLogos.map((logo, index) => (
<div
key={logo.alt || index}
className="flex items-center justify-center md:shrink-0"
>
<Image
src={logo.src}
alt={logo.alt}
className={`${logo.size || "h-8"} w-auto object-contain`}
priority={index < 2}
unoptimized
width={0}
height={0}
sizes="100vw"
/>
</div>
))}
</div>
</div>
</section>
);
}
LogoWallView.displayName = "LogoWallView";
export default memo(LogoWallView);