Skip to main content
react-md

Fieldset

The Fieldset component can be used to create an unstyled fieldset to group several controls within a web form.

Simple Example

The Fieldset should be used with the Legend component.

Name
import { Box } from "@react-md/core/box/Box";
import { Fieldset } from "@react-md/core/form/Fieldset";
import { Form } from "@react-md/core/form/Form";
import { Legend } from "@react-md/core/form/Legend";
import { TextField } from "@react-md/core/form/TextField";
import { type ReactElement } from "react";

export default function SimpleExample(): ReactElement {
  return (
    <Form>
      <Fieldset>
        <Legend>Name</Legend>
        <Box grid gridColumns={1}>
          <TextField
            label="First Name"
            autoCompleteValue="given-name"
            required
          />
          <TextField label="Middle Name" autoCompleteValue="additional-name" />
          <TextField
            label="Last Name"
            autoCompleteValue="family-name"
            required
          />
        </Box>
      </Fieldset>
    </Form>
  );
}

Press Enter to start editing.

Full Width

The Fieldset can span the entire width by enabling the fullWidth prop.

Name
import { Box } from "@react-md/core/box/Box";
import { box } from "@react-md/core/box/styles";
import { Fieldset } from "@react-md/core/form/Fieldset";
import { Form } from "@react-md/core/form/Form";
import { Legend } from "@react-md/core/form/Legend";
import { TextField } from "@react-md/core/form/TextField";
import { type ReactElement } from "react";

export default function FullWidthExample(): ReactElement {
  return (
    <Form className={box({ fullWidth: true })}>
      <Fieldset fullWidth>
        <Legend>Name</Legend>
        <Box grid gridColumns={{ phone: 1, tablet: 3 }}>
          <TextField
            label="First Name"
            autoCompleteValue="given-name"
            required
          />
          <TextField label="Middle Name" autoCompleteValue="additional-name" />
          <TextField
            label="Last Name"
            autoCompleteValue="family-name"
            required
          />
        </Box>
      </Fieldset>
    </Form>
  );
}

Press Enter to start editing.

Floating Legend

Set the floatingLegend prop to true to allow the Legend to float like a Label.

See the Legend demos for more info around this behavior and additional styling available.

Name
import { Box } from "@react-md/core/box/Box";
import { box } from "@react-md/core/box/styles";
import { Fieldset } from "@react-md/core/form/Fieldset";
import { Form } from "@react-md/core/form/Form";
import { Legend } from "@react-md/core/form/Legend";
import { TextField } from "@react-md/core/form/TextField";
import { type ReactElement } from "react";

export default function FloatingLegendExample(): ReactElement {
  return (
    <Form className={box({ fullWidth: true })}>
      <Fieldset fullWidth floatingLegend>
        <Legend floating>Name</Legend>
        <Box grid gridColumns={{ phone: 1, tablet: 3 }} disablePadding>
          <TextField
            placeholder="First Name"
            autoCompleteValue="given-name"
            required
          />
          <TextField
            placeholder="Middle Name"
            autoCompleteValue="additional-name"
          />
          <TextField
            placeholder="Last Name"
            autoCompleteValue="family-name"
            required
          />
        </Box>
      </Fieldset>
    </Form>
  );
}

Press Enter to start editing.