Blocks

Best stat blocks 2026: 35 verified sections

35 stat blocks from 5 registries, with free preview and source code. The table ranks them by real file count and names each publisher.

Key points

  • 35 stat blocks from 5 registries, counted on 1 November 2026.
  • All at one file: the container is typographic and the metric is yours to compute.
  • An arrow without a stated time window is decoration, not information.

The best stat blocks of 2026 are the 35 the catalogue lists in this category, drawn from 5 registries and counted on 1 November 2026.

The number that lies in production

A card with one large number is the easiest block to copy and the easiest to get wrong. The value is nearly always written into the sample, and the first real figure arrives from an API returning thousandths, currencies and periods the preview never showed.

  • The figure comes out in English formatting for an Italian reader, because the block uses toFixed instead of Intl.
  • The change reads minus zero per cent: comparing two near-identical periods puts a minus in front of the zero.
  • The counter animation starts on first render before the DOM exists, so server and client show different digits.
  • A long figure shifts the card edge because the font is not tabular, so the grid moves on every update.

There is a quieter fault: the green arrow on a metric that improves by falling. For a churn rate or a response time the good direction is down, and a block that colours every rise green states the opposite of what happened.

The measured table

Every row sits at one file, including the two ephraimduncan variants that add a trend or borders. Stat is the single card, Stat rows is the list version, Stats with Trending adds the change. No row contains a data source: the one-file count already says so.

BlockRegistryFileCategory
Statflx1stat
Stat rowsflx1stat
Stat cardsflx1stat
Stats 01Shadcn UI Blocks1stat
Stats with Trendingblocks1stat
Stats 02Shadcn UI Blocks1stat
Stats with Bordersblocks1stat
Stats 03Shadcn UI Blocks1stat

Which data to read before choosing

Ask what the number represents: a count, a money sum, a duration or a ratio. Each wants a different format, and only the first settles for a thousands separator. Then fix the comparison window: seven days against the previous seven is one sentence, seven days against last month is another, and the block holds neither. Finally decide the refresh rate, because a value updating every five seconds needs a way to stop the layout jumping.

  • Value type: count, currency, duration or percentage change both formatting and alignment.
  • Comparison window: without a stated period the change means nothing.
  • Refresh rate: continuous updates need fixed-width digits and an honest loading state.

The limit I will name

None of these blocks computes the change. Even Stats with Trending receives the figure ready-made and only displays it: the subtraction between periods, the choice of window and the handling of missing values stay in your code. A one-file block is a typographic container, and treating it as a metric is the mistake that produces wrong dashboard numbers.

The decision rule

Three or four indicators above a table help people orient themselves; ten become a wall nobody reads. If the number must tell you how the product is doing, a card is not enough and you need a series. The threshold is the question the reader asks: if they ask why the value moved, the answer is a chart, not an arrow.

Card or chart

The alternative is replacing the trend with a sparkline, a minimal line as wide as the card. It communicates the same change and adds the shape of the period, which is often the useful part: a steady decline and a decline already recovered end on the same number but not the same story. Stat cards shows why the loading state matters as much as the figure: if the skeleton is a different height from the card, the page jumps the moment numbers arrive.

To wire values to a real source, read how to implement RUM and the PerformanceObserver guide. The Lighthouse and CrUX comparison explains why two tools report different numbers for the same measurement, which is exactly the trust problem a dashboard has.

curl "https://ui.eneawork.it/api/blocks/category/stat?limit=10"

The rest of the category is in /blocks, filterable by source. For the chart beside these cards there is a chart category: a well-built sparkline is worth more than three arrows.

Frequently asked questions

How many stat blocks are there?

Thirty-five, from five registries, counted on 1 November 2026. Every block in the table declares one file.

Does the block compute the percentage change?

No. It receives the value and displays it; comparing periods and choosing the window stay in your code.

How do I format numbers for Italian readers?

With Intl.NumberFormat set to it-IT and the right style, currency or percent. Replace the block function, not the text.

Why does an animated counter cause a hydration error?

Because the starting value is computed differently on the server and in the browser. Fix the initial value and start the animation after mount.

How many indicators belong at the top of a dashboard?

Three or four. Beyond that people stop reading them and a chart or a dedicated view is better.