Back to Blog
Guide

Holiday Slack Profile Pictures: Christmas, Halloween and Free Frames

A holiday Slack profile picture works best as your own photo with a seasonal touch: a Santa hat, a candy-cane frame, a Halloween hat. Ideas for Christmas, Halloween, Hanukkah, Diwali, Thanksgiving and New Year, six free transparent frame overlays, a script that adds them to your photo, and the size Slack needs.

Slack Green Team
September 28, 2026
October 6, 2026
7 min read
Share:
slack
profile picture
holidays

The best holiday Slack profile picture is still your own face, with one seasonal touch: a Santa hat, a candy-cane frame, a witch hat or a party hat. Coworkers find people in Slack by their photo, so a photo of a pumpkin or a snowman makes you harder to find. Keep it square, between 512 and 1024 pixels, and put your normal photo back when the holiday ends. Below are ideas for each holiday, six free transparent frames you can lay over your photo, and a short script that does it for you.

The image results for this search are stock photos from Pexels, Pinterest boards and Canva templates. They are fine for inspiration, but most are not sized for Slack and none keep your face in the picture. The frames on this page are 1024 by 1024 pixels, the largest size Slack takes.

Holiday Slack profile pictures: add a frame or hat to your own photo, 512 to 1024 px square

Holiday profile picture ideas by holiday

Holiday profile picture ideas and a status to match, from Halloween to Lunar New Year
HolidayProfile picture ideaStatus to pair
Halloween, 31 OctoberYou in a costume, or your photo with a witch hat overlay🎃 :jack_o_lantern: Spooky season
Diwali, 8 NovemberA photo with diyas or string lights🪔 :diya_lamp: Happy Diwali
Thanksgiving, 26 November (US)Autumn-colored frame, or you with a pie🦃 :turkey: Out for Thanksgiving
Hanukkah, 4 to 12 DecemberBlue and white frame, a menorah in the background🕎 :menorah_with_nine_branches: Happy Hanukkah
Christmas, 25 DecemberSanta hat, candy-cane frame or a holiday sweater🎄 :christmas_tree: Out until 2 Jan
New Year, 1 JanuaryParty hat, gold frame, fireworks behind you🎉 :tada: Back on 2 Jan
Lunar New Year, 6 FebruaryRed and gold frame, lanterns in the background🧧 :red_envelope: Happy Lunar New Year

Dates are for the 2026 holiday season and the start of 2027. More ideas that stay safe for work are in funny Slack profile pictures.

