Input Feedback: Keypads and Fields
How should an app respond visually when a user types in a keypad or form field? Show press feedback within 100ms, fill PIN dots one by one, shake on error with a text explanation, use floating labels, and validate inline only after the user leaves the field.
Input must immediately show whether it registered and whether it was right. If the response is slow, people press the same key twice.
Terms and previews
Tap a preview to pause it; tap again to play.
Press feedback
Shrinks slightly or changes color the moment it is pressed
PIN dot fill
The password dots fill in one by one
Shake on error
The input field shakes briefly left and right when wrong
Floating label
The label inside the field moves up and shrinks when typing starts
Inline validation
Right or wrong is shown just below the field while typing
How to use it
- Show press feedback at the moment of pressing, before the finger lifts (within 100ms).
- When something is wrong, do not rely on a shake alone. Also say in text what is wrong. A shake does not reach screen reader users.
- Start inline validation when the user leaves the field. Showing a red error from the first character feels like being scolded.
- Use a security keypad that shuffles the digits only when security requires it. It is clearly less convenient to use.
Prompts to copy
6-digit PIN
Build a 6-digit PIN entry screen. - The moment a number key is pressed, show Press feedback: scale 0.94, 100ms. - Six dots at the top fill in one by one (PIN dot fill). - If wrong, the row of dots does a Shake on error for 300ms and then clears, and below it shows "Incorrect PIN (4 attempts left)". - Keys are at least 48px.
Sign-up form fields
Build the input fields of a sign-up form. - Floating label: when typing starts, the label moves up and shrinks, 150ms. - Start Inline validation when the user leaves the field. If wrong, give the reason in one line below the field. - When the user fixes it, the error text disappears right away.
Source posts: @ui_motion_prompts, @ui_motion_prompts