Files
nodarium/docs/UX.md
T
2026-05-07 17:40:30 +02:00

646 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Comprehensive UX Practices for Web Applications
## Introduction
This document consolidates many of the most important practical UX principles for modern web applications.
---
# 1. Core UX Principles
## 1.1 Visibility of System Status
Users should always understand:
* What the system is doing
* Whether an action succeeded
* Whether work is still in progress
* Whether an error occurred
### Good Practices
* Show loading indicators immediately
* Show success confirmations after important actions
* Show inline validation messages
* Display progress for long-running tasks
* Use skeleton loading states instead of blank screens
* Prevent silent failures
* Avoid ambiguous UI states
### Bad Practices
* Buttons with no feedback after clicking
* Infinite spinners without explanation
* Hidden background operations
* Saving without visible confirmation
---
## 1.2 Predictability and Consistency
Users build mental models quickly.
Breaking established expectations increases cognitive load and causes mistakes.
### Good Practices
* Use consistent layouts
* Keep interaction patterns stable
* Reuse common UI conventions
* Keep naming and terminology consistent
* Use standard keyboard shortcuts
* Make similar components behave similarly
### Bad Practices
* Different button styles for identical actions
* Inconsistent navigation behavior
* Custom controls that ignore platform conventions
* Unexpected modal behavior
---
## 1.3 Recognition Over Recall
Interfaces should minimize memory requirements.
Users should recognize options instead of remembering information.
### Good Practices
* Show recent searches
* Use autocomplete
* Display contextual hints
* Preserve previously entered values
* Use visible labels
* Keep important actions visible
### Bad Practices
* Placeholder-only labels
* Hidden functionality
* Requiring users to remember previous state
* Removing useful context during workflows
---
## 1.4 Error Prevention
Preventing mistakes is better than handling mistakes.
### Good Practices
* Disable impossible actions
* Validate input early
* Warn before destructive operations
* Use constrained input formats
* Use safe defaults
* Prefer undo over confirmation dialogs
### Bad Practices
* Destructive actions near common actions
* Easy accidental deletion
* Poor validation timing
* Irreversible operations without recovery
---
# 2. Input and Form UX
Forms are one of the most important and failure-prone areas in web applications.
---
## 2.1 Input Focus Behavior
### Good Practices
* Autofocus the primary field when appropriate
* Preserve focus during rerenders
* Preserve cursor position
* Support keyboard-first workflows
* Use logical tab ordering
### Auto-Selecting Input Text
Auto-selecting text on focus is context-dependent.
### Good Use Cases
* Quantity fields
* Rename dialogs
* Editable defaults
* Quick replacement workflows
* Temporary values users often replace entirely
### Bad Use Cases
* Long textareas
* Complex text editing
* Fields users commonly partially edit
* Rich text editing
### Principle
Only auto-select when full replacement is more likely than partial editing.
---
## 2.2 Labels and Placeholders
### Good Practices
* Always use visible labels
* Use placeholders only as supplementary examples
* Keep labels visible after typing
* Associate labels correctly for accessibility
### Bad Practices
* Placeholder-only forms
* Ambiguous labels
* Labels that disappear during editing
---
## 2.3 Validation
### Recommended Validation Timing
| Validation Type | Timing |
| ------------------- | --------- |
| Format validation | Immediate |
| Semantic validation | On blur |
| Server validation | On submit |
### Good Practices
* Show errors near the relevant field
* Explain how to fix issues
* Preserve entered values after errors
* Validate incrementally
* Use clear language
### Bad Practices
* Generic “Invalid input” messages
* Clearing form data after errors
* Delayed validation surprises
* Validation that interrupts typing
---
## 2.4 Input Types
### Good Practices
Use appropriate HTML input types:
* `email`
* `tel`
* `number`
* `date`
* `password`
* `search`
### Benefits
* Better mobile keyboards
* Native validation
* Improved accessibility
* Better autofill support
---
## 2.5 Form Submission
### Good Practices
* Enter submits forms when expected
* Escape cancels dialogs
* Show loading states during submission
* Prevent duplicate submissions
* Preserve draft state
* Allow keyboard submission
### Bad Practices
* Disabled submit buttons without explanation
* Hidden validation failures
* Silent submission failures
---
## 2.6 Dropdowns and Selection UX
### Good Practices
* Use radio buttons for small option sets
* Use searchable selects for large datasets
* Prefer autocomplete for many options
* Show selected state clearly
### Bad Practices
* Massive unsearchable dropdowns
* Nested dropdown hierarchies
* Multi-select controls without search
---
# 3. Navigation UX
---
## 3.1 Orientation
Users should always know:
* Where they are
* How they got there
* What they can do next
* How to go back
### Good Practices
* Highlight active navigation
* Use breadcrumbs when helpful
* Use meaningful page titles
* Preserve navigation consistency
---
## 3.2 Navigation Structure
### Good Practices
* Keep hierarchy shallow
* Group related actions
* Use descriptive names
* Keep primary actions stable
### Bad Practices
* Deep nesting
* Ambiguous navigation labels
* Constantly moving actions
---
## 3.3 URL Design
### Good Practices
* Use readable URLs
* Make URLs shareable
* Preserve app state in URLs when useful
* Support browser history correctly
### Bad Practices
* Opaque generated URLs
* Broken back button behavior
* Losing state during navigation
---
# 4. Interaction Design
---
## 4.1 Click Targets
### Good Practices
* Large clickable areas
* Adequate spacing between actions
* Clear hover/focus states
* Touch-friendly sizing
### Bad Practices
* Tiny clickable regions
* Overlapping interactive elements
* Hidden hit areas
---
## 4.2 Feedback
Every interaction should produce feedback.
### Good Practices
* Hover states
* Active states
* Loading indicators
* Success states
* Error states
* Optimistic updates when appropriate
### Bad Practices
* Dead-feeling interfaces
* Invisible processing
* Delayed reactions
---
## 4.3 Destructive Actions
### Good Practices
* Require confirmation for dangerous actions
* Prefer undo systems
* Visually distinguish destructive buttons
* Separate destructive actions spatially
### Bad Practices
* Immediate irreversible deletion
* Dangerous actions near common actions
* Ambiguous destructive wording
---
## 4.4 Modal UX
### Good Practices
* Trap keyboard focus
* Support Escape to close
* Restore focus after closing
* Prevent background interaction
* Keep modal purpose focused
### Bad Practices
* Nested modals
* Full workflows inside modals
* Losing unsaved work accidentally
---
# 5. Performance UX
Performance is a UX feature.
Users interpret slowness as unreliability.
---
## 5.1 Perceived Performance
### Good Practices
* Show immediate visual response
* Use optimistic UI updates
* Preload likely next content
* Stream content progressively
* Use skeleton loaders
### Bad Practices
* Blank screens during loading
* Long blocking operations
* Frozen interfaces
---
## 5.2 Layout Stability
### Good Practices
* Prevent layout shift
* Reserve image dimensions
* Avoid moving buttons during loading
* Keep skeletons aligned with final layout
### Bad Practices
* Jumping content
* Shifting controls
* Reflow-heavy rendering
---
## 5.3 Responsiveness
### Good Practices
* Keep UI interactive during async operations
* Avoid blocking the main thread
* Debounce expensive operations
* Virtualize large lists
### Bad Practices
* UI freezes
* Excessive rerenders
* Laggy typing experiences
---
# 6. Accessibility
Accessibility improves usability for everyone.
---
## 6.1 Keyboard Accessibility
### Good Practices
* Full keyboard navigation
* Visible focus indicators
* Logical tab order
* Keyboard shortcuts for power users
### Bad Practices
* Mouse-only workflows
* Hidden focus state
* Keyboard traps
---
## 6.2 Semantic HTML
### Good Practices
* Use proper semantic elements
* Use buttons for actions
* Use links for navigation
* Use headings correctly
### Bad Practices
* Clickable divs without accessibility support
* Fake buttons
* Missing semantic structure
---
## 6.3 Visual Accessibility
### Good Practices
* Sufficient color contrast
* Support reduced motion
* Avoid color-only communication
* Use scalable typography
### Bad Practices
* Tiny text
* Low contrast interfaces
* Flashing animations
---
## 6.4 Screen Reader Support
### Good Practices
* Proper labels
* Meaningful alt text
* ARIA only when necessary
* Correct live regions for updates
### Bad Practices
* Unlabeled controls
* Excessive ARIA misuse
* Non-announced state changes
---
# 7. Enterprise Application UX
Enterprise UX differs significantly from marketing-oriented consumer interfaces.
Power users often prioritize efficiency over visual minimalism.
---
## 7.1 Dense Information Design
### Good Practices
* Efficient data density
* Resizable tables
* Sticky headers
* Multi-column layouts
* High information throughput
### Bad Practices
* Excessive whitespace
* Oversimplified dashboards
* Hidden operational controls
---
## 7.2 Table UX
### Good Practices
* Sorting
* Filtering
* Column resizing
* Pagination or virtualization
* Keyboard navigation
* Export functionality
* Persistent user preferences
### Bad Practices
* Non-sortable enterprise tables
* Horizontal scrolling nightmares
* Missing filtering
---
## 7.3 Power User Workflows
### Good Practices
* Keyboard shortcuts
* Bulk actions
* Batch editing
* Command palettes
* State persistence
* Fast navigation
### Bad Practices
* Forced wizard workflows
* Excessive confirmations
* Repetitive manual work
---
# 8. Mobile UX
---
## 8.1 Touch Design
### Good Practices
* Large touch targets
* Thumb-friendly layouts
* Avoid hover dependencies
* Mobile-friendly spacing
### Bad Practices
* Tiny controls
* Hover-only interactions
* Precision-dependent gestures
---
## 8.2 Mobile Forms
### Good Practices
* Mobile keyboard optimization
* Minimal typing
* Autofill support
* Step-by-step flows when necessary
### Bad Practices
* Long complex forms
* Tiny input fields
* Excessive required typing
---
# 9. Cognitive Psychology and UX
---
## 9.1 Hicks Law
More choices increase decision time.
### Applications
* Reduce unnecessary options
* Group related actions
* Prioritize primary actions
---
## 9.2 Fittss Law
Closer and larger targets are easier to use.
### Applications
* Large primary buttons
* Edge/corner placement for important actions