Vibary.ai
← Vibe Coding

Offline Cached Only

When the network drops, downloaded rows stay crisp while the rest dim in a wave down the list.

empty-statescalmminimalautomatic · finite · starter · ~0.7s
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.

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

/**
 * Vibary · Offline Cached Only
 *
 * Going offline is not an empty screen — it is a shorter list. Rows that
 * are already downloaded stay exactly as they were; the ones that need

About this pattern

Losing the network rarely empties a screen completely — it leaves a partial one, and the useful thing motion can do is say which half is which. Downloaded rows hold their full weight and pick up a small marker; rows that need the network fade to a readable dim in a wave down the list, one after another rather than all at once, so the change reads as a sweep with a cause. Nothing is removed, nothing reorders and nothing scales, because a list that rearranges itself the moment the connection drops loses the reader's place exactly when they can least afford it.

Downloaded media libraryDocuments available offlineAirplane mode listPartial content while disconnected