Compare commits

..

No commits in common. "00b0f4b79acc36609ce2f21ac0b37c00c2e3f656" and "8ac322868ef560caa1313dd5183bac2d707e86fa" have entirely different histories.

24 changed files with 46 additions and 132 deletions

View file

@ -1,5 +0,0 @@
import link from "./shortcodes/link.js"
export default function (eleventyConfig, pluginOptions) {
eleventyConfig.addPairedShortcode("link", link);
}

View file

@ -1,3 +0,0 @@
export default (content, url, target = "_blank", attr = "") => {
return `<a href="${url}" target="${target}" ${attr} class="button">${content}</a>`
}

View file

@ -2,7 +2,6 @@ import { inspect } from "util";
import pluginIcons from 'eleventy-plugin-icons'; import pluginIcons from 'eleventy-plugin-icons';
import pluginPDF from "./_config/eleventy-plugin-pdf.js"; import pluginPDF from "./_config/eleventy-plugin-pdf.js";
import pluginTokens from "./_config/eleventy-plugin-tokens.js"; import pluginTokens from "./_config/eleventy-plugin-tokens.js";
import shortcodes from "./_config/shortcodes.js";
export default async function (eleventyConfig) { export default async function (eleventyConfig) {
eleventyConfig.setUseGitIgnore(false); eleventyConfig.setUseGitIgnore(false);
@ -30,7 +29,6 @@ export default async function (eleventyConfig) {
eleventyConfig.addPassthroughCopy('src/favicon.ico') eleventyConfig.addPassthroughCopy('src/favicon.ico')
eleventyConfig.addPlugin(shortcodes);
eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" }); eleventyConfig.addPlugin(pluginTokens, { tokens: "./src/_data/tokens.json", destination: "./src/css/theme.css" });
eleventyConfig.addPlugin(pluginPDF); eleventyConfig.addPlugin(pluginPDF);
eleventyConfig.addPlugin(pluginIcons, { eleventyConfig.addPlugin(pluginIcons, {

View file

@ -9,13 +9,10 @@
"skills": [ "skills": [
"HTML", "HTML",
"CSS", "CSS",
"Javascript",
"Accessibilité",
"Bootstrap", "Bootstrap",
"Figma", "Javascript",
"jQuery", "jQuery",
"SCSS", "Figma"
"Git"
], ],
"lang": [ "lang": [
"Français (langue maternelle)", "Français (langue maternelle)",

View file

@ -3,24 +3,7 @@
<h1 class="hero-title">{% if section.data.displayedTitle %}{{ section.data.displayedTitle }}{% else %}{{ section.data.title }}{% endif %}</h1> <h1 class="hero-title">{% if section.data.displayedTitle %}{{ section.data.displayedTitle }}{% else %}{{ section.data.title }}{% endif %}</h1>
<p>{{section.data.description}}</p> <p>{{section.data.description}}</p>
{{ section.templateContent }} {{ section.templateContent }}
<ul class="list-inline socials-list socials-list--label"> {% render 'partials/components/socials', socials: author.socials, mail: author.mail, showLabel: true %}
{% if author.socials %}
{% for social in author.socials %}
<li>
{% link social.link, "_blank", "data-ghost-button" %}{% icon social.icon %} {{ social.title }}{% endlink %}
</li>
{% endfor %}
{% endif %}
{% if author.mail %}
<li>
{% capture href %}mailto:{{ author.mail }}{% endcapture %}
{% link href, "_blank", "data-ghost-button" %}{% icon "mail" %} Me contacter{% endlink %}
</li>
{% endif %}
<li>
{% link "/resume.pdf", "_blank", "data-ghost-button" %}{% icon "download" %} Télécharger en PDF{% endlink %}
</li>
</ul>
</div> </div>
</section> </section>

View file

@ -4,18 +4,13 @@
<span></span> <span></span>
<div class="links"> <div class="links">
{%- for link in links -%} {%- for link in links -%}
{% link link.link, "_blank", "data-ghost-button" %}{% icon link.icon %} <span class="sr-only">{{ social.title }}</span>{% endlink %} {% render 'partials/components/link', icon: link.icon, showLabel: false, label: link.title, href: link.link, class: classes, target: "_blank" %}
{%- endfor -%} {%- endfor -%}
</div> </div>
</div> </div>
<div class="content"> <div class="content">
<h3>{{ title }}</h3> <h3>{{ title }}</h3>
<p>{{ description }}</p> <p>{{ description }}</p>
<ul class="list-inline">
{% for tag in tags %}
<li><span class="badge">{{ tag }}</span></li>
{% endfor %}
</ul>
</div> </div>
</article> </article>
</li> </li>

View file

@ -6,8 +6,7 @@
background: data.background, background: data.background,
links: data.links, links: data.links,
title: data.title, title: data.title,
description: data.description, description: data.description %}
tags: data.tags %}
{%- endfor -%} {%- endfor -%}
</ul> </ul>
{% endif %} {% endif %}

View file

@ -2,13 +2,13 @@
{% if socials %} {% if socials %}
{% for social in socials %} {% for social in socials %}
<li> <li>
{% link social.link, "_blank", "data-ghost-button" %}{% icon social.icon %} <span class="sr-only">{{social.title}}</span>{% endlink %} {% render 'partials/components/link', icon: social.icon, showLabel: showLabel, label: social.title, href: social.link, class: "button", attr: "data-ghost-button", target: "_blank" %}
</li> </li>
{% endfor %} {% endfor %}
{% if mail %} {% if mail %}
<li> <li>
{% capture href %}mailto:{{ mail }}{% endcapture %} {% capture href %}mailto:{{ mail }}{% endcapture %}
{% link href, "_blank", "data-ghost-button" %}{% icon "mail" %} <span class="sr-only">Me contacter</span>{% endlink %} {% render 'partials/components/link', icon: "mail", showLabel: showLabel, label: "Contactez moi par mail", href: href, class: "button", attr: "data-ghost-button", target: "_blank" %}
</li> </li>
{% endif %} {% endif %}
{% endif %} {% endif %}

View file

@ -76,8 +76,5 @@
--button-bg: transparent; --button-bg: transparent;
--button-border-color: transparent; --button-border-color: transparent;
--button-color: currentColor; --button-color: currentColor;
--button-hover-bg: transparent;
--button-hover-bg: color-mix(in srgb, var(--color-neutral-500) 35%, transparent 65%);
--button-hover-color: currentColor;
--button-padding: .2em .4em; --button-padding: .2em .4em;
} }

View file

@ -1,23 +1,12 @@
.skills-gallery { .competences-section .col {
display: grid; width: 100%;
gap: 1rem; margin-bottom: 2rem;
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
} }
.skill {
font-size: 2rem;
font-size: clamp(2rem, 1.2967rem + 2.1978vw, 3rem);
font-weight: 500;
text-align: center;
}
@media screen and (min-width: 768px) {
.skill {
text-align: left;
}
}
@media screen and (min-width: 991px) { @media screen and (min-width: 991px) {
.skills-gallery { .competences-section > div {
row-gap: 3.5rem; flex-direction: row;
}
.competences-section .col {
width: 40%;
} }
} }

View file

@ -1,17 +1,14 @@
.project-grid { .project-grid {
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
gap: 1rem; gap: 1rem;
display: grid; display: grid;
} }
.project-grid > li { .project-grid li {
border-radius: var(--border-radius); border-radius: var(--border-radius);
overflow: hidden; overflow: hidden;
} }
.project-grid .button {
--button-padding: .2em;
}
.card { .card {
--background: linear-gradient(45deg, var(--color-neutral-100) 30%, var(--color-neutral-300) 100%); --background: url(https://placehold.co/200x150);
z-index: 1; z-index: 1;
background: var(--background); background: var(--background);
background-repeat: no-repeat; background-repeat: no-repeat;
@ -49,6 +46,3 @@
.card .content { .card .content {
padding: 1rem 0.4rem 0; padding: 1rem 0.4rem 0;
} }
.card .list-inline {
gap: 0.5ch;
}

View file

@ -8,7 +8,6 @@
.timeline:before { .timeline:before {
content: ""; content: "";
background-color: var(--color-neutral-200); background-color: var(--color-neutral-200);
background: linear-gradient(180deg, var(--color-neutral-200) 0%, var(--color-neutral-200) 85%, transparent 100%);
inline-size: 6px; inline-size: 6px;
margin-inline-start: -3px; margin-inline-start: -3px;
position: absolute; position: absolute;
@ -32,7 +31,7 @@
aspect-ratio: 1; aspect-ratio: 1;
inline-size: var(--size); inline-size: var(--size);
background-color: var(--color-neutral-200); background-color: var(--color-neutral-200);
border: 6px solid var(--color-primary-600); border: 6px solid var(--color-primary-400);
z-index: 1; z-index: 1;
border-radius: 50%; border-radius: 50%;
transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
@ -42,5 +41,5 @@
transform: translateY(50%); transform: translateY(50%);
} }
.timeline li:hover:before { .timeline li:hover:before {
border-color: var(--color-secondary-600); border-color: var(--color-primary-700);
} }

View file

@ -17,6 +17,3 @@ footer .socials-list {
--item-separator: ""; --item-separator: "";
margin: 0; margin: 0;
} }
footer .button.button {
--button-padding: .2em;
}

View file

@ -5,10 +5,6 @@ header {
inset-block-start: 0; inset-block-start: 0;
inset-inline: 0; inset-inline: 0;
} }
header.scroll {
box-shadow: hsla(0 0% 0% / 0.1) 0 0.5rem 1rem;
transition-duration: 400ms;
}
header nav ul { header nav ul {
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-end; justify-content: flex-end;

View file

@ -105,15 +105,3 @@ section {
margin-block: 3.5rem; margin-block: 3.5rem;
padding-block: 2rem; padding-block: 2rem;
} }
.badge {
display: inline-flex;
justify-content: center;
line-height: 1;
padding: .2em .3em;
font-size: .75em;
border-radius: .4em;
color: var(--badge-color, var(--color-secondary-600));
background: color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 40%, white 100%);
border: 1px solid color-mix(in srgb, var(--badge-color, var(--color-secondary-600)) 90%, white 100%);
}

View file

@ -1,24 +1,11 @@
// Javascript is active // Javascript is active
document.documentElement.classList.add('js'); document.documentElement.classList.add('js');
// Add class when scrolling in the page
const header = document.getElementById("site-header");
const intercept = document.createElement("div");
intercept.setAttribute("data-observer-intercept", "");
header.before(intercept);
const observer = new IntersectionObserver(([entry]) => {
header.classList.toggle("scroll", !entry.isIntersecting);
});
observer.observe(intercept);
// Update navigation according to page scroll // Update navigation according to page scroll
const options = { const options = {
rootMargin: '0px 0px -60% 0px' rootMargin: '0px 0px -60% 0px'
}; };
const sectionObserver = new IntersectionObserver(entries => { const observer = new IntersectionObserver(entries => {
entries.forEach(entry => { entries.forEach(entry => {
const id = entry.target.getAttribute("id"); const id = entry.target.getAttribute("id");
if (entry.isIntersecting) { if (entry.isIntersecting) {
@ -34,7 +21,7 @@ const sectionObserver = new IntersectionObserver(entries => {
},options); },options);
document.querySelectorAll('section').forEach(function(section, i) { document.querySelectorAll('section').forEach(function(section, i) {
sectionObserver.observe(section); observer.observe(section);
}); });
// Random accent font & color // Random accent font & color

View file

@ -2,12 +2,15 @@
title: Compétences title: Compétences
displayedTitle: Mes compétences displayedTitle: Mes compétences
order: 1 order: 1
showTitle: false classes: 'competences-section langues-section'
--- ---
<div class="flex justify-center">
<div class="col">
{% render "partials/components/list", title: "Compétences techniques", content: author.skills %}
</div>
<ul class="skills-gallery"> <div class="col">
{% for skill in author.skills %} {% render "partials/components/list", title: "Langues", content: author.lang %}
<li class="skill">{{skill}}</li> </div>
{% endfor %} </div>
</ul>

View file

@ -0,0 +1,12 @@
---
title: Téléchargement
showTitle: false
excludeFromPdf: true
order: 4
---
<div class="flex justify-center items-center download">
<p>Vous souhaitez imprimer ce document ?</p>
<i>--></i>
<button type="button" onclick="window.print()" class="button">Télécharger en PDF {% icon "download" %}</button>
</div>

View file

@ -1,6 +1,6 @@
--- ---
layout: pdf layout: pdf
permalink: "resume.pdf" permalink: "pdf.pdf"
eleventyComputed: eleventyComputed:
title: "{{author.firstName}} {{author.name}}, {{author.occupation}}" title: "{{author.firstName}} {{author.name}}, {{author.occupation}}"
links: links:

View file

@ -5,9 +5,6 @@ links:
- title: Voir sur Github - title: Voir sur Github
link: https://github.com link: https://github.com
icon: simple-icons:github icon: simple-icons:github
tags:
- C#
- Unity
--- ---
* desc1 * desc1

View file

@ -5,6 +5,4 @@ links:
- title: Voir sur Github - title: Voir sur Github
link: https://github.com link: https://github.com
icon: simple-icons:github icon: simple-icons:github
tags:
- Python
--- ---

View file

@ -8,7 +8,4 @@ links:
- title: Voir sur Github - title: Voir sur Github
link: https://github.com link: https://github.com
icon: simple-icons:github icon: simple-icons:github
tags:
- PHP
- LDAP
--- ---

View file

@ -8,7 +8,4 @@ links:
- title: Voir sur Github - title: Voir sur Github
link: https://github.com link: https://github.com
icon: simple-icons:github icon: simple-icons:github
tags:
- JS
- IOT
--- ---

View file

@ -1,10 +1,9 @@
--- ---
title: Snake title: Snake
description: Un snake réalisé en Java description: Un snake réalisé en Java
background: rgb(255, 143, 143)
links: links:
- title: Voir sur Github - title: Voir sur Github
link: https://github.com link: https://github.com
icon: simple-icons:github icon: simple-icons:github
tags:
- Java
--- ---