.modal { box-shadow: 0 0 75px hsla(0, 0%, 0%, 0.5); border: none; border-radius: 0; overflow: hidden; margin-top: 0; top: 5%; outline: 10000px solid hsla(0, 0%, 0%, 0.3); &.fade { /* Ensure the modal is entirely off-screen while we fade the background */ top: -50%; transition: opacity 0.3s linear; transform: translateY(-50%); &.in { top: 50%; pointer-events: all; } } form { margin-bottom: 0; } } .modal-body { max-height: 60vh; } .modal-backdrop { z-index: 102; } .modal-bg { background-color: hsl(0, 0%, 98%); } /* Styles for the Micromodal-based modals */ .modal__overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: hsla(0, 0%, 0%, 0.6); display: flex; justify-content: center; align-items: center; z-index: 105; } .modal__container { display: flex; flex-direction: column; background-color: hsl(0, 0%, 100%); max-width: calc(100% - 32px); max-height: 96%; width: 32.5rem; border-radius: 4px; box-sizing: border-box; } .modal__header { padding: 16px 24px; display: flex; justify-content: space-between; align-items: center; } .modal__footer { display: flex; justify-content: flex-end; align-items: center; padding: 20px 24px; } .modal__title { margin: 0; font-size: 1.375rem; line-height: 1.25; } .modal__close { &::before { content: "\2715"; } margin-right: -4px; background: transparent; border: 0; &:hover { background: hsl(0, 0%, 90%); } } .modal__content { font-size: 1rem; overflow-y: auto; padding: 0 24px; line-height: 1.5; } .modal__btn { font-size: 0.875rem; padding: 0.5rem 1rem; background-color: hsl(0, 0%, 90%); border-radius: 0.25rem; border-width: 0; cursor: pointer; appearance: button; text-transform: none; overflow: visible; line-height: 1.15; margin: 0; will-change: transform; backface-visibility: hidden; transform: translateZ(0); transition: transform 0.25s ease-out; } .modal__btn:focus, .modal__btn:hover { transform: scale(1.05); } .dialog_cancel_button { background: hsl(0, 0%, 100%); border: 1px solid hsla(300, 2%, 11%, 0.3); &:hover { background: hsl(0, 0%, 97%); } } .dialog_submit_button { margin-left: 12px; background-color: hsl(214, 100%, 31%); color: hsl(0, 0%, 100%); } @keyframes mmfadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes mmfadeOut { from { opacity: 1; } to { opacity: 0; } } .micromodal { display: none; } .micromodal.modal--opening, .micromodal.modal--open { display: block; } .micromodal[aria-hidden="true"] .modal__overlay { animation: mmfadeOut 75ms cubic-bezier(0, 0, 0.2, 1); } .micromodal[aria-hidden="false"] .modal__overlay { animation: mmfadeIn 120ms cubic-bezier(0, 0, 0.2, 1); } .micromodal[aria-hidden="true"] .modal__container { animation: mmfadeOut 75ms cubic-bezier(0, 0, 0.2, 1); } .micromodal[aria-hidden="false"] .modal__container { animation: mmfadeIn 120ms cubic-bezier(0, 0, 0.2, 1); } .micromodal .modal__container, .micromodal .modal__overlay { will-change: transform; } .modal__spinner .loading_indicator_spinner { height: 16px; path { fill: hsl(0, 0%, 100%); } }