Нельзя просто взять и решить все задачи с помощью нативных инструментов.
Пример с кастомизацией скролбара. Если в вебкит еще есть возможность сносной кастомизации, то в FF такую возможность добавили совсем недавно, про ie и edge не знаю. В macos скролбар вообще не отображается у контейнера.
Есть множество велосипедов которые решают эту проблему полностью эмулируя прокрутку через js. Вот тут я предпочел быть путь автора, оставив нативное поведение и события скрола, просто рисуя бары через js. В таком случае без js пользователь будет видеть то же что в macos — контейнер без скролбаров, но скролящийся.
Что касается select. Его кастомизация тоже сильно ограничена. Нельзя например использовать html разметку в тегах option. Эмодзи в ff в списке выбора не отображаются. Css свойства применяемые к options могут работать, а могут и не работать, в зависимости от браузера (ios safari).
Есть вариант сделать свой select с сохранением всего нативного функционала используя веб компоненты. Но опять же, без использования js не обойтись.
Вообще как и автор я противник больших бандлов и кривых велосипедов. Но видно что автор смотрит только с точки зрения пользователя и ударяется в крайности.
Нельзя просто взять и решить все задачи с помощью нативных инструментов.
Пример с кастомизацией скролбара. Если в вебкит еще есть возможность сносной кастомизации, то в FF такую возможность добавили совсем недавно, про ie и edge не знаю. В macos скролбар вообще не отображается у контейнера.
Есть множество велосипедов которые решают эту проблему полностью эмулируя прокрутку через js. Вот тут я предпочел быть путь автора, оставив нативное поведение и события скрола, просто рисуя бары через js. В таком случае без js пользователь будет видеть то же что в macos — контейнер без скролбаров, но скролящийся.
Что касается select. Его кастомизация тоже сильно ограничена. Нельзя например использовать html разметку в тегах option. Эмодзи в ff в списке выбора не отображаются. Css свойства применяемые к options могут работать, а могут и не работать, в зависимости от браузера (ios safari).
Есть вариант сделать свой select с сохранением всего нативного функционала используя веб компоненты. Но опять же, без использования js не обойтись.
Вообще как и автор я противник больших бандлов и кривых велосипедов. Но видно что автор смотрит только с точки зрения пользователя и ударяется в крайности.