This is a recurring project I take on for the holidays at 23andMe. With beautiful photos and spec provided by our design team, I get to bring the holidays to life with animations. Considering cross browser compatibility and performance, I chose to use pure CSS for the final effect last year.  Because the number of snowballs and flakes were limited, I could manually place them in the DOM with CSS. However, the 2016 specs required a dense snowfall, pushing me towards a Javascript solution.

2015 Pure CSS Solution

2016 CSS & JS Solution

Snowballs were created by randomly assigning height, width, opacity, left/top position, and animation properties. The results was a much denser and "natural" snowfall.