Files
community-rule/stories/sections/LogoWall.stories.js
T
adilalloandCursor 3cdf4174d0 Match partner logo wall spacing and sizes to Figma on every breakpoint (CR-130).
Restore asset/Logo import casing so Turbopack can resolve the module, and align the site lockup gaps with the Figma Asset/Logo instances.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 18:24:54 -06:00

77 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import LogoWall from "../../app/components/sections/LogoWall";
export default {
title: "Components/Sections/LogoWall",
component: LogoWall,
parameters: {
layout: "fullscreen",
docs: {
description: {
component: `A responsive logo wall component that displays partner/sponsor logos in a grid layout. Features responsive breakpoints with different layouts and sizing for mobile, tablet, and desktop views.
## Responsive Behavior
- **Mobile**: 3 rows × 2 columns grid with 38.4px gaps
- **SM**: 2 rows × 3 columns grid with 38.4px gaps
- **MD+**: Single space-between row (no wrap)
- **LG**: 1.25× logo sizes, 48px gaps, 64px horizontal padding
- **XL**: 1.5625× logo sizes, 48px gaps, 160px horizontal padding
## Animations & Transitions
- **Opacity**: Partner logos render at 60% opacity to match Figma `Section / Logo Wall`.
## Props
- **logos** (optional): Array of logo objects with src, alt, and size properties. If not provided, uses default partner logos.
## Usage Examples
### Custom Logos
\`\`\`jsx
<LogoWall
logos={[
{
src: "assets/logos/partners/cu-boulder.svg",
alt: "CU Boulder",
size: "h-10 lg:h-12 xl:h-[60px]",
},
{
src: "assets/logos/partners/food-not-bombs.svg",
alt: "Food Not Bombs",
size: "h-11 lg:h-14 xl:h-[70px]",
}
]}
/>
\`\`\`
### Empty State
\`\`\`jsx
<LogoWall logos={[]} />
\`\`\`
This will fall back to the default partner logos.`,
},
},
},
tags: ["autodocs"],
argTypes: {
logos: {
control: "object",
description:
"Array of logo objects with src, alt, and size properties. If not provided, uses default partner logos.",
},
},
};
export const Default = {
args: {},
parameters: {
docs: {
description: {
story:
"Default LogoWall with all partner logos. Displays in a 2×3 grid on mobile, 3×2 grid from 430px, and a space-between row from 640px with Figma lockup sizes. Logos render at 60% opacity to match Figma.",
},
},
},
};