feat: enhance portfolio layout and accessibility improvements

This commit is contained in:
Florian Sylvain
2025-09-03 17:19:14 +02:00
parent 62bc22bbee
commit f5acff7e9a
2 changed files with 55 additions and 39 deletions
+54 -38
View File
@@ -4,62 +4,72 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Portfolio de Florian Sylvain, développeur web fullstack." />
<meta name="description" content="Portfolio de Florian Sylvain, développeur web fullstack actuellement en poste." />
<link rel="icon" type="image/x-icon" href="/favicon.webp" />
<link rel="canonical" href="https://floriansylvain.fr/" />
<title>Portfolio Florian Sylvain</title>
<title>Portfolio Florian Sylvain - Développeur web fullstack</title>
<style>
:root {
--background: #0e120e;
--foreground: #e2f1e2;
--surface: #121a12;
--surface-2: #162116;
--border: #161f16;
--accent: #7fc27f;
--accent-hover: #a7e6a7;
--accent-visited: #5e8a5e;
--muted: #7fa07f;
--muted: #8aa78a;
}
body {
background: var(--background);
color: var(--foreground);
font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
line-height: 1.6;
max-width: 1000px;
margin: auto;
padding: 16px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
#header h1 {
font-size: 2rem;
font-size: clamp(1.6rem, 3.5vw, 2.25rem);
font-weight: 700;
letter-spacing: .5px;
letter-spacing: .2px;
color: var(--accent-hover);
margin-bottom: 8px;
}
#header img {
max-width: 140px;
max-width: 128px;
height: auto;
border: 2px solid var(--border);
display: block;
border: 1px solid var(--border);
}
#header div {
display: flex;
align-items: center;
align-items: flex-start;
gap: 16px;
}
table {
border: none;
background: var(--border);
width: 100%;
margin-bottom: 16px;
overflow: hidden;
table-layout: fixed;
border-collapse: separate;
border-spacing: 0;
background: var(--surface);
border: 1px solid var(--border);
overflow: hidden;
}
#experiences col:first-child,
#projets col:first-child {
width: 100px;
width: 120px;
}
#experiences col:last-child,
@@ -69,46 +79,56 @@
th,
td {
border: none;
padding: 8px 10px;
padding: 10px 12px;
text-align: left;
vertical-align: top;
}
th {
background: var(--border);
thead th {
background: var(--surface-2);
color: var(--accent);
font-weight: 600;
letter-spacing: .2px;
}
td {
background: var(--border);
tbody td {
background: var(--surface);
}
tbody tr:nth-child(odd) td {
background: color-mix(in srgb, var(--surface) 92%, white 8%);
}
caption {
color: var(--muted);
font-size: .95em;
margin-bottom: 4px;
text-transform: uppercase;
letter-spacing: .06em;
padding: 8px 0 6px;
}
a {
color: var(--accent);
text-decoration: none;
transition: color .2s, border-bottom .2s;
border-bottom: 1px dotted var(--accent);
text-decoration: underline;
text-decoration-color: var(--accent);
text-decoration-thickness: 0.08em;
text-underline-offset: 2px;
}
a:hover {
color: var(--accent-hover);
border-bottom: 1px solid var(--accent-hover);
text-decoration: none;
text-decoration-color: var(--accent-hover);
}
a:visited {
color: var(--accent-visited);
}
a:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
ul,
ol {
margin: 0;
@@ -122,7 +142,7 @@
section h2,
footer h2 {
color: var(--accent);
font-size: 1.4rem;
font-size: clamp(1.2rem, 2.2vw, 1.4rem);
margin-top: 24px;
margin-bottom: 8px;
font-weight: 600;
@@ -165,15 +185,12 @@
<header id="header">
<h1>Portfolio de Florian Sylvain</h1>
<div>
<img width="150" height="140" src="profile.webp" alt="Photo de Florian Sylvain" />
<img width="128" height="120" src="profile.webp" alt="Photo de Florian Sylvain" />
<p>
Diplômé d'un Bachelor Développeur Web à l'ESD Paris,
autoentrepreneur, je suis passionné par l'informatique.
Actuellement en poste à temps plein en CDI chez DOLLEN
(Bonnueil-sur-Marne) en tant que développeur web fullstack, je
suis à l'écoute pour toute nouvelle opportunité. Disponible sous
moins d'un mois, je suis véhiculé, ouvert à une prise de poste
dans toute la France et à l'international.
(Bonnueil-sur-Marne) en tant que développeur web fullstack.
</p>
</div>
</header>
@@ -206,7 +223,6 @@
<section id="diplomes">
<h2>Diplômes obtenus</h2>
<table>
<caption>Tableau des diplômes obtenus</caption>
<thead>
<tr>
<th scope="col">Période</th>
@@ -218,13 +234,13 @@
<tbody>
<tr>
<td>2022 - 2024</td>
<td><a href="https://ecole-du-digital.com/">ESD Paris</a></td>
<td><a href="https://ecole-du-digital.com">ESD Paris</a></td>
<td>Bac +3 / RNCP 6</td>
<td>Bachelor Développeur Web</td>
</tr>
<tr>
<td>2020 - 2022</td>
<td><a href="https://www.univ-gustave-eiffel.fr/">Université Gustave Eiffel</a></td>
<td><a href="https://univ-gustave-eiffel.fr">Université Gustave Eiffel</a></td>
<td>Bac +2</td>
<td>DUT Informatique</td>
</tr>
@@ -254,7 +270,7 @@
<tbody>
<tr>
<th scope="row"><strong>Entreprise</strong></th>
<td><a href="https://dollen.fr/">Dollen</a></td>
<td><a href="https://dollen.fr">Dollen</a></td>
</tr>
<tr>
<th scope="row"><strong>Période</strong></th>
@@ -310,7 +326,7 @@
<tbody>
<tr>
<th scope="row"><strong>Entreprise</strong></th>
<td><a href="https://lecadeaupresent.com/">Présent</a></td>
<td><a href="https://lecadeaupresent.com">Présent</a></td>
</tr>
<tr>
<th scope="row"><strong>Période</strong></th>
@@ -365,7 +381,7 @@
<tbody>
<tr>
<th scope="row"><strong>Entreprise</strong></th>
<td><a href="https://wattearth.com/">WATT Earth</a></td>
<td><a href="https://wattearth.com">WATT Earth</a></td>
</tr>
<tr>
<th scope="row"><strong>Période</strong></th>
@@ -497,7 +513,7 @@
<h2>Contact</h2>
<p>Vous pouvez me contacter via les réseaux sociaux suivants :</p>
<ul>
<li><a href="https://www.linkedin.com/in/florian-sylvain-0651021a9/">LinkedIn</a></li>
<li><a href="https://linkedin.com/in/florian-sylvain-0651021a9">LinkedIn</a></li>
</ul>
<p>Autre moyens de contact indisponible sur ce portfolio pour éviter les crawlers malveillants et autre
récolte de données, qui résulteront en spam et démarchage incéssants.</p>
@@ -507,7 +523,7 @@
<footer id="autres">
<h2>Pourquoi un site aussi simple ?</h2>
<p>Ce site pèse moins de 14ko.
<a href="https://endtimes.dev/why-your-website-should-be-under-14kb-in-size/">Why your website should be
<a href="https://endtimes.dev/why-your-website-should-be-under-14kb-in-size">Why your website should be
under 14kB in size
</a>
</p>