# Settings Controls Load `theme-system` for button/icon/color contracts and `locale-ui-patterns` for every visible or accessible string. ## Choosing A Control - Short chip-like option set: shared `Button variant="chip" size="xs"` with `aria-pressed`. - Explicit mutually exclusive list: shared `Radio`. - Boolean value: shared `Checkbox`, not paired show/hide buttons. - Numeric value: shared `NumberInput`. - Text/path value: shared `Input` plus shared actions. Do not couple unrelated toggles beneath a synthetic heading. ## Segmented Option ```tsx ``` ## Radio Row ```tsx
{t(labelKey)}
``` ## Checkbox Row ```tsx
{t(labelKey)}
``` Preserve row click and keyboard behavior when the container is interactive. ## Optional Numeric Override Empty means “inherit/default.” Provide fallback stepping and explicit clear: ```tsx setTemperature(undefined)} min={0} max={2} step={0.1} inputMode="decimal" emptyLabel="—" /> ``` Keep reset adjacent. Prefer an info tooltip over persistent helper text when the explanation is secondary. ## Inputs And Icon Actions ```tsx
``` - Prefer compact inputs in dense rows. - Avoid large select triggers in Settings. - Use shared `Button` and sprite `Icon`, never wrapper buttons or direct Remixicon imports. ## Mobile Constraints - `packages/ui/src/styles/mobile.css` may force `.overflow-hidden` to scroll; use explicit x/y clipping only when required. - Touch CSS enforces minimum button height. Do not put custom segmented buttons in a container too short for them. ## Picker Rows - Place icon/color palettes beneath their label. - Keep option dimensions and gaps consistent. - Use stable border/ring/background selection; avoid scale transforms that shift layout.