1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
:root {
--loader-primary: hsl(250, 84%, 54%);
--loader-accent: hsl(342, 89%, 48%);
--loader-contrast: hsl(180, 1%, 84%);
--loader-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
}
[data-theme="dark"] :root {
--loader-primary: hsl(250, 93%, 65%);
--loader-accent: hsl(342, 92%, 54%);
--loader-contrast: hsl(208, 12%, 24%);
--loader-easing: cubic-bezier(0.645, 0.045, 0.355, 1);
}
[data-theme="dark"] {
background-color: hsl(203, 24%, 13%);
}
.fill-loader {
position: relative;
overflow: hidden;
display: inline-block;
margin: 3rem;
}
.fill-loader__fill {
position: absolute;
}
@supports (-webkit-animation-name: this) or (animation-name: this) {
.fill-loader__label {
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
-webkit-clip-path: inset(50%);
clip-path: inset(50%);
}
}
@supports (-webkit-animation-name: this) or (animation-name: this) {
.fill-loader--v4 {
width: 90%;
max-width: 300px;
}
.fill-loader--v4 .fill-loader__base {
height: 4px;
background-color: var(--loader-contrast);
}
.fill-loader--v4 .fill-loader__fill {
top: 0;
left: 0;
right: 0;
height: 100%;
background-color: var(--loader-primary);
-webkit-animation: fill-loader-4 1.6s infinite var(--loader-easing);
animation: fill-loader-4 1.6s infinite var(--loader-easing);
will-change: left, right;
}
}
@-webkit-keyframes fill-loader-4 {
0% {
left: 0;
right: 100%;
background-color: var(--loader-primary);
}
10%,
60% {
left: 0;
}
40%,
90% {
right: 0;
}
50% {
left: 100%;
background-color: var(--loader-primary);
}
51% {
left: 0;
right: 100%;
background-color: var(--loader-accent);
}
100% {
left: 100%;
background-color: var(--loader-accent);
}
}
@keyframes fill-loader-4 {
0% {
left: 0;
right: 100%;
background-color: var(--loader-primary);
}
10%,
60% {
left: 0;
}
40%,
90% {
right: 0;
}
50% {
left: 100%;
background-color: var(--loader-primary);
}
51% {
left: 0;
right: 100%;
background-color: var(--loader-accent);
}
100% {
left: 100%;
background-color: var(--loader-accent);
}
}
|