본문으로 건너뛰기
cccskills
무료GitHub에 공개

login

Use when implementing user authentication and sign-in forms.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md4.4 KB
  • references/pattern.md25.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Login Form

User authentication and sign-in forms

What it solves

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.

When to use

Use Login Form to authenticate returning users and grant access to protected resources. Common scenarios include:

  • Web applications requiring user authentication before accessing features
  • E-commerce sites where users sign in to view orders, wishlists, and saved addresses
  • SaaS platforms gating features behind user accounts
  • Community or social platforms requiring identity for participation
  • Admin dashboards and internal tools with role-based access

When to avoid

  • Public-facing pages that don't require authentication
  • Read-only content that benefits from open access (blogs, documentation)
  • One-time interactions where authentication creates unnecessary friction
  • Kiosk or shared-device interfaces where session management is impractical

Implementation workflow

  1. Confirm the pattern matches the problem and constraints before copying the example.
  2. Start from the anatomy and examples in references/pattern.md, then choose the smallest viable variation.
  3. Apply accessibility, performance, and interaction guardrails before layering visual polish.
  4. Use the testing guidance to verify behavior across keyboard, screen reader, responsive, and failure scenarios.

Accessibility guardrails

Do's ✅

  • Associate all fields with <label> elements using for/id pairing
  • Use autocomplete="email" and autocomplete="current-password" for browser autofill
  • Display errors with role="alert" and link them to fields via aria-describedby
  • Mark invalid fields with aria-invalid="true"
  • Ensure the password toggle updates its aria-label when toggled
  • Support form submission via Enter key Don'ts ❌
  • Don't use placeholder as a replacement for labels
  • Don't disable the submit button without explaining why (use validation messages instead)

Performance guardrails

Target Metrics

  • Form render: < 100ms for the complete login form
  • Input response: < 50ms keystroke-to-display
  • Validation feedback: < 100ms for inline validation
  • Authentication request: < 1000ms perceived (show loading immediately)
  • Redirect after success: < 200ms navigation start

Optimization Strategies

Prefetch the Post-Login Destination

<link rel="prefetch" href="/dashboard" />

Common mistakes

Revealing Account Existence

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.

No Rate Limiting Feedback

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.

Clearing Fields on Error

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.

Related patterns


For full implementation detail, examples, and testing notes, see references/pattern.md.

Pattern page: https://uxpatterns.dev/patterns/authentication/login

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

accordion

무료

Use when implementing expand and collapse content sections.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

Use when implementing user account configuration and preferences.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

Use when implementing social activity and updates stream.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

ai-chat

무료

Use when implementing conversational AI chat interfaces.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

Use when implementing handling AI-specific errors.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

Use when implementing loading states for AI operations.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

thedaviddias/ux-patterns-for-developers2662026년 10월 5일 업데이트

thedaviddias의 스킬 모두 보기

이 스킬의 문제 신고