<div class="c-button-group">
  <button type="button" class="c-button c-button--default" onclick="openModal('#small')">
    Open small modal
  </button>
  <button type="button" class="c-button c-button--default" onclick="openModal('#default')">
    Open default modal
  </button>
  <button type="button" class="c-button c-button--default" onclick="openModal('#large')">
    Open large modal
  </button>
</div>

<div>
  <div class="c-cover" id="cover" onclick="closeModals()"></div>

  <div class="c-modal c-modal--small" id="small">
    <div class="c-modal__header">
      <h2 class="c-modal__title">Unsaved changes</h2>
      <button type="button" class="c-button c-modal__close c-button--subtle c-button--icon" onclick="closeModals()">
        <i class="c-button__icon icon icon-close"></i>
      </button>
    </div>
    <div class="c-modal__body">
      <p>
        Are you sure you want to leave this page without saving pending changes?
      </p>
    </div>
    <div class="c-modal__footer">
      <div class="c-modal__footer-right">
        <div class="c-button-group">
          <button type="button" class="c-button c-button--subtle" onclick="closeModals()">
            <div class="c-button__label">Keep editing</div>
          </button>
          <button type="button" class="c-button c-button--danger" onclick="closeModals()">
            <div class="c-button__label">Yes, I'm sure</div>
          </button>
        </div>
      </div>
    </div>
  </div>

  <div class="c-modal" id="default">
    <div class="c-modal__header">
      <h2 class="c-modal__title">Default modal size</h2>
      <button type="button" class="c-button c-modal__close c-button--subtle c-button--icon" onclick="closeModals()">
        <i class="c-button__icon icon icon-close"></i>
      </button>
    </div>
    <div class="c-modal__body">
      <p>Modal contents.</p>
    </div>
    <div class="c-modal__footer">
      <div class="c-modal__footer-right">
        <button type="button" class="c-button c-button--primary" onclick="closeModals()">
          <div class="c-button__label">Confirm</div>
        </button>
      </div>
    </div>
  </div>

  <div class="c-modal c-modal--large" id="large">
    <div class="c-modal__header">
      <h2 class="c-modal__title">Large modal</h2>
      <button type="button" class="c-button c-modal__close c-button--subtle c-button--icon" onclick="closeModals()">
        <i class="c-button__icon icon icon-close"></i>
      </button>
    </div>
    <div class="c-modal__body">
      <p>Modal contents.</p>
    </div>
    <div class="c-modal__footer">
      <div class="c-modal__footer-right">
        <button type="button" class="c-button c-button--primary" onclick="closeModals()">
          <div class="c-button__label">Confirm</div>
        </button>
      </div>
    </div>
  </div>
</div>

<script>
  const openModal = (selector) => {
    const cover = document.querySelector('#cover')
    const modal = document.querySelector(selector)
    cover.classList.add('c-cover--visible')
    modal.classList.add('c-modal--visible')
  }
  const closeModals = () => {
    const cover = document.querySelector('#cover')
    const modal = document.querySelector('<div class=""></div>c-modal--visible')
    cover.classList.remove('c-cover--visible')
    modal.classList.remove('c-modal--visible')
  }
</script>