Layout 353
cardText Align Left2 ColumnsIconsButtonsBenefits SectionServices Section

Code
relume-layout353.tsx
import { ChevronRight, RelumeIcon } from "relume-icons";
import { Button, type ButtonProps } from "@/components/ui/button";
import { Card } from "@/components/ui/card";
type ImageProps = {
src: string;
alt?: string;
};
type FeatureSectionProps = {
title: string;
description: string;
};
type Props = {
tagline: string;
heading: string;
description: string;
buttons: ButtonProps[];
featureSections: FeatureSectionProps[];
};
export type Layout353Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Layout353 = (props: Layout353Props) => {
const { tagline, heading, description, buttons, featureSections } = {
...Layout353Defaults,
...props,
};
return (
<section className="px-[5%] py-16 md:py-24 lg:py-28">
<div className="container">
<div className="grid grid-cols-1 items-start gap-y-12 md:grid-flow-row md:grid-cols-2 md:gap-x-12 lg:gap-x-20">
<div className="static md:sticky md:top-[30%]">
<p className="mb-3 font-semibold md:mb-4">{tagline}</p>
<h2 className="mb-5 text-h2 font-bold md:mb-6">{heading}</h2>
<p className="text-medium">{description}</p>
<div className="mt-6 flex flex-wrap items-center gap-4 md:mt-8">
{buttons.map((button, index) => (
<Button key={index} {...button}>
{button.title}
</Button>
))}
</div>
</div>
<div>
{featureSections.map((section, index) => (
<Card key={index} className="sticky mb-8 p-8" style={{ top: `${30 + index * 2}%` }}>
<div className="mb-3 md:mb-4">
<RelumeIcon className="size-12 text-scheme-text" />
</div>
<h3 className="mb-3 text-h5 font-bold md:mb-4">{section.title}</h3>
<p>{section.description}</p>
</Card>
))}
</div>
</div>
</div>
</section>
);
};
export const Layout353Defaults: Props = {
tagline: "Tagline",
heading: "Medium length section heading goes here",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
buttons: [
{ title: "Button", variant: "secondary" },
{
title: "Button",
variant: "link",
size: "link",
iconRight: <ChevronRight className="text-scheme-text" />,
},
],
featureSections: [
{
title: "Subheading one",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
},
{
title: "Subheading two",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
},
{
title: "Subheading three",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
},
{
title: "Subheading four",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.",
},
],
};npm i @radix-ui/react-dialog @radix-ui/react-slot @radix-ui/react-tabs class-variance-authority@0.7.1 clsx@^2.1.1 motion@^12.15.0 relume-icons@1.3.0 tailwind-merge@^2.2.2


