.signal-background { position: fixed; top: 0; left: 0; height: 100vh; width: 100vw; background-color: rgba(0,0,0,0.5); z-index: 1000; } .signal-wrapper { position: absolute; display: inline-block; top: 50%; left: 50%; transform: translate(-50%, -50%); } .signal { display: inline-block; border-width: 8px; border-style: solid; margin-top: 10px; border-radius: 100%; height: 50px; width: 50px; opacity: 0; transform-origin: center; animation: pulsate .85s ease-out; animation-iteration-count: infinite; } .signal.signal-dark { border-color: whitesmoke; } .signal.signal-light { border-color: #333; } @keyframes pulsate { 0% { transform: scale(.1); opacity: 0.0; } 50% { opacity: 1; } 100% { transform: scale(1.2); opacity: 0; } }