Безбиблиотечное решение:
Сделайте div, заполненный контентом, стилизуйте его так, чтобы он плавал над вашим контентом и имел display:hidden
при загрузке страницы.С javascript установленным myDialog.style.display = 'block'
и вот ваш модал.
Этот javascript может также добавить фоновый элемент, стилизованный для полупрозрачного и охватывающего всю высоту и ширину экрана, и блокирующий взаимодействие с элементом страницы под ним.
В принципе, все довольно просто.Это больше CSS, чем JS, и логика просто показывает / скрывает модальный элемент диалога.
И есть много улучшений, которые вы можете сделать с помощью анимации элемента, изменения его размера, чтобы лучше соответствовать контенту и т. Д.Это тот вид блеска, который дают вам библиотеки.