appearance: none снимает нативную отрисовку контрола ОС/UA, чтобы стилизовать с нуля (кастомные select, checkbox, кнопки).
select.custom {
appearance: none;
background: url(chevron.svg) no-repeat right 0.5rem center / 12px;
padding-inline-end: 2rem;
}
После снятия внешнего вида вы обязаны обеспечить hover/focus/disabled и a11y. На iOS/Android поведение select всё равно частично нативное. Для лёгкого брендинга иногда хватает accent-color без полного reset.
Итог
appearance: none — сброс системного look ради кастомного UI; дальше вся ответственность за UX на вас.