Full-height account picker that lists saved accounts with avatars, names, and emails, plus a use-another-account row. Perfect for multi-account apps, SSO hubs, and returning-user sign-in.
Full-height account picker: a heading and description above a bordered list of saved accounts (avatar, name, email, chevron), with a "use another account" row appended at the bottom and a legal note beneath the card. There are no form fields at all, every row is a link.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/auth7"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/auth7"This installs the block to components/beste/block/auth7.tsx and the avatar and field shadcn/ui primitives it's built on.
The installed file exports auth7Demo alongside the block: the exact props behind the preview above. Spread it to get a working account chooser in one line.
import { Auth7, auth7Demo } from "@/components/beste/block/auth7";
export default function ChooseAccountPage() {
return <Auth7 {...auth7Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Auth7 } from "@/components/beste/block/auth7";
export default function ChooseAccountPage() {
return (
<Auth7
heading="Choose an account"
description="to continue to Acme"
accounts={[
{ name: "Jane Cooper", email: "jane@example.com", href: "/session/jane" },
{ name: "Marcus Lee", email: "marcus@workmail.com", href: "/session/marcus" },
]}
useAnotherAccount={{ label: "Use another account", href: "/sign-in" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
heading | string | – | Screen title |
description | string | – | Subtext below the heading (e.g. "to continue to Acme") |
accounts | Account[] | [] | Saved account rows, in list order |
useAnotherAccount | { label: string; href: string } | – | Extra row appended after the accounts, hidden entirely when not set |
labels | { legal?: string } | {} | Legal note below the card |
className | string | – | Extra classes for the outer <section> |
type Account = {
name: string;
email: string;
avatar?: { src: string; alt: string };
href?: string;
};next/link to account.href (falls back to "#" if omitted); there is no onSelect/onClick prop, so picking an account only performs client-side navigation, there is no session-switch callback to hook into.AvatarFallback derives its initials from account.name.split(" ").map(part => part[0]).join(""), so it always has a sensible fallback even when avatar is omitted.group/auth7 / group-hover/auth7:translate-x-0.5), a subtle affordance rather than a full row-highlight animation (the row background itself just switches to bg-muted on hover).labels.legal is injected as raw HTML via dangerouslySetInnerHTML, so it can contain inline <a> tags (the demo links "Terms" and "Privacy Policy" this way) rather than separate link props.<form>, no password field, and no submit button; this screen is purely a navigation list.Wiring the form up
This block ships the form markup only; state, validation, and submit are yours to add. Our guide wires the shadcn Field primitives to React Hook Form, TanStack Form, and Formisch on one field system.
auth11
Full-height onboarding step where the user picks an account type from selectable radio cards with icons and descriptions, then continues. Perfect for tailoring sign-up flows by persona or plan.
auth25
Full-height username picker with a prefixed input group, a live availability indicator, suggestion chips when a handle is taken, and a submit button that unlocks only when the name is free. Perfect for onboarding handle selection.
auth36
Full-height workspace picker listing organizations with logo initials, member details, and a create-workspace row, plus a signed-in-as footer. Perfect for multi-tenant apps after sign-in.
auth14
Full-height single sign-on screen with a work-email field, a continue-with-SSO button, and Google and Microsoft providers below a divider. Perfect for B2B and enterprise apps that authenticate via identity providers.
auth24
Full-height profile setup step with an avatar uploader, a display name field, and a bio textarea, plus a skip option. Perfect for the post-sign-up onboarding step where users personalize their account.
auth16
Full-height invitation acceptance screen showing the inviter's avatar and team name, a pre-filled disabled email, and name and password fields to set up the account. Perfect for team onboarding and invite-link flows.