Shadcn Turns a Radio Button Into 215 Lines of React—Voice AI for Demos Proves Why DOM-Native Beats Framework Abstraction

# Shadcn Turns a Radio Button Into 215 Lines of React—Voice AI for Demos Proves Why DOM-Native Beats Framework Abstraction *Hacker News #1 (93 points, 20 comments, 1hr): Developer discovers their radio button imports 7 files and 215 lines of React to replace a single ``. Users report the complex version **actually misses clicks**. This is what happens when frameworks abstract away browser capabilities that already work.* --- ## The Three Layers of Unnecessary Abstraction A developer opened their codebase to update radio button styling. What they found: **Layer 1: Shadcn (45 lines of React)** - Imports Radix components - Wraps everything in 30 Tailwind classes - Imports third-party icon library to render a circle (instead of CSS `border-radius`) **Layer 2: Radix (215 lines of React, 7 file imports)** - Rebuilds radio button from scratch using `
← Back to Blog