How to Style Input Fields in CSS
Use CSS input styling when you want form fields to match your design system and feel easier to use. The most important upgrades are spacing, borders, readable text, and clear focus feedback.
What you’ll build or solve
You’ll learn how to style input fields in CSS using padding, borders, colors, and focus states. You’ll also know how to make fields feel clean, clickable, and easy to scan.
Learn CSS on Mimo
When this approach works best
This approach is the right choice when default browser input styles look inconsistent with the rest of the page.
Common real-world scenarios include:
- Login forms
- Search bars
- Newsletter signups
- Checkout fields
- Dashboard filters
This is a bad idea when styling removes the focus indicator or lowers text contrast.
Prerequisites
You only need:
- A basic HTML input
- A text editor
- Basic HTML and CSS knowledge
Step-by-step instructions
Step 1: Style the base field and focus state
Start with padding, border, font size, and width.
HTML
<input class="email-field" placeholder="USA email">
<style>
.email-field {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 8px;
font-size: 16px;
}
</style>
Then add a clear focus state.
HTML
<style>
.email-field:focus {
border-color: #0057ff;
outline: none;
}
</style>
What to look for:
- Padding improves readability and tap comfort
- Rounded corners match modern UI patterns
- Use strong text and border contrast
:focusshould clearly show the active field- Keep width responsive for forms
Examples you can copy
Login field
HTML
<input class="login-input" placeholder="UK email">
<style>
.login-input {
width: 100%;
padding: 12px;
border: 1px solid #999;
border-radius: 8px;
}
</style>
Search bar
HTML
<input class="search" placeholder="Search USA docs">
<style>
.search {
width: 300px;
padding: 10px 16px;
border-radius: 999px;
}
</style>
Checkout field
HTML
<input class="checkout" placeholder="France address">
<style>
.checkout {
width: 100%;
padding: 14px;
border: 1px solid #ddd;
}
</style>
Common mistakes and how to fix them
Mistake 1: Removing focus visibility completely
What the reader might do:
HTML
input:focus {
outline: none;
}
Why it breaks: keyboard users lose the visual cue for the active field.
Corrected approach:
HTML
input:focus {
outline: none;
border-color: #0057ff;
}
Always replace the default focus style with another visible state.
Mistake 2: Too little padding
What the reader might do:
HTML
input {
padding: 2px;
}
Why it breaks: the field feels cramped and harder to tap on mobile.
Corrected approach:
HTML
input {
padding: 12px;
}
Mistake 3: Fixed widths in responsive forms
What the reader might do:
HTML
input {
width: 800px;
}
Why it breaks: the field can overflow smaller screens.
Corrected approach:
HTML
input {
width: 100%;
max-width: 800px;
}
Troubleshooting
If the field feels cramped, increase padding.
If the focus state disappears, add a clear border or shadow change.
If the field overflows mobile layouts, use width: 100%.
If text is hard to read, increase font size and border contrast.
Quick recap
- Style padding, borders, radius, and font size
- Use
width: 100%for flexible forms - Add a visible focus state
- Keep padding comfortable for touch
- Avoid removing focus without replacing it
Join 35M+ people learning for free on Mimo
4.8 out of 5 across 1M+ reviews
Check us out on Apple AppStore, Google Play Store, and Trustpilot