Skip to content

Instantly share code, notes, and snippets.

@rolandkorgowski
Created November 8, 2020 23:41
Show Gist options
  • Save rolandkorgowski/5e1cfebd70d43cc0eeeab2ceab0f83f5 to your computer and use it in GitHub Desktop.
Save rolandkorgowski/5e1cfebd70d43cc0eeeab2ceab0f83f5 to your computer and use it in GitHub Desktop.
sunrise (no JS)
- var n_rays = 8;
- var base_angle = 360/n_rays;
- var sun_rad = 50;
- var ray_rad = sun_rad*1.4;
svg(viewbox='-200 -150 400 300')
defs
line#ray(x1='-5' x2='5')
clipPath#cp
rect(x='-200' y='-150' width='400' height='150')
line#line(x1='-76' x2='76')
text(text-anchor='middle' y='45') sunrise
g#sun(clip-path='url(#cp)')
g#mover
circle#main(r=`${sun_rad}`)
g#eyes
circle(r='3' cx='-13')
circle(r='3' cx='13')
g#rays
while n_rays--
use(xlink:href='#ray' transform=`rotate(${n_rays*base_angle}) translate(${ray_rad})`)
$bg: #f4c042;
$c: #765d20;
$t: 5s;
html {
text-align: center;
background: $bg;
}
svg {
width: 400px; height: 300px;
}
* {
stroke: $c;
stroke-linecap: round;
vector-effec: non-scaling-stroke;
}
[id='line'] { stroke-width: 3; }
text {
font: .875em century gothic, verdana, sans-serif;
}
[id='mover'] {
animation: sun-motion $t cubic-bezier(0.175, 0.885, 0.32, 1.275) infinite;
}
[id='main'] {
fill: transparent;
stroke-width: 7;
}
[id='eyes'] {
animation: eye-motion $t ease-out infinite;
circle { fill: $c; }
}
[id='ray'] {
stroke-width: 4;
}
[id='rays'] {
animation: rot $t linear infinite;
}
@keyframes rot {
to { transform: rotate(.25turn); }
}
@keyframes eye-motion {
0%, 20%, 49%, 100% { transform: translate(-13px); }
21%, 25%, 29%, 47% { transform: translate(13px) scaleY(1); }
27% { transform: translate(13px) scaleY(0); }
48% { transform: translate(0); }
}
@keyframes sun-motion {
0%, 99%, 100% { transform: translateY(-16px); }
50% { transform: translateY(-29px); }
52%, 98% { transform: translate(4px) scaleY(1.25); }
53%, 97% { transform: translateY(23px); }
}

sunrise (no JS)

Live coded on Friday, the 18th of September. Tested & works in Firefox 40, Chrome 45, 47 (canary)/ Opera 32 beta on Windows 8. Uses CSS transforms on SVG elements, so it won't work in IE. Inspiration:

inspiration gif

From here.

A Pen by Ana Tudor on CodePen.

License.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment