Icons (SVG)
You can use SVG sprite with already defined icons by using the icon’s filename as the fragment identifier (e.g., add-note is #add-note). You can also add, remove or replace the SVG icons in your theme. See the StyleBook to find the list of all defined icons.
Using Icons
Depending on your use case, you can add any SVG icons to your themes by TWIG, HTML templates, or `JS.
Note
You can replace the add-note name in the examples below with any valid icon name. See the complete list of icon names in StyleBook.
In TWIG
{% import '@OroUI/layouts/renderIcon.html.twig' as renderIcon %}
{{ renderIcon.icon({name: 'add-note'}) }}
In HTML Templates
<% let oroui = _.macros('oroui') %>
<%= oroui.renderIcon({
name: 'add-note'
}) %>
In JS
import _ from 'underscore';
const icon = _.macros('oroui::renderIcon')({
name: 'add-note'
});
Right-to-Left Support
Note
Icons with corresponding pairs in the theme, such as arrow-left and arrow-right and those ending in -left, -right or -start , -end, will be automatically swapped for locales with RTL mode enabled. The feature is available as of OroCommerce version 6.0.3.
Use Different Icons in TWIG
{% import '@OroUI/layouts/renderIcon.html.twig' as renderIcon %}
{{ renderIcon.icon({name: oro_is_rtl_mode() ? 'alert-circle' : 'add-note'}) }}
Use Different Icons in HTML Templates
<% let oroui = _.macros('oroui') %>
<%= oroui.renderIcon({
name: _.isRTL() ? 'alert-circle' : 'add-note'
}) %>
Use Different Icons in JS
import {macros} from 'underscore';
const icon = macros('oroui::renderIcon')({name: _.isRTL() ? 'alert-circle' : 'add-note'});
Adding New Icons to SVG Sprite
Each new icon should be designed on a 24x24 grid, emphasizing simplicity, consistency, and flexibility. Please use the following file structure to add them to your theme:
MyBundle/
Resources/
public/
my-theme/
svg-icons/
my-custom-icon.svg
Replacing SVG Icons
To replace an icon, navigate to the StyleBook to find the name of the icon you want to replace. Next, add a new icon with the same name to your theme using the following file structure (e.g., replacing add-note).
MyBundle/
Resources/
public/
my-theme/
svg-icons/
add-note.svg
Run the following console command to update the SVG sprite:
php bin/console oro:assets:build
Removing SVG Icons
To remove an icon, navigate to StyleBook to find the name of the icon you want to remove. Next, create a Resources/views/layouts/{theme_name}/config/svg-icons.yml
file in your theme and write the following config in it: (e.g., remove add-note).
exclude:
- 'add-note' // svg-icon will be removed from svg-sprite
Run the following console command to update the SVG sprite:
php bin/console oro:assets:build