Vous souhaitez gérer le stylisme des composants React de manière moderne et puissante? Avec la bibliothèque Emotion, vous pouvez intégrer directement du CSS dans vos composants React et ainsi concevoir efficacement votre interface utilisateur. Dans ce guide, je vous explique les principes de base du stylisme avec Emotion, comment installer et utiliser la bibliothèque, et je vous donne quelques conseils utiles à ce sujet.
Principales conclusions
- Emotion permet d'écrire du CSS en JavaScript et offre une manipulation intuitive.
- Avec Emotion, vous pouvez utiliser différentes techniques de stylisme, y compris les littéraux de modèle et l'utilisation de la propriété css.
- La gestion des styles devient plus modulaire avec l'utilisation d'Emotion, ce qui améliore la réutilisabilité et la lisibilité.
Guide étape par étape
1. Installer Emotion
Vous devez d'abord installer Emotion dans votre projet. Ouvrez le terminal et naviguez vers le répertoire de votre projet. Exécutez la commande suivante pour installer la bibliothèque Emotion:
npm install @emotion/react @emotion/styled
2. Importer du CSS
Dans votre fichier App.jsx, vous pouvez utiliser Emotion. Vous devez importer Emotion pour utiliser la fonction css ainsi que l'importation de l'élément styled. Ajoutez ceci au début de votre fichier:
3. Stylisme avec les littéraux de modèle
Utilisez la fonction css d'Emotion pour créer une variable CSS. Définissez les conventions CSS en utilisant des littéraux de modèle. Voici un exemple de comment vous pouvez écrire une classe Wrapper pour votre application:
Ce code utilise la flexbox pour assurer un agencement de mise en page.
4. Application du style
Pour appliquer le style défini, passez la variable appStyle dans la propriété className de votre élément HTML principal. Voici à quoi cela devrait ressembler:
5. Utilisation de Styled-Components
En plus de l'utilisation de la variable css, vous pouvez également utiliser des Styled-Components avec Emotion. Pour créer un composant stylisé, vous pouvez utiliser le code suivant:
Cela crée un nouveau composant basé sur CSS avec tous les styles définis.
6. Intégration des requêtes médias
Emotion facilite l'intégration des requêtes médias dans votre CSS. Il vous suffit de les ajouter dans le littéral de modèle:
Cette requête média modifie la taille de la police du texte lorsque la largeur d'affichage est inférieure à 600 pixels.
7. Utilisation des effets de survol
Vous pouvez également définir facilement des effets de survol dans vos modèles CSS:
Cette règle CSS change la couleur de fond de l'élément lorsque survolé avec la souris.
8. Combinaison de styles plus complexes
Emotion permet de combiner plusieurs noms de classes. Cela est rendu possible avec la fonction cx:
const primaryStyle = css color: blue;;
const secondaryStyle = css color: red;;
Dans ce cas, le texte est affiché à la fois en bleu et en rouge.
9. Futures extensions
Lorsque vous gérez un grand projet à l'avenir, il peut être utile d'organiser vos styles dans différents modules. Par exemple, vous pouvez créer commonStyles.js et y exporter vos styles de base:
Maintenant, vous pouvez insérer flexCenter dans n'importe quelle autre composante.
10. Tests et ajustements
Chargez votre application dans le navigateur et vérifiez si les styles sont correctement affichés. Expérimentez avec différents styles et observez le résultat en temps réel.
Résumé
Avec une combinaison d'Emotion et de React, il est désormais possible de créer des mises en page d'interface utilisateur réalistes. Emotion permet de définir et de gérer efficacement le CSS directement dans JavaScript. Vous pouvez ainsi tirer parti des avantages de la densité des écrans et d'une intégration étroite entre la logique et le style.
Questions fréquemment posées
Qu'est-ce qu'Emotion?Emotion est une bibliothèque qui permet d'utiliser du CSS dans JavaScript et offre des options de stylage étendues pour les composants React.
Comment installer Emotion?Utilisez la commande npm install @emotion/react @emotion/styled dans votre répertoire de projet.
Puis-je utiliser des Media Queries avec Emotion?Oui, vous pouvez utiliser des Media Queries dans vos composants stylés Emotion en les écrivant directement dans les Template Literals.
Emotion prend-il également en charge les effets de survol (hover)?Oui, Emotion facilite l'ajout d'effets de survol en définissant simplement une règle &:hover dans votre modèle CSS.