Field: Required and optional
Set indicator on a FieldGroup, FieldSet or Field and every label inside marks itself from its control's required attribute. "optional" tags the fields people can skip, which reads calmer when most fields are required. "required" adds an asterisk. The mark is hidden from screen readers because the control already announces it.
This adds the example as components/examples/field/indicator.tsx, together with the Field component and the HextaUI theme tokens it needs.
pnpm dlx shadcn@latest add https://hextaui.com/r/field-indicator.jsonTo add only the component, follow the Field installation.
Props in this example
The Field props this example sets, from the API reference.
| Prop | Type | Default |
|---|---|---|
indicatorApplies to every field inside. | "required" | "optional" | null | – |
Every prop is in the Field API reference.
- Input
- Validation
- Custom validation
- Status
- Character count
- Errors from a form library or server
- Checkboxes
- Choice cards
- Fieldset
- Responsive
- Disabled
- Long content
- Right to left
See them all, with keyboard support and accessibility notes, on the Field page.
- InputA text input with three sizes, invalid and read-only states, native validation styling and a 16px touch font so phones never zoom in.
- MotionThe easing curves, durations and reduced-motion check every component animates with, plus hooks for size morphs and sliding highlights.
- SeparatorA hairline that divides content horizontally or vertically, with an optional label and a decorative mode for purely visual lines.
- useComposedRefKeeps a ref to your own element while still forwarding it to whatever ref the parent passed in.
- useMergedRefCombines any number of callback and object refs into one, with React 19 ref cleanup for each of them.
- CalendarA date grid for single, range and multiple selection, with sliding months, range previews and touch-sized days.