Подсмотрел такую фишку в codepen: задавать корню принудительно нужную ширину и использовать
transform: scale(реальная ширина/установленная ширина)
, вписывая обратно.
А по поводу особого vue-фрейма - а собсвенно что такого вы от него хотите? Обычный фрейм справляется со своей задачей.)