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
DEMOGOD