'Looping Animation of text color change using CSS3
I have text that I want to animate. Not on hover, for example but continually changing slowly from white to red and then back to white again.
Here is my CSS code so far:
#countText{
color: #eeeeee;
font-family: "League Gothic", Impact, sans-serif;
line-height: 0.9em;
letter-spacing: 0.02em;
text-transform: uppercase;
text-shadow: 0px 0px 6px ;
font-size: 210px;
}
Solution 1:[1]
Use keyframes
and animation
property
p {
animation: color-change 1s infinite;
}
@keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui ad quos autem beatae nulla in.</p>
CSS With Prefixes
p {
-webkit-animation: color-change 1s infinite;
-moz-animation: color-change 1s infinite;
-o-animation: color-change 1s infinite;
-ms-animation: color-change 1s infinite;
animation: color-change 1s infinite;
}
@-webkit-keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
@-moz-keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
@-ms-keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
@-o-keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
@keyframes color-change {
0% { color: red; }
50% { color: blue; }
100% { color: red; }
}
Solution 2:[2]
Another Sample:
.center {
margin: 0 auto;
}
.awesome {
font-family: futura;
font-style: italic;
width: 100%;
margin: 0 auto;
text-align: center;
color: #313131;
font-size: 45px;
font-weight: bold;
position: absolute;
-webkit-animation: colorchange 20s infinite alternate;
}
@-webkit-keyframes colorchange {
0% {
color: blue;
}
10% {
color: #8e44ad;
}
20% {
color: #1abc9c;
}
30% {
color: #d35400;
}
40% {
color: blue;
}
50% {
color: #34495e;
}
60% {
color: blue;
}
70% {
color: #2980b9;
}
80% {
color: #f1c40f;
}
90% {
color: #2980b9;
}
100% {
color: pink;
}
}
<div class='center'>
<p class="awesome">ISN'T THIS AWESOME!</p>
</div>
Solution 3:[3]
I have a small css, you can use this
body {
background-color: #333;
display: flex;
justify-content:center;
align-items: center;
height: 100vh;
}
.text-rainbow-animation {
font-family:arial black;
font-size:70px;
background-image:
linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet, red);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: rainbow-animation 35s linear infinite;
}
@keyframes rainbow-animation {
to {
background-position: 4500vh;
}
}
<div class="text-rainbow-animation">RAINBOW TEXT</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Sourabh |
Solution 3 |