Fun with Emoji ZWJ Sequences

February 9, 2022 #random #javascript

Today I learned about Emoji ZWJ Sequences and what it takes to create the “man technologist: light skin tone” emoji I often set in my slack status. This is actually multiple unicode characters “smashed” together using a Zero Width Joiner (ZWJ) sequence.

Since I am authoring this post on Windows, I used that emoji keyboard by typing Windows logo key + . (period) and selecting the emoji. I then used the JavaScript Spread syntax (…) to expand the characters involved. Hopefully the JavaScript snippet below renders the character.


To make sure all these characters are visible, I took a screenshot on the Firefox developer tools console.

Firefox dev tools console

I didn’t research all the technical details on how these ZWJ sequences work, but I’m sure someone has blogged about it.

Kevin Hakanson

Multi-Cloud Certified Architect | DevSecOps | AppSec | Web Platform | Speaker | Learner | Builder
Twitter | LinkedIn | GitHub | Stack Overflow | Credly

© 2024 Kevin Hakanson (built with Gatsby)