- #93
- #92
- #91
- #90
- #89
- #88
- #87
- #86
- #85
- #84
- #83
- #82
- #81
- #80
- #79
- #78
- #77
- #76
- #75
- #74
- #73
- #72
- #71
- #70
- #69
- #68
- #67
- #66
- #65
- #64
- #63
- #62
- #61
- #60
- #59
- #58
- #57
- #56
- #55
- #54
- #53
- #52
- #51
- #50
- #49
- #48
- #47
- #46
- #45
- #44
- #43
- #42
- #41
- #40
- #39
- #38
- #37
- #36
- #35
- #34
- #33
- #32
- #31
- #30
- #29
- #28
- #27
- #26
- #25
- #24
- #23
- #22
- #21
- #20
- #19
- #18
- #17
- #16
- #15
- #14
- #13
- #12
Why are unstyled components so popular? Radix and Headless UI as examples
To avoid reinventing the wheel, using well-built UI to save development time and effort is quite normal. Typically, component libraries include considerations for style, logic, UX, usability, device compatibility, and more. We can easily use ready-made UI patterns and focus on solving the truly important business problems. Libraries like Bootstrap, Chakra, and MUI are well-known and established component libraries.
So, if ordinary component libraries can meet the needs, what problems do unstyled components solve?
Customization is the biggest issue. Ordinary component libraries come with a default style that is not easy to modify. While it is stable to hand over design choices to third parties, it also lacks flexibility. The emergence of unstyled components primarily addresses this problem. The interesting aspect of unstyled components like Radix and Headless UI is that they return the decision-making power of styles back to the developers while managing the issues that UI encounters beyond that.
You can refer to Shadcn for building component libraries based on various unstyled components.
We often underestimate the details and effort required to create a UI. Next.js Conf 2021 Pedro Duarte mentioned that just the Dropdown Menu of Radix took an enormous amount of effort to create:
- 2000+ hours
- 6 months
- 50 reviews
- Over 1000 commits
- #11
- #10
- #9
- #8
- #7
- #6
- #5
- #4
- #3
- #2
- #1