Icons can be used to represent concepts or provide context to options and/or actions within an experience.
The <auro-icon> element comes pre-configured with all the available Auro Icons . Simply add the category and name of the icon for quick and easy results.
The <auro-icon> element should be used in situations where users may:
- Benefit from additional context provided by an icon alongside text
- Need to quickly identify actions or options represented by icons
- Require visual indicators to enhance usability and navigation within an interface
$ npm i @aurodesignsystem/auro-iconDefining the dependency within each project that is using the <auro-icon> component.
import "@aurodesignsystem/auro-icon";In cases where the project is not able to process JS assets, there are pre-processed assets available for use. Legacy browsers such as IE11 are no longer supported.
<script type="module" src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-icon@latest/+esm"></script><auro-icon category="interface" name="pin-trip"></auro-icon>There are two key parts to every Auro component: the class and the custom element definition. The class defines the component’s behavior, while the custom element registers it under a specific name so it can be used in HTML.
When you install the component as described on the Install page, the class is imported automatically, and the component is registered globally for you.
However, if you need to load multiple versions of the same component on a single page (for example, when two projects depend on different versions), you can manually register the class under a custom element name to avoid conflicts.
You can do this by importing only the component class and using the register(name) method with a unique name:
// Import the class only
import { AuroIcon } from '@aurodesignsystem/auro-icon/class';
// Register with a custom name if desired
AuroIcon.register('custom-icon');This will create a new custom element <custom-icon> that behaves exactly like <auro-icon>, allowing both to coexist on the same page without interfering with each other.
<custom-icon category="interface" name="pin-trip"></custom-icon>