Markdown Emoji: Shortcodes and Unicode Characters
How to add emoji to markdown using shortcodes and Unicode. Covers GitHub emoji, platform support, and when to use emoji in documentation.
Last updated: March 1, 2026
There are two ways to add emoji to markdown: shortcodes (:fire:) and Unicode characters (π₯). Shortcodes are GitHub-specific and render on platforms that support them. Unicode emoji work everywhere because they are regular text characters.
Shortcodes
Shortcodes wrap an emoji name in colons:
:fire: :rocket: :white_check_mark: :warning:On GitHub, this renders as: π₯ π β β οΈ
Commonly Used Shortcodes
| Shortcode | Emoji | Common Use |
|---|---|---|
:white_check_mark: | β | Done, passing |
:x: | β | Failed, missing |
:warning: | β οΈ | Caution, attention |
:fire: | π₯ | Hot, popular, breaking |
:rocket: | π | Launch, deploy, fast |
:bug: | π | Bug, issue |
:tada: | π | Celebration, release |
:memo: | π | Documentation, notes |
:wrench: | π§ | Fix, configuration |
:sparkles: | β¨ | New feature |
:recycle: | β»οΈ | Refactor |
:lock: | π | Security |
:bookmark: | π | Version, tag |
:bulb: | π‘ | Idea, tip |
:construction: | π§ | Work in progress |
:arrow_up: | β¬οΈ | Upgrade, increase |
:arrow_down: | β¬οΈ | Downgrade, decrease |
:zap: | β‘ | Performance, speed |
:art: | π¨ | Design, style |
:wastebasket: | ποΈ | Delete, remove |
GitHub supports over 1,500 shortcodes. The full list is at github.com/ikatyang/emoji-cheat-sheet.
Unicode Emoji
Copy and paste emoji characters directly into your markdown:
Great work! π Ship it! πUnicode emoji are plain text. They work in every editor, every platform, and every markdown processor. No special support needed.
To insert Unicode emoji:
- macOS:
Ctrl + Cmd + Spaceopens the emoji picker - Windows:
Win + .(period) opens the emoji picker - Linux: Depends on desktop environment;
Ctrl + .in some apps
Shortcodes vs Unicode
| Aspect | Shortcodes (:fire:) | Unicode (π₯) |
|---|---|---|
| Works on GitHub | Yes | Yes |
| Works in VS Code | No (shows text) | Yes |
| Works in Obsidian | Via plugin | Yes |
| Works on MDtoLink | No (shows text) | Yes |
| Works in Slack | Yes (Slack-specific set) | Yes |
| Works in Discord | Yes (Discord-specific set) | Yes |
| Readable in raw text | Yes | Depends on editor |
| Consistent rendering | Platform-dependent | OS-dependent |
Recommendation: Use Unicode emoji for maximum compatibility. Use shortcodes only when writing specifically for GitHub or a platform that supports them.
Emoji in Git Commits
The Conventional Commits community popularized emoji prefixes for commit messages:
| Emoji | Shortcode | Commit Type |
|---|---|---|
| β¨ | :sparkles: | New feature |
| π | :bug: | Bug fix |
| π | :memo: | Documentation |
| π¨ | :art: | Style/format |
| β»οΈ | :recycle: | Refactor |
| π₯ | :fire: | Remove code/files |
| π | :rocket: | Deploy |
| π | :lock: | Security fix |
| β¬οΈ | :arrow_up: | Upgrade dependency |
| π | :tada: | Initial commit |
Example:
git commit -m "β¨ Add custom domain support"git commit -m "π Fix timeout on large file uploads"The gitmoji convention provides a standardized mapping. Some teams use it; others find it distracting. Choose based on your teamβs preference.
Emoji in README Files
Common patterns for using emoji in README files:
Status badges:
## Features
- β
Markdown rendering- β
Custom domains- π§ Collaborative editing (coming soon)- β Self-hosted option (not planned)Section headers:
## π Getting Started## π Documentation## π€ ContributingTable of contents:
- [π¦ Installation](#installation)- [βοΈ Configuration](#configuration)- [π Usage](#usage)Keep emoji use consistent. If one section header has an emoji, all should. Mixing emoji and plain headers looks inconsistent.
When to Use Emoji in Documentation
Emoji can improve scannability and add personality, but overuse makes content harder to read.
Good uses:
- Status indicators (β β β οΈ π§)
- Visual markers in lists and tables
- Commit message prefixes (team convention)
- Casual documentation (README, release notes)
Avoid emoji in:
- API reference documentation
- Formal technical writing
- Error messages
- Inline with dense prose
A status table with emoji is helpful. A paragraph with emoji after every sentence is distracting.
Platform Differences
| Feature | GitHub | VS Code | Obsidian | MDtoLink | Discord | Slack |
|---|---|---|---|---|---|---|
Shortcodes (:fire:) | Yes | No | Plugin | No | Yes | Yes |
| Unicode emoji | Yes | Yes | Yes | Yes | Yes | Yes |
| Custom emoji | No | No | No | No | Yes (server) | Yes (workspace) |
| Emoji in headings | Yes | Yes | Yes | Yes | Yes | N/A |
| Emoji in code blocks | Literal | Literal | Literal | Literal | Literal | Literal |
Discord and Slack support custom emoji uploaded by server/workspace admins. These use a similar shortcode syntax but are not portable.
FAQ
How do I add emoji to markdown?
Two ways: shortcodes (:fire:) that work on GitHub and some other platforms, or Unicode emoji (π₯) that you copy-paste or insert via your OS emoji picker. Unicode works everywhere.
Do emoji shortcodes work outside GitHub?
Most do not. Slack and Discord have their own shortcode sets with some overlap. VS Code, Obsidian, and most static site generators do not render shortcodes. Use Unicode for cross-platform compatibility.
Should I use emoji in commit messages?
It depends on your team. Emoji prefixes (like gitmoji) can make commit history more scannable, but some teams find them noisy. If your team has no convention, ask before introducing them.
Do emoji affect SEO or accessibility?
Screen readers announce most emoji by their Unicode name (βfireβ, βrocketβ, βcheck markβ). Excessive emoji can slow down screen reader users. For accessibility, use emoji sparingly and ensure they are not the only way to convey information.
Try It Out
Add emoji to your markdown in the MDtoLink editor and preview the result. Publish your document to a shareable URL when itβs ready.
For the full syntax reference, see the markdown cheat sheet.
Founder, MDtoLink
David builds developer tools and writes about markdown workflows, documentation, and AI-assisted publishing.
Publish your markdown to a shareable URL
One command. Free to start. No credit card.