Layout 366



<section id="relume" class="px-[5%] py-16 md:py-24 lg:py-28">
<div class="container">
<div class="mb-12 md:mb-18 lg:mb-20">
<div class="mx-auto max-w-lg text-center">
<p class="mb-3 font-semibold md:mb-4">Tagline</p>
<h2 class="rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl">
Short heading goes here
</h2>
<p class="md:text-md">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</div>
</div>
<div class="grid grid-cols-1 gap-6 md:gap-8">
<div class="grid grid-cols-1 gap-6 md:gap-8 lg:grid-cols-2">
<div
class="order-first flex flex-col items-stretch border border-border-primary lg:order-none lg:col-start-1 lg:col-end-2 lg:row-start-1 lg:row-end-3"
>
<div>
<img
src="https://d22po4pjz3o32e.cloudfront.net/placeholder-image-landscape.svg"
alt="Relume placeholder image 3"
class="w-full object-cover"
/>
</div>
<div
class="block flex-1 flex-col items-stretch justify-center p-6 md:flex md:p-8 lg:p-12"
>
<div>
<p class="mb-2 font-semibold">Tagline</p>
<h3 class="mb-5 text-4xl font-bold leading-[1.2] md:mb-6 md:text-5xl lg:text-6xl">
Medium length section heading goes here
</h3>
<p>
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.
</p>
</div>
<div class="mt-6 flex items-center gap-4 md:mt-8">
<button
class="focus-visible:ring-border-primary inline-flex gap-3 items-center justify-center whitespace-nowrap ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-border-primary text-text-primary bg-background-primary px-6 py-3"
title="Button"
>
Button</button
><button
class="focus-visible:ring-border-primary inline-flex items-center justify-center whitespace-nowrap ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-0 text-text-primary gap-2 p-0"
title="Button"
>
Button<svg
stroke="currentColor"
fill="none"
stroke-width="0"
viewBox="0 0 15 15"
height="1em"
width="1em"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z"
fill="currentColor"
></path>
</svg>
</button>
</div>
</div>
</div>
<div
class="order-last flex flex-col border border-border-primary md:grid md:grid-cols-2 lg:order-none"
>
<div class="flex w-full items-center justify-center">
<img
src="https://d22po4pjz3o32e.cloudfront.net/placeholder-image-portrait.svg"
alt="Relume placeholder image 1"
class="w-full object-cover"
/>
</div>
<div class="block flex-col justify-center p-6 md:flex">
<div>
<p class="mb-2 font-semibold">Tagline</p>
<h3 class="mb-2 text-xl font-bold md:text-2xl">
Medium length section heading goes here
</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
eros elementum tristique.
</p>
</div>
<div class="mt-5 flex items-center gap-4 md:mt-6">
<button
class="focus-visible:ring-border-primary inline-flex items-center justify-center whitespace-nowrap ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-0 text-text-primary gap-2 p-0"
title="Button"
>
Button<svg
stroke="currentColor"
fill="none"
stroke-width="0"
viewBox="0 0 15 15"
height="1em"
width="1em"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z"
fill="currentColor"
></path>
</svg>
</button>
</div>
</div>
</div>
<div
class="order-last flex flex-col border border-border-primary md:grid md:grid-cols-2 lg:order-none"
>
<div class="flex w-full items-center justify-center">
<img
src="https://d22po4pjz3o32e.cloudfront.net/placeholder-image-portrait.svg"
alt="Relume placeholder image 2"
class="w-full object-cover"
/>
</div>
<div class="block flex-col justify-center p-6 md:flex">
<div>
<p class="mb-2 font-semibold">Tagline</p>
<h3 class="mb-2 text-xl font-bold md:text-2xl">
Medium length section heading goes here
</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in
eros elementum tristique.
</p>
</div>
<div class="mt-5 flex items-center gap-4 md:mt-6">
<button
class="focus-visible:ring-border-primary inline-flex items-center justify-center whitespace-nowrap ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-0 text-text-primary gap-2 p-0"
title="Button"
>
Button<svg
stroke="currentColor"
fill="none"
stroke-width="0"
viewBox="0 0 15 15"
height="1em"
width="1em"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z"
fill="currentColor"
></path>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
import { Button } from "@relume_io/relume-ui";
import type { ButtonProps } from "@relume_io/relume-ui";
import { RxChevronRight } from "react-icons/rx";
type ImageProps = {
src: string;
alt?: string;
};
type CardBaseProps = {
tagline: string;
image: ImageProps;
heading: string;
description: string;
};
type CardsSmallProps = CardBaseProps & {
button: ButtonProps;
};
type CardBigProps = CardBaseProps & {
buttons: ButtonProps[];
};
type Props = {
tagline: string;
heading: string;
description: string;
cardsSmall: CardsSmallProps[];
cardBig: CardBigProps;
};
export type Layout366Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Layout366 = (props: Layout366Props) => {
const { tagline, heading, description, cardsSmall, cardBig } = {
...Layout366Defaults,
...props,
};
return (
<section id="relume" className="px-[5%] py-16 md:py-24 lg:py-28">
<div className="container">
<div className="mb-12 md:mb-18 lg:mb-20">
<div className="mx-auto max-w-lg text-center">
<p className="mb-3 font-semibold md:mb-4">{tagline}</p>
<h2 className="rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl">
{heading}
</h2>
<p className="md:text-md">{description}</p>
</div>
</div>
<div className="grid grid-cols-1 gap-6 md:gap-8">
<div className="grid grid-cols-1 gap-6 md:gap-8 lg:grid-cols-2">
<div className="order-first flex flex-col items-stretch border border-border-primary lg:order-none lg:col-start-1 lg:col-end-2 lg:row-start-1 lg:row-end-3">
<div>
<img
src={cardBig.image.src}
alt={cardBig.image.alt}
className="w-full object-cover"
/>
</div>
<div className="block flex-1 flex-col items-stretch justify-center p-6 md:flex md:p-8 lg:p-12">
<div>
<p className="mb-2 font-semibold">{cardBig.tagline}</p>
<h3 className="mb-5 text-4xl font-bold leading-[1.2] md:mb-6 md:text-5xl lg:text-6xl">
{cardBig.heading}
</h3>
<p>{cardBig.description}</p>
</div>
<div className="mt-6 flex items-center gap-4 md:mt-8">
{cardBig.buttons.map((button, index) => (
<Button key={index} {...button}>
{button.title}
</Button>
))}
</div>
</div>
</div>
{cardsSmall.map((card, index) => (
<div
key={index}
className="order-last flex flex-col border border-border-primary md:grid md:grid-cols-2 lg:order-none"
>
<div className="flex w-full items-center justify-center">
<img src={card.image.src} alt={card.image.alt} className="w-full object-cover" />
</div>
<div className="block flex-col justify-center p-6 md:flex">
<div>
<p className="mb-2 font-semibold">{card.tagline}</p>
<h3 className="mb-2 text-xl font-bold md:text-2xl">{card.heading}</h3>
<p>{card.description}</p>
</div>
<div className="mt-5 flex items-center gap-4 md:mt-6">
<Button {...card.button}>{card.button.title}</Button>
</div>
</div>
</div>
))}
</div>
</div>
</div>
</section>
);
};
export const Layout366Defaults: Props = {
tagline: "Tagline",
heading: "Short heading goes here",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
cardsSmall: [
{
tagline: "Tagline",
image: {
src: "https://d22po4pjz3o32e.cloudfront.net/placeholder-image-portrait.svg",
alt: "Relume placeholder image 1",
},
heading: "Medium length section heading goes here",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
button: {
title: "Button",
variant: "link",
size: "link",
iconRight: <RxChevronRight />,
},
},
{
tagline: "Tagline",
image: {
src: "https://d22po4pjz3o32e.cloudfront.net/placeholder-image-portrait.svg",
alt: "Relume placeholder image 2",
},
heading: "Medium length section heading goes here",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
button: {
title: "Button",
variant: "link",
size: "link",
iconRight: <RxChevronRight />,
},
},
],
cardBig: {
tagline: "Tagline",
image: {
src: "https://d22po4pjz3o32e.cloudfront.net/placeholder-image-landscape.svg",
alt: "Relume placeholder image 3",
},
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: <RxChevronRight />,
},
],
},
};
Need help?
For installation guidelines and API information, visit the docs.
Examples
No items found.