Fieldset

Fieldset visually integrates a label with its form element.

Usage#

import { Fieldset } from 'primereact/fieldset';
<Fieldset>
    <Fieldset.Legend />
    <Fieldset.Content />
</Fieldset>

Examples#

Basic#

Demonstrates a simple fieldset component with a legend and content for organizing related information in a structured manner.

Legend

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

basic-demo.tsx
'use client';

import { Fieldset } from 'primereact/fieldset';

export default function BasicDemo() {
    return (
        <div>
            <Fieldset>
                <Fieldset.Legend>Legend</Fieldset.Legend>
                <Fieldset.Content>
                    <p>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
                        enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
                        in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
                        proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                    </p>
                </Fieldset.Content>
            </Fieldset>
        </div>
    );
}

Toggleable#

Shows a fieldset with collapsible content that can be shown or hidden by clicking on the legend.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

toggleable-demo.tsx
'use client';

import { Motion } from '@primereact/core/motion';
import { MinusIcon, PlusIcon } from '@primereact/icons';
import { Button } from 'primereact/button';
import { Fieldset } from 'primereact/fieldset';
import * as React from 'react';

export default function ToggleableDemo() {
    const [show, setShow] = React.useState(true);

    return (
        <div>
            <Fieldset>
                <Fieldset.Legend>
                    <Button onClick={() => setShow((prev) => !prev)} variant="text">
                        {show ? <MinusIcon /> : <PlusIcon />}
                        Legend
                    </Button>
                </Fieldset.Legend>
                <Motion in={show} name="p-toggleable-content">
                    <Fieldset.Content>
                        <p className="m-0">
                            Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
                            aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
                            aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
                            cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                        </p>
                    </Fieldset.Content>
                </Motion>
            </Fieldset>
        </div>
    );
}

Accessibility#

Screen Reader#

Fieldset component uses the semantic fieldset element.

Keyboard Support#

KeyFunction
tabMoves focus to the next the focusable element in the page tab sequence.
shift + tabMoves focus to the previous the focusable element in the page tab sequence.
enterToggles the visibility of the content.
spaceToggles the visibility of the content.