Auth Shell

A centered single-column layout organism for authentication pages (sign in, sign up, password reset, email verification). Vertically and horizontally centers a narrow Card with slots for a brand/logo, title, description, body, and footer.

Sign In

Sign in
Welcome back to Lavahire.
Need an account? Sign up
import { AuthShell } from "@/components/auth-shell"
import { Button } from "@/components/ui/button"
import { Field, FieldLabel } from "@/components/ui/field"
import { Form } from "@/components/ui/form"
import { Input } from "@/components/ui/input"
import { PasswordInput } from "@/components/ui/password-input"

<AuthShell
  title="Sign in"
  description="Welcome back to Lavahire."
  footer={
    <span>
      Need an account? <a className="underline" href="/sign-up">Sign up</a>
    </span>
  }
>
  <Form>
    <Field id="email">
      <FieldLabel>Email</FieldLabel>
      <Input id="email" type="email" placeholder="you@example.com" />
    </Field>
    <Field id="password">
      <FieldLabel>Password</FieldLabel>
      <PasswordInput id="password" autoComplete="current-password" />
    </Field>
    <Button type="submit" className="w-full">Sign in</Button>
  </Form>
</AuthShell>

API Reference

PropTypeDefaultDescription
titleReact.ReactNodeHeading shown at the top of the card.
descriptionReact.ReactNodeOptional supporting text rendered below the title.
brandReact.ReactNodeOptional brand/logo node rendered above the title.
footerReact.ReactNodeOptional footer content rendered below the body (e.g. a "Need an account? Sign up" link).
classNamestringAdditional CSS classes applied to the outer centering container.