.webview-wrap { flex: 1; display: flex; webview { display: flex; flex: 1; } .webview-loading-spinner { position: absolute; right: 17px; top: 17px; opacity: 0; transition: opacity 200ms ease-in-out; transition-delay: 200ms; &.loading-true { opacity: 1; } } .webview-cover { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #F3F3F3; opacity: 1; transition: opacity 200ms ease-out; display: flex; flex-direction: column; align-items: center; .message { color: #444; opacity: 0; margin-top: 20px; transition: opacity 200ms ease-out; } .try-again { opacity: 0; transition: opacity 200ms ease-out; } } .webview-cover.slow, .webview-cover.error { .message { opacity: 1; max-width: 400px; } } .webview-cover.error { .spinner { visibility: hidden;} .try-again { opacity: 1; } } .webview-cover.ready { pointer-events: none; opacity: 0; } }