UNPKG

pkg-components

Version:
140 lines (122 loc) 2.61 kB
/* === Container (BackDrop) === */ .container { position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; opacity: 1; z-index: 100; background: var(--color-background-overline); } /* Visibilidad */ .hidden { display: none; } .visible { display: block; } /* Tamaños */ .small { width: 30%; } .medium { width: 60%; } .large { width: 100%; } /* === Warper (Modal Wrapper) === */ .warper { position: relative; background: var(--color-base-transparent); width: 100%; height: 100%; z-index: 888; display: flex; align-items: center; justify-content: center; } /* === Modal Box === */ .modal { background-color: var(--color-base-white); max-height: -webkit-fill-available; min-width: 340px; border-radius: 8px; animation: slideFromTopIn 0.3s ease-out forwards; display: flex; flex-direction: column; /* Para que header y body se comporten como columnas */ } /* === Header === */ .modal_header { display: flex; justify-content: space-between; align-items: center; } .modal_title { margin: 0; font-size: 1.25rem; } .close_button { border: none; background: none; padding: 0; } .footer_modal { display: flex; justify-content: flex-end; padding: 1rem; gap: 0.5rem; } /* === Body === */ .modal_body { overflow-y: auto; position: relative; flex: 1 1 auto; /* Toma todo el espacio disponible del modal */ flex-direction: column; display: flex; } /* === Animations: Container (BackDrop) Fade === */ .fadeInFast { animation: fadeInBackdrop 0.1s linear; } .fadeInSlow { animation: fadeInBackdrop 0.5s linear; } @keyframes fadeInBackdrop { from { opacity: 0; } to { opacity: 1; } } /* === Animations: Modal Slide From Top + Fade === */ .fadeIn { animation: slideFromTopIn 0.3s ease-out forwards; } .fadeOut { animation: slideFromTopOut 0.3s ease-in forwards; } @keyframes slideFromTopIn { from { opacity: 0; transform: translateY(-100%); } to { opacity: 1; transform: translateY(0); } } @keyframes slideFromTopOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-100%); } }