Vibary.ai
← Vibe Coding

Cache Hit Instant

Cached content gets no entrance at all; only the values that actually changed animate.

loadingpremiumsubtleautomatic · finite · intermediate · ~1.1s
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.

346 lines · react + motion only
import { useEffect, useState } from "react";
import { motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Cache Hit Instant
 *
 * Cached data is already correct, so it gets no entrance at all — the
 * panel is simply there on the first frame. Motion is spent only on what

About this pattern

The restraint pattern. Data served from a cache is already correct, so animating it in is a lie about how long it took — the panel is simply there on the first frame, with no fade, no lift and no placeholder. What earns motion is the revalidation: the freshness chip cross-fades from 'cached' to 'updated', and a short accent wash passes over the one or two rows whose numbers actually moved. Rows that did not change get no overlay at all, which is what makes the wash mean something. Under reduced motion the wash becomes a tint that stays, so 'what is new' survives without a single frame of movement.

Cached dashboardBackground revalidationOffline-first listMetrics panel

Where it shows up

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

  • Ridgeline
    Issues
    Backlog
    Active
    Cycles
    Views
    IssuesNew
    Colourway picker drops a frameRID-412 · PriyaIn progress
    Receipt totals misalign on narrowRID-408 · MarcusTodo
    Session expires without warningRID-401 · DanaIn review
    Export queue stalls past 500 rowsRID-397 · NilsTodo
    Search ranks archived firstRID-390 · PriyaDone
    Issue tracker

    Views open instantly from local state and quietly reconcile once the server answers.

Related patterns