TypeScript icon, indicating that this package has built-in type declarations

0.31.22 • Public • Published



Rocket.Chat's Icons

npm@latest npm@next npm downloads License: MIT

deps npm bundle size


Add @mmcodemark/icons as a dependency:

npm i @mmcodemark/icons

# or, if you are using yarn:

yarn add @mmcodemark/icons


Contributions, issues, and feature requests are welcome!
Feel free to check the issues.

Adding new icons

All the icons should be designed by Rocket.Chat's design crew, following some conventions:

  • The view box must have the dimensions of 32x32 units;
  • Any horizontal assimetry must follow the left-to-right direction.
  • The icon must be published on Figma.

As the icons might be arbitrarily scaled, the chosen source format for individual icon graphics is SVG. As Figma can export graphics with some additional SVG attributes and elements, they must be removed:

  • The <svg> element must contain only two attributes: viewBox (probably with the value of"0 0 32 32") and xmlns;
  • XLink references (e.g. masks and clip paths) must be discarded;
  • The <path> elements must keep only the d attribute, with no additional styling attribute;
  • <g> and other elements must be stripped by some optimization tooling, keeping only <path> elements.

The src/ directory holds all the SVG icons that would be processed. The filenames define the icon names, so they should stick with a basic rule: an icon name must describe the icon shape, not its utility. For instance:

  • [ ] message.svg (wrong)
  • [x] balloon.svg (right)

If the icon must be mirrored for right-to-left read direction, it required to add a trailing .dir before the file extension (e.g. backspace.dir.svg).


As this package dependends on others in this monorepo, before anything run the following at the root directory:

yarn build


To ensure the source is matching our coding style, we perform linting. Before commiting, check if your code fits our style by running:

yarn lint

Some linter warnings and errors can be automatically fixed:

yarn lint-and-fix


To use the fuselage icons, you need to import the css first:

@import url('@mmcodemark/icons/dist/rocketchat.css');

Usage Example:

<!-- Using Fuselage's Icon Component (Recommended) -->
<Icon name="hash" size="x20" />

<!-- HTML markup -->
<i class="rcx-icon">{icon}</i>




Package Sidebar


npm i @mmcodemark/icons

Weekly Downloads






Unpacked Size

1.4 MB

Total Files


Last publish


  • valeriy.malyshev
  • denis.akimov
  • mmcodemark-user