mirror of
https://github.com/Floriansylvain/compact-portfolio.git
synced 2026-08-19 11:43:19 +02:00
feat: enhance portfolio layout and accessibility improvements
This commit is contained in:
+54
-38
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user