Day 20 of the Anvil Advent Calendar

Build a web app every day until Christmas, with nothing but Python!

Baby, It’s Cold Outside

Today we’re adding a touch of Christmas sparkle to our apps: we’re going to add a snowstorm:

It’s very simple, so I’ll show you how! Or you can clone the app for yourself:

We’re going to tweak a few lines in the HTML and CSS that go into the app.

Go to any Anvil app, click on ‘Assets’ in the App Browser, and select ‘standard-page.html’ from the DropDown at the top.

We’ll add one line of HTML inside our “content” div, so that it looks like this:

<div class="content">
  <div id="snow"></div> <!-- Add this line -->
  <div anvil-slot-repeat="default" class="anvil-measure-this"></div>
  <div class="placeholder drop-here" anvil-if-slot-empty="default" anvil-drop-slot="default">Drop a ColumnPanel here.</div>

Now, all we need to do is apply a sprinkle of CSS to our ‘snow’ div. Select ’theme.css’ from the DropDown at the top, and add these lines:

#snow {
  position: absolute;
  width: 100%;
  height: 100%;
  background: url(, url(;
  background-size: 144px, 108px;
  background-position: 0px, 54px;
  background-repeat: repeat-x repeat-y, repeat-x repeat-y;
  animation: 6s linear 0s infinite snowing;
  opacity: 0.75;

@keyframes snowing {
  0% {
    background-position: 0 0, 0 0;
  25% {
    background-position: -36px 144px, -36px 36px;
  100% {
    background-position: 144px 432px, -108px 216px;
/* Thanks to for the pen. */

Wrap up warm, and enjoy the view!

Get your fill of festive frostiness here:

View the source code:

Give the Gift of Python

Share this post: