g1t/apps/web/app/components/auth-card.tsx
| 1 | import type { ReactNode } from "react"; |
| 2 | |
| 3 | import { Mark } from "./logo"; |
| 4 | |
| 5 | /** The centred panel shared by the sign-in and sign-up pages. */ |
| 6 | export function AuthCard({ |
| 7 | title, |
| 8 | subtitle, |
| 9 | footer, |
| 10 | children, |
| 11 | }: { |
| 12 | title: string; |
| 13 | subtitle: string; |
| 14 | footer: ReactNode; |
| 15 | children: ReactNode; |
| 16 | }) { |
| 17 | return ( |
| 18 | <main className="mx-auto flex max-w-sm flex-col px-4 pt-20 pb-10"> |
| 19 | <Mark className="size-9" /> |
| 20 | <h1 className="mt-6 text-2xl font-semibold tracking-tight">{title}</h1> |
| 21 | <p className="text-2xl tracking-tight text-faint">{subtitle}</p> |
| 22 | <div className="mt-8">{children}</div> |
| 23 | <p className="mt-6 text-center text-sm text-muted">{footer}</p> |
| 24 | </main> |
| 25 | ); |
| 26 | } |