A few tips that apply to every holiday:

  • • Keep your face at the center. Slack shows your picture as a small rounded square, about the size of a fingertip next to your messages. A hat and a frame read at that size; a detailed scene does not.
  • • Use one touch. A hat or a frame, not both plus a background.
  • • Mind a mixed team. "Happy holidays" or a winter frame suits a team that does not all celebrate Christmas.
  • • Check your workspace rules. Some companies ask for a plain photo. Each workspace has its own profile picture, and it shows wherever your profile appears in that workspace, shared channels included.
  • Free holiday frames for your Slack photo

    Six holiday frames made by the script: Christmas, Halloween, Hanukkah, Thanksgiving, New Year, Lunar New Year

    Each frame is a 1024 by 1024 PNG with a transparent middle. Open it on top of your photo in any editor that has layers, such as Canva, Figma, Photopea or Keynote, and export a square PNG:

  • • Christmas: candy-cane frame and Santa hat
  • • Halloween: orange and black frame and witch hat
  • • Hanukkah: blue and white frame
  • • Thanksgiving: autumn frame
  • • New Year: gold and black frame and party hat
  • • Lunar New Year: red and gold frame
  • The hats are placed for a face in the middle of the square. If yours sits higher or lower, move the hat layer.

    Add the frame with a script

    If you would rather not open an editor, this Python script crops your photo to a square, adds the hat and the frame, and saves a 1024 by 1024 PNG. It needs the Pillow library (pip install pillow):

    import sys
    from PIL import Image, ImageDraw, ImageOps
    
    SIZE = 1024  # Slack takes 512 to 1024 px, square
    BORDER = 80  # frame width in px
    
    THEMES = {
        "christmas": {"stripes": ["#dc2626", "#ffffff"], "edge": "#991b1b", "hat": "santa"},
        "halloween": {"stripes": ["#f97316", "#111827"], "edge": "#111827", "hat": "witch"},
        "hanukkah": {"stripes": ["#1d4ed8", "#ffffff"], "edge": "#1e3a8a", "hat": None},
        "thanksgiving": {"stripes": ["#b45309", "#f59e0b", "#7c2d12"], "edge": "#7c2d12", "hat": None},
        "new-year": {"stripes": ["#eab308", "#111827"], "edge": "#111827", "hat": "party"},
        "lunar-new-year": {"stripes": ["#dc2626", "#facc15"], "edge": "#991b1b", "hat": None},
    }
    
    
    def plain_avatar():
        """A stand-in photo: white figure on green."""
        img = Image.new("RGB", (SIZE, SIZE), "#22c55e")
        d = ImageDraw.Draw(img)
        r = SIZE * 0.17
        d.ellipse([SIZE / 2 - r, SIZE * 0.22, SIZE / 2 + r, SIZE * 0.22 + 2 * r], fill="white")
        d.pieslice([SIZE * 0.14, SIZE * 0.64, SIZE * 0.86, SIZE * 1.36], 180, 360, fill="white")
        return img
    
    
    def frame(img, colors, edge):
        """Diagonal candy-cane stripes around the edge of the square."""
        stripes = Image.new(img.mode, (SIZE, SIZE))
        d = ImageDraw.Draw(stripes)
        w = 48
        for i, x in enumerate(range(-SIZE, 2 * SIZE, w)):
            d.polygon([(x, 0), (x + w, 0), (x + w - SIZE, SIZE), (x - SIZE, SIZE)], fill=colors[i % len(colors)])
        mask = Image.new("L", (SIZE, SIZE), 255)
        ImageDraw.Draw(mask).rounded_rectangle([BORDER, BORDER, SIZE - BORDER, SIZE - BORDER], 60, fill=0)
        img.paste(stripes, (0, 0), mask)
        d = ImageDraw.Draw(img)
        d.rectangle([0, 0, SIZE - 1, SIZE - 1], outline=edge, width=8)
        d.rounded_rectangle([BORDER, BORDER, SIZE - BORDER, SIZE - BORDER], 60, outline=edge, width=8)
    
    
    def hat(img, kind):
        d = ImageDraw.Draw(img)
        x, top = SIZE / 2, SIZE * 0.22  # center and top of the head
        if kind == "santa":
            d.polygon([(x - 170, top + 60), (x + 170, top + 60), (x + 220, top - 90)], fill="#dc2626")
            d.rounded_rectangle([x - 200, top + 40, x + 200, top + 110], 35, fill="white", outline="#e5e7eb", width=4)
            d.ellipse([x + 180, top - 130, x + 260, top - 50], fill="white", outline="#e5e7eb", width=4)
        elif kind == "witch":
            d.polygon([(x - 120, top + 40), (x + 120, top + 40), (x + 50, top - 190)], fill="#111827")
            d.ellipse([x - 240, top + 10, x + 240, top + 75], fill="#111827")
            d.polygon([(x - 108, top + 5), (x + 110, top + 5), (x + 118, top + 38), (x - 118, top + 38)], fill="#f97316")
        elif kind == "party":
            d.polygon([(x - 95, top + 40), (x + 95, top + 40), (x, top - 180)], fill="#eab308")
            for y in (top - 90, top - 30, top + 20):
                d.line([(x - 60, y), (x + 60, y)], fill="#111827", width=10)
            d.ellipse([x - 32, top - 212, x + 32, top - 148], fill="#f97316")
    
    
    def make(src, theme, out):
        if src == "--overlay":  # transparent PNG to lay over a photo in any editor
            img = Image.new("RGBA", (SIZE, SIZE), (0, 0, 0, 0))
        elif src:
            img = ImageOps.fit(Image.open(src).convert("RGB"), (SIZE, SIZE))
        else:
            img = plain_avatar()
        t = THEMES[theme]
        if t["hat"]:
            hat(img, t["hat"])
        frame(img, t["stripes"], t["edge"])
        img.save(out)
        return out
    
    
    if __name__ == "__main__":
        # python holiday_pfp.py christmas photo.jpg   (or --overlay, or nothing for a demo)
        theme = sys.argv[1] if len(sys.argv) > 1 else "christmas"
        src = sys.argv[2] if len(sys.argv) > 2 else None
        name = f"slack-{theme}-overlay.png" if src == "--overlay" else f"slack-{theme}.png"
        print(make(src, theme, name), SIZE, "x", SIZE)

    Run it with the holiday and your photo:

    python holiday_pfp.py christmas me.jpg     # saves slack-christmas.png
    python holiday_pfp.py halloween --overlay  # a transparent frame only
    python holiday_pfp.py new-year             # a demo on a stand-in figure

    We ran all three forms on 28 September; each printed the file name and 1024 x 1024. The six images above are its demo output. Themes are christmas, halloween, hanukkah, thanksgiving, new-year and lunar-new-year; change the hex colors in THEMES to make your own.

