Staaarter

Terminal Sign In

Full-height sign-in screen styled like a macOS terminal window, complete with traffic-light window dots, a `$ ` prompt-style email field, and a "Send link" action styled like a command being run.

By Staaarter Team
Auth
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/terminal-sign-in.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/auth/auth29.tsx instead.

Usage

The file also exports auth29Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Auth29, auth29Demo } from "@/components/blocks/auth/auth29";

export default function Page() {
  return <Auth29 {...auth29Demo} />;
}

Props

PropTypeDefaultDescription
windowTitlestring"sign-in.sh"Label shown in the terminal window's title bar.
headingstring"Sign in to continue"Heading shown above the terminal window.
descriptionstring"No password, just a magic link."Comment-styled line inside the terminal, above the prompt.
promptLabelstring"auth login --email"Monospace label above the email field, styled like a CLI flag.
emailPlaceholderstring"[email protected]"Placeholder text for the email input.
actionLabelstring"Send link"Label on the command-styled action button.
footerNotestring"# a one-time link expires after 15 minutes"Small comment-styled line at the bottom of the terminal.
classNamestringnoneExtra classes for the outer section element.

Behavior notes

  • The dark, monospace terminal window (bg-neutral-950, font-mono, traffic-light dots) is a deliberate one-off stylistic exception scoped to this block only; it does not use the site's semantic color tokens the way every other block does.
  • This is a static/server component: the email field and "Send link" action are rendered for visual completeness but are not wired to real form submission or navigation, since sign-in is a backend action.
  • No client-side state is used; the component renders the same markup on every request.