shadcn.io is not affiliated with official shadcn/ui
Infrastructure Cost Dashboard Block for Radix UI
Six months of multi-cloud spend as a stacked area by provider with a dashed budget line, a month slider that reads every provider's cost and share, and an accordion of service lines with the change on the month before.
Installation
Overview
See which provider moved the bill and by how much, with this infrastructure cost panel for React with Radix UI. A hairline frame with a plus mark on each corner draws six months (May to October) of cost as a stacked area for three providers, in foreground weights, with a dashed line at the monthly budget. A Slider under the chart scrubs one month with the arrow keys: a vertical cursor follows it, a polite line reads the month's total against the budget, and four readings give the total and each provider's cost and share. Below, an Accordion lists each provider with its compute, storage, network and managed lines for that month and the change on the month before. It's built from Slider, Accordion and Guides, with the area drawn by hand and a table for screen readers. For multi-cloud billing views and FinOps reviews.
FAQ
How do I fill it with my providers?
Edit PROVIDERS: each has four service lines with one dollar value per month, in the order of MONTHS. Set BUDGET to your monthly budget. The area, the cursor, the readings, the shares and the header sentence are all worked out from those lines, and the chart's top is chosen from the largest month.
How does the month slider work?
It is a standard slider with six stops, so the arrow keys, Home and End move between months and a screen reader hears the month and its total. It keeps its left-to-right order in a right-to-left page because time runs that way on the chart. Moving it updates the cursor, the status line, the readings and every provider row.
How do I move between the provider rows?
Each row is a button that opens or closes its service table, and Aerolith starts open. The arrow keys also move focus between the rows. This base removes a closed row's content from the page, so the browser's find can't reach it until the row is opened.
What stays local, and how do I wire it for real?
The costs are typed and nothing is billed or fetched, and the provider names are invented. To make it real, load monthly cost by provider and service from your billing exports, put the budget from your plan, and keep the same six-month shape so the area and the table stay in step.