nextui.dev
Home
Docs
Saved
Pricing
Components37
  • Forms & inputs7
  • Cards13
  • Buttons, badges & avatars8
  • Feedback & display6
  • Effects3
Agents17
  • Chat inputNew
  • Task checklistNew
  • ReasoningNew
  • Tool callNew
  • Tool approvalNew
  • SourcesNew
  • Agent timelineNew
  • Artifact panelNew
  • Streaming messageNew
  • Conversation shellNew
  • Voice agentNew
  • Voice orbNew
  • Thinking ring
  • Thinking waveNew
  • Thinking sparkle
  • Thinking bot
  • Prompt deckNew
Blocks20
  • Agent chatNew
  • Pill heroNew
  • Grid hero
  • Moodboard generatorNew
  • Waitlist heroNew
  • Intro bannerNew
  • Creative home heroNew
  • Chat heroNew
  • App shelfNew
  • Usage card
  • Design resultsNew
  • Pricing tiers
  • Dashboard home
  • The shiftNew
  • Launch perksNew
  • Testimonials
  • Quote
  • Team
  • Leads tableNew
  • Sign in
Pages10
  • ASCII workspace$49
  • CRM overviewNew
  • Marketing dashboardNew
  • Developer portfolio$49
  • Particle landing$49
  • Particle story$49
  • Statement converter$49
  • AI photo studio$49
  • Group card launch$49
  • Month-end storyNew
Themes9
  • Default
  • Ember
  • Ocean
  • Forest
  • Grape
  • Rose
  • Amber
  • Clay
  • Brutal
Upgrade
nextui.dev

nextui components, blocks and themes you install with one command.

Product

  • Components
  • Blocks
  • Themes
  • Pricing

Resources

  • Docs
  • Roadmap
  • GitHub

Legal

  • License
  • Privacy
  • Terms
  • Refunds

nextUI

[ 200 OK ] · nextUI

© 2026 NEXTUI • All rights reserved.

Upgrade
ComponentsCardsRevenue card
Copy promptCopy prompt

Customize

Muted word before the title

Card heading; clicking it calls onOpen

Target; the right figure shows revenue as a share of it

124000

Figure next to the coin icon

3120

Footer status next to the live dot

Muted footer text on the right

JSX · copied with Copy prompt

<RevenueCard />

Revenue cardNew

A light analytics card for monthly revenue: stat numbers count up as a month-to-date chart draws in, with a goal share, a trend versus last month and a hatched channel bar with a dot legend.

Installation

Set your access key from API keys as NEXTUI_TOKEN in .env.local and add the @nextui namespace below to components.json once. Then every item installs by name. Each install counts as a copy on a free account.

$pnpm dlx shadcn@latest add @nextui/revenue-card
1{
2 "registries": {
3 "@nextui": {
4 "url": "https://nextui.dev/r/{name}.json",
5 "headers": { "Authorization": "Bearer ${NEXTUI_TOKEN}" }
6 }
7 }
8}

Usage

1"use client";
2
3import { RevenueCard } from "@/components/nextui/revenue-card";
4
5export function Example() {
6 return (
7 <RevenueCard
8 eyebrow="monthly"
9 title="Store revenue"
10 meta={[{ value: "1,284", label: "Orders" }, { value: "4.2%" }, { value: "$66", label: "AOV" }]}
11 goal={124000}
12 series={[3100, 15200, 27500, 38200, 52400, 66900, 84200]}
13 previousSeries={[2900, 13200, 23900, 34000, 45900, 57800, 71300]}
14 labels={["Oct 1", "Oct 5", "Oct 9", "Oct 13", "Oct 17", "Oct 21", "Oct 25"]}
15 channels={[
16 { label: "Direct", value: 25800, tone: "ink" },
17 { label: "Paid ads", value: 18600, tone: "violet" },
18 { label: "Organic search", value: 39800, tone: "stripe" },
19 ]}
20 fees={3120}
21 status="On pace for $104K"
22 updated="Synced 2 min ago"
23 />
24 );
25}

API reference

Edit props live in the preview above, or see all 17 props
PropTypeDefaultDescription
eyebrowstring"monthly"Muted word before the title
titlestring"Store revenue"Card heading; clicking it calls onOpen
metaRevenueMeta[]orders, conversion, AOVSmall figures under the title, each a bold value and an optional label
seriesnumber[]13 sample pointsRunning totals plotted in the chart, oldest first
previousSeriesnumber[]13 sample pointsComparison period, drawn as a dashed line
labelsstring[]"Oct 1" … "Oct 25"One label per point; shown on hover and under the chart
revenuenumberlast point of seriesThe big headline figure
previousnumberlast point of previousSeriesComparison figure; picks the green up or red down trend, with the change in percent
goalnumber124000Target; the right figure shows revenue as a share of it
channelsRevenueChannel[]Direct, Paid ads, Organic searchBar slices with label, value and tone (ink, violet or stripe); the stripe slice is the headline of the bottom half
feesnumber3120Figure next to the coin icon
statusstring"On pace for $104K"Footer status next to the live dot
updatedstring"Synced 2 min ago"Muted footer text on the right
format(value: number) => stringcompact US dollarsFormats every money figure
onOpen() => void–Called when the title is clicked
onMenu() => void–Called when the ••• button is clicked
classNamestring–Extra class on the root

Motion

  • Each time the card scrolls into view the chart wipes in from the left while the headline counts up with it, then the bar slices grow one by one as the legend figures count to their values
  • Hovering the chart moves the marker and swaps the headline to that day's running total
  • With reduced motion everything shows at its final value and the spinner stays still

Related

All components

Contact stackNew

Service receiptNew

Swipe deckNew

Sign in to see the code

Preview it freely. A free account copies code and prompts a few times a day.

Sign in