1. Home
  2. Docs
  3. docs
  4. Customizing Static CMS
  5. Adding Custom Icons

Adding Custom Icons

Static CMS exposes a window.CMS global object that you can use to register custom icons via registerIcon. The same object is also the default export if you import Static CMS as an npm module.

Custom icons can be used with Collections or Custom Links & Pages

Params

Param

Type

Description

name

string

A unique name for the icon

name

React Function Component

A React functional component that renders the icon

Example

This example uses Font Awesome to supply the icon.

import { faHouse } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import CMS from '@staticcms/core';

CMS.registerIcon('house', () => h(FontAwesomeIcon, {icon=faHouse, size="lg"}));
import { faHouse } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import CMS from '@staticcms/core';

CMS.registerIcon('house', () => <FontAwesomeIcon icon={faHouse} size="lg" />);
import { faHouse } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import CMS from '@staticcms/core';

CMS.registerIcon('house', () => <FontAwesomeIcon icon={faHouse} size="lg" />);

Usage

Collection

collections:
  - name: homepage
    icon: house
collections: [
  {
    name: 'homepage',
    icon: 'house'
  },
],

See Additional Links for details.