Never appear "away" on Slack again

Cloud-based. No downloads. Works 24/7 even when your laptop is off.

How to change your Slack profile picture for the holidays

Switch to a holiday profile picture and back: make it, upload it, match your status, put your normal photo back

  • Click your profile picture in the sidebar and select Profile, then Edit.
  • Under Profile photo, click Upload Photo and pick the holiday image.
  • Adjust the framing, click Save, then Save Changes.
  • On iPhone or Android, tap your profile picture, then View profile, Edit Profile and Edit Photo. Slack asks for at least 512 by 512 and at most 1024 by 1024 pixels.

    Keep your normal photo file, because switching back in January means uploading it again. A script can do both uploads with users.setPhoto and a user token; the call and its crop options are in change a Slack profile picture by API. Set a status that clears itself on the last day of the holiday so the two match; see Slack status clear after. If you are away for the holidays, add an out of office message.

    Christmas and Halloween Slack themes

    A profile picture changes what others see. A Slack theme changes only what you see; the import rules and four tested theme strings are in Slack themes. Slack has no Christmas or Halloween theme in its list, but you can make one: click your profile picture, choose Preferences, then Appearance, open Custom theme and set the Theme colors. Colors that work:

    ThemeSystem navigationSelected itemsPresence indication and Notifications
    Halloween#111827 (black)#f97316 (orange)#a855f7 (purple)
    Christmas#14532d (pine green)#dc2626 (red)#facc15 (gold)
    Winter#1e3a8a (navy)#93c5fd (ice blue)#ffffff (white)

    Share gives you the theme to send to a coworker, and Import loads one someone sent you. The font menu on the same page is covered in what font Slack uses.

    Slack has no background image setting, so "Halloween Slack background" usually means a theme like the ones above.

    Holiday emoji to go with the picture

    A custom holiday emoji adds more than a photo does, because it can go on every message. The built-in holiday codes are in Halloween and holiday Slack emoji. Make a Santa hat or pumpkin version of your team's favorite emoji with our free Slack emoji maker, and shrink any GIF under Slack's size limit with the Slack emoji resizer. For seasonal status lines, try the Slack status generator.

    FAQ

    What size should a Slack profile picture be?

    Square, at least 512 by 512 and at most 1024 by 1024 pixels.

    How do I put a Santa hat on my Slack profile picture?

    Lay our free Christmas overlay over your photo in an editor with layers, or run the script above with christmas and your photo.

    Where can I find a Christmas Slack profile picture?

    Stock sites have holiday images, but a frame or hat on your own photo keeps you easy to recognize. Download a frame above.

    Is there a Christmas theme in Slack?

    No built-in one. Make it in Preferences, Appearance, Custom theme with green, red and gold.

    Can I set a Slack profile picture that changes by itself?

    Not in Slack's settings. Upload the holiday photo yourself and put the normal one back afterward.

    Will coworkers see my holiday Slack profile picture everywhere?

    Yes, in that workspace. It replaces your photo next to your messages, in your profile and in shared channels where you appear.

    Always Active

    Stop Jiggling Your Mouse.

    Join hundreds of remote workers who never worry about their Slack status. Set it up once, stay green forever.

    Related Articles

    Guide

    How to See All Your DMs in Slack, Including the Hidden Ones

    The DMs tab lists your direct messages with people. App DMs, Slackbot and DMs with deleted accounts sit elsewhere. We compared the tab with the full list the Slack API returned.

    Slack Green Team
    Guide

    Slack Images Not Showing? 5 Causes We Reproduced

    We uploaded images to a Slack test channel and then switched each image setting off, ran /collapse, and posted from a bot that was not in the channel. Five causes, each reproduced.

    Slack Green Team
    Guide

    How to Message Yourself on Slack (and What It Notifies)

    Your own name under Direct messages opens a private DM with yourself. We sent it a note, a file, a scheduled message and a reminder, and checked which ones raised a badge.

    Slack Green Team