The Custom Dropdown Problem
- Bloated bundles: 50KB to 200KB of external JS and CSS per component.
- Z-Index collisions: Dropdowns clipping inside modals or overflowing parent containers.
- Mobile keyboard bugs: Custom floating lists covered by virtual keyboards on iOS and Android.
- Accessibility complexity: Manual implementation of ARIA live regions and keyboard navigation.
The Native Datalist Solution
- Zero bundle overhead: Uses built-in browser autocomplete rendering.
- System OS integration: Integrates directly with native mobile keyboards and search trays.
- Clean separation: The datalist lives in an invisible container; inputs simply link via
list="id".
- Frequency counters: Shows users how many times an option appears (e.g.
ROPE (3)).