A few straightforward ways to introduce the people behind the work. Add your own names, roles, and photos.
Avatar grid
A centered introduction above a simple grid of avatars, names, and roles.
Meet the team
The people shipping blocks, tokens, and docs every week.

Maya Chen
CEO

Jordan Hale
Design

Priya Nair
Engineering

Chris Ortega
Product

Sam Okonkwo
Marketing

Elena Voss
Support
"use client";import { cn } from "@/lib/utils";type Team01Props = { className?: string;};const MEMBERS = [ { name: "Maya Chen", role: "CEO", avatar: "/assets/brand/demos/avatars/avatar-1.png", }, { name: "Jordan Hale", role: "Design", avatar: "/assets/brand/demos/avatars/avatar-2.png", }, { name: "Priya Nair", role: "Engineering", avatar: "/assets/brand/demos/avatars/avatar-3.png", }, { name: "Chris Ortega", role: "Product", avatar: "/assets/brand/demos/avatars/avatar-4.png", }, { name: "Sam Okonkwo", role: "Marketing", avatar: "/assets/brand/demos/avatars/avatar-5.png", }, { name: "Elena Voss", role: "Support", avatar: "/assets/brand/demos/avatars/avatar-6.png", },] as const;export function Team01({ className }: Team01Props) { return ( <section className={cn("@container w-full bg-background", className)}> <div className="mx-auto w-full max-w-4xl px-4 py-10 @[32rem]:px-6 @[32rem]:py-14"> <div className="mx-auto max-w-md text-center"> <h2 className="text-xl font-medium tracking-wide text-foreground @[32rem]:text-2xl"> Meet the team </h2> <p className="mt-2 text-sm tracking-wide text-muted-foreground"> The people shipping blocks, tokens, and docs every week. </p> </div> <ul className="mt-8 grid grid-cols-2 gap-x-4 gap-y-8 @[32rem]:grid-cols-3 @[40rem]:grid-cols-6"> {MEMBERS.map((member) => ( <li key={member.name} className="flex flex-col items-center text-center"> <img src={member.avatar} alt="" className="size-16 rounded-full object-cover @[32rem]:size-[4.5rem]" /> <p className="mt-3 text-sm font-medium tracking-wide text-foreground"> {member.name} </p> <p className="mt-0.5 text-xs tracking-wide text-muted-foreground"> {member.role} </p> </li> ))} </ul> </div> </section> );}Installation
npx @arctis-sh/@arctis-sh/ui@latest add team-01Usage
import { Team01 } from "@/components/blocks/team/team-01"<Team01 />Profile cards
Filled profile cards with a photo, role, and short bio.
Built by practitioners
Small team, high taste — design and engineering in the same room.

Maya Chen
CEO & Co-founder
Previously design systems at Northline. Obsessed with defaults that feel finished.

Jordan Hale
Head of Design
Owns the visual language — type, space, and how every block sits on a page.

Priya Nair
Eng Manager
Keeps the registry sharp and the install path boring in the best way.

