Dropdown menu for showing and hiding table columns.
ColumnVisibilityMenu gives data-heavy screens a consistent column picker without asking every table to reimplement menu state.
Toggle optional columns while keeping required columns locked.
<ColumnVisibilityMenu
columns={[
{ id: "name", label: "Name", disabled: true },
{ id: "owner", label: "Owner" },
{ id: "status", label: "Status" },
{ id: "updated", label: "Updated" },
]}
defaultVisibleColumnIds={["name", "owner", "status"]}
/>import { ColumnVisibilityMenu } from "@froggdesign/enter-ui-react";<ColumnVisibilityMenu
columns={columns}
visibleColumnIds={visibleColumnIds}
onVisibleColumnIdsChange={setVisibleColumnIds}
/>Pair this with DataTable, DataGrid, DataToolbar, and saved filter views in internal tools where users need to personalize dense operational data.
The menu uses checkbox menu items with keyboard navigation from the dropdown primitive. Disabled columns remain visible in the menu but cannot be toggled.
columns: { id, label, disabled? }[].visibleColumnIds: controlled visible ids.defaultVisibleColumnIds: initial visible ids for uncontrolled usage.onVisibleColumnIdsChange: called with ordered visible ids.disabled: disables the trigger and menu actions.ColumnVisibilityMenu uses .eui-column-visibility-menu classes and FroggDesign tokens for layout, state, focus, and disabled styling.