Forms
Input fields, textareas, selects and form elements with validation states and helper text.
Text Input
Basic text input field with label and placeholder.
HTML
<div class="focus-form-group">
<label class="focus-form-label">Email Address</label>
<input type="email" class="focus-input" placeholder="Enter your email">
</div>
<div class="focus-form-group">
<label class="focus-form-label required">Password</label>
<input type="password" class="focus-input" placeholder="Enter your password">
</div>
Input Sizes
Different input sizes using .focus-input-sm and .focus-input-lg.
HTML
<input type="text" class="focus-input focus-input-sm" placeholder="Small size">
<input type="text" class="focus-input" placeholder="Default size">
<input type="text" class="focus-input focus-input-lg" placeholder="Large size">
Textarea
Multi-line text input with vertical resize.
HTML
<div class="focus-form-group">
<label class="focus-form-label">Message</label>
<textarea class="focus-textarea" placeholder="Enter your message here..." rows="4"></textarea>
</div>
Select Dropdown
Dropdown select element for choosing from options.
HTML
<div class="focus-form-group">
<label class="focus-form-label">Country</label>
<select class="focus-select">
<option value="">Choose a country...</option>
<option value="us">United States</option>
<option value="uk">United Kingdom</option>
<option value="de">Germany</option>
</select>
</div>
Search Box
Search input with icon using .focus-search-box.
HTML
<div class="focus-search-box">
<i class="fa fa-search"></i>
<input type="text" class="focus-input focus-search-input" placeholder="Search...">
</div>
Validation States
Show validation feedback with .focus-input-valid and .focus-input-error classes.
Looks good!
Please provide a valid email address.
HTML
<!-- Valid State -->
<div class="focus-form-group">
<label class="focus-form-label">Valid Input</label>
<input type="text" class="focus-input focus-input-valid" value="john.doe@example.com">
<span class="focus-form-help">Looks good!</span>
</div>
<!-- Invalid State -->
<div class="focus-form-group">
<label class="focus-form-label">Invalid Input</label>
<input type="text" class="focus-input focus-input-error" value="invalid-email">
<span class="focus-form-error">Please provide a valid email address.</span>
</div>
Helper Text & Error Messages
Provide additional context with .focus-form-help and error messages with .focus-form-error.
Must be 4-20 characters long.
HTML
<div class="focus-form-group">
<label class="focus-form-label">Username</label>
<input type="text" class="focus-input" placeholder="Enter username">
<span class="focus-form-help">Must be 4-20 characters long.</span>
</div>
Checkboxes & Radio Buttons
Checkbox and radio button inputs with labels.
HTML
<!-- Checkboxes -->
<label class="focus-checkbox">
<input type="checkbox" checked>
<span>I agree to the terms and conditions</span>
</label>
<!-- Radio Buttons -->
<label class="focus-radio">
<input type="radio" name="payment" checked>
<span>Credit Card</span>
</label>
<label class="focus-radio">
<input type="radio" name="payment">
<span>PayPal</span>
</label>
Disabled State
Disabled inputs cannot be interacted with.
HTML
<input type="text" class="focus-input" placeholder="Cannot edit this" disabled>
<select class="focus-select" disabled>
<option>Cannot select</option>
</select>
Interactive Form Builder
Build and preview custom form configurations.
Builder Options
Preview
Generated Code
HTML
<div class="focus-form-group">
<label class="focus-form-label">Label</label>
<input type="text" class="focus-input" placeholder="Enter text">
</div>
JavaScript Validation Example
Integrate form validation with JavaScript for real-time feedback.
JavaScript
const form = document.getElementById('exampleForm');
const emailInput = document.getElementById('emailInput');
const emailError = document.getElementById('emailError');
form.addEventListener('submit', (e) => {
e.preventDefault();
// Simple email validation
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const isValid = emailRegex.test(emailInput.value);
if (isValid) {
emailInput.classList.remove('focus-input-error');
emailInput.classList.add('focus-input-valid');
emailError.style.display = 'none';
} else {
emailInput.classList.remove('focus-input-valid');
emailInput.classList.add('focus-input-error');
emailError.textContent = 'Please enter a valid email address';
emailError.style.display = 'block';
}
});
CSS Classes Reference
| Class | Description |
|---|---|
.focus-form-group |
Container for form field with spacing |
.focus-form-label |
Styled label for form inputs |
.focus-form-label.required |
Adds red asterisk (*) to label |
.focus-input |
Base input field styling |
.focus-input-sm |
Small input size |
.focus-input-lg |
Large input size |
.focus-textarea |
Multi-line text input with vertical resize |
.focus-select |
Dropdown select element styling |
.focus-search-box |
Container for search input with icon |
.focus-search-input |
Input with left padding for icon |
.focus-input-valid |
Green border for valid input (also works with textarea and select) |
.focus-input-error |
Red border for invalid input (also works with textarea and select) |
.focus-form-help |
Helper text below input (gray) |
.focus-form-error |
Error message below input (red) |
.focus-checkbox |
Checkbox with label wrapper |
.focus-radio |
Radio button with label wrapper |