DS0
Patterns

Login Form

A complete login form with email/password fields, remember me, social login, and error handling.

Overview

The LoginForm recipe provides a ready-to-use authentication form with email and password fields, a remember me checkbox, optional social login providers, forgot password link, and error display. It composes Card, TextField, Checkbox, Button, Link, Alert, Divider, and Stack.

Welcome back

Sign in to your account

Forgot?

OR

Don't have an account? Sign up

Usage

import { LoginForm } from '@/recipes/login-form';

<LoginForm
  onSubmit={({ email, password, rememberMe }) => signIn(email, password)}
  onForgotPassword={() => navigate('/forgot-password')}
  onSignUp={() => navigate('/signup')}
/>

With Social Providers

<LoginForm
  onSubmit={handleSubmit}
  onSocialLogin={(provider) => socialSignIn(provider)}
  socialProviders={[
    { name: 'Google', icon: <GoogleIcon /> },
    { name: 'GitHub', icon: <GitHubIcon /> },
  ]}
/>

With Error

<LoginForm
  onSubmit={handleSubmit}
  error="Invalid email or password"
/>

API Reference

PropTypeDefaultDescription
onSubmit(data: { email: string; password: string; rememberMe: boolean }) => voidForm submission handler
onForgotPassword() => voidForgot password link handler
onSignUp() => voidSign up link handler
onSocialLogin(provider: string) => voidSocial login handler
socialProvidersArray<{ name: string; icon: ReactNode }>Social login providers
titlestring'Welcome back'Card title
descriptionstring'Sign in to your account'Card description
isLoadingbooleanfalseLoading state
errorstringForm-level error message
defaultEmailstringPre-filled email
classNamestringAdditional CSS classes

On this page