<article class="luminous noanimated" role="img" aria-label="Cartoon of lighted candle"></article>
body {
background: #212;
}
.luminous {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 10vmin;
height: 40vmin;
box-shadow:
0 -10vmin 0 -4.66vmin #000;
}
.luminous::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 1vmin 1vmin -1vmin #fffc;
background:
linear-gradient(#0000,#0004),
radial-gradient(100% 500% at 100% 0, #0000 47%, #000 47.5% 53%, #0000 53.5%) 50% 0 / 100% 7%,
radial-gradient(100% 100% at 50% 0, #d8bb9900, #b89b79cc),
linear-gradient(#0000, #4316),
linear-gradient(#2120 30%, #212d),
linear-gradient(90deg, #db98, #0000 30% 75%, #d8bb99cc),
radial-gradient(farthest-side at 60% 30%, #0000, #da6c 99.99%, #edb) 40% 0 / 90% 7%,
linear-gradient(#edb, #cb9);
background-repeat: no-repeat;
border-radius: 100% / 10% 20% 0 0;
filter: blur(0.07vmin) contrast(1.6);
mix-blend-mode: color-dodge;
}
@keyframes flame {
0%, 100% {
transform: translate(-50%, -106%) scale(1) rotate(1deg);
}
30% {
transform: translate(-50%, -105%) scale(1.02) rotate(0);
}
60% {
transform: translate(-50%, -105.5%) scale(0.99) rotate(-0.5deg);
}
}
.luminous::after {
content: "";
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, -110%);
transform-origin: 50% 100%;
width: 70%;
height: 35%;
background:
radial-gradient(circle at 50% 90%, #212c, #fa0c, #2120 50%),
#ffd;
background-repeat: no-repeat;
border-radius: 100% / 125% 125% 60% 60%;
box-shadow:
inset 0 1vmin 2vmin -0.75vmin #f80c,
inset 0 -1vmin 1.25vmin -0.75vmin #00f8,
0 -1vmin 1vmin #ec04,
0 0 20vmax #ff0c,
0 0 30vmax 3vmin #fff8,
0 0 30vmax 15vmin #c802;
filter: blur(0.15vmin) contrast(1.5)
}
.luminous.animated::after {
animation: flame 3s infinite alternate;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.