Skip to content
TrademarkTrademark
Docs
Components

Setting

Updated: September 21, 2026
View on GitHub

Every editor UI grows the same row: a label, sometimes a description, sometimes an explainer, and one control on the right. Setting is that row.

The control is passed as children rather than as a typed prop, so the component never has to know what can sit in it — including controls that do not exist yet.

Info

info puts a sentence of context behind a small icon beside the label, so a setting can explain itself without spending a line of the panel on a description that is only read once. It renders an InfoTip, which is also exported on its own for use anywhere else.

Groups

SettingGroup nests sub-settings inside its own box rather than beside it, so the relationship survives a panel with ten groups in it. The header control is what usually gates the body.

The group is a single surface — the header and the body it reveals share one background, separated by a hairline — so opening one grows the panel instead of stacking a second panel inside it. Its border is an alpha, which reads against whatever the group is nested in.

Axes

A property with more than one axis belongs in one row. SettingAxes puts them side by side, and wraps when the panel is too narrow, instead of splitting into two rows that read as unrelated settings.

API reference

Setting

Type
Default
label
Name of the setting.
React.ReactNode—
description
What it does, under the label.
React.ReactNode—
info
Extra detail behind an InfoTip.
React.ReactNode—
controlWidth
Width reserved for the control, in rem, so a column of settings lines up.
number14
children
The control itself.
React.ReactNode—
…and every FlexProps propinherited—

SettingGroup

Type
Default
label
React.ReactNode—
description
React.ReactNode—
info
React.ReactNode—
control
React.ReactNode—
open
boolean—
children
React.ReactNode—
…and every FlexProps propinherited—

SettingAxes

Type
Default
label
React.ReactNode—
info
React.ReactNode—
axesrequired
{ label: React.ReactNode; control: React.ReactNode }[]—
axisWidth
number13
…and every FlexProps propinherited—

InfoTip

Type
Default
children
React.ReactNode—
size
React.ComponentProps<typeof Icon>["size"]xs
…and every FlexProps propinherited—
Edit this page on GitHub