Почему hex до сих пор по умолчанию
Это один токен. Он переживает вставку в таблицу, в поле Figma, в YAML и в
сообщение в чате, и никому не приходится думать про запятые и пробелы.
rgb(255, 87, 51) ничего из этого надёжно не переживает.
Каналы за пределами диапазона
rgb(300, -20, 51) — не цвет, но именно такое и вставляют. Значения
ограничиваются диапазоном 0–255, а не заворачиваются: 300 становится 255, −20
становится 0 — ровно как поступит браузер с тем же вводом.
Верхний или нижний регистр
Чисто косметика, оба варианта — валидный CSS. Здесь печатается верхний: он чуть
лучше читается рядом с именами свойств в нижнем, а разница между #FF5733 и
#ff5733 в диффе — это шум, которого можно избежать, придерживаясь чего-то
одного.
Вопросы
Верхний регистр или нижний?+
Оба валидны в CSS и для браузера неразличимы. Выберите один и придерживайтесь, чтобы диффы оставались читаемыми.
Что будет со значением больше 255?+
Оно ограничивается, а не заворачивается: 300 станет 255. Так же поступает браузер с тем же вводом.
Почему hex до сих пор предпочитают?+
Потому что это один токен, который переживает вставку куда угодно — в ячейку таблицы, в поле Figma, в YAML — и никому не приходится думать про запятые.