:host { font-size: 0; line-height: 1; } .loading { display: inline-flex; align-items: center; justify-content: center; color: #c8c9cc; } .loading__spinner { position: relative; box-sizing: border-box; width: 45rpx; max-width: 100%; max-height: 100%; height: 45rpx; -webkit-animation: rotate .8s linear infinite; animation: rotate .8s linear infinite; } .loading__spinner--spinner { -webkit-animation-timing-function: steps(12); animation-timing-function: steps(12); } .loading__spinner--circular { border: 2rpx solid transparent; border-top-color: initial; border-radius: 100%; } .loading__text { margin-left: 16rpx; color: #969799; font-size: 28rpx; line-height: 40rpx; } .loading__text:empty { display: none; } .loading--vertical { flex-direction: column; } .loading--vertical .loading__text { margin: 16rpx 0 0; } .loading__dot { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .loading__dot:before { display: block; width: 4rpx; height: 25%; margin: 0 auto; background-color: currentColor; border-radius: 40%; content: " "; } .loading__dot:first-of-type { -webkit-transform: rotate(30deg); transform: rotate(30deg); opacity: 1; } .loading__dot:nth-of-type(2) { -webkit-transform: rotate(60deg); transform: rotate(60deg); opacity: .9375; } .loading__dot:nth-of-type(3) { -webkit-transform: rotate(90deg); transform: rotate(90deg); opacity: .875; } .loading__dot:nth-of-type(4) { -webkit-transform: rotate(120deg); transform: rotate(120deg); opacity: .8125; } .loading__dot:nth-of-type(5) { -webkit-transform: rotate(150deg); transform: rotate(150deg); opacity: .75; } .loading__dot:nth-of-type(6) { -webkit-transform: rotate(180deg); transform: rotate(180deg); opacity: .6875; } .loading__dot:nth-of-type(7) { -webkit-transform: rotate(210deg); transform: rotate(210deg); opacity: .625; } .loading__dot:nth-of-type(8) { -webkit-transform: rotate(240deg); transform: rotate(240deg); opacity: .5625; } .loading__dot:nth-of-type(9) { -webkit-transform: rotate(270deg); transform: rotate(270deg); opacity: .5; } .loading__dot:nth-of-type(10) { -webkit-transform: rotate(300deg); transform: rotate(300deg); opacity: .4375; } .loading__dot:nth-of-type(11) { -webkit-transform: rotate(330deg); transform: rotate(330deg); opacity: .375; } .loading__dot:nth-of-type(12) { -webkit-transform: rotate(1turn); transform: rotate(1turn); opacity: .3125; } @-webkit-keyframes rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(1turn); transform: rotate(1turn); } } @keyframes rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } to { -webkit-transform: rotate(1turn); transform: rotate(1turn); } }