背景がオーロラのように変化していくCSSだけで作られたコード

PR
Aurora
CSSのアニメーションとfilterを駆使して、色の変化や混ざり具合を調整しています
- filter の hue-rotate で一つの色から 色相で色を変化
- 要素はradiusで円にして、opasityで透明度を与えて背景と融合するように
- アニメーションで移動させる
- 複数の要素を違ったタイミングで動かす
これらを同時に行ってオーロラのような色の移り変わりを表現している
実際に利用するときは nth-childで指定している部分があるのでwarpperを作ってやるとか、少しだけ工夫が必要になるかと思いますが (動作はChromeで確認しています)
コード
HTML
<h1>Aurora</h1> <div></div> <div></div> <div></div>
CSS
@diameter: 45vmax;
body {
background: #000;
}
h1 {
position: absolute;
width: 100%;
text-align: center;
top: 48vh;
color: #fff;
font-family: 'Trebuchet MS', Helvetica, sans-serif;
letter-spacing: .7em;
font-size: 20pt;
font-weight: normal;
opacity: .2;
text-transform: uppercase;
}
div {
position: absolute;
width: .001vmin;
height: .001vmin;
border-radius: 50%;
opacity: .25;
}
div:nth-child(2) {
box-shadow: 0 0 @diameter @diameter magenta;
animation:
hue 10s 0s linear infinite,
move1 19s 0s linear infinite;
}
div:nth-child(3) {
box-shadow: 0 0 @diameter @diameter white;
animation:
hue 15s 0s linear infinite,
move2 25s 0s linear infinite;
}
div:nth-child(4) {
box-shadow: 0 0 @diameter @diameter cyan;
animation:
hue 20s 0s linear infinite,
move3 15s 0s linear infinite;
opacity: .2;
}
@keyframes hue {
0% { filter: hue-rotate(0deg); }
100% { filter: hue-rotate(360deg); }
}
@keyframes move1 {
0% {
top: 0vh;
left: 50vw;
}
25% {
left: 0vw;
}
50% {
top: 100vh;
}
75% {
left: 100vw;
}
100% {
top: 0vh;
left: 50vw;
}
}
@keyframes move2 {
0% {
top: 50vh;
left: 100vw;
}
25% {
top: 100vh;
}
50% {
left: 0vw;
}
75% {
top: 0vh;
}
100% {
top: 50vh;
left: 100vw;
}
}
@keyframes move3 {
0% {
top: 100vh;
left: 50vw;
}
25% {
left: 100vw;
}
50% {
top: 0vh;
}
75% {
left: 0vw;
}
100% {
top: 100vh;
left: 50vw;
}
}
PR


COMMENT