Skip to content

Conversation

@jezweb
Copy link
Contributor

@jezweb jezweb commented Nov 6, 2025

Summary

This PR enhances the signup form with three key user experience improvements:

1. Increased Password Length Limit (20 → 128 characters)

  • Current 20-character limit was arbitrary and restrictive
  • New 128-character limit aligns with NIST recommendations
  • Supports passphrases (e.g., "correct horse battery staple mountain river")
  • Database already uses text type, so no migration needed

2. Simplified Labels & Removed Example Placeholder

  • Changed "Full Name" → "Name" for cleaner, more concise UI
  • Removed "Cgoing" placeholder which appeared confusing/like a typo
  • Improves clarity without reducing functionality

3. Password Confirmation with Real-time Validation

  • Added confirm password field to prevent typos
  • Real-time visual feedback using icons and border colors:
    • ✅ Green checkmark + green border when passwords match
    • ❌ Red X + red border when passwords don't match
    • Icons only appear when confirm field has content
  • Toast error if user attempts submission with mismatched passwords
  • Industry standard pattern that significantly reduces signup errors

Translation Support

All 6 supported languages updated:

  • English (en)
  • Korean (ko)
  • French (fr)
  • Japanese (ja)
  • Spanish (es)
  • Chinese (zh)

New translation keys:

  • confirmPassword: Label for confirmation field
  • passwordsDoNotMatch: Error message

Files Changed

  • src/lib/validations/password.ts - Password length limits
  • src/components/auth/email-sign-up.tsx - UI and validation logic
  • messages/*.json - All 6 translation files

Testing

  • ✅ Tested signup flow with matching passwords (success)
  • ✅ Tested signup flow with mismatched passwords (error shown)
  • ✅ Visual indicators work correctly (icons + borders)
  • ✅ 128-character password accepted
  • ✅ Step navigation preserves form state
  • ✅ All commits passed lint-staged hooks

Screenshots

name password

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

Jez and others added 5 commits November 7, 2025 00:21
Prevent accidental commits of fork management documentation:
- FORK_MANAGEMENT.md (fork strategy and custom features)
- CLAUDE.md (project context for Claude Code)
- SESSION.md (session state tracking)
- BRANCH_README.md (branch-specific notes)
- JEZWEB_SETUP.md (local setup notes)
- docs/FUTURE_FEATURE_IDEAS.md
- docs/MCP_CREDENTIAL_SECURITY.md
- docs/MCP_CREDENTIAL_SECURITY_ISSUE.md
- docs/features/

These files contain fork-specific context and should not be pushed to the repository.

Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Increases password length from 20 to 128 characters to support
passphrases and align with NIST recommendations. Database already
supports unlimited length (text type), so no migration needed.

Changes:
- Update regex pattern from {8,20} to {8,128}
- Update requirements text to reflect new range
- Update Zod max validation to 128 characters
Changes:
- Change "Full Name" to "Name" for clearer, more concise label
- Remove "Cgoing" placeholder (was confusing/looked like typo)

Improves user experience by removing unnecessary words and
potentially confusing example text.
Adds a confirm password field to the signup form with real-time
visual feedback to improve user experience and prevent typos.

Changes:
- Add confirmPassword to form state
- Import Check and X icons from lucide-react
- Add validation check in successPasswordStep before Zod validation
- Add second password field with real-time visual indicators:
  - Green checkmark icon when passwords match
  - Red X icon when passwords don't match
  - Green/red border colors on confirm field
  - Icons only show when confirmPassword has content
- Separate password fields into gap-4 container for better spacing

User experience improvements:
- Immediate feedback prevents submission errors
- Clear visual indicators (icons + border colors)
- Toast error if user tries to submit with mismatched passwords
Adds translations for new password confirmation field and error
message across all 6 supported languages.

New translation keys:
- confirmPassword: Label for password confirmation field
- passwordsDoNotMatch: Error when passwords don't match

Languages updated:
- English (en)
- Korean (ko)
- French (fr)
- Japanese (ja)
- Spanish (es)
- Chinese (zh)
@vercel
Copy link

vercel bot commented Nov 6, 2025

Someone is attempting to deploy a commit to the cgoinglove's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant