Skip to content
UI Kit
Accent color

Login pages and sign up screens

Sign-in, sign-up and everything around it, with real validation and calm success states.

9 variants
Switch category

Every screen around the account

Authentication is the door to your product, and every extra second there costs signups. The nine screens here come with real validation, password managers that fill the right fields, and calm success states that say what happens next.

Sign in and Split with quote are the entry, the split version adds a quote or a picture on desktop. Sign up asks for the minimum and checks the password while you type. Forgot password and Magic link cover the way back in, One-time code takes a six digit code with paste and SMS autofill. Two-factor setup walks through the QR code, Onboarding steps follows the first sign in, Accept invite welcomes a new team member.

Set autocomplete on every field, the components do it for email, current password and new password. Show the password rules before the first error, not after. The screens handle the interface, the actual sign in comes from your auth provider through onSubmit.

Authentication

Sign in

A card with passkey and single sign-on, email and password. On phones the card dissolves into the page.

Split with quote

Form on one side, a picture with a customer quote on the other. Phones get a picture band and the quote below.

Sign up

Benefits beside the form, a live password strength meter and its rules.

Forgot password

One field, then a confirmation with a resend timer.

One-time code

Six boxes with paste, auto advance, arrow keys and Backspace. 000000 shows the error state.

Two-factor setup

Three steps on a line: app, code picture with copyable key, confirmation. Then backup codes.

Onboarding steps

Workspace with live address, invites as chips and use cases as cards, with a finish screen.

Accept invite

Who invited you, the workspace, your role and the people already there.

Details

What Authentication brings along, read from the registry and the source.

Area
App
Variants
9
Version
1.0.1 · since 1.0.0
File
components/ui/auth.tsx
Brings along
utilskitbuttonicon
npm packages
None
Languages
English and German, 99 texts of its own
Studio
Adjust in code

Props

The AuthProps interface from components/ui/auth.tsx, with the comments from the code.

  • variantoptional
    AuthVariant

    sign-insplitsign-upforgot-passwordone-time-codemagic-linktwo-factoronboarding-stepsinvite-accept

  • brandrequired
    { name: string; href?: string; logo?: React.ReactNode }
  • titleoptional
    React.ReactNode
  • descriptionoptional
    React.ReactNode
  • providersoptional
    AuthProvider[]

    Passkey, single sign-on and similar, shown above the form

  • signUpHrefoptional
    string

    Links around the form

  • signInHrefoptional
    string
  • forgotHrefoptional
    string
  • termsHrefoptional
    string
  • privacyHrefoptional
    string
  • mediaoptional
    React.ReactNode

    split: picture and quote on the side

  • quoteoptional
    { text: string; author: string; role?: string }
  • benefitsoptional
    string[]

    sign-up: reasons next to the form

  • emailoptional
    string

    one-time-code, magic-link: the address the code or link was sent to

  • twoFactoroptional
    { qr: React.ReactNode; secret: string; backupCodes?: string[] }

    two-factor: the code picture and the secret for manual entry

  • onboardingoptional
    { domain: string; useCases: { id: string; label: string; description: string; icon: IconName }[] }

    onboarding-steps: the domain suffix and the use cases to choose from

  • inviteoptional
    { inviter: { name: string; email: string }; workspace: { name: string; logo?: React.ReactNode; members: string[]; total: number }; role: string; email: string }

    invite-accept

  • onSubmitoptional
    (values: Record<string, string>) => void | string | Promise<void | string>

    Called with the form values. Return a string to show it as an error. Without it the block simulates a short request, so demos feel real.

Built-in texts

Authentication writes these texts itself. The language follows the KitProvider, the labels prop replaces single ones.

