Mon Portfolio.
Développement Web / Design CSS / Animations CSS1. Contexte du Projet
Ce projet a été réalisé cette année dans le cadre scolaire. La consigne était claire : concevoir et développer notre propre site web portfolio pour nous présenter.
La contrainte technique majeure :
Tout devait être codé à la main uniquement en HTML et CSS, sans utiliser de modèles pré-définis.
L'objectif :
Prouver notre maîtrise des bases fondamentales du web (positionnement des textes, images, logos) et créer un thème unique (qui est pour mon cas un thème Royal & Luxueux).
2. Travail Fourni
Mon organisation :
- Design Web : Création de variables CSS dans la partie ":root" pour avoir accès à une sorte de palettes comme la gestion des couleurs et des polices sur toutes les pages.
- Structure Sémantique : Utilisation rigoureuse des balises HTML5 (`nav`, `header`, `section`) pour l'accessibilité et le référencement.
- Animations : Développement d'effets visuels fluides (apparitions, survols) en CSS pur pour dynamiser l'interface sans JavaScript lourd.
Partie A : Architecture CSS (Variables) DESIGN
Définition de la charte graphique "Ultimate Gold" via les variables CSS. (Cliquer pour dérouler)
themes/projets.css : L'utilisation de :root me permet de modifier le thème (couleurs, polices, ombres) sur l'ensemble du site en changeant une seule valeur.
:root {
/* --- COULEURS DE FOND --- */
/* J'utilise un noir très profond mais pas pur (#000) pour plus de douceur */
--bg-dark: #050505;
--bg-panel: #0a0a0a;
/* --- PALETTE OR (ACCENTUATION) --- */
/* Couleur principale utilisée pour les titres et les lignes */
--accent: #d4af37;
--gold-main: #d4af37;
/* Variante foncée pour créer du relief dans les ombres */
--gold-dark: #aa8c2c;
/* Variante claire pour les reflets métalliques */
--gold-light: #f9e5a0;
/* Dégradé complexe utilisé sur les boutons pour un effet 'Lingot d'Or' */
--gold-gradient: linear-gradient(135deg, #d4af37 0%, #aa8c2c 100%);
/* --- TYPOGRAPHIE --- */
/* Police avec empattement pour le côté prestigieux */
--font-serif: 'Playfair Display', serif;
/* Police sans empattement pour la lisibilité du texte courant */
--font-sans: 'Montserrat', sans-serif;
}
Partie B : Structure Sémantique HTML5
Architecture de la page d'Accueil (Navigation & Hero). (Cliquer pour dérouler)
portfolio.html : J'utilise les balises sémantiques nav et header pour que le site soit bien structuré pour les moteurs de recherche (SEO).
<!-- 1. BARRE DE NAVIGATION FIXE -->
<!-- La balise <nav> indique aux moteurs de recherche qu'il s'agit des liens principaux -->
<nav class="navbar">
<!-- Logo cliquable qui ramène à l'accueil -->
<a href="portfolio.html" class="nav-brand">
<img src="images/logosemih.png" alt="Logo Avci Semih">
</a>
<!-- Liens de navigation centraux -->
<div class="nav-links">
<a href="portfolio.html" class="active">Accueil</a>
<a href="competences.html">Compétences</a>
<a href="projets.html">Projets</a>
</div>
<!-- Bouton d'action (Call to Action) distinct -->
<a href="CV-AVCI-Semih.pdf" target="_blank" class="btn-cv">
Mon CV
</a>
</nav>
<!-- 2. EN-TÊTE PRINCIPAL (HERO SECTION) -->
<!-- Cette section doit capter l'attention en moins de 3 secondes -->
<div class="hero-container">
<div class="hero-content fade-in">
<span class="greeting">Portfolio</span>
<h1 class="main-title">Avci Semih<span class="dot">.</span></h1>
<h2 class="subtitle">Étudiant en BUT Réseaux & Télécoms</h2>
<!-- Description courte et impactante -->
<div class="description">...</div>
</div>
</div>
Partie C : Animations & Interactivité CSS3
Création d'effets fluides sans JavaScript. (Cliquer pour dérouler)
themes/projets.css : J'utilise @keyframes pour l'apparition douce des éléments (`fadeUp`) et les pseudo-classes `:hover` pour réagir au survol de la souris.
/* 1. DÉFINITION DE L'ANIMATION 'FADE UP' */
/* L'élément part de 30px plus bas et remonte en devenant opaque */
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Application de l'animation sur les cartes projets */
.featured-card {
opacity: 0; /* Invisible au départ */
/* forwards : l'élément garde son état final (visible) à la fin de l'animation */
animation: fadeUp 0.8s ease-out forwards;
}
/* 2. INTERACTIVITÉ BOUTONS (HOVER) */
.btn-cv:hover {
/* Le bouton monte légèrement de 2px pour un effet 3D */
transform: translateY(-2px);
/* Ajout d'une ombre portée dorée pour simuler la lumière */
box-shadow: 0 0 25px rgba(212, 175, 55, 0.4);
/* Changement de fond pour un or plus clair */
background: linear-gradient(135deg, #fff7cc 0%, #d4af37 100%);
}
3. Difficultés Rencontrées
1. Le Responsive Design sans bibliothèque(s) :
Rendre le site compatible sur mobile a été le plus grand défi. J'ai dû gérer moi-même les affichage pour empiler les éléments de la barre de navigation et redimensionner les titres sur les petits écrans.
2. L'organisation du CSS :
Avec beaucoup de styles différents (boutons, cartes, fenêtres de code), le code CSS devenait long. J'ai appris à organiser mes fichiers par thème (`themes/projets.css`, `themes/accueil.css`) et selon les noms de leur code HTML pour éviter les "bugs" et ne pas me perdre.
3. L'équilibre du Design :
Avoir un design "Royal & Luxueux" est risqué : si les couleurs sont mal dosées, le site peut devenir illisible. J'ai passé beaucoup de temps à ajuster les contrastes et les ombres pour garder une belle esthétique.
4. Résultats
Le produit final :
Vous êtes en train de naviguer dessus ! Le site est entièrement fonctionnel, et présente mes projets de manière claire. Il reflète ma capacité à construire une interface web complète.
Compétences acquises :
Ce projet m'a permis de comprendre comment les sites sont construits derrière nos écrans. Je maîtrise désormais le CSS (Flexbox, Grid), la gestion des variables CSS et l'importance d'une structure de fichiers claire et commentée.