Skip to main content
Clever Ops

Pinned Rail Features

Sticky narrative column on the left while feature cards scroll past on the right, the copy holds the argument as the evidence flows. Scrollytelling without the framework.

Preview & code

Loading Pinned Rail Features preview

Installation

pnpm dlx shadcn@latest add @cleverui/feature-pinned-rail

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { FeaturePinnedRail } from '@/components/blocks/feature-pinned-rail'
Exampletsx
import {
  FileSearch,
  GitMerge,
  ShieldCheck,
  TimerReset,
  Workflow,
} from 'lucide-react'
import { FeaturePinnedRail } from '@/components/blocks/feature-pinned-rail'

export default function FeaturePinnedRailDemo() {
  return (
    <FeaturePinnedRail
      eyebrow="Built for controllers"
      heading="Evidence that holds up when the quarter closes."
      description="A calmer ops layer sits beside your ERP, matching, routing, and audit packs that finance teams actually trust under deadline."
      features={[
        {
          icon: FileSearch,
          title: 'Document intelligence',
          body: 'Invoices, POs, and packing slips land in one queue. Fields extract against your chart of accounts, not a generic template.',
          kicker: '14 formats',
        },
        {
          icon: GitMerge,
          title: 'Policy-aware matching',
          body: 'Tolerance bands, cost-center rules, and dual-approval thresholds travel with every line, not buried in a spreadsheet.',
          kicker: 'rules engine',
        },
        {
          icon: Workflow,
          title: 'Exception routing',
          body: 'Mismatches escalate to the right owner with context attached. Resolve in-product or push a decision back to NetSuite in one action.',
          kicker: 'SLA 4h',
        },
        {
          icon: ShieldCheck,
          title: 'Signed audit packs',
          body: 'Export a sealed pack for any close window: decisions, overrides, and source hashes. Auditors stop asking for screenshots.',
          kicker: 'SOC 2',
        },
        {
          icon: TimerReset,
          title: 'Nightly close assist',
          body: 'Unmatched lines get a status before 7am local. Your team starts the day on judgment calls, not scavenger hunts.',
          kicker: '07:00',
        },
      ]}
    />
  )
}

API reference

FeaturePinnedRail accepts the following props.

PropTypeDefaultDescription
eyebrowstring
heading*string
descriptionstring
features*PinnedRailFeature[]

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface PinnedRailFeature {
  icon?: LucideIcon
  title: string
  body: string
  kicker?: string
}

Frequently asked questions

How do I install the Pinned Rail Features component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/feature-pinned-rail`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Pinned Rail Features require?

Pinned Rail Features uses motion and lucide-react on top of React and Tailwind CSS. You don't need to install them manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Pinned Rail Features to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services