local ToPrint = "Cool!!"
local AfterImage = 2
local Style = [[%s
<style "transform: translate(%sem, %sem)">
<style "width: 1em; height: 3em; animation: spin 1s %ss both infinite">
<style "color: hsl(%s, 100%%, %s%%); width: 1em; height: 3em; animation: spin ease-in-out reverse 1s %ss infinite">
%s</style></style></style>]]
local Output = ""
local HeightOffset = 0
for j = 0, #ToPrint - 1 do
local Letter = ToPrint:sub(j + 1, j + 1)
if Letter == " " then
HeightOffset = HeightOffset + 1
goto continue
end
for i = 0, AfterImage do
local X = j
local Y = -3 * (i + (j - HeightOffset) * (AfterImage + 1))
local Hue = (AfterImage - i) / AfterImage * 300
local Brightness = 50 + i / AfterImage * 50
local Delay = (AfterImage - i) * .03
Output = Style:format(Output, X, Y, Delay + .175, Hue, Brightness, Delay, Letter)
end
::continue::
end
print(Output)