Slide Natureza est un projet de diaporama interactif développé avec HTML et CSS, présentant plusieurs destinations emblématiques du Portugal. Chaque "slide" est une carte représentant un lieu précis, avec une image et une description. Ce projet permet aux utilisateurs de naviguer entre les slides via un simple clic, avec des transitions fluides entre les différentes cartes.
Le projet fonctionne en utilisant des boutons radio invisibles. Lorsqu'un bouton radio est sélectionné, la carte correspondante devient plus large, révélant l'image et la description associée. Chaque carte se compose de :
- Une icône numérotée.
- Une description textuelle du lieu.
- Une image d'arrière-plan qui change selon la carte sélectionnée.
Les transitions sont gérées via du CSS pur, et les cartes changent de largeur lorsque l'une d'entre elles est activée.
Le fichier index.html
contient la structure de la page. Voici les principaux éléments :
- Input type radio : Ces inputs cachés sont utilisés pour permettre à l'utilisateur de naviguer entre les différentes cartes.
- Labels associés aux inputs : Chaque
label
représente une carte, et lorsqu'il est cliqué, il active son input associé (via l'attributfor
). - Structure des cartes : Chaque carte contient une icône avec un numéro et une section de description comprenant un titre et un texte.
<div class="container">
<input type="radio" name="slide" id="c1" checked>
<label for="c1" class="card">
<div class="row">
<div class="icon">1</div>
<div class="description">
<h4>A capital do sul</h4>
<p>Faro - Discover the Wonders of Nature</p>
</div>
</div>
</label>
<!-- ... autres cartes ici ... -->
</div>
Le fichier styles.css
est responsable de l'apparence visuelle du slider. Les éléments essentiels comprennent :
- Centrage et mise en page : Utilisation de Flexbox pour aligner les cartes au centre de la page.
- Effets de transition : Chaque carte a un effet de transition lorsque l'utilisateur sélectionne une nouvelle carte.
- Animation des descriptions : Les descriptions textuelles apparaissent avec un léger décalage et une transition en douceur lorsque la carte est activée.
input:checked+label {
width: 600px;
}
input:checked+label .description {
opacity: 1;
transform: translateY(0);
}
.card {
transition: .6s cubic-bezier(.28, -0.03, 0, 0.99);
}
-
Boutons radio invisibles : Les boutons radio permettent de garder la sélection active, ce qui est pratique pour contrôler l'affichage des cartes. Ils sont rendus invisibles via
display: none
mais restent fonctionnels. -
Flexbox pour la disposition : Flexbox est utilisé pour garantir que les cartes soient alignées horizontalement et centrées à l'écran. Cela simplifie également la mise en page réactive.
-
Transitions CSS : Les transitions sont appliquées aux cartes pour les rendre interactives et permettre des animations fluides lorsque l'utilisateur sélectionne une carte.
index.html
: Le fichier HTML principal contenant la structure du slider.styles.css
: Le fichier de style définissant l'apparence et les animations du slider.img/
: Ce dossier contient les images utilisées comme arrière-plan pour chaque carte.
- Sélection des cartes : Cliquez sur une carte pour l'agrandir et afficher les détails du lieu associé.
- Transitions fluides : Les cartes se redimensionnent automatiquement lors de la sélection d'une nouvelle carte, et le texte apparaît en douceur.
Si vous souhaitez améliorer ou ajouter de nouvelles fonctionnalités à ce projet, voici quelques suggestions :
- JavaScript pour des interactions plus complexes : Vous pouvez ajouter du JavaScript pour des fonctionnalités comme un contrôle automatique des slides (carrousel automatique) ou des boutons "Précédent" et "Suivant".
- Amélioration de la réactivité : Ajouter des media queries pour améliorer l'expérience sur mobile et tablette.
- Optimisation des images : Utiliser des versions optimisées des images pour une performance améliorée.
Les contributions sont les bienvenues ! Si vous souhaitez améliorer ce projet ou ajouter de nouvelles fonctionnalités, vous pouvez :
- Faire un fork de ce dépôt.
- Créer une nouvelle branche (
git checkout -b feature/nouvelle-fonctionnalite
). - Soumettre vos modifications (
git commit -m 'Ajouter nouvelle fonctionnalité'
). - Pousser la branche (
git push origin feature/nouvelle-fonctionnalite
). - Ouvrir une Pull Request.
Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus d'informations.
Pedro Costa
LinkedIn
- Description et Fonctionnalité principale : Donne une vue d'ensemble du projet et de son objectif.
- Détails du code : Explique comment le HTML et le CSS fonctionnent ensemble pour créer le diaporama.
- Concepts utilisés : Décompose les techniques spécifiques utilisées (boutons radio invisibles, transitions CSS, etc.).
- Fichiers du projet : Une liste des fichiers inclus dans le projet et leur fonction.
- Guide d'utilisation : Explique comment l'utilisateur peut interagir avec le slider.
- Suggestions de fonctionnalités futures : Propose des idées pour améliorer le projet, telles que l'ajout de JavaScript.
- Contribution et Licence : Indique comment les autres peuvent contribuer et sous quelle licence le projet est partagé.
Cela devrait fournir une vue d'ensemble claire et exhaustive du projet et de son fonctionnement.