accordion
FreeUse when implementing expand and collapse content sections.
The English summary is being prepared. Showing the original description.
Use when implementing enter and edit text content.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
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
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when implementing expand and collapse content sections.
The English summary is being prepared. Showing the original description.
Use when implementing user account configuration and preferences.
The English summary is being prepared. Showing the original description.
Use when implementing social activity and updates stream.
The English summary is being prepared. Showing the original description.
Use when implementing conversational AI chat interfaces.
The English summary is being prepared. Showing the original description.
Use when implementing handling AI-specific errors.
The English summary is being prepared. Showing the original description.
Use when implementing loading states for AI operations.
The English summary is being prepared. Showing the original description.