UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

200 lines (165 loc) 3.11 kB
/* * Modal * * Index * - Overlay * - Modal * - Modal content * - Modal header * - Modal actions * - Modal title * - Modal body * */ /* OVERLAY -------------------- */ .modal { position: fixed; top: 0; left: 0; z-index: 3; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; overflow: hidden; font-family: var(--road-font); visibility: hidden; background: var(--road-overlay); outline: 0; opacity: 0; transition: opacity 0.15s linear, visibility 0.15s; } /* MODAL -------------------- */ .modal-dialog { position: relative; width: 100%; pointer-events: none; transition: transform 0.3s ease-out; transform: translateY(50px); } @media (min-width: 768px) { .modal-dialog { max-width: 696px; } } /** * Open state */ .modal-open { visibility: visible; opacity: 1; } .modal-open .modal-dialog { transform: none; } /* MODAL CONTENT -------------------- */ .modal-content { position: relative; display: flex; flex-direction: column; width: 100%; height: 100vh; pointer-events: auto; background: var(--road-surface); background-clip: padding-box; box-shadow: var(--road-elevation-hight); } @media (min-width: 768px) { .modal-content { height: auto; border-radius: 0.25rem; } } /* MODAL HEADER -------------------- */ .modal-header { display: flex; align-items: center; justify-content: flex-end; color: var(--road-on-header-surface); background: var(--road-header-surface); } @media (min-width: 768px) { .modal-header { border-radius: 0.25rem 0.25rem 0 0; } } /** * Modal header inverse colors */ .modal-header-inverse { color: var(--road-on-surface); background: none; } .modal-header-inverse .modal-action, .modal-header-inverse .modal-close { fill: var(--road-icon-inverse); } /* MODAL ACTIONS -------------------- */ .modal-action, .modal-close { display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; padding: 0; font-weight: 700; color: var(--road-icon-inverse); cursor: pointer; background: transparent; border: 0; appearance: none; fill: currentColor; } .modal-action ~ .modal-title, .modal-close ~ .modal-title { padding-left: 0; } .modal-action-left, .modal-close-left { margin-right: auto; } /** * Modal header button icons */ .action-icon, .close-icon { display: block; width: 2rem; } /* MODAL TITLE -------------------- */ .modal-title { display: flex; flex-grow: 1; align-items: center; justify-content: center; height: 3.5rem; padding-left: 3.5rem; margin: 0; font-size: var(--road-body-medium); font-weight: 400; } /* MODAL BODY -------------------- */ .modal-body { padding: var(--road-spacing-08) var(--road-spacing-03); overflow-y: auto; } .modal-header-inverse + .modal-body { padding-top: 0; } @media (min-width: 768px) { .modal-body { max-height: 86vh; padding-right: var(--road-spacing-06); padding-bottom: var(--road-spacing-06); padding-left: var(--road-spacing-06); } }