Skip to content

Features Journey

Horizontal journey: numbered circles connected by a hand-drawn wavy dashed path (vertical list on mobile), each step with a serif title, text and a mono time estimate.

organic-soft/section/features-journey
Open ↗

Source

import { cn } from "@/lib/utils";

export interface FeaturesJourneyProps {
  title?: string;
  description?: string;
  steps?: { title: string; text: string; time: string }[];
  className?: string;
}

/** Horizontal journey: numbered circles connected by a hand-drawn wavy dashed path (vertical list on mobile), each step with a serif title, text and a mono time estimate. */
export function FeaturesJourney({
  title = "Your first footprint in an afternoon",
  description = "No spreadsheets to fill in. Most teams see their first full footprint the same day they sign up.",
  steps = [
    { title: "Connect", text: "Link your accounting, cloud provider and travel tool in a few clicks.", time: "10 min" },
    { title: "Review", text: "Grove maps spend to emission factors; you confirm the handful it’s unsure about.", time: "30 min" },
    { title: "Plan", text: "Pick reduction actions from a ranked list and set a realistic target.", time: "1 hour" },
    { title: "Share", text: "Publish a public climate page or export a report for your board.", time: "5 min" },
  ],
  className,
}: FeaturesJourneyProps) {
  return (
    <section aria-labelledby="os-fj-title" className={cn("da-section bg-da-surface-2 text-da-fg", className)}>
      <div className="da-container">
        <div className="max-w-2xl">
          <h2 id="os-fj-title" className="font-da-display text-[clamp(2.25rem,5vw,3.5rem)] leading-[1.05] tracking-da-display text-balance">
            {title}
          </h2>
          <p className="mt-4 text-lg text-da-muted-fg">{description}</p>
        </div>
        <div className="relative mt-16">
          <svg
            aria-hidden
            viewBox="0 0 1000 60"
            preserveAspectRatio="none"
            className="absolute top-3 left-[12%] hidden h-14 w-[76%] text-da-border-strong md:block"
          >
            <path
              d="M0 30C80 0 170 60 250 30s170-60 250 0 170 60 250 30 170-60 250 0"
              fill="none"
              stroke="currentColor"
              strokeWidth="2"
              strokeDasharray="6 8"
              vectorEffect="non-scaling-stroke"
            />
          </svg>
          <ol className="relative grid gap-10 md:grid-cols-4 md:gap-6">
            {steps.map((s, i) => (
              <li key={s.title} className="flex gap-5 md:flex-col md:items-center md:text-center">
                <span
                  aria-hidden
                  className={cn(
                    "grid size-20 shrink-0 place-items-center rounded-full font-da-display text-3xl",
                    i % 2 ? "bg-da-secondary text-da-secondary-fg" : "bg-da-accent text-da-accent-fg",
                  )}
                >
                  {i + 1}
                </span>
                <div>
                  <h3 className="font-da-display text-2xl md:mt-6">
                    <span className="sr-only">Step {i + 1}: </span>
                    {s.title}
                  </h3>
                  <p className="mt-2 text-da-muted-fg">{s.text}</p>
                  <p className="mt-3 font-da-mono text-xs text-da-primary">≈ {s.time}</p>
                </div>
              </li>
            ))}
          </ol>
        </div>
      </div>
    </section>
  );
}

export default FeaturesJourney;

modules/organic-soft/section/features-journey/index.tsx

Props

PropTypeDefaultDescription
titlestring—Heading.
descriptionstring—Supporting text.
steps{ title: string; text: string; time: string }[]—Steps.
classNamestring—Extra classes on the root.

Other features variants in Organic Soft

Features in other art directions

Features Grid

Six features in a single ruled box (1/2/3 columns) with numbered tiles, color-cycling icon blocks that press on hover, and a two-column section header.

BrutalistFeatures

Features Numbered

Full-width ruled rows with giant faded step numbers, uppercase titles, descriptions and a stat chip; each row floods with a different primary color on hover and the number turns solid.

BrutalistFeatures

Features Tabs

