Skip to content
uiify

Fieldset

A semantic group of related form controls named by a legend.

Browsers
Chrome 123+Firefox 121+Safari 17.5+
Tier
0
Forced layout budget
0 ms
Axe budget
0
SSR compatible
Yes
Published contract
Test harness

Playground

Fieldset / Legend

Default

Contact preferences

Examples

Grouped preferences

Use the first-child legend to name the group and keep a native label on each control.

Fieldset / Legend

Default

Contact preferences
import { Checkbox, Fieldset, FieldsetLegend } from "@gunkin/uiify";

export default function Example() {
  return (
    <Fieldset>
      <FieldsetLegend>Contact preferences</FieldsetLegend>
      <Checkbox id="contact-email" label="Email" name="contact" value="email" />
      <Checkbox id="contact-sms" label="Text message" name="contact" value="sms" />
    </Fieldset>
  );
}

API

Fieldset

PropTypeDefaultDescription
childrenReactNode—Grouped controls and a first-child FieldsetLegend.
className / style / ref / native fieldset propsnative fieldset props—Native fieldset props, styles, events, and ref are forwarded.
renderReactElement | ((props, state) => ReactElement)—Replace the rendered element while keeping behavior and accessibility wiring.

FieldsetLegend

PropTypeDefaultDescription
childrenReactNode—Visible group name rendered as the native legend.
renderReactElement | ((props, state) => ReactElement)—Replace the rendered element while keeping behavior and accessibility wiring.

Keyboard

KeyAction

Accessibility

Fieldset and Legend render native fieldset and legend elements. Put FieldsetLegend first to name the group; each contained control still needs its own label. No synthetic group role or hidden legend is added.

Styling hooks

data-uiify-fieldsetdata-part="root|legend"