Минимальная разметка и Data API
Триггер связывается с окном через data-vg-target. Закрытие работает кнопкой, backdrop и Escape без ручной инициализации.
<button type="button" data-vg-toggle="modal" data-vg-target="#profile-modal">
Открыть профиль
</button>
<div class="vg-modal fade" id="profile-modal" aria-hidden="true">
<div class="vg-modal-dialog vg-modal-dialog-centered">
<div class="vg-modal-content">
<button type="button" class="vg-btn-close" data-vg-dismiss="modal"
data-vg-target="#profile-modal" aria-label="Закрыть"></button>
<div class="vg-modal-header"><h2 class="vg-modal-title">Профиль клиента</h2></div>
<div class="vg-modal-body"><p>Карточка клиента готова к просмотру.</p></div>
<div class="vg-modal-footer">
<button type="button" data-vg-dismiss="modal" data-vg-target="#profile-modal">Готово</button>
</div>
</div>
</div>
</div>
// Дополнительная инициализация не требуется: используется Data API.
.vg-modal {
--vg-modal-width: 34rem;
--vg-modal-padding: 0;
}