DocsComponentsInput

Input

Primitivev1.0

Full-featured form input system with 5 visual variants, 3 sizes, icon addons, leading/trailing text addons, labels, hints, live validation, and companion Select and Textarea components.

#ff7b72">import { FqInput, FqTextarea, FqSelect } from '@/components/harlowui/primitives/fq-input'
#ff7b72">export default function ContactForm() {
#ff7b72">return (
<#7ee787">form>
<#7ee787">FqInput label="Email" placeholder="you@company.com"
leftElement={<#7ee787">MailIcon />} variant="default" />
<#7ee787">FqSelect label="Topic" placeholder="Select a topic"
options={[{ value: #a5d6ff">'support', label: 'Support' }]} />
<#7ee787">FqTextarea label="Message" placeholder="How can we help?"
rows={4} />
</#7ee787">form>
)
}

Variants

Five visual styles to match any interface context.

Sizes

States

Default, focus, error, success, disabled, and read-only states with accessible messaging.

Optional helper text below the field

This field is required

Verified successfully

Icons & Elements

Nest any React element inside the input on either side.

Include the full URL

Text Addons

Combine text addons with input for currency, units, or protocol prefixes.

$
USD
https://
kg

Live Validation

Real-time inline validation with dynamic error/success states and icon feedback.

Password Toggle

Interactive right element for show/hide password with accessible labelling.

Select

Native select dropdown with consistent styling, labels, and error states.

Choose the account type that fits your needs

Priority is required

Textarea

Markdown is supported

Notes cannot be empty when status is rejected

Real-World Form Patterns

Production-ready form compositions using Input, Select, and Button together.

Create Account

Start your 14-day free trial

We'll never share your email

By signing up, you agree to our Terms and Privacy Policy

API Reference

FqInput

PropTypeDefaultDescription
variant"default" | "filled" | "underline" | "error" | "success""default"Visual style variant
inputSize"sm" | "md" | "lg""md"Input height and text size
labelstring-Label text rendered above the input
hintstring-Helper text below the input
errorstring-Error message, triggers error styling
successstring-Success message, triggers success styling
leftElementReactNode-Element positioned inside the input on the left (e.g. icon)
rightElementReactNode-Element positioned inside the input on the right (e.g. icon, button)
leadingAddonstring-Text addon rendered before the input (e.g. "$", "https://")
trailingAddonstring-Text addon rendered after the input (e.g. "USD", "kg")

FqSelect

PropTypeDefaultDescription
options*{ value: string; label: string; disabled?: boolean }[]-Array of option objects
placeholderstring-Placeholder option text
labelstring-Label text above the select
hintstring-Helper text below the select
errorstring-Error message with destructive styling