<div class="loading-bar"></div>
:root {
--gradient-color-1: #b983ff;
--gradient-color-2: #94b3fd;
--gradient-color-3: #94daff;
--gradient-color-4: #99feff;
--body-background-color: #fafafa;
}
@media (prefers-color-scheme: dark) {
:root {
--body-background-color: rgb(43, 54, 57);
}
}
body {
width: 100vw;
height: 100vh;
padding: 0;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
background-color: var(--body-background-color);
}
@-webkit-keyframes flow {
0% {
background-position: 0 0;
}
0% {
background-position: 200% 0;
}
}
@keyframes flow {
0% {
background-position: 0 0;
}
0% {
background-position: 200% 0;
}
}
.loading-bar {
position: relative;
width: 400px;
max-width: 80vw;
height: 20px;
background-color: white;
border-radius: 12px;
-webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
}
.loading-bar::before {
content: "";
position: absolute;
inset: 0;
/* 默认角度是从上到下,90deg 逆时针旋转后变成从左到右渐变 */
background: linear-gradient(90deg,
var(--gradient-color-1),
var(--gradient-color-2),
var(--gradient-color-3),
var(--gradient-color-4),
var(--gradient-color-1),
var(--gradient-color-2),
var(--gradient-color-3),
var(--gradient-color-4),
var(--gradient-color-1));
background-size: 200%;
border-radius: 12px;
-webkit-animation: flow 3s linear infinite;
animation: flow 3s linear infinite;
}
/* 使用一个和 ::before 相同的 作为霓虹灯特效 */
.loading-bar::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(90deg,
var(--gradient-color-1),
var(--gradient-color-2),
var(--gradient-color-3),
var(--gradient-color-4),
var(--gradient-color-1),
var(--gradient-color-2),
var(--gradient-color-3),
var(--gradient-color-4),
var(--gradient-color-1));
background-size: 200%;
filter: blur(10px);
border-radius: 12px;
-webkit-animation: flow 3s linear infinite;
animation: flow 3s linear infinite;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.