Component / Layout

Staggered List

Insert, remove, and reorder keyed data while preserving semantic list markup, DOM identity, and keyboard focus. Long sequences stay bounded by a maximum stagger span.

4 items
Delivery queue / keyed items
  • 01Audit onboardingAccessibilityentering
  • 02Tune list motionMotionentering
  • 03Review release notesDocumentationentering
  • 04Publish previewReleaseentering

Delivery contract

Install it

pnpm add easecraft@0.1.0

The component imports stable APIs from easecraft.

Files / 00

    Dependencies / 03

    easecraft
    npm / 0.1.0
    react
    peer / >=18.2.0 <20.0.0
    react-dom
    peer / >=18.2.0 <20.0.0

    Package usage

    Use it

    import { StaggeredList } from "easecraft";
    
    <StaggeredList
      items={projects}
      getKey={(project) => project.id}
      preset="fade-rise"
    >
      {(project) => <ProjectCard project={project} />}
    </StaggeredList>

    Typed contract

    API

    PropTypeDefaultPurpose
    itemsreadonly Item[]requiredControlled list data
    getKey(item) => React.KeyrequiredStable item identity
    children(item, state) => ReactNoderequiredList-item content renderer
    as"ul" | "ol""ul"Semantic list host
    preset"fade" | "rise" | "fade-rise""fade-rise"Entry and exit treatment
    intervalstagger token | number"normal"Delay between item starts
    maxDelayduration token | number"slow"Maximum stagger span
    durationduration token | number"normal"Entry and reorder duration
    exitDurationduration token | number"fast"Removal duration
    order"forward" | "reverse""forward"Stagger origin
    distancedistance token | number"medium"Entry and exit travel
    easingeasing token | string"enter"Entry easing
    exitEasingeasing token | string"exit"Exit easing
    reorderEasingeasing token | string"move"FLIP reorder easing

    Release requirement

    Accessibility

    List semantics
    The host remains a real unordered or ordered list with one list item per key.
    Focus stability
    Removing a focused item moves focus to its nearest remaining neighbor.
    Exit retention
    Items remain visually present for exit motion but leave the accessibility tree.
    Reduced motion
    Data changes apply immediately without entry, exit, or reorder animation.