‮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

‮Prop‬‮Type‬‮Default‬‮Description‬
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

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

‮Keyboard‬

‮Key‬‮Action‬

‮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"