Show all 99 texts
emailEnglish EmailGerman E-Mail
workEmailEnglish Work emailGerman Geschäftliche E-Mail
passwordEnglish PasswordGerman Passwort
nameEnglish Full nameGerman Vollständiger Name
showEnglish Show passwordGerman Passwort anzeigen
hideEnglish Hide passwordGerman Passwort verbergen
forgotEnglish Forgot password?German Passwort vergessen?
rememberEnglish Keep me signed in for 30 daysGerman 30 Tage angemeldet bleiben
signInEnglish Sign inGerman Anmelden
signingInEnglish Signing in…German Wird angemeldet…
signedInEnglish Signed in. Taking you to your workspace…German Angemeldet. Dein Arbeitsbereich öffnet sich…
orEnglish orGerman oder
noAccountEnglish New here?German Neu hier?
signUpEnglish Create an accountGerman Konto erstellen
haveAccountEnglish Already have an account?German Schon ein Konto?
createEnglish Create accountGerman Konto erstellen
creatingEnglish Creating account…German Konto wird erstellt…
createdEnglish Account created. Check your inbox to confirm your email.German Konto erstellt. Bitte bestätige deine E-Mail-Adresse in deinem Postfach.
agreeEnglish I agree to theGerman Ich stimme den
termsEnglish termsGerman Nutzungsbedingungen
andEnglish and theGerman und der
privacyEnglish privacy policyGerman Datenschutzerklärung
agreeEndEnglish German zu
requiredEnglish This field is required.German Dieses Feld ist erforderlich.
invalidEmailEnglish Please enter a valid email address.German Bitte gib eine gültige E-Mail-Adresse ein.
tooShortEnglish Use at least 8 characters.German Mindestens 8 Zeichen, bitte.
acceptTermsEnglish Please accept the terms to continue.German Bitte stimme den Bedingungen zu, um fortzufahren.
rule8English At least 8 charactersGerman Mindestens 8 Zeichen
ruleNumberEnglish One numberGerman Eine Ziffer
ruleCaseEnglish Upper and lower caseGerman Groß- und Kleinbuchstaben
weakEnglish WeakGerman Schwach
fairEnglish FairGerman Mittel
goodEnglish GoodGerman Gut
strongEnglish StrongGerman Stark
strengthEnglish Password strengthGerman Passwortstärke
sendResetEnglish Send reset linkGerman Link zum Zurücksetzen senden
sendingEnglish Sending…German Wird gesendet…
checkInboxEnglish Check your inboxGerman Schau in dein Postfach
resetSentEnglish If an account exists for {email}, a reset link is on its way. It is valid for 30 minutes.German Wenn es ein Konto für {email} gibt, ist ein Link unterwegs. Er gilt 30 Minuten.
resendEnglish Send againGerman Erneut senden
resendInEnglish Send again in {s} sGerman Erneut senden in {s} s
backToSignInEnglish Back to sign inGerman Zurück zur Anmeldung
codeTitleEnglish Enter the codeGerman Code eingeben
codeSentEnglish We sent a 6 digit code to {email}.German Wir haben einen 6-stelligen Code an {email} geschickt.
digitEnglish Digit {n} of 6German Ziffer {n} von 6
codeEnglish Verification codeGerman Bestätigungscode
verifyEnglish VerifyGerman Bestätigen
verifyingEnglish Checking…German Wird geprüft…
wrongCodeEnglish That code did not work. Check the latest email and try again.German Dieser Code passt nicht. Nimm den aus der neuesten E-Mail und versuch es noch einmal.
verifiedEnglish Verified. You are signed in.German Bestätigt. Du bist angemeldet.
pasteHintEnglish You can paste the whole code.German Du kannst den ganzen Code einfügen.
magicSendEnglish Email me a sign-in linkGerman Anmeldelink per E-Mail senden
magicTitleEnglish Your link is on its wayGerman Dein Link ist unterwegs
magicSentEnglish We sent a sign-in link to {email}. Open it on this device to continue.German Wir haben einen Anmeldelink an {email} geschickt. Öffne ihn auf diesem Gerät.
magicExpiresEnglish The link expires in 15 minutes.German Der Link gilt 15 Minuten.
openMailEnglish Open email appGerman E-Mail-App öffnen
otherEmailEnglish Use a different emailGerman Andere E-Mail verwenden
tfaStep1English Install an authenticator appGerman Authenticator-App installieren
tfaStep1TextEnglish Any app that supports time based codes works.German Jede App mit zeitbasierten Codes funktioniert.
tfaStep2English Scan the codeGerman Code scannen
tfaStep2TextEnglish Or enter this key by hand.German Oder diesen Schlüssel von Hand eingeben.
tfaStep3English Enter the 6 digit codeGerman Den 6-stelligen Code eingeben
tfaStep3TextEnglish The code changes every 30 seconds.German Der Code wechselt alle 30 Sekunden.
copyEnglish CopyGerman Kopieren
copiedEnglish CopiedGerman Kopiert
enableEnglish Turn on two-factorGerman Zwei-Faktor einschalten
tfaDoneEnglish Two-factor authentication is onGerman Zwei-Faktor-Anmeldung ist aktiv
tfaBackupEnglish Keep these backup codes somewhere safe. Each one works once.German Bewahre diese Ersatzcodes sicher auf. Jeder funktioniert einmal.
downloadEnglish Download codesGerman Codes herunterladen
stepOfEnglish Step {n} of {total}German Schritt {n} von {total}
backEnglish BackGerman Zurück
continueEnglish ContinueGerman Weiter
skipEnglish Skip for nowGerman Später erledigen
finishEnglish Finish setupGerman Einrichtung abschließen
obStep1English Name your workspaceGerman Benenne deinen Arbeitsbereich
obStep1TextEnglish This is where your team works together. You can change it later.German Hier arbeitet dein Team zusammen. Du kannst den Namen später ändern.
obWorkspaceEnglish Workspace nameGerman Name des Arbeitsbereichs
obUrlEnglish Workspace addressGerman Adresse des Arbeitsbereichs
obStep2English Invite your teamGerman Lade dein Team ein
obStep2TextEnglish Add colleagues by email. They get an invite right away.German Füge Kolleginnen und Kollegen per E-Mail hinzu. Sie bekommen sofort eine Einladung.
obInviteEnglish Email addressesGerman E-Mail-Adressen
obInviteHintEnglish Press Enter or comma after each address.German Nach jeder Adresse Enter oder Komma drücken.
obRemoveEnglish Remove {email}German {email} entfernen
obStep3English What will you use it for?German Wofür nutzt ihr es?
obStep3TextEnglish We set up templates that fit. Pick as many as you like.German Wir richten passende Vorlagen ein. Wähle so viele, wie du magst.
obDoneEnglish Your workspace is readyGerman Dein Arbeitsbereich ist bereit
obDoneTextEnglish {name} is set up with {count} invites sent.German {name} ist eingerichtet, {count} Einladungen sind verschickt.
obOpenEnglish Open workspaceGerman Arbeitsbereich öffnen
invitedEnglish {name} invited you to joinGerman {name} lädt dich ein in
joinAsEnglish Your roleGerman Deine Rolle
membersEnglish membersGerman Mitglieder
signedInAsEnglish Signed in asGerman Angemeldet als
switchAccountEnglish Switch accountGerman Konto wechseln
acceptEnglish Accept invitationGerman Einladung annehmen
acceptingEnglish Joining…German Du trittst bei…
declineEnglish DeclineGerman Ablehnen
joinedEnglish Welcome to {workspace}German Willkommen bei {workspace}
joinedTextEnglish You are now a member. Your teammates can see you in the member list.German Du bist jetzt Mitglied. Dein Team sieht dich in der Mitgliederliste.
declinedEnglish Invitation declined. {name} has been told.German Einladung abgelehnt. {name} wurde informiert.

