feat: add UI/UX polish with navigation rail, confirm dialogs, welcome banner, and form validation
- Add NavigationRail component (desktop vertical icon sidebar + mobile bottom tab bar) - Add ConfirmDialog with promise-based useConfirmDialog hook for async confirmation flow - Add WelcomeBanner onboarding component (one-time display, localStorage persistence) - Polish login form UX (shake on error, TOTP slide animation, password visibility toggle, session expired banner) - Add inline form validation with shake animation in email composer and contacts - Add empty state patterns for contacts (no data vs no search results with contextual actions) - Improve toast notification system with undo action support and typed durations - Add WCAG AA prefers-reduced-motion media query, safe area insets, sr-only live regions - Add template settings tab and keyboard shortcut integration - Update all 8 locale translations
This commit is contained in:
@@ -32,11 +32,20 @@ This webmail client is designed to work seamlessly with [**Stalwart Mail Server*
|
||||
- Clean, minimalist three-pane layout
|
||||
- Dark and light theme support
|
||||
- Responsive design for mobile and desktop
|
||||
- Navigation rail (desktop icon sidebar + mobile bottom tab bar)
|
||||
- Keyboard shortcuts for power users
|
||||
- Drag-and-drop email organization
|
||||
- Right-click context menus
|
||||
- Smooth animations and transitions
|
||||
- Smooth animations and transitions (respects prefers-reduced-motion)
|
||||
- Infinite scroll pagination
|
||||
- Welcome banner for first-time users
|
||||
- Confirmation dialogs with promise-based async flow
|
||||
- Toast notifications with undo action support
|
||||
- Inline form validation with shake animation feedback
|
||||
- Empty state patterns with contextual actions
|
||||
- Login UX polish (error shake, password visibility toggle, session expired banner)
|
||||
- Safe area inset support for notched devices
|
||||
- Screen reader live region announcements
|
||||
|
||||
### Real-time Updates
|
||||
- Push notifications via JMAP EventSource
|
||||
|
||||
Reference in New Issue
Block a user