skills/login/SKILL.md
Use when implementing user authentication and sign-in forms.
npx skillsauth add thedaviddias/ux-patterns-for-developers loginInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
User authentication and sign-in forms
Login Form is the primary gateway through which users authenticate and gain access to protected content and features. It typically consists of an identifier field (email or username), a password field, and a submit button, often accompanied by "Remember me", "Forgot password", and social login options. A well-designed login form balances security with usability — minimizing friction for legitimate users while protecting against unauthorized access.
Use Login Form to authenticate returning users and grant access to protected resources. Common scenarios include:
references/pattern.md, then choose the smallest viable variation.Do's ✅
<label> elements using for/id pairingautocomplete="email" and autocomplete="current-password" for browser autofillrole="alert" and link them to fields via aria-describedbyaria-invalid="true"aria-label when toggledplaceholder as a replacement for labelsPrefetch the Post-Login Destination
<link rel="prefetch" href="/dashboard" />
The Problem: Error messages like "No account with that email" or "Wrong password" let attackers enumerate valid accounts.
How to Fix It: Use a generic message: "Invalid email or password. Please try again." Apply the same response time for both cases.
The Problem: Users can submit the form endlessly with no indication that their account is being locked or rate-limited.
How to Fix It: After 3-5 failed attempts, show a message: "Too many attempts. Please wait 30 seconds before trying again." Implement server-side rate limiting with exponential backoff.
The Problem: The form clears the email field on failed login
How to Fix It: Preserve the email value after a failed attempt. Only clear the password field, as retyping the password is a security best practice.
For full implementation detail, examples, and testing notes, see references/pattern.md.
Pattern page: https://uxpatterns.dev/patterns/authentication/login
tools
Use when implementing help users understand their current location.
tools
Use when implementing multi-step forms and processes.
content-media
Use when implementing video playback with controls.
development
Use when choosing, comparing, or implementing UX patterns across the UX Patterns for Developers corpus.