Revenue Dashboard Hero
ComponentsHeroesRevenue Dashboard Hero
HeroesNew

Revenue Dashboard Hero

A SaaS hero with date and channel filters that update revenue, chart and transactions together.

USE IT FORPayment analytics productsSubscription reporting toolsFinancial operations landing pages
React + CSS
Explore the full-width experienceOpen preview
LedgerRevenue analytics

Payment analytics

Know where revenue comes from.

Track collected payments, compare channels, and follow every number back to a transaction.

Revenue workspace
Ledger / OverviewProduct preview

Reporting

Revenue overview

USD
Collected revenue$27,200
Payments22
Average payment$1,236.36

Daily collections

Sep 28 – Oct 27, 2026
Daily collected revenue in USD$27,200 from 22 payments. Sep 28 – Oct 27, 2026. All channels. Daily values follow in a table.Sep 28: $0.00Sep 29: $0.00Sep 30: $0.00Oct 1: $680.00Oct 2: $0.00Oct 3: $1,240.00Oct 4: $0.00Oct 5: $420.00Oct 6: $0.00Oct 7: $1,860.00Oct 8: $320.00Oct 9: $960.00Oct 10: $0.00Oct 11: $1,580.00Oct 12: $740.00Oct 13: $0.00Oct 14: $420.00Oct 15: $2,190.00Oct 16: $1,150.00Oct 17: $0.00Oct 18: $880.00Oct 19: $1,740.00Oct 20: $960.00Oct 21: $1,450.00Oct 22: $680.00Oct 23: $2,480.00Oct 24: $560.00Oct 25: $1,240.00Oct 26: $2,950.00Oct 27: $2,700.00
Daily collected revenue: Sep 28 – Oct 27, 2026, all channels
DateRevenue (USD)
2026-09-28$0.00
2026-09-29$0.00
2026-09-30$0.00
2026-10-01$680.00
2026-10-02$0.00
2026-10-03$1,240.00
2026-10-04$0.00
2026-10-05$420.00
2026-10-06$0.00
2026-10-07$1,860.00
2026-10-08$320.00
2026-10-09$960.00
2026-10-10$0.00
2026-10-11$1,580.00
2026-10-12$740.00
2026-10-13$0.00
2026-10-14$420.00
2026-10-15$2,190.00
2026-10-16$1,150.00
2026-10-17$0.00
2026-10-18$880.00
2026-10-19$1,740.00
2026-10-20$960.00
2026-10-21$1,450.00
2026-10-22$680.00
2026-10-23$2,480.00
2026-10-24$560.00
2026-10-25$1,240.00
2026-10-26$2,950.00
2026-10-27$2,700.00

Transactions

22 payments
Payments included in the revenue total
CustomerDateAmount
ParallelSubscriptions$860.00
Loom HouseInvoices$1,840.00
FieldworkInvoices$2,950.00
Orbit LabsSubscriptions$1,240.00
WayfinderOne-time$560.00
NorthstarInvoices$2,480.00
Forma StudioSubscriptions$680.00
Common GroundInvoices$1,450.00
Loom HouseSubscriptions$960.00
NorthstarSubscriptions$1,740.00
ParallelOne-time$880.00
Common GroundSubscriptions$1,150.00
FieldworkInvoices$2,190.00
WayfinderSubscriptions$420.00
Orbit LabsOne-time$740.00
ParallelInvoices$1,580.00
Loom HouseSubscriptions$960.00
Forma StudioOne-time$320.00
FieldworkInvoices$1,860.00
WayfinderSubscriptions$420.00
Orbit LabsInvoices$1,240.00
Forma StudioSubscriptions$680.00

Fictional product and sample transactions.

Live component. Go ahead, interact.
01

Installation

Run this in your shadcn-configured React project. The component and stylesheet are added together.

TERMINAL
npx shadcn@latest add http://localhost:5173/r/revenue-dashboard-hero.json

This command uses the current site address. For localhost, keep this preview running on the same computer. Files follow your configured components alias.

02

Usage

Import the component and make the details your own.

TypeScript
import { RevenueDashboardHero } from '@/components/anticraft/RevenueDashboardHero';

export function Example() {
  return <RevenueDashboardHero
    brand="Ledger"
    title="Know where revenue comes from."
    description="Track collected payments, compare channels, and follow every number back to a transaction."
    transactions={[
      { id: 'pay-1', customer: 'Forma Studio', date: '2026-10-22', amount: 680, channel: 'Subscriptions' },
      { id: 'pay-2', customer: 'Orbit Labs', date: '2026-10-25', amount: 1240, channel: 'Invoices' },
      { id: 'pay-3', customer: 'Fieldwork', date: '2026-10-27', amount: 2950, channel: 'Invoices' },
    ]}
  />;
}
03

Props

PropTypeDefaultDescription
transactionsRevenueDashboardTransaction[]RequiredPayments with a unique id, customer, date (YYYY-MM-DD), nonnegative amount in major currency units, and channel. All metrics, daily bars and table rows use this same data. Invalid dates, negative/nonfinite amounts and repeated ids are ignored; blank channels become Other. Amounts are rounded to cents. Empty data shows zero totals and a clear empty state.
brandstring'Ledger'Brand label in the masthead and interactive product preview.
titlestring'Know where revenue comes from.'Visible h2 and section label. Keep it short; adjust the copied heading level if it is the page’s main h1.
descriptionstring'Track collected payments, compare channels, and follow every number back to a transaction.'Supporting sentence. An empty string hides it.
actionLabelstring'Explore the dashboard'Primary action text. The default action moves keyboard focus to the dashboard and scrolls it into view when needed.
actionHrefstringundefinedSupply a real destination to render the primary action as an ordinary link. Without a destination it is a button that focuses the preview.
currencystring'USD'ISO currency code used for every amount; all transactions must use the same currency. Invalid codes fall back to USD. Formatting uses en-US for stable server/client output.
endDatestringLatest valid transaction dateInclusive UTC calendar date in YYYY-MM-DD format. Both ranges end here; no browser clock is used. Invalid values fall back to the newest transaction. Seven days includes the end date and the preceding six days.
defaultRange7 | 3030Initial date range. Native pressed buttons switch the range. A removed channel selection falls back to All channels when transaction props change.
classNamestring''Additional classes. Customize --ac-revenue-ink, --ac-revenue-text, --ac-revenue-muted, --ac-revenue-accent, --ac-revenue-chart and --ac-revenue-field. Container queries stack the introduction above the dashboard below 1000px component width.
04

Motion & accessibility

Considered by default.

Range buttons and the native channel select update the total, payment count, average, daily chart and transaction table in one render. A live region reports the three totals. The chart includes a daily-value table for assistive technology; the transaction list is keyboard scrollable. No automatic animation runs. Reduced motion removes action and filter transitions.

Use semantic content and meaningful labels in your composition. Check contrast and keyboard behavior with your own styles and content.

05

Inspiration

SpendHub’s clear introduction and substantial product window informed the composition. Ledger uses original branding, copy, interface and sample data, with working linked filters rather than a screenshot.

Visit SpendHub by Excited on Dribbble

The linked site is the design or content reference. See the repository for demo artwork credits.