Building Notion-style dropdown components in React

I’m working on a React project and need to implement a dropdown menu that has the same look and feel as Notion’s interface. You know, those sleek dropdown menus with clean borders and smooth animations that appear when you click on options.

I’ve been searching for existing React libraries or components that can help me achieve this specific design pattern. The styling doesn’t have to match exactly - I can always customize the colors and spacing to fit my app’s theme. What I really need is something that captures that modern, minimalist dropdown behavior.

Has anyone worked with libraries that provide this kind of component? I’d prefer not to build it completely from scratch if there are good existing solutions out there. Any recommendations for React dropdown libraries that give you that polished, professional look?

react-select works great for this. The default styling already looks close to Notion’s clean design, and you can tweak the theme object to match perfectly. Love the built-in search and smooth animations - they just work. Just adjust the border radius and shadows to nail that Notion look.

Radix UI’s Select component is perfect for this. I’ve shipped it in three production apps and it nails that clean, modern dropdown feel without building everything from scratch. It’s unstyled by default, so you control the look while getting solid features like keyboard navigation and proper ARIA support. The trigger and content APIs are flexible enough to match Notion’s style exactly. What really won me over was the positioning - it handles collision detection smoothly so dropdowns always appear correctly, even near screen edges. Add some CSS transitions or a lightweight animation library and you’ll have that polished look done in under an hour.

I built something like this six months ago using Headless UI + Framer Motion. It’s a great combo—Headless UI manages accessibility and focus very well, while offering complete styling control. I achieved a clean Notion-like appearance by tweaking CSS transitions and adding subtle shadows to the dropdown. The animation timing is crucial; replicating Notion’s easing curves really enhances responsiveness. A key tip is to pay attention to the z-index layering and portal rendering for a polished overlay effect. It took me about two days, but the result was nearly identical to Notion’s dropdowns.