Tier C
RN-universal Checkbox pilot
ScaffoldedPressable + inner check icon. Controlled (checked + onCheckedChange) and uncontrolled (defaultChecked) modes. accessibilityRole='checkbox' + accessibilityState.{checked,disabled}.
Side-by-side: controlled
shadcn (Radix Checkbox)
RN (Pressable via RN Web)
I accept the terms
Both surfaces are driven by the same state. Click either.
Uncontrolled (defaultChecked)
Remember me
Disabled states
Disabled unchecked
Disabled checked
List selection
Mathematics
Literature
History
Selected: Mathematics
Semantics
| Aspect | shadcn | RN | Notes |
|---|---|---|---|
| Element | <button role="checkbox"> | <Pressable accessibilityRole="checkbox"> | Role parity |
| Checked state | data-state="checked" | accessibilityState.checked | CSS cascade vs explicit state |
| Controlled | checked + onCheckedChange | same | API parity |
| Check icon | Radix.Indicator + lucide | inline lucide Check | No portal needed |