Accessibility

Read from the source of the component.

  • Authentication handles the keys Enter, Arrow left, Arrow right, Backspace and Space itself.
  • Sets aria-busy, aria-current, aria-describedby, aria-invalid, aria-label, aria-live, aria-pressed, aria-valuemax, aria-valuemin, aria-valuenow and aria-valuetext, so screen readers announce purpose and state.
  • Uses the roles meter, separator and tone.
  • Announces changes through a live region without moving focus.
  • Every field has a label, visible or for screen readers.
  • Adds text for screen readers where icons and graphics stand alone.
  • Shows a visible focus ring when used with the keyboard.
  • The server renders the starting state in full, JavaScript only adds the interaction.

Motion

  • Rises in briefly the first time it comes into view (kit-rise, useInView).
  • Brings animations of its own, calmly timed and without wobble.
  • With reduced motion (prefers-reduced-motion) it stays still. 6 places in the code switch motion off then.

Frequent questions

How do I install Authentication?

With aiw add @ai-website/auth. The command puts components/ui/auth.tsx into your project, the code is yours from then on. It brings along button and icon. It needs no further npm packages.

Which variants does Authentication have?

9 variants, Sign in, Split with quote, Sign up, Forgot password, One-time code, Magic link, Two-factor setup, Onboarding steps and Accept invite. You pick one with the variant prop, for example variant="split".

Can I translate the texts of Authentication?

Yes. Authentication carries 99 texts of its own in English and German, such as “Email”, “Work email” and “Password”. The language follows the KitProvider, single texts change through the labels prop.

Can an AI assistant build with Authentication?

Yes. Through the MCP server of the aiw CLI, Claude, Cursor, GitHub Copilot, Windsurf, Codex and Gemini find Authentication with aiw_components and install it with aiw_add @ai-website/auth. Name the variant in your prompt, for example variant="sign-in", and the assistant writes your content straight into the props.

Often searched

Jump to

Copied to the clipboard