Features Select
The FeaturesSelect
component provides a flexible way to create checkbox or radio-based feature selection cards.
Usage
import { FeaturesSelect } from "@newfold/ui-component-library";
<FeaturesSelect>
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
>
Feature 1
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-2"
name="feature-group"
value="2"
>
Feature 2
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-3"
name="feature-group"
value="3"
>
Feature 3
</FeaturesSelect.Feature>
</FeaturesSelect>
As shown in the example above, the FeaturesSelect
component wraps a set of FeaturesSelect.Feature
components. The FeaturesSelect
can be used as container to control the behavior and layout of the features while each FeaturesSelect.Feature
component represents an option card that can be selected by the user.
Behavior
You can use the behavior
prop in the FeaturesSelect
component to specify whether the feature cards should behave as checkboxes or radio buttons. The default behavior is checkbox
.
1. Checkbox (default)
The checkbox
behavior allows users to select multiple feature cards.
<FeaturesSelect behavior="checkbox">
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
>
Feature 1
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-2"
name="feature-group"
value="2"
>
Feature 2
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-3"
name="feature-group"
value="3"
>
Feature 3
</FeaturesSelect.Feature>
</FeaturesSelect>
2. Radio
The radio
behavior allows users to select only one feature card.
<FeaturesSelect behavior="radio">
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
>
Feature 1
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-2"
name="feature-group"
value="2"
>
Feature 2
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-3"
name="feature-group"
value="3"
>
Feature 3
</FeaturesSelect.Feature>
</FeaturesSelect>
Layout
You can use the layout
prop in the FeaturesSelect
component to specify the layout of the feature cards. There are two layout options: 'row' and 'column'. The default layout is 'row'.
1. Row (default)
The row
layout displays the feature cards in a horizontal row.
<FeaturesSelect layout="row">
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
>
Feature 1
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-2"
name="feature-group"
value="2"
>
Feature 2
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-3"
name="feature-group"
value="3"
>
Feature 3
</FeaturesSelect.Feature>
</FeaturesSelect>
2. Column
The column
layout displays the feature cards in a vertical column.
<FeaturesSelect layout="column">
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
>
Feature 1
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-2"
name="feature-group"
value="2"
>
Feature 2
</FeaturesSelect.Feature>
<FeaturesSelect.Feature
id="feature-3"
name="feature-group"
value="3"
>
Feature 3
</FeaturesSelect.Feature>
</FeaturesSelect>
To limit the width of the feature cards in the column layout, you can use the className
prop to apply custom CSS classes. (see example below)
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
className="nfd-w-fit"
>
Feature 1
</FeaturesSelect.Feature>
Props
Attribute | Type | Description | Default |
---|---|---|---|
behavior | checkbox | radio | | Input behavior. | checkbox |
layout | row | column | | Layout direction. | row |
className | string | | CSS class. | - |
children | node | | - | - |
FeaturesSelect.Feature
The FeaturesSelect.Feature
component is used to create a feature card that can be selected by the user.
import { FeaturesSelect } from "@newfold/ui-component-library";
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
className="nfd-w-fit"
>
Feature 1
</FeaturesSelect.Feature>
Label
Use the label
prop to render a label under the feature card.
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
className="nfd-w-fit"
label="Feature 1"
>
Feature 1 with label
</FeaturesSelect.Feature>
Disabled
Use the disabled
prop to disable the feature card.
<FeaturesSelect.Feature
id="feature-1"
name="feature-group"
value="1"
className="nfd-w-fit"
disabled
>
Feature 1
</FeaturesSelect.Feature>
FeaturesSelect.Feature Props
Attribute | Type | Description | Default |
---|---|---|---|
id* | string | | Input ID. | - |
name* | string | | Input group name. | - |
value* | string | | Input value. | - |
type | checkbox | radio | | Input type. When used inside a FeaturesSelect component, the type is inherited from the parent. | checkbox |
label | string | | Input label to render under the card. | - |
labelTextAlign | left | right | center | | Text alignment for the label. | center |
disabled | boolean | | Disables the input. | - |
screenReaderLabel* | string | | Screen reader label. | - |
className | string | | CSS class. | - |
Children | node | | Children. | - |