Skip to content

Instantly share code, notes, and snippets.

@chindraba-work
Last active September 11, 2020 09:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chindraba-work/ca3700eab298b8b48c2811c2f2cae3fc to your computer and use it in GitHub Desktop.
Save chindraba-work/ca3700eab298b8b48c2811c2f2cae3fc to your computer and use it in GitHub Desktop.
Change the background color of an element by washing a gradient across it.
@keyframes color-creep-in {
0% {background-image: linear-gradient(var(--cc-deg),var(--cc-old), 0%, var(--cc-old));}
1% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 1%, var(--cc-old));}
2% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 2%, var(--cc-old));}
3% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 3%, var(--cc-old));}
4% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 4%, var(--cc-old));}
5% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 5%, var(--cc-old));}
6% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 6%, var(--cc-old));}
7% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 7%, var(--cc-old));}
8% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 8%, var(--cc-old));}
9% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 9%, var(--cc-old));}
10% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 10%, var(--cc-old));}
11% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 11%, var(--cc-old));}
12% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 12%, var(--cc-old));}
13% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 13%, var(--cc-old));}
14% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 14%, var(--cc-old));}
15% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 15%, var(--cc-old));}
16% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 16%, var(--cc-old));}
17% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 17%, var(--cc-old));}
18% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 18%, var(--cc-old));}
19% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 19%, var(--cc-old));}
10% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 10%, var(--cc-old));}
21% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 21%, var(--cc-old));}
22% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 22%, var(--cc-old));}
23% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 23%, var(--cc-old));}
24% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 24%, var(--cc-old));}
25% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 25%, var(--cc-old));}
26% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 26%, var(--cc-old));}
27% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 27%, var(--cc-old));}
28% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 28%, var(--cc-old));}
29% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 29%, var(--cc-old));}
30% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 30%, var(--cc-old));}
31% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 31%, var(--cc-old));}
32% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 32%, var(--cc-old));}
33% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 33%, var(--cc-old));}
34% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 34%, var(--cc-old));}
35% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 35%, var(--cc-old));}
36% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 36%, var(--cc-old));}
37% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 37%, var(--cc-old));}
38% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 38%, var(--cc-old));}
39% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 39%, var(--cc-old));}
40% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 40%, var(--cc-old));}
41% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 41%, var(--cc-old));}
42% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 42%, var(--cc-old));}
43% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 43%, var(--cc-old));}
44% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 44%, var(--cc-old));}
45% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 45%, var(--cc-old));}
46% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 46%, var(--cc-old));}
47% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 47%, var(--cc-old));}
48% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 48%, var(--cc-old));}
49% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 49%, var(--cc-old));}
50% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 50%, var(--cc-old));}
51% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 51%, var(--cc-old));}
52% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 52%, var(--cc-old));}
53% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 53%, var(--cc-old));}
54% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 54%, var(--cc-old));}
55% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 55%, var(--cc-old));}
56% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 56%, var(--cc-old));}
57% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 57%, var(--cc-old));}
58% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 58%, var(--cc-old));}
59% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 59%, var(--cc-old));}
60% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 60%, var(--cc-old));}
61% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 61%, var(--cc-old));}
62% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 62%, var(--cc-old));}
63% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 63%, var(--cc-old));}
64% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 64%, var(--cc-old));}
65% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 65%, var(--cc-old));}
66% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 66%, var(--cc-old));}
67% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 67%, var(--cc-old));}
68% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 68%, var(--cc-old));}
69% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 69%, var(--cc-old));}
70% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 70%, var(--cc-old));}
71% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 71%, var(--cc-old));}
72% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 72%, var(--cc-old));}
73% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 73%, var(--cc-old));}
74% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 74%, var(--cc-old));}
75% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 75%, var(--cc-old));}
76% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 76%, var(--cc-old));}
77% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 77%, var(--cc-old));}
78% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 78%, var(--cc-old));}
79% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 79%, var(--cc-old));}
80% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 80%, var(--cc-old));}
81% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 81%, var(--cc-old));}
82% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 82%, var(--cc-old));}
83% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 83%, var(--cc-old));}
84% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 84%, var(--cc-old));}
85% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 85%, var(--cc-old));}
86% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 86%, var(--cc-old));}
87% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 87%, var(--cc-old));}
88% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 88%, var(--cc-old));}
89% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 89%, var(--cc-old));}
90% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 90%, var(--cc-old));}
91% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 91%, var(--cc-old));}
92% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 92%, var(--cc-old));}
93% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 93%, var(--cc-old));}
94% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 94%, var(--cc-old));}
95% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 95%, var(--cc-old));}
96% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 96%, var(--cc-old));}
97% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 97%, var(--cc-old));}
98% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 98%, var(--cc-old));}
99% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 99%, var(--cc-old));}
100% {background-image: linear-gradient(var(--cc-deg),var(--cc-new),100%, var(--cc-new));}
}
@keyframes color-creep-out {
0% {background-image: linear-gradient(var(--cc-deg),var(--cc-new),100%, var(--cc-new));}
1% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 99%, var(--cc-old));}
2% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 98%, var(--cc-old));}
3% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 97%, var(--cc-old));}
4% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 96%, var(--cc-old));}
5% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 95%, var(--cc-old));}
6% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 94%, var(--cc-old));}
7% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 93%, var(--cc-old));}
8% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 92%, var(--cc-old));}
9% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 91%, var(--cc-old));}
10% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 90%, var(--cc-old));}
11% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 89%, var(--cc-old));}
12% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 88%, var(--cc-old));}
13% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 87%, var(--cc-old));}
14% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 86%, var(--cc-old));}
15% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 85%, var(--cc-old));}
16% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 84%, var(--cc-old));}
17% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 83%, var(--cc-old));}
18% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 82%, var(--cc-old));}
19% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 81%, var(--cc-old));}
10% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 80%, var(--cc-old));}
21% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 79%, var(--cc-old));}
22% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 78%, var(--cc-old));}
23% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 77%, var(--cc-old));}
24% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 76%, var(--cc-old));}
25% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 75%, var(--cc-old));}
26% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 74%, var(--cc-old));}
27% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 73%, var(--cc-old));}
28% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 72%, var(--cc-old));}
29% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 71%, var(--cc-old));}
30% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 70%, var(--cc-old));}
31% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 69%, var(--cc-old));}
32% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 68%, var(--cc-old));}
33% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 67%, var(--cc-old));}
34% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 66%, var(--cc-old));}
35% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 65%, var(--cc-old));}
36% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 64%, var(--cc-old));}
37% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 63%, var(--cc-old));}
38% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 62%, var(--cc-old));}
39% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 61%, var(--cc-old));}
40% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 60%, var(--cc-old));}
41% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 59%, var(--cc-old));}
42% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 58%, var(--cc-old));}
43% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 57%, var(--cc-old));}
44% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 56%, var(--cc-old));}
45% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 55%, var(--cc-old));}
46% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 54%, var(--cc-old));}
47% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 53%, var(--cc-old));}
48% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 52%, var(--cc-old));}
49% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 51%, var(--cc-old));}
50% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 50%, var(--cc-old));}
51% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 49%, var(--cc-old));}
52% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 48%, var(--cc-old));}
53% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 47%, var(--cc-old));}
54% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 46%, var(--cc-old));}
55% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 45%, var(--cc-old));}
56% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 44%, var(--cc-old));}
57% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 43%, var(--cc-old));}
58% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 42%, var(--cc-old));}
59% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 41%, var(--cc-old));}
60% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 40%, var(--cc-old));}
61% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 39%, var(--cc-old));}
62% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 38%, var(--cc-old));}
63% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 37%, var(--cc-old));}
64% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 36%, var(--cc-old));}
65% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 35%, var(--cc-old));}
66% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 34%, var(--cc-old));}
67% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 33%, var(--cc-old));}
68% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 32%, var(--cc-old));}
69% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 31%, var(--cc-old));}
70% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 30%, var(--cc-old));}
71% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 29%, var(--cc-old));}
72% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 28%, var(--cc-old));}
73% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 27%, var(--cc-old));}
74% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 26%, var(--cc-old));}
75% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 25%, var(--cc-old));}
76% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 24%, var(--cc-old));}
77% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 23%, var(--cc-old));}
78% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 22%, var(--cc-old));}
79% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 21%, var(--cc-old));}
80% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 19%, var(--cc-old));}
81% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 18%, var(--cc-old));}
82% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 17%, var(--cc-old));}
83% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 16%, var(--cc-old));}
84% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 15%, var(--cc-old));}
85% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 14%, var(--cc-old));}
86% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 13%, var(--cc-old));}
87% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 12%, var(--cc-old));}
88% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 11%, var(--cc-old));}
89% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 10%, var(--cc-old));}
90% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 10%, var(--cc-old));}
91% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 9%, var(--cc-old));}
92% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 8%, var(--cc-old));}
93% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 7%, var(--cc-old));}
94% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 6%, var(--cc-old));}
95% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 5%, var(--cc-old));}
96% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 4%, var(--cc-old));}
97% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 3%, var(--cc-old));}
98% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 2%, var(--cc-old));}
99% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 1%, var(--cc-old));}
100% {background-image: linear-gradient(var(--cc-deg),var(--cc-new), 0%, var(--cc-old));}
}
:root {
--cc-old: goldenrod; /* The static color */
--cc-new: darkgreen; /* The hover color */
--cc-deg: -15deg; /* The direction of the swipe */
--cc-sec: 2s; /* The transition time of the creep */
}
#color-creep-target {
background-color: var(--cc-old);
animation: color-creep-out var(--cc-sec) linear;
}
#color-creep-target:hover {
background-color: darkgreen;
animation: color-creep-in var(--cc-sec) linear;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment