Description #

Extend either the Iconset or IconsetSVG exports of this package to supply your application with a custom icon set to power the use of <sp-icon> elements throughout. Give your new icon set a custom name, and you'll be ready to supply them as <sp-icon name="custom-icons:icon"> across your application.

Usage #

See it on NPM! How big is this package in your project?

yarn add @spectrum-web-components/iconset
import { TemplateResult } from 'lit-element';
import { IconsetSVG } from '@spectrum-web-components/iconset/src/iconset-svg.js';

import { CustomIconSet } from 'your-icon-set.js';

export class IconsLarge extends IconsetSVG {
    public constructor() {
        this.name = 'custom-icons'; // default iconset name for these icons

    protected renderDefaultContent(): TemplateResult {
        return CustomIconSet;

Deprecated #

Iconsets have been deprecated and will be removed from the project in an upcoming version. Using a technique that ensures only the icons actually leveraged in your application are present in your build, like UI Icons (../icons-ui/) or Workflow Icons (../icons-workflow/), will ensure smaller bundles and higher performance for you visitor. For non-Spectrum icons, you can still slot SVG and image content into an sp-icon element or sanitize the SVG to a template literal so that it can be returned from the render() method in an extension of IconBase to create your own named icon element.