Inject Apple-Style Color Emojis on Notion!
Enhance your Notion experience with Apple's vibrant color emojis, making your notes and projects more expressive and visually appealing.
The Emojis Injector Extension is a lightweight browser extension that brings Apple-style color emojis to Notion pages, transforming your workspace into a more engaging and fun environment. Note: Works on both Notion web and desktop application.
- Apple-Style Color Emojis: Converts plain-text emojis into Apple color emojis for aesthetic look.
- Cross-Platform Compatibility: Works on both Notion web and desktop application.
- Browser-Agnostic: Compatible with most modern browsers.
- Simple Implementation: Easy to set up whether you're using browser extension or desktop app injection.
⚠️ The Sidebar (desktop app) and Pages Icon Have Issues Due to The New Notion Update (I'm Working on Fixing Them).⚠️
- Download the Release Files: Get the latest version from the Releases section.
- Install in Your Browser:
- Open your browser's extension management page
- Enable "Developer Mode" or similar option
- Click "Load unpacked" and select the extension's folder
- Use on Notion: Open any Notion page to see Apple-style emojis in action!
- Access Developer Tools:
- Press
Alt
key - Go to
View
in the menu bar - Select
Toggle Developer Tools
- Press
- Inject the Code:
- In the Developer Tools window, navigate to the Console tab
- Copy the code below and paste it into the console
function isEmoji(str) {
return /\p{Emoji}/u.test(str);
}
function replaceAllNotionIcons() {
// Updated selectors: include new Notion elements with data-emoji attribute.
document.querySelectorAll('img.notion-emoji, div[data-emoji], img[aria-label], .property-check img[aria-label]').forEach(el => {
// Get emoji from data-emoji, aria-label, or alt.
const emoji = el.getAttribute('data-emoji') || el.getAttribute('aria-label') || el.alt;
if (emoji && isEmoji(emoji)) {
const emojiUrl = `https://emojicdn.elk.sh/${encodeURIComponent(emoji)}?style=apple`;
// Create a style rule for this emoji if it doesn't exist already.
const styleId = `emoji-style-${emoji}`;
if (!document.getElementById(styleId)) {
const style = document.createElement('style');
style.id = styleId;
style.textContent = `
img.notion-emoji[alt="${emoji}"],
img.notion-emoji[aria-label="${emoji}"],
div[data-emoji="${emoji}"] {
background-image: url('${emojiUrl}') !important;
background-size: contain !important;
width: 1em !important;
height: 1em !important;
}
`;
document.head.appendChild(style);
}
// If the element is an image, update its src and add error handling.
if (el.tagName === 'IMG') {
el.onerror = function() {
// Retry loading after a short delay if it fails.
setTimeout(() => {
el.src = emojiUrl;
}, 3000);
};
el.src = emojiUrl;
el.style.transition = 'opacity 100ms ease-in';
el.style.width = '1em';
el.style.height = '1em';
} else {
// For divs (or other non-image elements), set the background image directly.
el.style.backgroundImage = `url('${emojiUrl}')`;
el.style.backgroundSize = 'contain';
el.style.width = '1em';
el.style.height = '1em';
}
}
});
}
// Run initially.
replaceAllNotionIcons();
// Watch for new emoji elements being added.
const observer = new MutationObserver(() => {
replaceAllNotionIcons();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
- Important Notes:
- This process needs to be repeated each time you open the Notion app
- The injection is temporary and will reset when you fully close the app
Contributions are welcome! Whether it's reporting bugs, suggesting new features, or improving existing functionality, we'd love your input.
To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -am 'Add YourFeature'
) - Push the branch (
git push origin feature/YourFeature
) - Open a Pull Request
- Desktop app implementation requires manual code injection each session
- No persistent storage solution for desktop app yet
- Code must be reinjected after app restart
This project is licensed under the MIT License.
For questions or support, feel free to reach out:
- Twitter: @ziadverse
- Instagram: @ziadscreativecorner
Enjoy using the Emojis Injector Extension and bring a colorful touch to your Notion pages! ✨