Open Week
A week with nothing on it: the days arrive, today gets its ring, and a small sun lifts once and holds.
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.
import { motion, useReducedMotion } from "motion/react";
/**
* Vibary · Open Week
*
* An empty calendar, rendered as a week with nothing on it. Seven day
* dots arrive left to right, a ring draws around today, and a small sun
* lifts above the row and settles once — the visual equivalent ofAbout this pattern
The difference between an empty calendar and a broken one is whether the emptiness is deliberate. Seven day dots arrive left to right with a tight stagger, a hairline ring draws around today, and a small amber sun lifts above the row on a single overdamped spring — then everything stops. No pulsing dot, no shimmer, nothing that could be mistaken for content still loading. This is the state a person sees when there is genuinely nothing scheduled, and it should feel like open time rather than a missing page. Reduced motion keeps the arrival order and drops the travel.
Where it shows up
Screens we drew to show where this motion usually sits. Illustrations, not captures of any product.
- Activity summary
An emptied upcoming list resolves into the week strip, the ringed today, and the sun holding still.
- Dashboard
A schedule widget with nothing booked settles into the same still mark under the widget header.
Related patterns
- Silent BellAn empty notification center assembles its own calm: a bell drifts in, a dashed ring draws around it like the sound of an empty room, and one ghost ping rises and dissolves.
- Empty Comments DiscussionA comment-thread empty state assembles itself: a dashed bubble drifts in, an avatar pops into place, skeleton lines draw across, and a caret blinks twice in the empty reply box before the block holds still.
- All Caught UpA bell settles, a small badge completes its mark in one stroke, and the list confirms you are current.