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.
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() {
super();
this.name = 'custom-icons'; // default iconset name for these icons
}
protected renderDefaultContent(): TemplateResult {
return CustomIconSet;
}
}
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.
Review the accessibility guidelines for the icon.