Full-height signed-out screen with a centered icon, a heading and message, a sign-back-in button, and a return-home link. Perfect for logout confirmations and expired-session pages.
Full-height signed-out screen: a centered icon in a neutral circle, a heading and message, a primary sign-back-in button, and a secondary return-home link. Entirely static, with no form fields or interactive state.
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/auth17?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/auth17?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/auth17.tsx and the button shadcn/ui primitive it's built on.
The installed file exports auth17Demo alongside the block: the exact props behind the preview above. Spread it to get a working signed-out screen in one line.
import { Auth17, auth17Demo } from "@/components/beste/block/auth17";
export default function SignedOutPage() {
return <Auth17 {...auth17Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { LogOut } from "lucide-react";
import { Auth17 } from "@/components/beste/block/auth17";
export default function SignedOutPage() {
return (
<Auth17
icon={<LogOut className="size-7" />}
heading="You've been signed out"
description="Your session has ended. Sign back in whenever you're ready."
primaryButton={{ label: "Sign back in", href: "/sign-in" }}
secondaryLink={{ label: "Return to homepage", href: "/" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
icon | React.ReactNode | – | Icon shown inside the circular badge above the heading |
heading | string | – | Screen title |
description | string | – | Message below the heading |
primaryButton | { label: string; href: string } | – | Filled call-to-action button |
secondaryLink | { label: string; href: string } | – | Ghost-variant button below the primary one |
className | string | – | Extra classes for the outer <section> |
<form>, no inputs, and no local state.primaryButton renders as a filled Button, secondaryLink as a variant="ghost" Button; both are asChild links stacked full-width in a flex-col gap-3 container, and either can be omitted independently.bg-muted text-muted-foreground, unlike auth12's green success circle, matching a neutral rather than a positive/negative state.icon, heading, description, primaryButton, and secondaryLink are each individually optional; any subset can be dropped without leaving layout gaps.auth46
Full-height step-up authentication screen that re-asks for the password before a sensitive action, showing the signed-in account and a cancel option. Perfect for protecting billing, security, and destructive actions.
auth12
Full-height success screen with a large confirmation check, a heading and message, a primary continue button, and a support link. Perfect for the final step after email verification or account activation.
auth8
Full-height re-authentication screen showing the signed-in user's avatar, name, and email with a single password field, a forgot-password link, and a use-a-different-account option. Perfect for session unlock and returning-user prompts.
auth27
Full-height authentication error screen with a warning icon, an explanation, an optional error code, and try-again, back, and contact-support actions. Perfect for failed sign-in and OAuth callback errors.
auth28
Full-height expired-link screen with a broken-link icon, an explanation, a request-a-new-link button, and a back-to-sign-in link. Perfect for stale magic links, password resets, and email confirmation tokens.
auth20
Full-height confirmation screen shown after a magic link is sent, with a mail icon, the destination email, an open-email button, a live resend countdown, and a change-email link. Perfect for passwordless and email-link flows.