Post by Ash K

Ash K
@ashvinuiΒ β€’Β #show Β β€’Β 13d

Stop styling the native <select>. You're going to lose. πŸ₯Š

Long lists, async options, form validation, icons, the stock browser select wasn't built for any of it. So I stopped fighting it. πŸ› οΈ


I put together 13+ shadcn select patterns I actually reach for when building real forms:


  • πŸ“‚ Grouped options for lists that won't stay flat

  • πŸ”— Controlled state + React Hook Form integration (the part everyone gets wrong)

  • ⚑ Async/dynamic options from an API

  • πŸ“œ Scrollable long lists, icons, disabled states, animated open/close


Every variation builds on the same base structure β€” so the mental model never changes, you just compose. 🧩


πŸ‘‰ Code + live previews for each one here: https://www.shadcndeck.com/blog/shadcn-select-component

Your upvotes and feedback are welcome!

Words have more power than we think. Be kind.