Нужно вычислять ширину экрана в процентах от эталона и в зависимости от этого устанавливать коэффициент в css-свойстве transform: scale(X) на корневом элементе.
Не особо эффективное в плане производительности и использования клиентских ресурсов решение, зато надёжное и простое. Да, можно сделать резиновые пиксели, можно все размеры указывать в rem, а font-size корневого детектива менять в зависимости от обстоятельств. Изящное, эффективное, но не самое простое в реализации решение (по крайней мере если речь идёт об адаптиве и поддержке нескольких типов экранов).
Если нужно по-быстрому сделать и забыть, то проще всего "заскейлить".