Promo Sections

PreviousNext

“Highlight special offers, discounts, or limited-time deals with Tailwind CSS promo sections. These layouts combine bold visuals, concise messaging, and prominent calls-to-action to drive engagement and conversions. Perfect for online stores and marketplaces aiming for modern, attention-grabbing, and conversion-focused promotions.

Docs
bunduicomponent

Preview

Loading preview…
examples/blocks/ecommerce/promo-sections/02/page.tsx
"use client";

import { MarqueeEffect } from "@/components/marquee-effect";
import { Button } from "@/components/ui/button";
import { ArrowRightIcon } from "lucide-react";

const images = [
  {
    image: "/images/products/list1.png"
  },
  {
    image: "/images/products/list2.png"
  },
  {
    image: "/images/products/list3.png"
  },
  {
    image: "/images/products/list4.png"
  },
  {
    image: "/images/products/list5.png"
  },
  {
    image: "/images/products/list6.png"
  },
  {
    image: "/images/products/list7.png"
  },
  {
    image: "/images/products/list8.png"
  },
  {
    image: "/images/products/list9.png"
  },
  {
    image: "/images/products/list10.png"
  }
];

export default function Testimonials() {
  return (
    <section className="py-10">
      <div className="mx-auto max-w-7xl px-4">
        <div className="grid items-center lg:grid-cols-2">
          <header className="relative z-10 mx-auto mb-8 max-w-xl text-center lg:mb-10 lg:text-start">
            <h3 className="font-heading mb-4 text-4xl text-balance md:text-5xl">
              Summer styles are finally here
            </h3>
            <p className="text-muted-foreground text-balance lg:text-lg">
              This year, our new summer collection will shelter you from the harsh elements of a
              world that doesn't care if you live or die.
            </p>
            <Button size="lg" className="mt-6">
              Shop Collection
              <ArrowRightIcon />
            </Button>
          </header>
          <div className="absolute grid h-96 grid-cols-2 gap-4 overflow-hidden mask-t-from-80% mask-r-from-10% mask-b-from-80% mask-l-from-10% lg:static lg:h-150 lg:mask-r-from-70% lg:mask-l-from-70%">
            {[
              {
                reverse: false
              },
              {
                reverse: true
              }
            ].map((mq, i) => (
              <MarqueeEffect
                gap={12}
                direction="vertical"
                reverse={mq.reverse}
                speed={30}
                speedOnHover={1}>
                {images.slice(i * 3, (i + 1) * 3).map((image, i) => (
                  <figure key={i}>
                    <img src={image.image} className="aspect-square object-cover" />
                  </figure>
                ))}
              </MarqueeEffect>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

Installation

npx shadcn@latest add @bundui/promo-sections-02

Usage

import { PromoSections02 } from "@/components/promo-sections-02"
<PromoSections02 />