Pico.css
Comment installer Pico.css dans un projet Symfony
Qu'est-ce que Pico.css ?
Pico.css est une bibliothèque CSS minimaliste qui permet de styliser rapidement une page Web avec un design épuré et moderne, sans avoir à écrire beaucoup de CSS personnalisé.
Comment l'installer dans Symfony ?
Par défaut, Symfony charge déjà :
- app.js
- qui importe
app.css - puis ce bundle est injecté dans
base.html.twigvia{{ importmap('app') }}
Pour utiliser Pico.css, nous avons 2 options :
- soit charger Pico.css par CDN dans
base.html.twig - soit l’intégrer dans
app.css
Option 1 — Charger Pico.css par CDN
La méthode la plus simple et la plus rapide : charger Pico.css par CDN dans le fichier de base de nos templates Twig
Pour récupérer le lien CDN de Pico.css, le plus simple consiste à consulter la documentation de Pico.css : https://picocss.com/docs
Une fois que vous avez l'URL du CDN de Pico.css, il suffit d'ajouter ce lien dans base.html.twig, dans le bloc stylesheets :
{% block stylesheets %}
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"
>
{% endblock %}
Exemple complet
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"
>
{% endblock %}
{% block javascripts %}
{% block importmap %}{{ importmap('app') }}{% endblock %}
{% endblock %}
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
Avantages
- ultra simple
- pas besoin d’installation supplémentaire
- parfait pour tester vite
Inconvénient
- dépend d’un CDN externe
Option 2 — Intégrer Pico.css dans app.css
Cette méthode est un peu plus longue à mettre en place, mais elle est la plus propre car elle permet de garder tout notre style centralisé dans
app.css, et de ne pas dépendre d’un CDN externe.
Comme notre projet importe déjà app.css, nous pouvons y ajouter Pico.css puis nos propres surcharges.
Exemple
Dans app.css :
@import url('https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css');
body {
background-color: skyblue;
}
Ici :
- Pico.css est chargé d’abord
- notre CSS passe ensuite et peut le surcharger
Quand choisir cette option ?
Si nous voulons garder tout notre style centralisé dans app.css.
Comment utiliser Pico.css dans un template
Pico.css stylise bien les balises HTML sémantiques.
Par exemple dans index.html.twig :
{% extends '`base.html.twig`' %}
{% block title %}Accueil{% endblock %}
{% block body %}
<main class="container">
<h1>Bienvenue</h1>
<p>Cette page utilise Pico.css dans Symfony.</p>
<form>
<label for="name">Nom</label>
<input type="text" id="name" name="name" placeholder="Votre nom">
<button type="submit">Envoyer</button>
</form>
</main>
{% endblock %}
Pico.css fonctionne très bien même si nous n’utilisons pas de classes CSS, mais il est recommandé d’utiliser la classe container sur le <main> pour un meilleur rendu.
Voici quelques-unes des balises HTML stylisées par Pico.css :
<main class="container"><section><article><form><label><input><button>
Remarques
Notre app.css contient actuellement :
body {
background-color: skyblue;
}
Avec Pico.css, ce fond bleu risque de donner un rendu un peu étrange.
Nous pouvons le remplacer par quelque chose de plus discret, par exemple :
main.container {
margin-top: 2rem;
}