Appearance
✨ UX Patterns & Best Practices Standards for Flutter
Core Standards
User Experience Requirements
- Use FocusNode management for proper text field focus control
- Implement SafeArea to avoid system UI overlaps on all pages
- Hide keyboard when tapping outside input fields using GestureDetector
- Use proper hints and labels for all input fields
- Implement proper loading states with progress indicators
- Use proper error states with clear error messages and recovery actions
Form & Input Patterns
- Implement proper form validation with clear error messages
- Use proper input decorations with hints and labels
- Implement proper keyboard types for different input scenarios
- Use proper text input actions for form navigation (next, done, search)
- Implement proper auto-focus management for multi-field forms
- Use proper input formatters for format-specific inputs
Navigation & Feedback Patterns
- Use proper navigation transitions for smooth user experience
- Implement proper back navigation handling with confirmation dialogs when needed
- Use proper loading feedback for async operations
- Implement proper success feedback for user actions
- Use proper snackbars for non-intrusive notifications
- Implement proper confirmation dialogs for destructive actions
Common Violations
❌ DO NOT Violate These Rules
- Don't forget SafeArea - Always wrap content with SafeArea to avoid system UI overlaps
- Don't ignore keyboard dismissal - Always hide keyboard when tapping outside input fields
- Don't forget focus management - Always manage FocusNode lifecycle properly
- Don't skip input hints - Always provide clear hints and labels for all inputs
- Don't ignore loading states - Always show loading indicators for async operations
- Don't forget error handling - Always provide clear error messages and recovery actions
- Don't use inconsistent feedback - Always use consistent feedback patterns
- Don't ignore form validation - Always validate inputs before submission
- Don't forget confirmation dialogs - Always confirm destructive actions
- Don't use confusing navigation - Always provide clear navigation patterns
✅ ALWAYS Follow These Rules
- Use SafeArea on all pages to avoid system UI overlaps
- Implement keyboard dismissal with GestureDetector on tap outside inputs
- Manage FocusNode lifecycle properly with dispose methods
- Provide clear hints and labels for all input fields
- Show loading indicators for all async operations
- Handle errors gracefully with clear messages and recovery options
- Use consistent feedback patterns for similar actions
- Validate form inputs before submission with clear error messages
- Confirm destructive actions with proper dialog confirmation
- Test keyboard behavior on different screen sizes and orientations
- Use proper keyboard types for different input scenarios
- Implement proper text input actions for form navigation
- Handle auto-focus properly in multi-field forms
- Use proper input formatters for format-specific inputs
- Provide proper navigation feedback for all navigation actions