Tabbed feature explorer: ruled mono tab bar (ink active tab), then a big split panel with title, description and square-bullet list on the left and a stacked mock preview of the channel on the right.

BrutalistFeatures

Features Versus

Before/after comparison: two slightly tilted cards side by side — the old way in paper with red crosses, the new way in solid yellow with ink checks — row by row on the same topics.

BrutalistFeatures

Features Bento

Glass bento grid on 6 columns: a large AI-recap tile with a mock summary and owner chips, plus five smaller frosted tiles with gradient squircle icons.

GlassFeatures

Features Glass Grid

Centered header and six frosted feature cards with gradient squircle icons; cards lift with an overshoot and reveal a soft corner glow on hover.

GlassFeatures

Features Orbit

Integrations section: copy with a chip list on one side, and a central gradient orb with integration bubbles orbiting on two counter-rotating glass rings (bubbles stay upright). Pure CSS.

GlassFeatures

Features Tabs

Glass pill tab bar (Radix Tabs) with gradient active tab switching a large frosted panel: title, copy and bullets on the left, a layered glass preview on the right.

GlassFeatures

Features Alternating

Three zig-zag rows, each pairing a numbered kicker, title, copy and link with an HTML product mock-up (routing rules, on-call week, AI postmortem) on a soft tinted plate.

MinimalFeatures

Features Bento

Bento grid of five hairline tiles on a 6-column layout, each with a small token-themed HTML illustration (routing lines, uptime bars, MTTR metric, on-call week) above an icon, title and description.

MinimalFeatures

Features List

Dense four-column feature list: each item has a small indigo line icon, a title and a one-sentence description under a hairline top rule. Eight defaults, left-aligned header.

MinimalFeatures

Features Steps

Five-step workflow (detect, page, coordinate, resolve, learn) laid out horizontally on desktop and vertically on mobile, joined by a hairline, with numbered nodes and timing labels.

MinimalFeatures

Features Index

Features as a numbered index: a label + headline in the left columns, and a two-column ruled list on the right where each item is “01 — Title” with a short description.

Mono CleanFeatures

Features Numbered

Three large numbered steps: giant outlined-looking numerals in muted ink above a hairline, step title and text; columns on desktop, stacked on mobile.

Mono CleanFeatures

Features Showcase

Work showcase as the feature: an asymmetric grid (fixed row heights; wide, tall, square and full-width spans) of neutral gray image frames with mono captions (studio — project, template used); captions underline on hover.

Mono CleanFeatures

Features Specs

Technical spec sheet: grouped key/value definition lists in a 4-column grid, each group under a full-ink rule with a mono heading — reads like a product data sheet.

Mono CleanFeatures

Features Bento

Data-driven bento grid of bordered cards: cash-flow line chart, DSO metric, approval flow, currency list and integrations — each a small realistic mock.

Neo CorporateFeatures

Features Grid

Classic 3×2 bordered feature grid sharing hairline borders (one outer frame), each cell with a blue icon square, title, text and a “Learn more” link.

Neo CorporateFeatures

Features Tabs

Underline tabs (Radix Tabs) switching between product areas: copy + check points on the left, a bordered data card (status rows) on the right.

Neo CorporateFeatures

Features Versus

Before/after comparison: a muted “spreadsheets and email” column with red crosses next to a blue-bordered “with Ledgerly” column with green checks.

Neo CorporateFeatures

Features Checklist

Interactive split section: copy and a mint progress bar on the left, a white card of four round-checkbox steps on the right that turn mint with a bouncy tick when clicked; celebration at 100%.

Soft FlatFeatures

Features Icons

Centered 4-column grid of eight small features, each with a large round pastel icon badge (colors rotate), rounded title and one-liner.

Soft FlatFeatures

Features Pastel

2×2 grid of large pastel feature cards (peach, mint, lavender, butter), each with icon, rounded title, copy and a tiny flat illustration (mini board, bar week, reminder toast, chat bubbles).

Soft FlatFeatures

Features Steps

Three numbered step cards in peach, lavender and mint joined by a dashed path on desktop, each with a white emoji medallion, mono step label, title and text.

Soft FlatFeatures