Vibary.ai
← Vibe Coding

Share Sheet Present

The panel rises over a dimmed page and its destinations arrive in a quick wave.

socialpremiumfriendlyinteraction · finite · intermediate · ~0.6s
Interactive · click to play
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.

500 lines · react + motion only
import { useEffect, useState, type CSSProperties } from "react";
import { AnimatePresence, motion, useReducedMotion } from "motion/react";

/**
 * Vibary · Share Sheet Present
 *
 * Two arrivals in one: the panel, and the destinations on it. The panel
 * rises over a dimming scrim and settles once; the destinations sweep

About this pattern

A share panel is two arrivals in one: the surface, and the grid of destinations on it. If both land together the row reads as a static image; if the wave is too slow the panel feels like it is still loading. The compromise is a stagger short enough to be felt rather than counted — the destinations sweep left to right just behind the panel's own settle, which is what makes the grid read as contents rather than as decoration. Destination glyphs are inline SVG, so nothing depends on a platform emoji font.

Sharing a postSending a link to a contactChoosing a destination appCopy link and secondary actions

Where it shows up

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

  • Ridgeline
    Files
    Recent
    Shared
    Starred
    Trash
    FilesNew
    Brand refresh12 files
    Contracts6 files
    Photography48 files
    Q3 planning9 files
    Reports21 files
    Shared4 files
    Delete this project?Its 21 files and every share link stop working. This cannot be undone.
    CancelDelete
    Modal sheet

    Contacts first, destination apps second, secondary actions listed below.

Related patterns