How to Add Emoji in Markdown: Shortcodes and Unicode
A well placed emoji can make a README friendlier, draw the eye to a warning, or add personality to release notes. Markdown supports emoji in two main ways, and which one works depends on where your document will be read. Knowing the difference saves you from publishing a page full of broken :colon: codes.
Quick Answer: To add emoji in Markdown, either paste the Unicode emoji character directly, which works everywhere, or type a shortcode like :smile: on platforms that support it, such as GitHub. Unicode is the most portable method, while shortcodes are more readable in the raw text but only render on tools that recognize them.
This guide covers both methods, where each one works, and how to use emoji without hurting accessibility.
What Are the Two Ways to Add Emoji?
The two approaches solve the same problem differently.
Unicode characters are the actual emoji glyphs. You paste the emoji straight into your text:
Great work on this release 🎉
Because the character is literally in the file, it renders anywhere that displays text, no special support required.
Shortcodes are text aliases wrapped in colons:
Great work on this release :tada:
The platform converts :tada: into the matching emoji at render time. This keeps your raw Markdown readable and searchable, but it only works where the conversion is supported.
Where Do Emoji Shortcodes Work?
Shortcodes are not part of the core Markdown specification, so support varies:
- GitHub and GitLab support a large set of
:shortcode:aliases in issues, pull requests, and Markdown files - Many chat and documentation tools support them as well
- Plain Markdown renderers often do not, leaving the literal
:tada:text on the page
If you are unsure whether your target supports shortcodes, Unicode is the safe default. You can preview how your emoji render in a live editor like edtr.md before publishing, which immediately shows whether a glyph or a raw code appears.
How Do You Insert Unicode Emoji?
You have several ways to get the actual character into your document:
- System emoji picker. On most operating systems a keyboard shortcut opens a picker. This is the quickest method.
- Copy and paste. Grab the emoji from a reference page and paste it in.
- An editor with a built in picker. Some Markdown editors include an emoji or symbol picker so you never leave the writing surface.
Once the character is in the file, it travels with the text and renders consistently, which is why Unicode is the most reliable choice for documents that move between platforms.
Do Emoji Affect Accessibility and SEO?
Emoji are real text characters, which has a few implications worth knowing:
- Screen readers announce emoji by their description, so a string of decorative emoji can become noisy. Use them with intent, not as filler.
- Placement matters. An emoji in the middle of a sentence can interrupt the reading flow when spoken aloud.
- Headings. Be cautious putting emoji in headings, since they can change the generated anchor and affect navigation links. Our guide on building a table of contents in Markdown explains how headings become anchors.
Used sparingly, emoji add warmth and signal without harming readability. Used heavily, they create clutter for everyone, including assistive technology users.
What Are Some Practical Tips?
A few habits keep emoji helpful rather than distracting:
- Prefer one emoji to make a point over three that compete for attention
- Use Unicode for documents that will be read outside a single platform
- Use shortcodes when you and your team mostly work on GitHub and value readable raw text
- Keep emoji out of anchors and link targets to avoid surprises
Add a Little Personality
Emoji are a small touch that can make documentation more human. Open edtr.md, drop in a Unicode emoji or try a shortcode, and watch how it renders in the live preview. Once you know which method your platform supports, you can sprinkle in just enough personality to make your writing inviting without getting in the way.