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 }) => void—Form submission handler
onForgotPassword() => void—Forgot password link handler
onSignUp() => void—Sign up link handler
onSocialLogin(provider: string) => void—Social 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
errorstring—Form-level error message
defaultEmailstring—Pre-filled email
classNamestring—Additional CSS classes

On this page