Skip to content
v0.2.10

CheckboxGroup

A named multiple-choice group with a shared array value and native form behavior.

Preview
Notifications

Use CheckboxGroup

CheckboxGroup is a named export of @flood-md/react. Connect the package once, then import what you use.

First time here? Connect Flood
Example import style
checkbox-group.tsxTSX
"use client";

import { FloodRoot, CheckboxGroup } from "@flood-md/react";
import "@flood-md/react/styles.css";

export function Example() {
  return (
    <FloodRoot>
      <CheckboxGroup name="notifications" legend="Notifications" options={[{ value: "updates", label: "Product updates" }, { value: "releases", label: "Release notes" }]} defaultValue={["updates"]} />
    </FloodRoot>
  );
}

Design notes

  • Composes Fieldset and existing native choice controls. The ref targets HTMLFieldSetElement; options need unique values and visible labels.
  • value/onValueChange is controlled; defaultValue initializes an uncontrolled group. Native form reset restores uncontrolled defaults without firing onValueChange; controlled values remain owned by the host.
  • name belongs to the inputs. The form prop associates every input with an external form. Disabled options and groups follow native submission rules.
  • CheckboxGroup has no required/min/max shortcut: a required checkbox means that specific checkbox. Validate the selected array in the host and use group status/message.

API reference

PropValuesDefault
legendReactNodeRequired
legendSize · 0.2.10"label" | "section"—
hideLabel · 0.2.3boolean—
hintReactNode—
errorReactNode—
messageReactNode—
status"error" | "warning" | "success" | "info"—
namestringRequired
optionsreadonly ChoiceOption[]Required
valuereadonly string[]—
defaultValuereadonly string[][]
onValueChange(value: string[]) => void—
orientation"vertical" | "horizontal""vertical"
Native HTML propsOmit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "children" | "defaultValue" | "role">Forwarded
View TypeScript source