Xzero UI
Pro library

Onboarding checklist

Guide a new workspace through setup, one step at a time.

$ pnpm dlx shadcn@4.23.0 add @xzero-ui/onboarding-checklist
Live · keyboard ready

When to use

When not to use

Installation

Register both Xzero UI namespaces in your project's components.json:

{
  "registries": {
    "@xzero-ui": "https://mcp.xzero.co.uk/r/{name}.json",
    "@xzero-ui-pro": "https://mcp.xzero.co.uk/r/pro/{name}.json"
  }
}
npx shadcn@4.23.0 add @xzero-ui/onboarding-checklist

Install xzero-foundation once, and import @/components/xzero/foundation.css in your app root. No Xzero token is used by this snapshot. For sample portraits, photos, fonts, or logos, download https://mcp.xzero.co.uk/install-assets.mjs and run node xzero-install-assets.mjs <receiving-project>.

Usage

import { OnboardingChecklist } from "@/components/xzero/onboarding-checklist/onboarding-checklist";

export function GettingStarted() {
  return (
    <OnboardingChecklist
      title="Set up your workspace"
      defaultCompleted={savedIds}
      onCompletedChange={saveIds}
      steps={[
        { id: "invite", title: "Invite your team", actionLabel: "Invite", onAction: openInvite },
        { id: "connect", title: "Connect GitHub", description: "Sync issues and PRs.", actionLabel: "Connect", onAction: connectGithub },
        { id: "profile", title: "Add a profile photo" },
      ]}
    />
  );
}

API reference

OnboardingChecklist

A getting-started card with a progress ring, expandable steps with actions, and a folding completed group.

PropTypeDefaultDescription
title (required)string–Card title while steps remain.
steps (required){ id: string; title: string; description?: string; actionLabel?: string; onAction?: () => void | Promise<void> }[]–Steps in order. onAction resolving checks the step; throwing an Error keeps it open and shows the message.
doneTitlestring"You’re all set"Title once every step is done.
defaultCompletedstring[][]Step ids that start completed.
onCompletedChange(completed: string[]) => void–Called with completed ids in step order whenever they change.
defaultHiddenbooleanfalseStarts with the body collapsed.
onHiddenChange(hidden: boolean) => void–Called when the Hide or Show toggle is used.
classNamestring–Class on the card.

Keyboard interactions

KeysAction
ArrowDown / ArrowUpMoves between step titles.
Home / EndJumps to the first or last step title.
Enter / SpaceExpands a step, toggles its checkbox, or runs its action.

Accessibility

Motion

Responsive behavior

Performance

Notes for AI

Also in progress

Guidance for AI tools

Onboarding checklist: Guide a new workspace through setup, one step at a time. Follow the declared prop types and do not invent props. Keep keyboard access, reduced motion support, and both light and dark themes intact when adapting it.

Full library index: https://ui.xzero.co.uk/llms.txt

Browse all components