Допустим:
drawer.style.display = 'block';
drawer.classList.add('active');
Тут проблема в том, что класс добавляется мометально после того, как элемент стал display: block и CSS анимация не срабатывает. Это можно исправить таким способом:
drawer.style.display = 'block';
setTimeout(() => {
drawer.classList.add('active');
}, 1);
Но мне кажется, что есть более "правильный" способ для этого. Как мне это реализовать более "правильно"?