Пишу для модальных окон обычно такой код:
.modal {
  transition: $transition-duration opacity $transition-timing-function;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  opacity: 0; // Визуально скрываем
  pointer-events: none; // Предотвращает события мыши и щелчки по элементу.
  &--open {
    opacity: 1; // Показываем
    pointer-events: unset; // Разрешаем работать с окном
  }
}
Так удобно анимировать открытие и закрытие модального окна. Но видел что делают через visibility. Но анимацию закрытия с помощью visibility делать не так легко как с pointer-events.
Не подскажите есть ли преимущества в visibility в данном вопросе перед pointer-events?