All-Access · 23 templates$1319.97$99/year — save 92%Get access
  • HomeHome
  • TemplatesTemplates17+
  • ComponentsComponents80+
  • PricingPricing
  • Need a Website?Need a Website?New
Unlock All AccessUnlock All Access

Our latest template collection

Ready-to-launch sites for real estate agents, service businesses, and local brands — built to rank, load fast, and convert.

Explore All TemplatesExplore All Templates

Orvaine - Luxury Equestrian & Horse Breeding Website Template

Orvaine is a premium website template for stud farms, sport horse breeders and equestrian estates: horse pages with pedigrees, events, films. Next.js, Astro, Sanity.

Download Template
Orvaine - Luxury Equestrian & Horse Breeding Website Template

Maressa - Luxury Yacht Charter & Sales Website Template

Maressa is a premium website template for yacht charter, brokerage and superyacht brands: 21 editable sections, full-screen films, Next.js and Astro versions. Sanity.

Download Template
Maressa - Luxury Yacht Charter & Sales Website Template

Krishi – Agriculture & Farm Website Template

Krishi is a premium website template for farms, agritech and food brands: 17 editable sections, cinematic GSAP motion and both Next.js and Astro versions. Built with Sanity.

Download Template
Krishi – Agriculture & Farm Website Template
ComponentsCall to ActionFull-Bleed Image CTA
FreeReactTailwind CSSNext.js

Full-Bleed Image CTA

A full-bleed photo call to action with a large centred heading, short text and two buttons. React and Tailwind CSS, no dependencies.

View codeView code
Full screen
FullBleedImageCTA.tsx
// Full-bleed photo with a centred invitation and two buttons.
// Pure Tailwind, no dependencies. Works with Tailwind v3 and v4.

type Props = {
  heading?: string[];
  text?: string;
  image?: string;
  imageAlt?: string;
  primary?: { label: string; href: string };
  secondary?: { label: string; href: string };
};

export default function FullBleedImageCta({
  heading = ["Where would you", "like to wake up?"],
  text = "Tell us the season and the company, and we will propose three yachts and an itinerary within the day.",
  image = "https://images.unsplash.com/photo-1628029338883-61644ec68475?w=2400&q=80&auto=format&fit=crop",
  imageAlt = "A yacht at sea beneath a red sunset",
  primary = { label: "Plan a voyage", href: "#" },
  secondary = { label: "View the fleet", href: "#" },
}: Props) {
  return (
    <section className="relative isolate overflow-hidden bg-[#060b10] px-4 py-36 text-center font-['Helvetica_Neue',Helvetica,Arial,sans-serif] text-white antialiased md:py-52">
      <img src={image} alt={imageAlt} loading="lazy" className="absolute inset-0 -z-10 h-full w-full object-cover" />
      <div className="absolute inset-0 -z-10 bg-[#060b10]/50" />

      <div className="mx-auto flex max-w-4xl flex-col items-center gap-9">
        <h2 className="text-[clamp(2.75rem,6.2vw,6.5rem)] font-normal leading-[0.95] tracking-[-0.04em]">
          {heading.map((line, i) => (
            <span key={i} className="block">
              {line}
            </span>
          ))}
        </h2>
        {text && <p className="max-w-xl text-base leading-relaxed text-white/80 md:text-lg">{text}</p>}
        <div className="flex flex-wrap justify-center gap-3 pt-2">
          <a
            href={primary.href}
            className="group relative isolate inline-flex h-14 items-center gap-4 overflow-hidden bg-white px-8 text-xs font-medium uppercase tracking-[0.08em] text-[#0d1114] transition-colors duration-700 hover:text-white"
          >
            <span className="absolute inset-0 -z-10 origin-bottom scale-y-0 bg-[#111c25] transition-transform duration-700 ease-[cubic-bezier(0.22,1,0.36,1)] group-hover:scale-y-100" />
            {primary.label}
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={1.1} aria-hidden className="h-4 w-4 transition-transform duration-700 group-hover:translate-x-1">
              <path d="M3 12h17M14 6l6 6-6 6" />
            </svg>
          </a>
          <a
            href={secondary.href}
            className="group relative isolate inline-flex h-14 items-center overflow-hidden border border-white/40 px-8 text-xs font-medium uppercase tracking-[0.08em] text-white transition-colors duration-700 hover:border-white hover:text-[#0d1114]"
          >
            <span className="absolute inset-0 -z-10 origin-bottom scale-y-0 bg-white transition-transform duration-700 ease-[cubic-bezier(0.22,1,0.36,1)] group-hover:scale-y-100" />
            {secondary.label}
          </a>
        </div>
      </div>
    </section>
  );
}

How to use it

  1. Make sure your Next.js or React project has Tailwind CSS set up.
  2. Create components/FullBleedImageCTA.tsx and paste the code.
  3. Import it into a page and replace the placeholder text and images with your own.
Maressa - Luxury Yacht Charter & Sales Website Template
From the full template
Maressa - Luxury Yacht Charter & Sales Website Template$79

This section is one part of Maressa - Luxury Yacht Charter & Sales Website Template: a complete website with every page, Sanity CMS and SEO already set up.

Get the full template Get the full template Live preview Live preview

More free components

All call to action →
Count-Up Stats

Count-Up Stats

Expanding Image Panels

Expanding Image Panels

Fading Quote Testimonials

Fading Quote Testimonials

Ready for a faster site that's easier to edit?

Book a free 30-minute call. We'll review your current site and send a fixed-price plan. No pressure, no pitch.

Book Free Call Book Free Call No commitment required

Fast Next.js + Sanity websites, built for you or ready to launch with our templates.

Book a Free Call Book a Free Call
Services
  • Web Design
  • UI/UX Design
  • Framer Dev
  • Webflow Dev
  • Custom Dev
  • Sanity CMS
Resources
  • Templates
  • Pricing
  • License
  • Components
  • Case Studies
Company
  • About Us
  • Contact
  • Privacy Policy
© 2026 rayso.studio — All rights reservedDesigned & built in-house Remote-first agency
Let's TalkLet's Talk