Вы можете добиться этого, используя размер 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%"
})