sp-field-group

Examples API

Attributes and Properties #

Property Attribute Type Default Description horizontal horizontal boolean false invalid invalid boolean false label label string '' vertical vertical boolean false

Slots #

Name Description default slot the form controls that make up the group help-text default or non-negative help text to associate to your form element negative-help-text negative help text to associate to your form element when `invalid`

Description #

An <sp-field-group> element is used to layout a group of fields, usually <sp-checkbox> elements. It can be leveraged for vertical or horizontal organization of the fields that are supplied as its children.

Usage #

See it on NPM! How big is this package in your project?

yarn add @spectrum-web-components/field-group

Import the side effectful registration of <sp-field-group> via:

import '@spectrum-web-components/field-group/sp-field-group.js';

When looking to leverage the FieldGroup base class as a type and/or for extension purposes, do so via:

import { FieldGroup } from '@spectrum-web-components/field-group';

Example #

<sp-field-label for="horizontal">
    Choose from horizonally placed options
</sp-field-label>
<sp-field-group horizontal id="horizontal">
    <sp-checkbox>Checkbox 1</sp-checkbox>
    <sp-checkbox>Checkbox 2</sp-checkbox>
    <sp-checkbox checked>Checkbox 3</sp-checkbox>
    <sp-checkbox>Checkbox 4</sp-checkbox>
    <sp-checkbox>Checkbox 5</sp-checkbox>
</sp-field-group>

Vertical #

<sp-field-label for="vertical">
    Choose from vertically placed options
</sp-field-label>
<sp-field-group vertical id="vertical">
    <sp-checkbox>Checkbox 1</sp-checkbox>
    <sp-checkbox>Checkbox 2</sp-checkbox>
    <sp-checkbox>Checkbox 3</sp-checkbox>
    <sp-checkbox>Checkbox 4</sp-checkbox>
    <sp-checkbox checked>Checkbox 5</sp-checkbox>
</sp-field-group>

Help text #

Help text can be accessibly associated with an <sp-field-group> element by using the help-text or negative-help-text slots. When using the negative-help-text slot, <sp-field-group> will self manage the presence of this content based on the value of the invalid property on your <sp-field-group> element. Content within the help-text slot will be show by default. When your <sp-field-group> should receive help text based on state outside of the complexity of invalid or not, manage the content addressed to the help-text from above to ensure that it displays the right messaging and possesses the right variant.

Self managed
<sp-field-group horizontal id="self" label="What are your favorite fruits?">
    <sp-checkbox value="apple">Apple</sp-checkbox>
    <sp-checkbox
        value="not-a-fruit"
        onchange="javascript:this.parentElement.invalid = this.checked"
    >
        Lettuce
    </sp-checkbox>
    <sp-checkbox value="strawberry" checked>Strawberry</sp-checkbox>
    <sp-help-text slot="help-text">One of these is not a fruit.</sp-help-text>
    <sp-help-text slot="negative-help-text" icon>
        Choose actual fruit(s).
    </sp-help-text>
</sp-field-group>
Managed from above
<sp-field-label for="above">What are your favorite fruits?</sp-field-label>
<sp-field-group horizontal id="above">
    <sp-checkbox value="apple">Apple</sp-checkbox>
    <sp-checkbox
        value="not-a-fruit"
        onchange="
            const helpText = this.parentElement.querySelector(`[slot='help-text']`);
            helpText.icon = this.checked;
            helpText.textContent = this.checked ? 'Choose actual fruit(s).' : 'One of these is not a fruit.';
            helpText.variant = this.checked ? 'negative' : 'neutral';
        "
    >
        Lettuce
    </sp-checkbox>
    <sp-checkbox value="strawberry" checked>Strawberry</sp-checkbox>
    <sp-help-text slot="help-text">One of these is not a fruit.</sp-help-text>
</sp-field-group>