Skip to content CSS Components Web Components Native
Icon
Icons serve as visual shortcuts and should ease wayfinding through a system. They are used to illustrate simple, usually single ideas such as search, help or forward. They are essential for navigation within digital media online or within iOS or Android applications.
UX/UI Guidelines
Check the design documentation of the component in ZeroHeight.
Implementations
The component Icon
is available in the following technologies:
Parameters
Parameters
Parameters are the attributes that can be used to customize the component when using it in a project. They apply to the WebComponents implementation and wrappers and to the Vue and React CSS implementations. Some parameters names change between the implementations, in order to follow the conventions of each technology and framework.
For example, the param model
is named ngModel
in Angular, modelValue
in Vue, but stays as model
in React.
By default, all the parameters are optional or can be set in different, except for the ones marked as required
The parametrization of the component can be done with the following custom params or properties:
Name | Type | Slot | Description |
---|---|---|---|
icon | string | The main parameter has two components following the pattern:
| |
config | string | The configuration parameter has three components following the pattern:
| |
custom | object | A record of key-value pairs to set the CSS custom tokens. It's a complex attribute set as an JS object in stringified JSON format. Example: html
Check the available values in the customization section. | |
custom-str | string | The stringified version of the Example: html
| |
z-theme | string | Sets the theme of the component. The possible values are html
|
From Figma to code
You can check the Figma implementation here.
Customization
INFO
Check everything about the customization mechanics in the "How it works" documentation.
CSS Variable | Type | Description |
---|---|---|
--z-icon--color | color | Fill color of the icon |
--z-icon--size | distance | Outer size of the icon |
The color and size of the icon can be customized using the --z-icon--color
and --z-icon--size
CSS variables or the custom
attribute.
Extending icons or modifying sources
We can use the --z-icon--url
CSS variable to change the source of the icon. This way, we can use any SVG file as an icon. The rest of the component will behave the same.
The custom-str
won't work with this prop, so we need to use the CSS or using style
or custom
for instances.
SVGs for icons must be flattened
The SVG file must be flattened to work correctly. This means that the SVG file should not have any nested SVG elements or multiple SVG sub-elements.
It's better and more comfortable to do this override anyway in a CSS general file:
css
[z-icon][icon="check"] {
--z-icon--url: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/Eo_circle_green_checkmark.svg);
}
We can also use this approach to extend the icon catalog with custom icons.
css
[z-icon][icon="react"] {
--z-icon--url: url(https://upload.wikimedia.org/wikipedia/commons/a/a7/React-icon.svg);
}