Tier D4
RN-universal Toggle + ToggleGroup pilot
ScaffoldedA toggleable Pressable and a group orchestrator for single- or multi-select toolbars. No Radix. Standalone RnToggle uses accessibilityRole='switch'; grouped items use 'radio' (single) or 'button' with accessibilityState.selected (multi).
Side-by-side: standalone toggle
shadcn (Radix)
Bold is off
RN
Bold is off
ToggleGroup · single-select
Alignment: left
ToggleGroup · multi-select
Active: bold
Sizes + disabled
sm
default
lg
disabled off
disabled on
Semantics
| Aspect | shadcn | RN | Notes |
|---|---|---|---|
| Standalone role | aria-pressed | accessibilityRole="switch" | RN Web exposes role="switch" + aria-checked |
| Group role | role="group" | "radiogroup" or "toolbar" | Single vs multi |
| Item role (single) | aria-pressed | accessibilityRole="radio" | Keyboard nav via arrow keys on web |
| Item role (multi) | aria-pressed | "button" + accessibilityState.selected | Independent buttons |
| Controlled | pressed/onPressedChange | same | API parity |
| Group controlled | value + onValueChange | same (type-discriminated) | Single returns string, multi returns string[] |