23 Opinionated Big Little Details
Things that make a little big difference to user experience when building web applications.
- When a user gets their password wrong, and are using email to sign in, send an email with either a one time login URL, or a link to your forgot password flow.
- If you ask for verification codes and the length is fixed, auto submit the form when the last one is entered. e.g. See Stripe SMS codes component
- If you perform a password reset, and the user has verified their password twice - allow them to login from this screen, rather than redirecting to the login to ask them to fill details in again.
- Show a caps lock warning on password fields
- During signup, if you ask for an email first, perform a gravatar lookup to showcase their avatar and potentially fill in firstname / lastname. Other APIs are also applicable here to lower friction to signup.
- Auto-focus the first input field on forms.
- Display password rules before users receive validation errors, preferably with a live strength indicator.
- On long forms, preserve entered form data even if the session expires.
- Allow users to toggle visibility of entered passwords and sensitive fields.
- After errors, return focus to the first invalid field, and on mobile, auto scroll to it.
- Trim accidental whitespace from email inputs.
- Use appropriate keyboard types on mobile for specific fields (email, numeric code).
- Allow swipe to close menus on mobile, using touch down events etc. rather than just tapping hamburgers.
- Handle slow networks gracefully, and provide online / offline indication. Retry on failed requests.
- If you email a user, ensure they know which inbox to check, many people have multiple inboxes.
- Preserve filters and sorts. Users spend time configuring views. Respect them on next visit.
- If you ask for country of birth. Use the users current browser settings to either appropriately find the most likely country, or at least start the dropdown close to it.
- Long dropdowns, for the love of all things holy. Make them searchable
- Provide feedback with 100-300ms.
- Use verbs on buttons. If I see another button with 'Submit' on it, I might scream.
- Empty states should be educational. No reports? Create one now.
- Modals are a design smell. Too many modals feel claustrophobic and interrupt flow.
- Undo is often better than 'Are you sure?'