Chris Ortega
Product
Turns customer asks into blocks teams can drop in without a redesign tax.
"use client";import { cn } from "@/lib/utils";type Team02Props = { className?: string;};const MEMBERS = [ { name: "Maya Chen", role: "CEO & Co-founder", bio: "Previously design systems at Northline. Obsessed with defaults that feel finished.", avatar: "/assets/brand/demos/avatars/avatar-1.png", }, { name: "Jordan Hale", role: "Head of Design", bio: "Owns the visual language — type, space, and how every block sits on a page.", avatar: "/assets/brand/demos/avatars/avatar-2.png", }, { name: "Priya Nair", role: "Eng Manager", bio: "Keeps the registry sharp and the install path boring in the best way.", avatar: "/assets/brand/demos/avatars/avatar-3.png", }, { name: "Chris Ortega", role: "Product", bio: "Turns customer asks into blocks teams can drop in without a redesign tax.", avatar: "/assets/brand/demos/avatars/avatar-4.png", },] as const;export function Team02({ className }: Team02Props) { return ( <section className={cn("@container w-full bg-background", className)}> <div className="mx-auto w-full max-w-4xl px-4 py-10 @[32rem]:px-6 @[32rem]:py-14"> <div className="mx-auto max-w-md text-center"> <h2 className="text-xl font-medium tracking-wide text-foreground @[32rem]:text-2xl"> Built by practitioners </h2> <p className="mt-2 text-sm tracking-wide text-muted-foreground"> Small team, high taste — design and engineering in the same room. </p> </div> <ul className="mt-8 grid grid-cols-1 gap-3 @[40rem]:grid-cols-2"> {MEMBERS.map((member) => ( <li key={member.name} className="flex gap-4 rounded-xl bg-muted p-4" > <img src={member.avatar} alt="" className="size-14 shrink-0 rounded-xl object-cover" /> <div className="min-w-0"> <p className="text-sm font-medium tracking-wide text-foreground"> {member.name} </p> <p className="mt-0.5 text-xs tracking-wide text-muted-foreground"> {member.role} </p> <p className="mt-2 text-xs tracking-wide text-muted-foreground"> {member.bio} </p> </div> </li> ))} </ul> </div> </section> );}Installation
npx @arctis-sh/@arctis-sh/ui@latest add team-02Usage
import { Team02 } from "@/components/blocks/team/team-02"<Team02 />Portrait cards
Three leadership portraits with name cards that slide up on hover and remain visible on touch devices.
Leadership
The people setting direction for product, design, and engineering.

Maya Chen
CEO & Co-founder

Jordan Hale
Head of Design

Priya Nair
Eng Manager
"use client";import { cn } from "@/lib/utils";type Team03Props = { className?: string;};const MEMBERS = [ { name: "Maya Chen", role: "CEO & Co-founder", avatar: "/assets/brand/demos/avatars/avatar-1.png", }, { name: "Jordan Hale", role: "Head of Design", avatar: "/assets/brand/demos/avatars/avatar-2.png", }, { name: "Priya Nair", role: "Eng Manager", avatar: "/assets/brand/demos/avatars/avatar-3.png", },] as const;export function Team03({ className }: Team03Props) { return ( <section className={cn("@container w-full bg-background", className)}> <div className="mx-auto w-full max-w-4xl px-4 py-10 @[32rem]:px-6 @[32rem]:py-14"> <div className="mx-auto max-w-md text-center"> <h2 className="text-xl font-medium tracking-wide text-foreground @[32rem]:text-2xl"> Leadership </h2> <p className="mt-2 text-sm tracking-wide text-muted-foreground"> The people setting direction for product, design, and engineering. </p> </div> <ul className="mt-8 grid grid-cols-1 gap-4 @[40rem]:grid-cols-3"> {MEMBERS.map((member) => ( <li key={member.name} className="group relative aspect-[3/4] overflow-hidden rounded-xl bg-muted"> <img src={member.avatar} alt="" className="absolute inset-0 size-full object-cover transition-transform duration-500 ease-out group-hover:scale-[1.03]" /> <div className="absolute inset-x-0 bottom-0 translate-y-0 p-3 transition-transform duration-300 ease-out [@media(hover:hover)]:translate-y-full [@media(hover:hover)]:group-hover:translate-y-0"> <div className="rounded-lg bg-background/70 px-3 py-2.5 backdrop-blur-md"> <p className="text-sm font-medium tracking-wide text-foreground"> {member.name} </p> <p className="mt-0.5 text-xs tracking-wide text-muted-foreground"> {member.role} </p> </div> </div> </li> ))} </ul> </div> </section> );}Installation
npx @arctis-sh/@arctis-sh/ui@latest add team-03Usage
import { Team03 } from "@/components/blocks/team/team-03"<Team03 />