Icon
A sizing/color frame around a slotted glyph — brings no icon set of its own.
fandry-icon
Example
Link to section ExampleCustom colors and parts
Link to section Custom colors and partsThe same component with a few --fd-* tokens set around it and its parts restyled. The code is under Parts below.
Props
Link to section Props| Prop | Type | Default | Description |
|---|---|---|---|
size | 'sm' | 'md' | 'lg' | 'md' | Icon size. |
label | string | '' | Set only when the icon is the sole content conveying meaning (icon-only button). |
aria-label | string | — | The same name, set the standard way. Wins over label. |
Parts
Link to section PartsStyle the elements inside the component from your own CSS with ::part(). Every fandry component renders in native shadow DOM, so parts work on LWR and Salesforce alike. For colors, spacing, radius and type across many components, set the --fd-* tokens instead. The code for the "Custom colors and parts" example above:
| Part | Description |
|---|---|
base | The outermost element. |
<!-- template -->
<div class="brand row">
<fandry-icon size="md">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2l2.9 6.9L22 9.3l-5.5 4.8L18 21l-6-3.6L6 21l1.5-6.9L2 9.3l7.1-.4z"></path>
</svg>
</fandry-icon>
<fandry-icon size="md" class="large">
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2l2.9 6.9L22 9.3l-5.5 4.8L18 21l-6-3.6L6 21l1.5-6.9L2 9.3l7.1-.4z"></path>
</svg>
</fandry-icon>
</div>
/* css */
fandry-icon::part(base) {
box-sizing: content-box;
padding: 0.5rem;
color: hsl(45 90% 45%);
background: hsl(45 90% 94%);
border-radius: 999px;
}
/* One icon only, at any size. */
.large::part(base) {
width: 2.5rem;
height: 2.5rem;
}
Code
Link to section Code<fandry-icon size="md" label="Favorite"> <svg viewBox="0 0 24 24">...</svg> </fandry-icon>