Vibary.ai
← Vibe Coding

Chart No Data

The axes extend from the origin and a flat dashed baseline runs across, so an empty range still looks like a chart.

empty-statesminimalcalmautomatic · finite · intermediate · ~1.3s
Variant

The animated component in this preview is rendered from the canonical file shown here. The surrounding demo shell only provides context and is not part of the copied code.

280 lines · react + motion only
import { motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Chart No Data
 *
 * A panel with no numbers in it should still look like a chart. The axes
 * extend from the origin, the gridlines fade in behind them, a flat
 * dashed baseline runs left to right where the series would be, and only

About this pattern

A blank rectangle where a chart should be reads as a failure; a chart with an honest zero in it reads as an answer. The value axis extends up from the origin, the time axis runs right from the same corner, gridlines and tick labels fade in behind them, and a flat dashed baseline crosses where the series would have been. Only then does the message arrive, so the reader takes in the shape and the range before being told the range is empty. Nothing springs — a measurement that overshoots its own end point and settles back is not a measurement.

Analytics card with no eventsDate range containing nothingNew metric before its first readingReport filtered to an empty period

Where it shows up

Screens we drew to show where this motion usually sits. Illustrations, not captures of any product.

  • OverviewLast 30 days
    Revenue$48,210+12.4%
    Orders1,284+3.1%
    Refunds$1,940−0.8%
    Revenue by day
    No sessions in this range
    Analytics view

    A range with no sessions keeps its axes and scale rather than blanking the card.

Related patterns