All-Access · 22 templates$1270.97$99/year — save 92%Get access
  • HomeHome
  • TemplatesTemplates23
  • ComponentsComponents78
  • 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
ComponentsAccordion

Careers Accordion

View code
Full screen

A job list built on native details rows with department, location and type, and an apply button inside. Tailwind CSS, no JavaScript.

CareersAccordion.tsx
// Careers list: each job is a native <details> row with department, location
// and type; the plus turns into a yellow × when open. No JavaScript.
// Pure Tailwind, no dependencies. Works with Tailwind v3 and v4.

type Job = { title: string; department: string; location: string; type: string; summary: string; applyHref?: string };

type Props = {
  eyebrow?: string;
  heading?: string;
  intro?: string;
  jobs?: Job[];
};

const DEFAULT_JOBS: Job[] = [
  { title: "Solar Installer", department: "Installations", location: "Austin, TX", type: "Full-time", summary: "Install residential systems with a crew of three. We'll train you on our kit and pay for your certification." },
  { title: "Energy Advisor", department: "Sales", location: "Remote", type: "Full-time", summary: "Help homeowners size the right system. No hard selling: honest numbers and clear advice." },
  { title: "Electrical Engineer", department: "Engineering", location: "Austin, TX", type: "Full-time", summary: "Design systems and battery layouts, sign off installs and improve our standard kits." },
  { title: "Customer Success Lead", department: "Support", location: "Hybrid", type: "Part-time", summary: "Look after customers from install day onwards, and turn their feedback into improvements." },
];

const Pin = () => (
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2} strokeLinecap="round" strokeLinejoin="round" aria-hidden className="h-3.5 w-3.5">
    <path d="M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21zM12 12a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z" />
  </svg>
);

export default function CareersAccordion({
  eyebrow = "Careers",
  heading = "Join the team",
  intro = "We're growing fast and hiring people who care about doing the job properly.",
  jobs = DEFAULT_JOBS,
}: Props) {
  return (
    <section className="bg-white px-5 py-24 font-['Manrope',ui-sans-serif,system-ui,sans-serif] text-[#252926] antialiased md:px-10 md:py-36">
      <div className="mx-auto mb-12 max-w-2xl text-center">
        <p className="mb-5 inline-block rounded-full bg-[#e5f4e5] px-4 py-1.5 text-sm font-semibold text-[#0f4729]">{eyebrow}</p>
        <h2 className="font-['Bricolage_Grotesque',ui-sans-serif,system-ui,sans-serif] text-[clamp(2.25rem,4.5vw,3.75rem)] font-semibold leading-[1.05] text-black">{heading}</h2>
        <p className="mt-5 text-lg text-[#494949]">{intro}</p>
      </div>

      <div className="mx-auto max-w-4xl space-y-2.5">
        {jobs.map((job) => (
          <details key={job.title} className="group rounded-3xl border border-[#e3e8e3] bg-white transition-colors open:bg-[#f3f5f3]">
            <summary className="flex cursor-pointer list-none items-center gap-6 p-6 md:p-8 [&::-webkit-details-marker]:hidden">
              <div className="flex-1">
                <h3 className="text-xl font-semibold md:text-2xl">{job.title}</h3>
                <p className="mt-2 flex flex-wrap gap-x-4 gap-y-1 text-sm font-medium text-[#494949]">
                  <span className="text-[#1e9e50]">{job.department}</span>
                  <span className="inline-flex items-center gap-1.5">
                    <Pin />
                    {job.location}
                  </span>
                  <span>{job.type}</span>
                </p>
              </div>
              <span className="grid h-11 w-11 shrink-0 place-items-center rounded-full bg-[#052625] text-white transition duration-300 group-open:rotate-45 group-open:bg-[#ffe500] group-open:text-[#0f4729]">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth={2.5} strokeLinecap="round" aria-hidden className="h-4 w-4">
                  <path d="M12 5v14M5 12h14" />
                </svg>
              </span>
            </summary>
            <div className="px-6 pb-8 md:px-8">
              <p className="max-w-2xl leading-relaxed text-[#494949]">{job.summary}</p>
              <a href={job.applyHref ?? "#"} className="mt-6 inline-block rounded-full bg-[#ffe500] px-6 py-3 text-sm font-bold text-[#0f4729] transition-colors hover:bg-[#f0d400]">
                Apply now
              </a>
            </div>
          </details>
        ))}
      </div>
    </section>
  );
}

How to use it

  1. Make sure your Next.js or React project has Tailwind CSS set up (v3 or v4 both work).
  2. Create components/CareersAccordion.tsx and paste the code.
  3. Import it into a page and replace the sample text and images with your own.
Solart - Solar & Clean Energy Next.js Template with Sanity CMS

From the full template

Solart$49

Every page, Sanity CMS and SEO already set up. This section is one of 3 you can try free.

Get the full template Get the full template Live preview Live preview
Share
Category
AccordionsFAQs
Template
Solart
Dependencies
None, just React
Works with
Next.js, React, Tailwind CSS v3 & v4
Added
Oct 29, 2026

More from Solart

See the full template
Night Stats Band
Feature

Night Stats Band

Package Pricing
Pricing

Package Pricing

More accordions

View all
Sticky FAQ Accordion
FAQ

Sticky FAQ Accordion

Accordion FAQs
Accordion

Accordion FAQs

Agency Split Hero
Hero

Agency Split Hero

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