Blocks

Layout 72

standard
2 ColumnsText Align LeftListText OnlyBenefits SectionAbout Section
Layout 72

Code

relume-layout72.tsx
type FeaturesProps = {
  paragraph: string;
};

type Props = {
  heading: string;
  description: string;
  features: FeaturesProps[];
};

export type Layout72Props = React.ComponentPropsWithoutRef<"section"> & Partial<Props>;

export const Layout72 = (props: Layout72Props) => {
  const { heading, description, features } = {
    ...Layout72Defaults,
    ...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-5 md:grid-cols-2 md:gap-x-12 lg:gap-x-20">
          <h3 className="text-h3 font-bold">{heading}</h3>
          <div>
            <p className="mb-5 text-medium md:mb-6">{description}</p>
            <ul className="my-4 list-disc pl-5">
              {features.map((feature, index) => (
                <li key={index} className="my-1 self-start pl-2">
                  <p>{feature.paragraph}</p>
                </li>
              ))}
            </ul>
          </div>
        </div>
      </div>
    </section>
  );
};

export const Layout72Defaults: 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.",
  features: [
    {
      paragraph: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    },
    {
      paragraph: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    },
    {
      paragraph: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
    },
  ],
};

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