diff --git a/html/index.html b/html/index.html index 74e4c95..99eee71 100644 --- a/html/index.html +++ b/html/index.html @@ -40,18 +40,22 @@
-

My background

-

- Bla bla bla lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do -

+

My background

+

+ I hold a Bachelor's degree in Full-Stack Development, + where I gained solid experience in both front-end and + back-end technologies. I am currently pursuing a + Master’s degree to further strengthen my skills and + deepen my expertise in software development, DevOps, + machine learning, embedded systems, and network administration. +

-

My skills

-

- Java, C#, Python, JavaScript / TypeScript, Node.js, Vue, PostgreSQL, Docker. -

- +

My skills

+

+ Java, C#, Python, JavaScript / TypeScript, Node.js, Vue, PostgreSQL, Docker. +

Connect with me

@@ -84,6 +88,7 @@

Check out my live projects

+
- - - - - - + diff --git a/html/projects.html b/html/projects.html index 566549b..2552748 100644 --- a/html/projects.html +++ b/html/projects.html @@ -3,8 +3,43 @@ Title + + + + + + + + + + +
+ +
+ +
+

Hello there

+
+

I'm a floating card

+

Try to hover me !

+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/html/scripts/CardTilter.js b/html/scripts/CardTilter.js index 99e3e72..fb844c1 100644 --- a/html/scripts/CardTilter.js +++ b/html/scripts/CardTilter.js @@ -15,8 +15,11 @@ export class CardTilter { watch(){ this.card.addEventListener('mousemove', (e) => { - const rotations = this.calculatePositions(e.clientX, e.clientY); - this.transform(rotations.x, rotations.y); + const rect = this.card.getBoundingClientRect(); + const positions = this.calculatePositions(rect, e.clientX, e.clientY); + const percentages = this.calculatePercentage(rect, positions.x, positions.y); + + this.transform(percentages.x, percentages.y); }); this.card.addEventListener('mouseleave', () => { @@ -24,22 +27,28 @@ export class CardTilter { }); } - calculatePositions(cursorX, cursorY) { - const rect = this.card.getBoundingClientRect(); + calculatePositions(rect, cursorX, cursorY) { const x = cursorX - rect.left; const y = cursorY - rect.top; - - const percentX = (x / rect.width) - 0.5; - const percentY = (y / rect.height) - 0.5; - - const rotateX = -percentY * this.tilt; - const rotateY = percentX * this.tilt; - - return {x : rotateX, y : rotateY}; + return {x : x, y : y}; }; - transform(rotationX, rotationY) { - this.card.style.transform = `translateY(-5px) perspective(${this.perspective}px) rotateX(${rotationX}deg) rotateY(${rotationY}deg) scale(1.02)`; + calculatePercentage(rect, cursorX, cursorY) { + const percentX = ((cursorX / rect.width) - 0.5).toFixed(2); + const percentY = ((cursorY / rect.height) - 0.5).toFixed(2); + return {x : percentX, y : percentY}; + } + + transform(percX, percY) { + + const rotationX = -percY * this.tilt; + const rotationY = percX * this.tilt; + + this.card.style.transform = ` + perspective(${this.perspective}px) + rotateX(${rotationX}deg) + rotateY(${rotationY}deg) + scale(1.02)`; } reset(){ diff --git a/html/styles/introduction.css b/html/styles/introduction.css index 6c19b0e..179e4e4 100644 --- a/html/styles/introduction.css +++ b/html/styles/introduction.css @@ -57,6 +57,10 @@ line-height: 1.25rem; } +.introduction-text p { + text-align: justify; +} + .introduction-text > section { margin-top: 2rem; }