Vibary.ai
← Vibe Coding

Create First Item

An outlined row fills its slots from the left to show the shape of the thing you have not made yet.

empty-statesfriendlyenergeticautomatic · finite · starter · ~1.2s
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.

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

/**
 * Vibary · Create First Item
 *
 * An empty list explains itself by showing the shape of what belongs in
 * it. A dashed row arrives, its slots fill from the left as if being

About this pattern

An empty list that only says "nothing here" leaves the reader to imagine what belongs in it. This one demonstrates instead: a dashed row arrives, its swatch settles and its slot bars grow out from the left as if the row were being written, and the invitation follows once the shape is legible. Pressing the action replaces the outline with a real row in the same grid cell, so the demonstration becomes the result without the list resizing under it. Reduced motion keeps the order — outline, slots, invitation — and drops the growth.

First run listNew workspaceEmpty project boardZero-state file browser

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
    No issues match these filtersWhen there is something to show, it appears here.
    Issue tracker

    A new team's issue list shows the outline of a row alongside the action that creates one.

Related patterns