Skip to content
Facade UI
Colour mode
GitHub (opens in a new tab)
blockmotion

Team (motion)

People arrive one after another as the grid scrolls in.

Wraps the static Team, which renders identically with JavaScript disabled.

Preview

Open full width (opens in a new tab)
Preview width

Installation

Package manager
pnpm dlx shadcn@latest add https://facadeui.dev/r/team-motion.json

Pulls in motion-primitives, team. The CLI installs them for you.

Usage

The exact source of the preview above.

demos/team-motion.tsx
"use client"

/**
 * The `team` demo, with the motion variant swapped in.
 *
 * Identical props: the motion variant only changes which slot components
 * the static section renders through.
 *
 * `"use client"` is required here, not incidental: the motion variant is a
 * client component, and icon components cannot cross a server-to-client
 * boundary as props. See the note on `IconComponent`.
 */

import { TeamMotion } from "@registry/sections/team-motion"

import { TEAM } from "./content"

export function Demo() {
  return (
    <TeamMotion
      eyebrow="Team"
      title="Who builds this"
      description="Social links are named per person, so a links list does not show three identical 'LinkedIn' entries."
      items={TEAM}
      shape="circle"
    />
  )
}

Source

What the CLI copies into your project, byte for byte.

components/sections/team-motion.tsx
"use client"

/**
 * TeamMotion — the team grid with a staggered entrance.
 *
 * People arrive one after another as the grid scrolls in.
 *
 * A genuine wrapper: it renders the static `Team` and only swaps the list
 * slots, so no markup, styling or accessibility behaviour is duplicated. *
 * Dependencies: react, @/components/motion/slots,
 * @/components/sections/team.
 */

import { StaggerList, StaggerListItem } from "@/components/motion/slots"
import { Team, type TeamProps } from "@/components/sections/team"

export type TeamMotionProps = Omit<TeamProps, "listAs" | "itemAs">

export function TeamMotion(props: TeamMotionProps) {
  return <Team {...props} listAs={StaggerList} itemAs={StaggerListItem} />
}

Props

TeamMotionProps

Extends Omit<TeamProps, "listAs" | "itemAs">.