Вы можете добиться этого, используя размер REM для вашего размера шрифта и изменив ваш базовый шрифт в чистом JS и CSS, ниже пример и демонстрация:
https://jsfiddle.net/actlikeadam/5L02atxe/33/
HTML:
<div class="container"> <button class="plus">+</button> <button class="minus">-</button> <button class="default">default</button>
<p class="text"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Placeat velit consectetur, harum vero molestiae, iusto sint, veniam modi facere rem earum aliquid neque, nisi maxime quae repellendus dolores eum ipsam! </p> </div>
CSS:
.container { border: 3px solid #000; padding: 20px; }
.plus, .minus, .default { font-weight: 600; font-size: 30px; }
.text { font-size: 1.5rem; }
JS:
document.querySelector('.plus').addEventListener('click', () => { const html = document.querySelector('html').style.fontSize = "140%" })
document.querySelector('.minus').addEventListener('click', () => { const html = document.querySelector('html').style.fontSize = "60%" })
document.querySelector('.default').addEventListener('click', () => { const html = document.querySelector('html').style.fontSize = "100%" })