Согласен и могу дополнить обоснованием: когда юзер открывает меню (или любую другую всплывающую хрень), то возникает, так сказать, новый контекст для юзера, новый уровень, слой или хз как это называть. Поэтому клик вне всплывающей хрени, даже если клик был по кнопке, которая открывает эту хрень, должен закрывать хрень обратно. Это логично и, думаю, подобного поведения ожидает большинство пользователей. Так что я бы не стал заморачиваться и оставил как есть.
Варианты разные могут быть. Если вам нужен нативный скроллбар браузера, то это один вариант. Если нужный кастомный скроллбар, то это другой вариант. Я думаю гугл даст то, что нужно.
Дизигнер не прав, px - это не физический пиксель. Это некоторая величина, имеющая зависимость от window.devicePixelRatio. Если утрировано, то 1px на FullHD будет примерно равен 2px на retine, а значит специально менять размер шрифта не нужно для ретины. Да, понятно, что кнопка, о которой говорил дизайнер будет на мобиле "на глаз" меньше, чем на fullhd, но на мобиле и экран меньше физически.
У вас в сторе есть массив компонентов (по сути массив объектов), которые вы получили аякс-запросом, так? Так. Вам нужно в каждый элемент массива, то бишь в каждый объект, добавить свойство, например, expanded. И в экшне, который дергается по клику на строку таблицы, зная ID кликнутой строки, вы можете установить expanded: true. Если на словах не очень понятно, постараюсь кодом объяснить.