Categories: CSSScriptWeb Design

Replace Emojis with Crisp SVG Images with Nomoji JS Library

Nomoji is a JavaScript library that replaces native text emojis with high-quality SVG images.

It uses Google’s Noto Emoji library to ensure consistent rendering across all platforms and devices. You just pass a string to the library, and it returns HTML with embedded SVG emoji elements instead of native emoji characters.

Table of Contents

Toggle

Features:

  • HTML Sanitization: Built-in protection against XSS attacks by automatically escaping dangerous HTML characters in processed text.
  • Customizable Path Prefix: Configure the SVG directory location to match your project structure and deployment setup.
  • CSS Styling Control: Apply custom styles to all emoji images through a single .emoji class selector.
  • Minimal Dependencies: Pure JavaScript implementation with no external runtime dependencies required.
  • Comprehensive Coverage: Includes 3700+ SVG files covering the complete Unicode emoji specification, including country flags and complex emoji sequences.

How To Use It:

1. Install nomoji and import it into your project.

# NPM
$ npm install nomoji
import nomoji from 'nomoji';

2. The nomoji package includes a folder named svg containing all the emoji images. You need to copy this folder from node_modules/nomoji/ and place it in a publicly accessible directory on your web server.

For example, you might place it in your public or static assets folder.

3. Call the nomoji function with a text string containing emojis:

Sponsored

The function returns an HTML string with emoji characters replaced by img tags. Each emoji is converted to its unicode hex codepoint, which maps to the corresponding SVG filename.

const result = nomoji("Hello world! 😃 This is a test. 💻");
Hello world! <img draggable="false" class="emoji" src="svg/1f603.svg"> This is a test. <img draggable="false" class="emoji" src="svg/1f4bb.svg"></p>

4. The nomoji function accepts two optional parameters for more control.

  • prefix (string, default: ''): Defines a path prefix for the SVG image sources. This is useful if you placed the svg folder in a subdirectory.
  • disableSanitation (boolean, default: false): By default, nomoji sanitizes characters like &lt; and &gt; to prevent them from being rendered as HTML. Set this to true only if you trust the input source and need to render HTML mixed with emojis.
nomoji(text, [prefix], [disableSanitation])

5. The default styles make emojis match your text’s font size. You can override these properties to adjust sizing, spacing, or add effects like filters or transforms.

.emoji {
  width: 1em;
  height: 1em;
  vertical-align: -0.1em;
  margin: 0 0.05em;
}

The post Replace Emojis with Crisp SVG Images with Nomoji JS Library appeared first on CSS Script.

rssfeeds-admin

Share
Published by
rssfeeds-admin

Recent Posts

Jeffrey Epstein saw promise in Bitcoin — and its far-right supporters

The tranche of Jeffrey Epstein emails and files released on January 30th tie the infamous…

18 minutes ago

Imagine’s Steve Reynolds Discusses Impact Of Pixel Power Acquisition

The post Imagine’s Steve Reynolds Discusses Impact Of Pixel Power Acquisition appeared first on TV…

38 minutes ago

ATSC Appoints Anil Bhardwaj Director of Technology & Strategy For India & Emerging Markets

Anil Bhardwaj Broadcast standards association ATSC has named Indian broadcasting executive Anil Bhardwaj as director of…

38 minutes ago

Telestream Expands AI Capabilities Across Media Workflow Portfolio

Telestream is expanding practical AI enhancements across its Vantage, Vantage Cloud, EDC, Stanza and Qualify product lines to unify operations across on-premises,…

38 minutes ago

Teatro Alla Scala Elevates Backstage Communication With Riedel’s Bolero Wireless Intercom System

Riedel Communications today announced that Fondazione Teatro alla Scala has deployed a comprehensive wireless intercom…

38 minutes ago

NAB Show: Netgear to Showcase Expanded Broadcast Portfolio

At the 2026 NAB Show in Las Vegas, April 18-22, Netgear will highlight its new…

38 minutes ago

This website uses cookies.