· 3 min read
Symfony UX Icons : Du SVG en une ligne de code
Le front et sa complexité, c'est fini depuis Symfony UX. Découvrez comment intégrer des icônes SVG en une ligne de code.
Introduction
Symfony UX est une révolution pour les développeurs Symfony. Fini la complexité du front-end, Symfony UX simplifie tout. Découvrez comment intégrer des icônes SVG en une ligne de code.
Un projet de démo
Pour illustrer ces nouveautés, nous allons utiliser un projet vierge Symfony 7.1.
symfony new demo-ux --webapp
cd demo-ux
symfony serve -d
1. Symfony UX Icons
Le package Symfony UX Icons propose une méthode simple pour intégrer des icônes SVG dans les applications Symfony.
En utilisant une fonction Twig, il permet d’inclure des icônes provenant de sources locales ou distantes, et offre un accès direct à plus de 200 000 icônes de collections populaires telles que FontAwesome, Bootstrap Icons et Google Material Design Icons.
- Installons le package :
composer require symfony/ux-icons
- Créons un contrôleur pour tester le bundle :
symfony console make:controller Icon
- Recherchons les “set” d’icônes disponibles :
symfony console ux:icons:search fa # fa pour FontAwesome
------------------------ ------- ------------------- ------------- ------------------------
Icon set Icons License Prefix Example
------------------------ ------- ------------------- ------------- ------------------------
Font Awesome Solid 1392 CC BY 4.0 fa6-solid fa6-solid:location-pin
Font Awesome Regular 163 CC BY 4.0 fa6-regular fa6-regular:message
Font Awesome Brands 490 CC BY 4.0 fa6-brands fa6-brands:strava
FontAudio 155 CC BY 4.0 fad fad:shuffle
Font Awesome 5 Solid 1001 CC BY 4.0 fa-solid fa-solid:search-plus
Font Awesome 5 Regular 151 CC BY 4.0 fa-regular fa-regular:bell
Font Awesome 5 Brands 457 CC BY 4.0 fa-brands fa-brands:amazon
Font Awesome 4 678 Open Font License fa fa:wrench
------------------------ ------- ------------------- ------------- ------------------------
- On peut même rechercher dans une seule collection :
symfony console ux:icons:search tabler user
Searching Tabler Icons icons "user"...
Found 39 icons.
------------------------------------------ ------------------------------------------
tabler:calendar-user tabler:message-circle-user
tabler:message-user tabler:password-user
tabler:user tabler:user-bolt
tabler:user-cancel tabler:user-check
tabler:user-circle tabler:user-code
tabler:user-cog tabler:user-dollar
tabler:user-down tabler:user-edit
tabler:user-exclamation tabler:user-filled
tabler:user-heart tabler:user-hexagon
tabler:user-minus tabler:user-off
tabler:user-pause tabler:user-pentagon
tabler:user-pin tabler:user-plus
------------------------------------------ ------------------------------------------
Magnifique, non ? Ne nous reste plus qu’à les utiliser dans notre template Twig :
{% extends 'base.html.twig' %}
{% block title %}Hello IconController!{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
{{ ux_icon('tabler:message-circle-user') }}
</div>
{% endblock %}
C’est tout ! Vous avez maintenant un magnifique icône SVG dans votre page.
- Besion de fixer la taille de l’icône ? Aucun problème :
{{ ux_icon('tabler:message-circle-user', {height: '50px', width: '50px' } ) }}
Bonus, pour chercher vos icones hyper simplement et visuellement, vous pouvez utiliser la page dédiée https://ux.symfony.com/icons.
2. Option “Twig Component”
Vous pouvez également utiliser des composants Twig pour afficher des icônes SVG en lieu et place de la fonction ux_icon
.
Il vous faut au préalable installer le package symfony/ux-twig-component
:
composer require symfony/ux-twig-component
Ensuite, vous pouvez utiliser le composant Twig ux:icon
:
<twig:ux:icon name="flowbite:user-solid" />
C’est une alternative à la fonction ux_icon
qui peut être plus pratique dans certains cas, et peut être plus lisible dans vos templates ?
Conclusion
Symfony UX Icons est un bundle qui simplifie grandement l’intégration d’icônes SVG dans vos applications Symfony. Il offre un accès direct à plus de 200 000 icônes de collections populaires telles que FontAwesome, Bootstrap Icons et Google Material Design Icons.
Bref, plus d’excuses pour ne pas avoir de jolies icônes dans vos applications Symfony !