Arc
ComponentsBlocksDocsPricingTry the demo
Get Pro
Introduction
Installation
Theming
Motion
AI and MCP
Changelog
Metrics dashboardPro
KPI drilldownPro
Metric explorerPro
Revenue explorerPro
MRR waterfallPro
Cohort retentionPro
Usage forecastPro
Journey flowPro
Uptime statusPro
Pivot builderNewPro
Choropleth explorerPro
Connected scatterPro
Horizon chartPro
Account healthPro
Market terminalPro
Budget variancePro
Small multiplesPro
Line replayPro
AI chatPro
AI composerPro
AI answerPro
Model pickerPro
Model arenaPro
Prompt studioPro
Document extractionPro
Agent memoryPro
AI side panelPro
AI inline editPro
Research runPro
AI insight cardPro
Catch upPro
AI feature launchPro
AI search barPro
AI setup wizardPro
Call insightsPro
Lead scoringPro
Agent runPro
Agent tasksPro
Agent approvalsPro
Agent routinesPro
Agent orchestratorPro
MCP serversPro
Knowledge basePro
Eval suitePro
Agent builderPro
Agent galleryPro
SidebarPro4
Page header
Command palette
Notification center
Selection toolbarPro
Empty states
Search resultsPro
Login and sign up5, free and Pro variants
Onboarding illustrationPro
OTP input
Multi-step formPro
Two-factor setupPro
Magic linkPro
Settings pagePro
Settings commandPro
Security settingsPro
Billing overviewPro
Usage billingPro
Cancel flowPro
Onboarding surveyPro
Spend alertPro
Team membersPro
Invite peoplePro
Team directoryPro
Roles and permissionsPro
Profile pagePro
API keysPro
WebhooksPro
IntegrationsPro
Environment variablesPro
Domain verifyPro
Webhook testerPro
Plan comparison
Pricing calculatorPro
Usage pricingPro
Cart drawerPro
Checkout summaryPro
Live checkoutPro
Seat managerPro
Credit top-upPro
Invoice studioPro
Wallet cardPro
Delivery trackerPro
Product listingPro
Product detailPro
Seat mapPro
Activity feedPro
Inbox triagePro
Support conversationPro
Support widgetPro
Help centerPro
Feature votingPro
File upload
Media playerPro
Week calendarPro
Availability pickerPro
Project boardPro
Gantt timelineNewPro
Release readinessPro
Kanban boardPro
Feedback boardPro
Smart schedulerPro
Task breakdownPro
Goal trackerPro
Hero section
Hero signupPro
Scroll storyPro
Spotlight gridPro
Feature bentoPro
Comparison table
Logo marquee
Studio perspectivesPro
Stats band
Changelog feed
FAQ section
Contact section
Team showcasePro
Blog grid
Site header
Site footer
CTA section
Newsletter signup
Activity terrainPro
Revenue globePro
Customer galaxyPro
Semantic zoomPro
Layout morphPro
Exploded viewPro
What’s new4 new
BlocksKPI drilldown

KPI drilldown

Pro

KPI cards that expand into a full detail chart with period comparison and a breakdown table, then fold back.

Live block · sample data

When to use

  • An analytics or finance overview where each number deserves a closer look.
  • Executive dashboards that compare the current period with the previous one.

When not to use

  • Use metric-explorer to compare many metrics on one chart.
  • Use metrics-dashboard for a static summary without drill down.
  • Avoid it for real time monitoring where values change every second.

Installation

Pro source and install commands unlock with a Pro plan.

Usage

Use this as the overview of an analytics or finance dashboard. Load each metric's series and breakdowns from your warehouse and keep the range in your URL.

example.tsx
1import { KpiDrilldown } from "@/components/arc/blocks/kpi-drilldown/kpi-drilldown";2 3export function Overview({ metrics }: { metrics: Kpi[] }) {4  const [metric, setMetric] = useQueryState("metric");5  return <KpiDrilldown kpis={metrics} selected={metric} onSelectedChange={setMetric} />;6}
Built fromAnimated counterButton

API reference

KpiDrilldown

A KPI overview where each card expands into a full detail view on one spring: the label and value stay put while the chart, period comparison, and breakdown table are revealed around them. Ranges morph every sparkline in place.

PropTypeDefaultDescription
kpisKpi[]kpisMetrics: id, label, format, kind (total or rate), lowerIsBetter, daily series, breakdowns by dimension, and a description.
dimensions{ value: string; label: string }[]breakdownDimensionsBreakdown dimensions; values match keys in each metric's breakdowns.
endstring"2026-09-24"ISO date of the last value in every series.
defaultRange"7" | "30" | "90""30"Initial range in days.
selectedstring | null–Controlled open metric id, or null for the grid.
onSelectedChange(id: string | null) => void–Called when a metric opens or closes. Use it to keep the selection in the URL.
titlestring"Overview"Heading.
classNamestring–Class on the root.

Keyboard interactions

EnterorSpace on a card
Opens the metric; focus moves to the close button.
Escape
Folds the detail back into its card and returns focus to it.
Arrow leftorArrow right
Moves the chart cursor one day while the chart has focus.

Accessibility

  • Cards are buttons whose name includes the value and the change.
  • The detail is a labeled region; the grid behind it is hidden from assistive technology while it is open.
  • The chart has a spoken summary and a keyboard cursor; changes pair an arrow and sign with color.
  • Breakdowns are real tables with row headers.

Motion

  • The card grows into the detail on one spring, and the detail folds back into the same card.
  • Every range is resampled to the same number of points, so sparklines and the detail line morph instead of redrawing.
  • Values roll digit by digit when the range changes.
  • The previous period line fades in and out with Compare; breakdown rows crossfade and their share bars fill with a small stagger.
  • Reduced motion jumps between grid and detail and keeps short fades.

Responsive behavior

  • Three columns above 760px, two down to 520px, then one.
  • Below 520px the share column hides and Compare becomes an icon button.
  • The detail scrolls inside its panel when it is taller than the grid.

Performance

  • Sparklines use a fixed 100 by 32 viewBox with non scaling strokes, so resizing never re measures them.
  • The detail chart measures its width once per resize and animates only path data.

Notes for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Give each metric at least twice the longest range of daily values so the comparison period exists.
  • Use kind rate for percentages so changes read in points, and set lowerIsBetter for churn or latency.
  • Keep selected in the URL with onSelectedChange so a detail can be shared.
  • Six metrics fit best; more belong in metric-explorer.
/components/blocks/kpi-drilldown/markdown

The full library index for assistants is at /llms.txt.

Related

Metrics dashboardProBlockA dense analytics view with KPI tabs, one inspectable chart, and top pages and sources.Metric explorerProBlockKPI cards that open into a scrubbable chart and morph between metrics and ranges.Revenue explorerProBlockA SaaS revenue chart you zoom with a brush while paths, axes and figures glide to the range.MRR waterfallProBlockAn MRR bridge whose floating bars morph by period and open the accounts behind each move.Bar chartComponentCompare one measure across days and scrub any bar for its value.
PreviousAI inline editNextBlog grid
Arc · 134 block pagesllms.txt

On this page

  • Preview
  • When to use
  • When not to use
  • Installation
  • Usage
  • API reference
  • Keyboard
  • Accessibility
  • Motion
  • Responsive behavior
  • Performance
  • Notes for AI
  • Related
View as Markdown

Overview