Layout 102
standard2 ColumnsImage/Video CenterImage/Video BottomText Align LeftImageIcons

Code
relume-layout102.tsx
import { RelumeIcon } from "relume-icons";
type ImageProps = {
src: string;
alt?: string;
};
type SubHeadingProps = {
title: string;
description: string;
};
type Props = {
heading: string;
subHeadings: SubHeadingProps[];
description: string;
image: ImageProps;
};
export type Layout102Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Layout102 = (props: Layout102Props) => {
const { heading, description, image, subHeadings } = {
...Layout102Defaults,
...props,
};
return (
<section className="px-[5%] py-16 md:py-24 lg:py-28">
<div className="container">
<div className="mb-12 grid grid-cols-1 items-start justify-between gap-x-12 gap-y-5 md:mb-18 md:grid-cols-2 md:gap-x-12 md:gap-y-8 lg:mb-20 lg:gap-x-20">
<div>
<h3 className="text-h3 font-bold">{heading}</h3>
</div>
<div>
<p className="mb-6 text-medium md:mb-8">{description}</p>
<div className="grid grid-cols-1 gap-6 py-2 sm:grid-cols-2">
{subHeadings.map((subHeading, index) => (
<div key={index}>
<div className="mb-3 md:mb-4">
<RelumeIcon className="size-12 text-scheme-text" />
</div>
<h6 className="mb-3 text-h6 font-bold md:mb-4">{subHeading.title}</h6>
<p>{subHeading.description}</p>
</div>
))}
</div>
</div>
</div>
<img src={image.src} className="w-full rounded-image object-cover" alt={image.alt} />
</div>
</section>
);
};
export const Layout102Defaults: 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.",
image: {
src: "https://d22po4pjz3o32e.cloudfront.net/placeholder-image-landscape.svg",
alt: "Relume placeholder image",
},
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-dialog @radix-ui/react-slot class-variance-authority@0.7.1 clsx@^2.1.1 relume-icons@1.3.0 tailwind-merge@^2.2.2


