skills/text-field/SKILL.md
Use when implementing enter and edit text content.
npx skillsauth add thedaviddias/ux-patterns-for-developers text-fieldInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Enter and edit text content
A Text Field is a fundamental form input component that allows users to enter and edit text-based data. It is commonly used in forms, search fields, authentication fields, and messaging interfaces. Text fields can accept single-line or multi-line input and may include additional features like placeholders, character counters, validation messages, and formatting assistance.
Use a text field when you need users to input freeform text, such as:
references/pattern.md, then choose the smallest viable variation.Text fields should support standard keyboard navigation and interactions to ensure accessibility and usability.
| Key | Action |
| ------------------------- | ----------------------------------------------------------------- |
| Tab | Moves focus to the next interactive element. |
| Shift + Tab | Moves focus to the previous interactive element. |
| Enter (inside a form) | Submits the form (unless prevented). |
| Arrow Left / Right | Moves the text cursor within the input. |
| Arrow Up / Down | Moves the cursor within multi-line text fields (textarea). |
| Esc | If inside a search field, clears input (optional behavior). |
Target performance metrics for text field components:
The Problem: Relying on placeholder text as the only label makes the field inaccessible when users start typing, and screen readers may not announce it properly.
<!-- Bad: Placeholder as label -->
<input type="text" placeholder="First Name">
How to Fix It? Always provide a visible label and use placeholder for hints or examples only.
<!-- Good: Label + helpful placeholder -->
<label for="firstName">First Name</label>
<input type="text" id="firstName" placeholder="e.g., John">
The Problem: Showing error messages too early (on first keystroke) or too late (only on form submission) frustrates users.
How to Fix It? Use progressive validation:
// Good: Progressive validation
function validateField(input, hasBeenBlurred) {
if (hasBeenBlurred && input.value.length > 0) {
// Show real-time validation after first blur
showValidationFeedback(input);
}
}
The Problem: Not providing clear guidance on how to fix validation errors leaves users stuck.
How to Fix It? Include specific, actionable error messages with examples.
<!-- Bad: Vague error -->
<output class="error">Invalid input</output>
<!-- Good: Specific guidance -->
<output class="error">
Password must contain at least 8 characters, including 1 number and 1 special character.
Example: MyPass123!
</output>
For full implementation detail, examples, and testing notes, see references/pattern.md.
Pattern page: https://uxpatterns.dev/patterns/forms/text-field
tools
Use when implementing help users understand their current location.
tools
Use when implementing multi-step forms and processes.
content-media
Use when implementing video playback with controls.
development
Use when choosing, comparing, or implementing UX patterns across the UX Patterns for Developers corpus.