Skip to content
All Taste components

Features

Feature grid

Six things the product does, each with an icon, a short title and one sentence.

6 features · icon tiles · 1 → 2 → 3 columns

Everything after “send”

The boring half of freelancing, handled

Fernbill looks after the paperwork between finishing the job and the money arriving.

Polite reminders

Late clients get a nudge on a schedule you set, in words you wrote.

Card or bank transfer

Every invoice carries a pay link. Money lands in two working days.

Recurring invoices

Retainers bill themselves on the same day every month.

Cash-flow view

See what's due this week, what's late and what's already in.

Client portal

Clients find every invoice and receipt in one place, no login.

Tax-ready exports

Hand your accountant a clean CSV or PDF pack at year end.

import { BarChart3, Clock, CreditCard, Lock, Mail, Users, type LucideIcon } from "lucide-react";

const features: { icon: LucideIcon; title: string; body: string }[] = [
  { icon: Mail, title: "Polite reminders", body: "Late clients get a nudge on a schedule you set, in words you wrote." },
  { icon: CreditCard, title: "Card or bank transfer", body: "Every invoice carries a pay link. Money lands in two working days." },
  { icon: Clock, title: "Recurring invoices", body: "Retainers bill themselves on the same day every month." },
  { icon: BarChart3, title: "Cash-flow view", body: "See what’s due this week, what’s late and what’s already in." },
  { icon: Users, title: "Client portal", body: "Clients find every invoice and receipt in one place, no login." },
  { icon: Lock, title: "Tax-ready exports", body: "Hand your accountant a clean CSV or PDF pack at year end." },
];

export function FeatureGrid() {
  return (
    <section aria-labelledby="features-title" className="bg-bg font-sans">
      <div className="mx-auto max-w-6xl px-4 py-20 sm:px-6 sm:py-24">
        <div className="mx-auto max-w-xl text-center">
          <p className="text-[13px] font-medium text-primary">Everything after “send”</p>
          <h2 id="features-title" className="mt-3 text-balance text-3xl font-semibold tracking-tight text-fg sm:text-4xl">
            The boring half of freelancing, handled
          </h2>
          <p className="mt-4 text-pretty text-base leading-relaxed text-fg-muted sm:text-lg">
            Fernbill looks after the paperwork between finishing the job and the money arriving.
          </p>
        </div>

        <div className="mt-14 grid gap-x-8 gap-y-10 sm:grid-cols-2 lg:grid-cols-3">
          {features.map(({ icon: Icon, title, body }) => (
            <div key={title}>
              <span className="inline-grid size-10 place-items-center rounded bg-primary-soft text-primary-soft-fg">
                <Icon className="size-5" aria-hidden />
              </span>
              <h3 className="mt-4 text-base font-semibold tracking-tight text-fg">{title}</h3>
              <p className="mt-1.5 text-sm leading-relaxed text-fg-muted">{body}</p>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
}

The code uses the Taste Tailwind preset. Make yours on the Taste page with Export my system.