bit Bheadless

Field / Input

Form primitives with auto-wired ARIA labels, descriptions, and validation state.

Implementation: CSS Tailwind

Basic Field

BitBhField auto-wires for, id, and aria-describedby.

We'll never share your email.

Textarea

BitBhTextarea works identically.

Max 280 characters.

Select

BitBhSelect renders a native select with the same ARIA wiring.

Where you're based.

Disabled Field

data-disabled: cascades to label and input.

Cannot be changed.

Invalid Field

The aria-invalid: Tailwind variant lets you style invalid fields without a custom selector.

Password must be at least 8 characters.

Multiple Fields (form layout)

Each BitBhField manages its own id namespace.

Your work email.

EditForm validation

Inside an EditForm with DataAnnotationsValidator, controls bound with @bind-Value / @bind-Checked get aria-invalid (style with aria-invalid: / data-invalid:), and BitBhErrorMessage is wired into their aria-describedby automatically. The radio group is labelled via aria-labelledby and focused by a label click. Plain child content means no Context clashes inside the form. Submit empty to see it.

We'll send the receipt here.

An unhandled error has occurred. Reload 🗙