Layout 48
standard2 ColumnsText Align LeftText OnlyBenefits SectionAbout SectionEcommerce Product Section

Code
relume-layout48.tsx
type SubHeadingProps = {
title: string;
description: string;
};
type Props = {
heading: string;
description: string;
subHeadings: SubHeadingProps[];
};
export type Layout48Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Layout48 = (props: Layout48Props) => {
const { heading, description, subHeadings } = {
...Layout48Defaults,
...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 justify-between gap-5 md:grid-cols-2 md:gap-x-12 md:gap-y-8 lg:gap-x-20">
<h3 className="text-h3 font-bold">{heading}</h3>
<div>
<p className="mb-6 text-medium md:mb-8">{description}</p>
<div className="grid grid-cols-1 gap-x-6 gap-y-8 py-2 sm:grid-cols-2">
{subHeadings.map((subHeading, index) => (
<div key={index}>
<h6 className="mb-3 text-h6 font-bold md:mb-4">{subHeading.title}</h6>
<p>{subHeading.description}</p>
</div>
))}
</div>
</div>
</div>
</div>
</section>
);
};
export const Layout48Defaults: Props = {
heading: "Long heading is what you see here in this feature section",
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.",
subHeadings: [
{
title: "Subheading one",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros.",
},
{
title: "Subheading two",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros.",
},
],
};npm i @radix-ui/react-slot class-variance-authority@0.7.1 clsx@^2.1.1 relume-icons@1.3.0 tailwind-merge@^2.2.2


