2.0 alpha
These docs describe 2.0. Install it with @once-ui-system/core@alpha.
On 1.8.x? Read the 1.x docs
TrademarkTrademarkDocs
Ctrl k
Search docs...
Components

Setting

Updated: August 30, 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 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. 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. 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.
Prop
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
React.ReactNode
…and every FlexProps propinherited
Prop
Type
Default
label
ReactNode
description
ReactNode
info
ReactNode
control
ReactNode
open
boolean
children
React.ReactNode
…and every FlexProps propinherited
Prop
Type
Default
label
ReactNode
info
ReactNode
axes
{ label: ReactNode; control: ReactNode }[]
axisWidth
number13
…and every FlexProps propinherited
Prop
Type
Default
children
React.ReactNode
size
xssmlxl
xs
…and every FlexProps propinherited
Edit this page on GitHub
TrademarkTrademark
Built with curiosity by Lorant One and the Design Engineers Club