Использовать css variables + calc, оборачивая их в isBrowser. Для того чтобы работать с media queries можно в SSR смотреть из useragent размеры экрана. Увы css vars не работают с медиа запросами, поэтому приходится ставить классы в компонентах (ну и у нас к примеру управляющие директивы типа isMobile). Важно понимать одну вещь: при таком подходе мы получаем два SSR сайта - мобильный и обычный. И тестить их нужно отдельно. И гугл их тоже индексирует отдельно.
Я эти высоты ширины считаю для ангуляр анимаций, так что они мне в JS нужны. Вообще CSS достаточно для всего, кроме этих замороченных анимаций с последовательностью действий ещё и разных для дексктопа и мобильного.