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
ComponentsFeaturesProcess Steps on Gradient
FreeReactTailwind CSSNext.js

Process Steps on Gradient

A "how it works" section with an italic serif headline and four numbered step cards on a soft gradient. React and Tailwind CSS.

View codeView code
Full screen
ProcessStepsOnGradient.tsx
// "How it works": headline with an italic serif line, then four numbered
// step cards on a soft gradient background.
// Pure Tailwind, no dependencies. Works with Tailwind v3 and v4.

type Step = { title: string; text: string };

type Props = {
  eyebrow?: string;
  heading?: [string, string];
  steps?: Step[];
};

const DEFAULT_STEPS: Step[] = [
  { title: "Discovery call", text: "Thirty minutes on your business, customers, goals and competitors. No jargon, just an honest conversation about what it takes to win." },
  { title: "Strategy & design", text: "We map the site structure, write search-focused copy and share a clickable prototype before a line of code is written." },
  { title: "Build & QA", text: "Built with performance and accessibility first. Every page is tested across devices, browsers and speed benchmarks." },
  { title: "Launch & grow", text: "We handle domains, hosting and monitoring, then hand over the keys with full training so you're never dependent on us." },
];

export default function ProcessGradientSteps({
  eyebrow = "How it works",
  heading = ["From brief to live site", "in as little as 14 days"],
  steps = DEFAULT_STEPS,
}: Props) {
  return (
    <section className="bg-[radial-gradient(ellipse_at_top_left,#d9f99d_0%,transparent_50%),radial-gradient(ellipse_at_bottom_right,#bae6fd_0%,transparent_55%)] bg-white px-6 py-24 font-sans antialiased md:px-12">
      <div className="mx-auto max-w-7xl">
        <div className="mb-14">
          <div className="mb-5 flex items-center gap-2 text-sm uppercase tracking-[0.18em] text-black">
            <span className="h-px w-5 bg-black" />
            {eyebrow}
          </div>
          <h2 className="text-[clamp(36px,4vw,60px)] font-bold leading-[1.05] tracking-[-0.025em] text-black">
            {heading[0]}
            <br />
            <span className="font-serif font-normal italic">{heading[1]}</span>
          </h2>
        </div>

        <ol className="grid grid-cols-1 overflow-hidden border-l border-t border-black/10 md:grid-cols-2 lg:grid-cols-4">
          {steps.map((s, i) => (
            <li key={s.title} className="border-b border-r border-black/10 bg-white/80 p-6 backdrop-blur-sm sm:p-8">
              <div className="mb-6 text-[72px] font-bold leading-none tracking-[-0.04em] text-black/15">{String(i + 1).padStart(2, "0")}</div>
              <h3 className="mb-3 text-xl font-bold text-black">{s.title}</h3>
              <p className="text-base leading-[1.7] text-neutral-500">{s.text}</p>
            </li>
          ))}
        </ol>
      </div>
    </section>
  );
}

How to use it

  1. Make sure your Next.js or React project has Tailwind CSS set up.
  2. Create components/ProcessStepsOnGradient.tsx and paste the code.
  3. Import it into a page and replace the placeholder text and images with your own.
Need the whole website?

Skip the assembly

Our Next.js & Astro templates ship every page already built, with Sanity CMS, SEO and fast load times included.

Browse templates Browse templates

More free components

All features →
Count-Up Stats

Count-Up Stats

Numbered Process Steps

Numbered Process Steps

Blog Cards

Blog Cards

Launch a full site instead

Orvaine - Luxury Equestrian & Horse Breeding Website TemplateNext.js + Astro
All-Access PREMIUM NEXTJS ASTRO
Orvaine - Luxury Equestrian & Horse Breeding Website Template

Orvaine is a premium website template for stud farms, sport horse breeders and equestrian estates: h...

Preview
Maressa - Luxury Yacht Charter & Sales Website TemplateNext.js + Astro
All-Access NEXTJS ASTRO PREMIUM
Maressa - Luxury Yacht Charter & Sales Website Template

Maressa is a premium website template for yacht charter, brokerage and superyacht brands: 21 editabl...

Preview
Krishi – Agriculture & Farm Website TemplateNext.js + Astro
All-Access PREMIUM NEXTJS ASTRO
Krishi – Agriculture & Farm Website Template

Krishi is a premium website template for farms, agritech and food brands: 17 editable sections, cine...

Preview

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