Fun
Christmas Tree Decorator
Hang baubles, garlands and a star on your own virtual Christmas tree, set the lights twinkling, pile presents underneath, and share it or save it as a picture or animated GIF.
Drag decorations to move them. Drag one off the picture, or tap it and press Remove, to take it off.
Save and share
The link holds the whole tree in about 172 characters — nothing is uploaded. The PNG is 800 × 1000 pixels; the GIF is a 3-second loop of the twinkling lights and snow at 400 × 500.
Play and explore in your browser. No account needed.
Frequently asked questions
What can I put on the tree?
Twelve kinds of ornament — plain, striped and snowflake baubles, teardrops, stars, bells, candy canes, gingerbread cookies, pine cones, hearts, snowflakes and bows — each in eight colours. There are tinsel, bead and berry garlands that drape across the branches, four kinds of present to stack underneath, five toppers and up to 150 decorations in total. All of the artwork was drawn for this tool.
How do the light patterns work?
Steady keeps every bulb on. Twinkle fades each bulb in and out at its own pace. Chase lights every third bulb and moves the gap along four times a second. Alternate swaps the odd and even bulbs twice a second, Slow fade brightens and dims the whole tree together, and Sparkle makes random bulbs flash. The star topper glows brighter when more bulbs are lit.
How does the share link work?
The whole tree is packed into the link: the tree, topper, background, snow, lights and three bytes for each decoration — its type, colour and position. A fully decorated tree makes a link of a few hundred characters. It sits after the # sign, which browsers don’t send to a server, and opening it shows the same tree ready to change.
What do the PNG and GIF downloads look like?
The PNG is a sharp 800 × 1000 pixel picture of the tree as it looks at that moment. The animated GIF is 400 × 500 pixels and a three-second loop at 10 frames a second; every blink pattern and the snowfall are timed to repeat exactly, so the loop is seamless. GIFs are limited to 256 colours per frame, so glows can look slightly banded.
Why aren’t my lights twinkling?
If your device is set to reduce motion, the lights and snow are shown still on the page. The animated GIF still includes the twinkling. Also check that the number of lights isn’t set to None, and that the pattern isn’t Steady.
Is my tree saved?
Your latest tree is saved in your own browser, so it is still there when you come back on the same device. To keep it anywhere else, copy the link — it holds the whole design, and nothing is uploaded.
About this tool
Decorating the tree is one of the best bits of Christmas, and this virtual tree lets you do it as often as you like, with no needles on the carpet. Start from a classic fir, a snow-dusted fir, a slim spruce, a sixties-style retro cone or a frosted pink tree, then top it with a gold star, a starburst, an angel or a big red bow. Set it in a starry night, a cosy room with a window, a snowy garden or on a plain background.
Every decoration is drawn for this tool and can be dragged anywhere: shiny baubles with highlights, striped and snowflake baubles, teardrops, bells, candy canes, gingerbread cookies, pine cones, hearts and paper-style snowflakes, in red, gold, silver, blue, purple, pink, green or white. Garlands of tinsel, beads or berries drape across the branches and follow the shape of the tree, and wrapped presents with bows stack up underneath. If you’re short of time, Decorate for me hangs a colour-matched set in one tap.
The lights follow the tree in gently sagging strings, in multicolour, warm white, cool white, red and green, icy blue or gold. Choose how they blink — steady, twinkle, chase, alternate, a slow fade or a random sparkle — and watch the star glow along with them. Falling snow can be switched on for any background.
When the tree is finished, share it with a link that rebuilds the exact same tree for whoever opens it, download a sharp PNG for a card or a wallpaper, or save a looping animated GIF of the lights twinkling to send in a chat. Everything runs in your browser; nothing you make is uploaded.