.offline-ui,.offline-ui *,.offline-ui:before,.offline-ui:after,.offline-ui *:before,.offline-ui *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box } .offline-ui { display: none; position: fixed; background: #fff; z-index: 2000; margin: auto; top: 0; left: 0; right: 0 } .offline-ui .offline-ui-content:before { display: inline } .offline-ui .offline-ui-retry { -webkit-user-select: none; -moz-user-select: none; user-select: none; display: none } .offline-ui .offline-ui-retry:before { display: inline } .offline-ui.offline-ui-up.offline-ui-up-5s { display: block } .offline-ui.offline-ui-down { display: block } .offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-retry { display: block } .offline-ui.offline-ui-down.offline-ui-reconnect-failed-2s.offline-ui-waiting .offline-ui-retry { display: none } @-webkit-keyframes offline-dropin { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 0 } 1% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 0 } 2% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 1 } 100% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 1 } } @-moz-keyframes offline-dropin { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 0 } 1% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 0 } 2% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 1 } 100% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 1 } } @-ms-keyframes offline-dropin { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 0 } 1% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 0 } 2% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 1 } 100% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 1 } } @-o-keyframes offline-dropin { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 0 } 1% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 0 } 2% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 1 } 100% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 1 } } @keyframes offline-dropin { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 0 } 1% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 0 } 2% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px); opacity: 1 } 100% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0); opacity: 1 } } @-webkit-keyframes offline-dropout { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0) } 100% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px) } } @-moz-keyframes offline-dropout { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0) } 100% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px) } } @-ms-keyframes offline-dropout { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0) } 100% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px) } } @-o-keyframes offline-dropout { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0) } 100% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px) } } @keyframes offline-dropout { 0% { transform: translateY(0); -webkit-transform: translateY(0); -moz-transform: translateY(0); -ms-transform: translateY(0); -o-transform: translateY(0) } 100% { transform: translateY(-800px); -webkit-transform: translateY(-800px); -moz-transform: translateY(-800px); -ms-transform: translateY(-800px); -o-transform: translateY(-800px) } } @-webkit-keyframes offline-rotation { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg) } 100% { transform: rotate(359deg); -webkit-transform: rotate(359deg); -moz-transform: rotate(359deg); -ms-transform: rotate(359deg); -o-transform: rotate(359deg) } } @-moz-keyframes offline-rotation { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg) } 100% { transform: rotate(359deg); -webkit-transform: rotate(359deg); -moz-transform: rotate(359deg); -ms-transform: rotate(359deg); -o-transform: rotate(359deg) } } @-ms-keyframes offline-rotation { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg) } 100% { transform: rotate(359deg); -webkit-transform: rotate(359deg); -moz-transform: rotate(359deg); -ms-transform: rotate(359deg); -o-transform: rotate(359deg) } } @-o-keyframes offline-rotation { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg) } 100% { transform: rotate(359deg); -webkit-transform: rotate(359deg); -moz-transform: rotate(359deg); -ms-transform: rotate(359deg); -o-transform: rotate(359deg) } } @keyframes offline-rotation { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg) } 100% { transform: rotate(359deg); -webkit-transform: rotate(359deg); -moz-transform: rotate(359deg); -ms-transform: rotate(359deg); -o-transform: rotate(359deg) } } .offline-ui { -webkit-box-shadow: 0 0 0 1px rgba(0,0,0,.15),0 0 1em rgba(0,0,0,.3); -moz-box-shadow: 0 0 0 1px rgba(0,0,0,.15),0 0 1em rgba(0,0,0,.3); box-shadow: 0 0 0 1px rgba(0,0,0,.15),0 0 1em rgba(0,0,0,.3); font-family: lucida grande,sans-serif; font-size: 14px; padding: 1em; width: 38em; max-width: 100%; background: #f6f6f6; color: #444; overflow: hidden } .offline-ui .offline-ui-content { padding-left: 2em } .offline-ui .offline-ui-content:before { line-height: 1.25em } .offline-ui .offline-ui-content:after { -webkit-border-radius: 50%; -moz-border-radius: 50%; -ms-border-radius: 50%; -o-border-radius: 50%; border-radius: 50%; content: " "; display: block; position: absolute; top: 0; bottom: 0; left: 1em; margin: auto; height: 1em; width: 1em } .offline-ui .offline-ui-retry { -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.08),inset 0 1px 2px rgba(255,255,255,.75); -moz-box-shadow: 0 1px 0 rgba(0,0,0,.08),inset 0 1px 2px rgba(255,255,255,.75); box-shadow: 0 1px 0 rgba(0,0,0,.08),inset 0 1px 2px rgba(255,255,255,.75); -webkit-border-radius: 2px; -moz-border-radius: 2px; -ms-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px; background-image: -webkit-gradient(linear,50% 0%,50% 100%,color-stop(0%,#ededed),color-stop(38%,#ededed),color-stop(100%,#dedede)); background-image: -webkit-linear-gradient(#ededed,#ededed 38%,#dedede); background-image: -moz-linear-gradient(#ededed,#ededed 38%,#dedede); background-image: -o-linear-gradient(#ededed,#ededed 38%,#dedede); background-image: linear-gradient(#ededed,#ededed 38%,#dedede); position: absolute; right: 4em; top: 1em; bottom: 1em; border: 1px solid rgba(0,0,0,.25); text-shadow: 0 1px 0 #f0f0f0; padding: 0 1em; line-height: 1.6em; height: 1.7em; margin: auto; font-size: 12px; text-decoration: none; color: inherit } .offline-ui.offline-ui-up { -webkit-animation: offline-dropout forwards .5s 2s; -moz-animation: offline-dropout forwards .5s 2s; -ms-animation: offline-dropout forwards .5s 2s; -o-animation: offline-dropout forwards .5s 2s; animation: offline-dropout forwards .5s 2s; -webkit-backface-visibility: hidden } .offline-ui.offline-ui-up .offline-ui-content:after { background: #80d580 } .offline-ui.offline-ui-down { -webkit-animation: offline-dropin .5s; -moz-animation: offline-dropin .5s; -ms-animation: offline-dropin .5s; -o-animation: offline-dropin .5s; animation: offline-dropin .5s; -webkit-backface-visibility: hidden } .offline-ui.offline-ui-down .offline-ui-content:after { background: #ec8787 } .offline-ui.offline-ui-down.offline-ui-connecting,.offline-ui.offline-ui-down.offline-ui-waiting { padding-right: 3em } .offline-ui.offline-ui-down.offline-ui-connecting .offline-ui-content:after,.offline-ui.offline-ui-down.offline-ui-waiting .offline-ui-content:after { background: #ec8787 } .offline-ui.offline-ui-down.offline-ui-connecting:after,.offline-ui.offline-ui-down.offline-ui-waiting:after { -webkit-animation: offline-rotation .7s linear infinite; -moz-animation: offline-rotation .7s linear infinite; -ms-animation: offline-rotation .7s linear infinite; -o-animation: offline-rotation .7s linear infinite; animation: offline-rotation .7s linear infinite; -webkit-backface-visibility: hidden; -webkit-border-radius: 50%; -moz-border-radius: 50%; -ms-border-radius: 50%; -o-border-radius: 50%; border-radius: 50%; content: " "; display: block; position: absolute; right: 1em; top: 0; bottom: 0; margin: auto; height: 1em; width: 1em; border: 2px solid transparent; border-top-color: rgba(0,0,0,.5); border-left-color: rgba(0,0,0,.5); opacity: .7 } .offline-ui.offline-ui-down.offline-ui-waiting { padding-right: 11em } .offline-ui.offline-ui-down.offline-ui-waiting.offline-ui-reconnect-failed-2s { padding-right: 0 }