DefaultStatusesSizeDirectionThemesRegistrationAliasSource
An icon is a graphic symbol designed to visually show the purpose of an interface element.
<nve-icon name="person"></nve-icon>
<nve-icon name="person" status="accent"></nve-icon>
<nve-icon name="person" status="success"></nve-icon>
<nve-icon name="person" status="warning"></nve-icon>
<nve-icon name="person" status="danger"></nve-icon>
Edit Example
Semantic color variations to communicate different states, priorities, and contextual meanings in user interfaces.
<nve-icon name="person" size="sm"></nve-icon>
<nve-icon name="person"></nve-icon>
<nve-icon name="person" size="lg"></nve-icon>
Edit Example
Controls the visual scale of an element to match its importance and available space.
Size Description sm Compact size for dense layouts or secondary elements with less visual prominence. md Standard size that works well in most contexts and provides balanced visibility. lg Larger size for emphasizing important elements or improving touch targets in spacious layouts. xs xl
<nve-icon name="arrow-stop" direction="left"></nve-icon>
<nve-icon name="arrow-stop" direction="right"></nve-icon>
<nve-icon name="arrow" direction="up"></nve-icon>
<nve-icon name="arrow" direction="down"></nve-icon>
<nve-icon name="arrow" direction="left"></nve-icon>
<nve-icon name="arrow" direction="right"></nve-icon>
<nve-icon name="caret" direction="up"></nve-icon>
<nve-icon name="caret" direction="down"></nve-icon>
<nve-icon name="caret" direction="left"></nve-icon>
<nve-icon name="caret" direction="right"></nve-icon>
<nve-icon name="chevron" direction="up"></nve-icon>
<nve-icon name="chevron" direction="down"></nve-icon>
<nve-icon name="chevron" direction="left"></nve-icon>
<nve-icon name="chevron" direction="right"></nve-icon>
Edit Example
Sets the direction of the icon. Only supported by expand-panel/collapse-panel (horizontal axis) and arrow/caret/chevron icons (4-directions)
Direction Description up down left right
<div nve-theme="root light">
<nve-icon name="person"></nve-icon>
<nve-icon name="person" status="accent"></nve-icon>
<nve-icon name="person" status="success"></nve-icon>
<nve-icon name="person" status="warning"></nve-icon>
<nve-icon name="person" status="danger"></nve-icon>
</div>
<div nve-theme="root dark">
<nve-icon name="person"></nve-icon>
<nve-icon name="person" status="accent"></nve-icon>
<nve-icon name="person" status="success"></nve-icon>
<nve-icon name="person" status="warning"></nve-icon>
<nve-icon name="person" status="danger"></nve-icon>
</div>
Edit Example
Icon appearance across light and dark themes, ensuring proper contrast and visibility in different visual environments.
<nve-icon name="smile" style="--width: 75px; --height: 75px"></nve-icon>
<script type="module">
customElements.get("nve-icon").add({
smile: {
svg: () =>
'<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 48 48"><circle cx="24" cy="24" r="16" stroke="currentColor" stroke-width="3"/><circle cx="18" cy="20" r="2" fill="currentColor"/><circle cx="30" cy="20" r="2" fill="currentColor"/><path d="M17 29c1.5 2.5 4.2 4 7 4s5.5-1.5 7-4" stroke="currentColor" stroke-width="3" stroke-linecap="round"/></svg>',
},
});
</script>
Edit Example
Register SVG paths and make them accessible to the <nve-icon> element. Define icons via a string or async function returning the resulting string.
<script type="module">
await customElements.whenDefined("nve-icon");
customElements.get("nve-icon").alias({
attached: "paper-clip",
});
</script>
<nve-icon name="paper-clip"></nve-icon>
<nve-icon name="attached"></nve-icon>
Edit Example
Alias icons to a different name. This supports context-specific names or migrations between icon sets.
<nve-icon name="/static/images/test-image-1.svg" style="--width: 75px; --height: 75px"></nve-icon>
Edit Example
Provide direct SVG paths for rendering.