Yep, design systems (your own component library) are the way to go with React. Auto-complete, type checking support, functional, etc. You do style the component once, but after that it's self-contained, reusable, and functional.
Everyone stopped using unstructured cryptic class="bg-gray-100" for good reason. Tailwind is backwards progress.