Stats 25



import { Button } from "@relume_io/relume-ui";
import type { ButtonProps } from "@relume_io/relume-ui";
import { RxChevronRight } from "react-icons/rx";
type StatsProps = {
percentage: string;
heading: string;
description: string;
};
type Props = {
tagline: string;
heading: string;
description: string;
buttons: ButtonProps[];
stats: StatsProps[];
};
export type Stats25Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;
export const Stats25 = (props: Stats25Props) => {
const { tagline, heading, description, stats, buttons } = {
...Stats25Defaults,
...props,
};
return (
<section id="relume" className="px-[5%] py-16 md:py-24 lg:py-28">
<div className="container">
<div className="mb-12 grid grid-cols-1 gap-y-5 md:mb-18 md:grid-cols-2 md:gap-x-12 lg:mb-20 lg:gap-x-20">
<div>
<p className="mb-3 font-semibold md:mb-4">{tagline}</p>
<h2 className="text-5xl font-bold md:text-7xl lg:text-8xl">{heading}</h2>
</div>
<div>
<p className=" md:text-md">{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>
<div className="grid grid-cols-1 gap-y-8 lg:grid-cols-3 lg:gap-x-8 lg:gap-y-12">
{stats.map((stat, index) => (
<Card key={index} {...stat} />
))}
</div>
</div>
</section>
);
};
const Card = (card: StatsProps) => {
return (
<div className="border border-border-primary p-8">
<p className="mb-8 text-10xl font-bold leading-[1.3] md:mb-10 md:text-[4rem] lg:mb-12 lg:text-[5rem]">
{card.percentage}
</p>
<h3 className="text-md font-bold leading-[1.4] md:text-xl">{card.heading}</h3>
<p className="mt-2">{card.description}</p>
</div>
);
};
export const Stats25Defaults: 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. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla.",
buttons: [
{ title: "Button", variant: "secondary" },
{
title: "Button",
variant: "link",
size: "link",
iconRight: <RxChevronRight />,
},
],
stats: [
{
percentage: "30%",
heading: "Short heading goes here",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
},
{
percentage: "30%",
heading: "Short heading goes here",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
},
{
percentage: "30%",
heading: "Short heading goes here",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
},
],
};
Need help?
For installation guidelines and API information, visit the docs.
Examples
No items found.