components / display
Auth Shell
Centered card for sign-in, sign-up, reset, and verify screens.
573 B gzip runs on the server · 0 JS
A
Welcome back
Sign in to continue.
New here? Create an account
auth-shell-default.tsx
import { AuthShell } from "@/components/ui/auth-shell";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
export default function AuthShellDefault() {
return (
<AuthShell
centered
className="min-h-0 py-0"
description="Sign in to continue."
footer={
<>
New here?{" "}
<a className="font-medium text-foreground underline decoration-brand underline-offset-4" href="#signup">
Create an account
</a>
</>
}
logo={<span className="grid size-10 place-items-center rounded-xl bg-brand font-bold font-heading text-brand-contrast">A</span>}
title="Welcome back"
>
<Input aria-label="Email" placeholder="you@company.com" />
<Button variant="brand">Sign in</Button>
</AuthShell>
);
}Installation
$ npx shadcn@latest add https://cd-ui.vercel.app/r/auth-shell.jsonfirst time? set up components.json and the theme first: see installation.
Usage
import { AuthShell } from "@/components/ui/auth-shell"
<AuthShell title="Welcome back" description="Sign in to continue." footer={<a href="/signup">Create an account</a>}>
{/* your form */}
</AuthShell>API
AuthShell
Centered card with a header (logo, title, description), your form as children and a footer line. Server component. It has no logo of its own: pass yours.
| prop | type | default |
|---|---|---|
logoMark shown above the title. | ReactNode | - |
titleCard title. | ReactNode | - |
descriptionLine under the title. | ReactNode | - |
footerLine under the card, such as a link to the other screen. | ReactNode | - |
centeredCenters the header text. | boolean | false |
sizeCard width: 384px ( | "sm" | "md" | "sm" |
classNameExtra classes, merged with | string | - |