body { height: 100%; margin: 0; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; } #app { height: 100vh; background-color: #fff; } [v-cloak] { width: 100%; height: 100%; } [v-cloak] > * { display: none; } [v-cloak]::before { content: ' '; display: block; position: relative; top: 45%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background-image: url('./static/images/loading-icon.gif'); background-repeat: no-repeat; background-position: center; background-size: contain; }