Compare commits

..

95 Commits

Author SHA1 Message Date
9ed9135208 updated cv 2025-03-24 12:17:41 +01:00
fafd7139e4 fixed final little detail about videos 2025-02-20 14:53:46 +01:00
0cab633f03 updated cv 2025-02-20 14:34:20 +01:00
ef84eec124 made videos better 2025-02-20 14:27:07 +01:00
bbeaf46b27 downscaled the footer background to load faster 2025-02-20 14:12:04 +01:00
1462461d70 moved from gifs to mp4 because gifs were heavy as fuck 2025-02-20 14:09:29 +01:00
598193d364 made images lazy to make loading faster 2025-02-20 12:11:55 +01:00
0a3332c9fe made hero lower res to make loading quicker 2025-02-20 12:11:43 +01:00
9f3e554624 made the resume better (is collpased by default,
and can be expanded)
2025-02-20 12:00:25 +01:00
3c5ce5c07a updated the resume 2025-02-20 09:51:22 +01:00
3d1943791e tried to fix the colour of higlight in light theme 2025-02-20 09:31:39 +01:00
d73e027641 fixed hover of portfolio 2025-02-19 15:38:36 +01:00
3c36906d86 moved the projects around 2025-02-19 15:26:32 +01:00
8a18029a0b updated cv 2025-02-19 15:18:44 +01:00
3132b4f325 added todo 2025-02-19 15:12:16 +01:00
cd7cfbbb7c added stickfosh to my portfolio 2025-02-19 15:10:41 +01:00
cd5330b92c updated cv 2025-02-19 14:10:27 +01:00
ed4b9a9a56 updated masters GPA 2025-02-19 13:13:00 +01:00
11c0688f6c moved stuff around 2025-01-28 13:20:35 +01:00
f9a9dfc653 commented out the filters for the projects section 2025-01-28 13:15:46 +01:00
8c3b3e501e removed instagram from socials 2025-01-28 13:11:06 +01:00
55467968bd fixed job title 2025-01-28 13:10:33 +01:00
5a92fd84ce added GPA of masters 2025-01-28 13:10:25 +01:00
161c033491 test was successful 2024-06-10 16:41:35 +02:00
662cda7ac4 testing somthing 2024-06-10 16:38:46 +02:00
c7fb1a68cd fix typo 2024-06-10 16:11:14 +02:00
4229a08c50 updated cv 2024-04-16 09:19:23 +02:00
4ddf0e4c6a updated cv 2024-04-16 09:18:13 +02:00
b7f3ce6899 updated cv 2024-04-16 09:04:35 +02:00
2c13c79d10 updated cv 2024-04-16 09:01:54 +02:00
e2950995fb updated cv 2024-04-03 17:49:16 +02:00
ad837910a3 updated cv 2024-04-03 17:47:03 +02:00
59bdd9b784 updated cv 2024-04-01 12:21:57 +02:00
516a944d22 updated cv 2024-04-01 12:20:15 +02:00
ab23d9e344 fixed skills title 2024-03-18 21:42:55 +01:00
b47c9ad995 removed the unessecary pics and modifies two gifs
to make them shorter
2024-03-17 09:08:17 +01:00
a4ba8c0c86 cleaned up the animations 2024-03-17 09:07:47 +01:00
ee3d06d939 formatted the tailwind classes 2024-03-16 10:25:53 +01:00
5f772b1f78 formatted code 2024-03-15 14:55:13 +01:00
0f1535f0ec added a bunch of projects with their respective images 2024-03-15 14:45:59 +01:00
d777587b29 tuned down the animations a lil 2024-03-12 14:35:31 +01:00
58626fec3a skills: removed some filters, added the chess
card and moved things around
2024-03-12 14:24:25 +01:00
52786bd8d2 updated cv 2024-03-12 14:09:56 +01:00
8000504c04 automated age calculation 2024-03-12 14:03:01 +01:00
63e00968e0 updated the picture of me 2024-02-29 09:38:44 +01:00
3144aca6e3 Removed placeholder testimonials 2024-02-29 09:23:29 +01:00
410d15d46a added the missing testimonial pictures 2024-02-29 09:17:01 +01:00
d2ef0ef232 added some css rule to make it more responsive and
look better with blocks of text
2024-02-29 09:16:39 +01:00
66c7236788 updated subtitle of Contact Me 2024-02-29 09:14:30 +01:00
3e4d63872a updated testimonials by adding Didyk and Zucchetti 2024-02-29 09:14:13 +01:00
447972b0ad started updating the skills section 2024-02-29 09:13:40 +01:00
f12d1c8292 updated professional experience 2024-02-29 09:13:02 +01:00
e2fa5fa477 updated animation of the languages 2024-02-29 09:12:34 +01:00
fd029cefaf updated language of html 2024-02-29 09:12:09 +01:00
82fa1a7629 updated cv 2024-02-27 14:24:10 +01:00
5c7f7268e8 updated cv 2024-02-27 14:04:52 +01:00
0bf5a68bb8 updated cv 2024-02-27 14:03:08 +01:00
1946d32103 gotta push to pull you know? ifykyk 2023-09-21 15:35:03 +02:00
b0e5ad5e75 previous commit didn't work cuz it was missing the ttfs :) 2023-09-21 15:01:29 +02:00
65e99b27ea working on the skills (commiting to see if the
font-awesome icon is shown on the server)
2023-09-21 14:55:51 +02:00
6df4f40afd removed unnecessary pages and styles 2023-09-21 10:42:10 +02:00
e530ab8a41 made default theme dark and added saving the theme to localstorage 2023-09-19 18:57:25 +02:00
de5023604f added dark theme switcher (god it was a pain) 2023-09-19 18:44:47 +02:00
f398788adb fixed vocab issue 2023-09-18 10:18:15 +02:00
891e674470 updated footer background 2023-09-18 10:17:53 +02:00
585380ce88 updated testimonials background 2023-09-18 10:12:20 +02:00
d6446f5160 moved languages to the about me section and
removed the programming languages
2023-09-18 10:00:43 +02:00
5bbf0068e7 removed unused styles 2023-09-18 09:41:28 +02:00
dc02c06bc8 added transitions to contact 2023-09-18 09:35:53 +02:00
69c5167856 added links to socials 2023-09-18 09:35:07 +02:00
a3919b42a9 removed useless dependency 2023-09-18 09:34:48 +02:00
a959034e4e fixed languages scale cuz I can't count lol 2023-09-13 10:33:05 +02:00
35f76f4dd7 Added first testimony (Hauswirth) 2023-09-13 10:14:51 +02:00
a690d47565 fix: typo sumary -> summary 2023-09-13 10:14:27 +02:00
298d78df16 disabled select on the span behind the titles 2023-09-11 15:11:34 +02:00
211ed6497f changed the "about me" sentences (thanks chatgpt) 2023-09-11 15:11:03 +02:00
c5e5a21ac7 added overflow-x hidden to avoid any issues with
horizontal scroll
2023-09-11 14:59:01 +02:00
e4b90621b3 added languages 2023-09-07 13:57:02 +02:00
db4f5b8b51 fix: typo 2023-09-07 10:37:10 +02:00
2aaa70cc5e renamed services to skills 2023-09-07 10:20:57 +02:00
f3178c4f26 added back in the testimonials 2023-09-07 10:18:36 +02:00
2c0997058e Added secondary bullets to the resume 2023-09-07 10:14:49 +02:00
2abd73e73c css: made some variables 2023-09-07 10:14:34 +02:00
c0f85d0e98 finished resume 2023-09-05 18:52:47 +02:00
f7d7f42254 fixed style fluke 2023-09-04 11:40:07 +02:00
a53af1d3d6 updated resume 2023-09-04 11:39:59 +02:00
3564a73c69 downloaded aos locally 2023-09-04 11:39:30 +02:00
bbf67c1221 added left and right fades and made so that on
mobiles it's just up
2023-09-03 00:10:57 +02:00
891fe84af8 updated style of download my cv button 2023-09-02 18:59:42 +02:00
6e6eddee3a updated cv 2023-09-02 18:40:34 +02:00
16ce8513f7 updated cv 2023-09-02 18:30:10 +02:00
096fd9619d updated cv 2023-09-02 18:28:41 +02:00
e0b907820d added button to download cv 2023-09-02 18:21:47 +02:00
a66dd82bbc added cv 2023-09-02 18:05:24 +02:00
1b62bd45b1 added transitions to resume 2023-09-02 17:37:29 +02:00
50 changed files with 1741 additions and 1822 deletions

File diff suppressed because it is too large Load Diff

BIN
assets/img/arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
assets/img/docker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
assets/img/footer-bg.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 154 KiB

BIN
assets/img/hero-bg-2k.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 509 KiB

BIN
assets/img/htmlcss.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
assets/img/me2-low.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
assets/img/me2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 KiB

BIN
assets/img/neovim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
assets/img/testimonials-bg.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

BIN
assets/img/tsjs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -5,268 +5,351 @@
* Author: BootstrapMade.com * Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/ * License: https://bootstrapmade.com/license/
*/ */
(function() { (function () {
"use strict"; "use strict";
/** /**
* Easy selector helper function * Easy selector helper function
*/ */
const select = (el, all = false) => { const select = (el, all = false) => {
el = el.trim(); el = el.trim();
if (all) { if (all) {
return [...document.querySelectorAll(el)]; return [...document.querySelectorAll(el)];
} else { } else {
return document.querySelector(el); return document.querySelector(el);
}
};
/**
* Easy event listener function
*/
const on = (type, el, listener, all = false) => {
let selectEl = select(el, all);
if (selectEl) {
if (all) {
selectEl.forEach((e) => e.addEventListener(type, listener));
} else {
selectEl.addEventListener(type, listener);
}
}
};
/**
* Easy on scroll event listener
*/
const onscroll = (el, listener) => {
el.addEventListener("scroll", listener);
};
/**
* Navbar links active state on scroll
*/
let navbarlinks = select("#navbar .scrollto", true);
const navbarlinksActive = () => {
let position = window.scrollY + 200;
navbarlinks.forEach((navbarlink) => {
if (!navbarlink.hash) return;
let section = select(navbarlink.hash);
if (!section) return;
if (
position >= section.offsetTop &&
position <= section.offsetTop + section.offsetHeight
) {
navbarlink.classList.add("active");
} else {
navbarlink.classList.remove("active");
}
});
};
window.addEventListener("load", navbarlinksActive);
onscroll(document, navbarlinksActive);
/**
* Scrolls to an element with header offset
*/
const scrollto = (el) => {
let header = select("#header");
let offset = header.offsetHeight;
if (!header.classList.contains("header-scrolled")) {
offset -= 20;
}
let elementPos = select(el).offsetTop;
window.scrollTo({
top: elementPos - offset,
behavior: "smooth",
});
};
/**
* Toggle .header-scrolled class to #header when page is scrolled
*/
let selectHeader = select("#header");
if (selectHeader) {
const headerScrolled = () => {
if (window.scrollY > 100) {
selectHeader.classList.add("header-scrolled");
} else {
selectHeader.classList.remove("header-scrolled");
}
};
window.addEventListener("load", headerScrolled);
onscroll(document, headerScrolled);
} }
};
/** /**
* Back to top button * Easy event listener function
*/ */
let backtotop = select(".back-to-top"); const on = (type, el, listener, all = false) => {
if (backtotop) { let selectEl = select(el, all);
const toggleBacktotop = () => { if (selectEl) {
if (window.scrollY > 100) { if (all) {
backtotop.classList.add("active"); selectEl.forEach((e) => e.addEventListener(type, listener));
} else { } else {
backtotop.classList.remove("active"); selectEl.addEventListener(type, listener);
} }
};
window.addEventListener("load", toggleBacktotop);
onscroll(document, toggleBacktotop);
} }
};
/** /**
* Mobile nav toggle * Easy on scroll event listener
*/ */
on("click", ".mobile-nav-toggle", function(e) { const onscroll = (el, listener) => {
select("#navbar").classList.toggle("navbar-mobile"); el.addEventListener("scroll", listener);
this.classList.toggle("bi-list"); };
this.classList.toggle("bi-x");
/**
* Navbar links active state on scroll
*/
let navbarlinks = select("#navbar .scrollto", true);
const navbarlinksActive = () => {
let position = window.scrollY + 200;
navbarlinks.forEach((navbarlink) => {
if (!navbarlink.hash) return;
let section = select(navbarlink.hash);
if (!section) return;
if (
position >= section.offsetTop &&
position <= section.offsetTop + section.offsetHeight
) {
navbarlink.classList.add("active");
} else {
navbarlink.classList.remove("active");
}
}); });
};
window.addEventListener("load", navbarlinksActive);
onscroll(document, navbarlinksActive);
/**
* Scrolls to an element with header offset
*/
const scrollto = (el) => {
let header = select("#header");
let offset = header.offsetHeight;
if (!header.classList.contains("header-scrolled")) {
offset -= 20;
}
let elementPos = select(el).offsetTop;
window.scrollTo({
top: elementPos - offset,
behavior: "smooth",
});
};
/**
* Toggle .header-scrolled class to #header when page is scrolled
*/
let selectHeader = select("#header");
if (selectHeader) {
const headerScrolled = () => {
if (window.scrollY > 100) {
selectHeader.classList.add("header-scrolled");
} else {
selectHeader.classList.remove("header-scrolled");
}
};
window.addEventListener("load", headerScrolled);
onscroll(document, headerScrolled);
}
/**
* Back to top button
*/
let backtotop = select(".back-to-top");
if (backtotop) {
const toggleBacktotop = () => {
if (window.scrollY > 100) {
backtotop.classList.add("active");
} else {
backtotop.classList.remove("active");
}
};
window.addEventListener("load", toggleBacktotop);
onscroll(document, toggleBacktotop);
}
/**
* Mobile nav toggle
*/
on("click", ".mobile-nav-toggle", function (e) {
select("#navbar").classList.toggle("navbar-mobile");
this.classList.toggle("bi-list");
this.classList.toggle("bi-x");
});
/**
* Mobile nav dropdowns activate
*/
on(
"click",
".navbar .dropdown > a",
function (e) {
if (select("#navbar").classList.contains("navbar-mobile")) {
e.preventDefault();
this.nextElementSibling.classList.toggle("dropdown-active");
}
},
true
);
/**
* Scrool with ofset on links with a class name .scrollto
*/
on(
"click",
".scrollto",
function (e) {
if (select(this.hash)) {
e.preventDefault();
let navbar = select("#navbar");
if (navbar.classList.contains("navbar-mobile")) {
navbar.classList.remove("navbar-mobile");
let navbarToggle = select(".mobile-nav-toggle");
navbarToggle.classList.toggle("bi-list");
navbarToggle.classList.toggle("bi-x");
}
scrollto(this.hash);
}
},
true
);
on("click", "#resume-toggle", e => {
console.log("sup")
const sec = select("#resume-section");
const btn = e.target;
sec.classList.toggle("expanded");
select(".resume-fade").classList.toggle("expanded");
if (sec.classList.contains("expanded"))
btn.innerHTML = 'Hide <i class="bi bi-chevron-up"></i>';
else
btn.innerHTML = 'Expand <i class="bi bi-chevron-down"></i>';
AOS.refresh();
})
/**
* Scroll with ofset on page load with hash links in the url
*/
window.addEventListener("load", () => {
if (window.location.hash) {
if (select(window.location.hash)) {
scrollto(window.location.hash);
}
}
});
/**
* Skills animation
*/
let skillsContent = select(".progress", true);
if (skillsContent) {
skillsContent.forEach((skill) => {
new Waypoint({
element: skill,
offset: "100%",
handler: function (direction) {
let progress = skill.querySelectorAll(".progress-bar");
progress.forEach((el) => {
let percent =
100 *
(+el.getAttribute("aria-valuenow") /
(+el.getAttribute("aria-valuemax") -
+el.getAttribute("aria-valuemin")));
el.style.width = percent + "%";
});
},
});
});
}
/**
* Testimonials slider
*/
new Swiper(".testimonials-slider", {
speed: 600,
loop: true,
autoplay: {
delay: 10000,
disableOnInteraction: false,
},
slidesPerView: "auto",
pagination: {
el: ".swiper-pagination",
type: "bullets",
clickable: true,
},
});
window.addEventListener("load", () => {
/** /**
* Mobile nav dropdowns activate * Skills isotope and filter
*/ */
on( let skillsContainer = select(".skills-container");
if (skillsContainer) {
let skillsIsotope = new Isotope(skillsContainer, {
itemSelector: ".skill-item",
});
let skillsFilters = select("#skills-filters li", true);
on(
"click", "click",
".navbar .dropdown > a", "#skills-filters li",
function(e) { function (e) {
if (select("#navbar").classList.contains("navbar-mobile")) { e.preventDefault();
e.preventDefault(); skillsFilters.forEach(function (el) {
this.nextElementSibling.classList.toggle("dropdown-active"); el.classList.remove("filter-active");
} });
this.classList.add("filter-active");
skillsIsotope.arrange({
filter: this.getAttribute("data-filter"),
});
}, },
true, true
); );
/**
* Scrool with ofset on links with a class name .scrollto
*/
on(
"click",
".scrollto",
function(e) {
if (select(this.hash)) {
e.preventDefault();
let navbar = select("#navbar");
if (navbar.classList.contains("navbar-mobile")) {
navbar.classList.remove("navbar-mobile");
let navbarToggle = select(".mobile-nav-toggle");
navbarToggle.classList.toggle("bi-list");
navbarToggle.classList.toggle("bi-x");
}
scrollto(this.hash);
}
},
true,
);
/**
* Scroll with ofset on page load with hash links in the url
*/
window.addEventListener("load", () => {
if (window.location.hash) {
if (select(window.location.hash)) {
scrollto(window.location.hash);
}
}
});
/**
* Skills animation
*/
let skillsContent = select(".skills-content .progress", true);
if (skillsContent) {
skillsContent.forEach((skill) => {
new Waypoint({
element: skill,
offset: "100%",
handler: function(direction) {
let progress = skill.querySelectorAll(".progress-bar");
progress.forEach((el) => {
el.style.width = el.getAttribute("aria-valuenow") + "%";
});
},
});
});
} }
/**
* Testimonials slider
*/
new Swiper(".testimonials-slider", {
speed: 600,
loop: true,
autoplay: {
delay: 5000,
disableOnInteraction: false,
},
slidesPerView: "auto",
pagination: {
el: ".swiper-pagination",
type: "bullets",
clickable: true,
},
});
/** /**
* Porfolio isotope and filter * Porfolio isotope and filter
*/ */
window.addEventListener("load", () => { let portfolioContainer = select(".portfolio-container");
let portfolioContainer = select(".portfolio-container"); if (portfolioContainer) {
if (portfolioContainer) { let portfolioIsotope = new Isotope(portfolioContainer, {
let portfolioIsotope = new Isotope(portfolioContainer, { itemSelector: ".portfolio-item",
itemSelector: ".portfolio-item", });
});
let portfolioFilters = select("#portfolio-flters li", true); let portfolioFilters = select("#portfolio-flters li", true);
on( on(
"click", "click",
"#portfolio-flters li", "#portfolio-flters li",
function(e) { function (e) {
e.preventDefault(); e.preventDefault();
portfolioFilters.forEach(function(el) { portfolioFilters.forEach(function (el) {
el.classList.remove("filter-active"); el.classList.remove("filter-active");
}); });
this.classList.add("filter-active"); this.classList.add("filter-active");
portfolioIsotope.arrange({ portfolioIsotope.arrange({
filter: this.getAttribute("data-filter"), filter: this.getAttribute("data-filter"),
}); });
},
true,
);
}
AOS.init();
});
/**
* Initiate portfolio lightbox
*/
const portfolioLightbox = GLightbox({
selector: ".portfolio-lightbox",
});
/**
* Portfolio details slider
*/
new Swiper(".portfolio-details-slider", {
speed: 400,
loop: true,
autoplay: {
delay: 5000,
disableOnInteraction: false,
}, },
pagination: { true
el: ".swiper-pagination", );
type: "bullets", }
clickable: true, // let horizontal_aoss = document.querySelectorAll("[data-aos~='left'], [data-aos~='right']")
}, if (window.matchMedia("(max-width: 768px)").matches) {
}); let horizontal_aoss = document.querySelectorAll(
`[data-aos$="left"], [data-aos$="right"]`
);
horizontal_aoss.forEach((el) => el.setAttribute("data-aos", "fade-up"));
}
AOS.init();
});
/** /**
* Initiate Pure Counter * Initiate portfolio lightbox
*/ */
new PureCounter(); const portfolioLightbox = GLightbox({
})(); selector: ".portfolio-lightbox",
});
/**
* Portfolio details slider
*/
new Swiper(".portfolio-details-slider", {
speed: 400,
loop: true,
autoplay: {
delay: 5000,
disableOnInteraction: false,
},
pagination: {
el: ".swiper-pagination",
type: "bullets",
clickable: true,
},
});
if (localStorage.getItem("theme") == "light") {
toggleDarkMode();
}
// Set age correctly (cuz sbatti farlo ogni
// anno, toi meme tu sais)
let age_span = document.querySelector("#age");
age_span.textContent = calculateAge("1999-10-15");
})();
function toggleDarkMode() {
let dark_indicator = document.querySelector("#navbar i");
dark_indicator.classList.toggle("bi-moon-stars-fill");
dark_indicator.classList.toggle("bi-sun-fill");
document.body.classList.toggle("dark");
let theme = document.body.classList.contains("dark") ? "dark" : "light";
document.documentElement.style.setProperty("color-scheme", theme);
localStorage.setItem("theme", theme);
}
function calculateAge(birthDate) {
const today = new Date();
const birth = new Date(birthDate);
let age = today.getFullYear() - birth.getFullYear();
const monthDifference = today.getMonth() - birth.getMonth();
// Check if the birthday has not occurred yet this year
if (monthDifference < 0 || (monthDifference === 0 && today.getDate() < birth.getDate())) {
age--;
}
return age;
}

Binary file not shown.

1
assets/vendor/aos/aos.css vendored Normal file

File diff suppressed because one or more lines are too long

1
assets/vendor/aos/aos.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

40
assets/vendor/mdb/mdb.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,142 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Inner Page - Laura Bootstrap Template</title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="assets/img/favicon.png" rel="icon">
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Satisfy" rel="stylesheet">
<!-- Vendor CSS Files -->
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<!-- Template Main CSS File -->
<link href="assets/css/style.css" rel="stylesheet">
<!-- =======================================================
* Template Name: Laura
* Updated: Jul 27 2023 with Bootstrap v5.3.1
* Template URL: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
======================================================== -->
</head>
<body>
<!-- ======= Header ======= -->
<header id="header" class="fixed-top d-flex justify-content-center align-items-center ">
<nav id="navbar" class="navbar">
<ul>
<li><a class="nav-link scrollto " href="#hero">Home</a></li>
<li><a class="nav-link scrollto" href="#about">About</a></li>
<li><a class="nav-link scrollto" href="#resume">Resume</a></li>
<li><a class="nav-link scrollto" href="#services">Services</a></li>
<li><a class="nav-link scrollto " href="#portfolio">Portfolio</a></li>
<li class="dropdown"><a href="#"><span>Drop Down</span> <i class="bi bi-chevron-down"></i></a>
<ul>
<li><a href="#">Drop Down 1</a></li>
<li class="dropdown"><a href="#"><span>Deep Drop Down</span> <i class="bi bi-chevron-right"></i></a>
<ul>
<li><a href="#">Deep Drop Down 1</a></li>
<li><a href="#">Deep Drop Down 2</a></li>
<li><a href="#">Deep Drop Down 3</a></li>
<li><a href="#">Deep Drop Down 4</a></li>
<li><a href="#">Deep Drop Down 5</a></li>
</ul>
</li>
<li><a href="#">Drop Down 2</a></li>
<li><a href="#">Drop Down 3</a></li>
<li><a href="#">Drop Down 4</a></li>
</ul>
</li>
<li><a class="nav-link scrollto" href="#contact">Contact</a></li>
</ul>
<i class="bi bi-list mobile-nav-toggle"></i>
</nav><!-- .navbar -->
</header><!-- End Header -->
<main id="main">
<!-- ======= Breadcrumbs ======= -->
<section class="breadcrumbs">
<div class="container">
<div class="d-flex justify-content-between align-items-center">
<h2>Inner Page</h2>
<ol>
<li><a href="index.html">Home</a></li>
<li>Inner Page</li>
</ol>
</div>
</div>
</section><!-- End Breadcrumbs -->
<section class="inner-page">
<div class="container">
<p>
Example inner page template
</p>
</div>
</section>
</main><!-- End #main -->
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="container">
<h3>Laura Thomson</h3>
<p>Et aut eum quis fuga eos sunt ipsa nihil. Labore corporis magni eligendi fuga maxime saepe commodi placeat.</p>
<div class="social-links">
<a href="#" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="#" class="facebook"><i class="bx bxl-facebook"></i></a>
<a href="#" class="instagram"><i class="bx bxl-instagram"></i></a>
<a href="#" class="google-plus"><i class="bx bxl-skype"></i></a>
<a href="#" class="linkedin"><i class="bx bxl-linkedin"></i></a>
</div>
<div class="copyright">
&copy; Copyright <strong><span>Laura</span></strong>. All Rights Reserved
</div>
<div class="credits">
<!-- All the links in the footer should remain intact. -->
<!-- You can delete the links only if you purchased the pro version. -->
<!-- Licensing information: https://bootstrapmade.com/license/ -->
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/ -->
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
</div>
</div>
</footer><!-- End Footer -->
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
<!-- Vendor JS Files -->
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
<script src="assets/vendor/waypoints/noframework.waypoints.js"></script>
<script src="assets/vendor/php-email-form/validate.js"></script>
<!-- Template Main JS File -->
<script src="assets/js/main.js"></script>
</body>
</html>

View File

@ -1,185 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Portfolio Details - Laura Bootstrap Template</title>
<meta content="" name="description">
<meta content="" name="keywords">
<!-- Favicons -->
<link href="assets/img/favicon.png" rel="icon">
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Raleway:300,300i,400,400i,500,500i,600,600i,700,700i|Satisfy" rel="stylesheet">
<!-- Vendor CSS Files -->
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
<!-- Template Main CSS File -->
<link href="assets/css/style.css" rel="stylesheet">
<!-- =======================================================
* Template Name: Laura
* Updated: Jul 27 2023 with Bootstrap v5.3.1
* Template URL: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/
* Author: BootstrapMade.com
* License: https://bootstrapmade.com/license/
======================================================== -->
</head>
<body>
<!-- ======= Header ======= -->
<header id="header" class="fixed-top d-flex justify-content-center align-items-center ">
<nav id="navbar" class="navbar">
<ul>
<li><a class="nav-link scrollto " href="#hero">Home</a></li>
<li><a class="nav-link scrollto" href="#about">About</a></li>
<li><a class="nav-link scrollto" href="#resume">Resume</a></li>
<li><a class="nav-link scrollto" href="#services">Services</a></li>
<li><a class="nav-link scrollto active" href="#portfolio">Portfolio</a></li>
<li class="dropdown"><a href="#"><span>Drop Down</span> <i class="bi bi-chevron-down"></i></a>
<ul>
<li><a href="#">Drop Down 1</a></li>
<li class="dropdown"><a href="#"><span>Deep Drop Down</span> <i class="bi bi-chevron-right"></i></a>
<ul>
<li><a href="#">Deep Drop Down 1</a></li>
<li><a href="#">Deep Drop Down 2</a></li>
<li><a href="#">Deep Drop Down 3</a></li>
<li><a href="#">Deep Drop Down 4</a></li>
<li><a href="#">Deep Drop Down 5</a></li>
</ul>
</li>
<li><a href="#">Drop Down 2</a></li>
<li><a href="#">Drop Down 3</a></li>
<li><a href="#">Drop Down 4</a></li>
</ul>
</li>
<li><a class="nav-link scrollto" href="#contact">Contact</a></li>
</ul>
<i class="bi bi-list mobile-nav-toggle"></i>
</nav><!-- .navbar -->
</header><!-- End Header -->
<main id="main">
<!-- ======= Breadcrumbs Section ======= -->
<section class="breadcrumbs">
<div class="container">
<div class="d-flex justify-content-between align-items-center">
<h2>Portfolio Details</h2>
<ol>
<li><a href="index.html">Home</a></li>
<li><a href="portfolio.html">Portfolio</a></li>
<li>Portfolio Details</li>
</ol>
</div>
</div>
</section><!-- Breadcrumbs Section -->
<!-- ======= Portfolio Details Section ======= -->
<section id="portfolio-details" class="portfolio-details">
<div class="container">
<div class="row gy-4">
<div class="col-lg-8">
<div class="portfolio-details-slider swiper">
<div class="swiper-wrapper align-items-center">
<div class="swiper-slide">
<img src="assets/img/portfolio/portfolio-details-1.jpg" alt="">
</div>
<div class="swiper-slide">
<img src="assets/img/portfolio/portfolio-details-2.jpg" alt="">
</div>
<div class="swiper-slide">
<img src="assets/img/portfolio/portfolio-details-3.jpg" alt="">
</div>
</div>
<div class="swiper-pagination"></div>
</div>
</div>
<div class="col-lg-4">
<div class="portfolio-info">
<h3>Project information</h3>
<ul>
<li><strong>Category</strong>: Web design</li>
<li><strong>Client</strong>: ASU Company</li>
<li><strong>Project date</strong>: 01 March, 2020</li>
<li><strong>Project URL</strong>: <a href="#">www.example.com</a></li>
</ul>
</div>
<div class="portfolio-description">
<h2>This is an example of portfolio detail</h2>
<p>
Autem ipsum nam porro corporis rerum. Quis eos dolorem eos itaque inventore commodi labore quia quia. Exercitationem repudiandae officiis neque suscipit non officia eaque itaque enim. Voluptatem officia accusantium nesciunt est omnis tempora consectetur dignissimos. Sequi nulla at esse enim cum deserunt eius.
</p>
</div>
</div>
</div>
</div>
</section><!-- End Portfolio Details Section -->
</main><!-- End #main -->
<!-- ======= Footer ======= -->
<footer id="footer">
<div class="container">
<h3>Laura Thomson</h3>
<p>Et aut eum quis fuga eos sunt ipsa nihil. Labore corporis magni eligendi fuga maxime saepe commodi placeat.</p>
<div class="social-links">
<a href="#" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="#" class="facebook"><i class="bx bxl-facebook"></i></a>
<a href="#" class="instagram"><i class="bx bxl-instagram"></i></a>
<a href="#" class="google-plus"><i class="bx bxl-skype"></i></a>
<a href="#" class="linkedin"><i class="bx bxl-linkedin"></i></a>
</div>
<div class="copyright">
&copy; Copyright <strong><span>Laura</span></strong>. All Rights Reserved
</div>
<div class="credits">
<!-- All the links in the footer should remain intact. -->
<!-- You can delete the links only if you purchased the pro version. -->
<!-- Licensing information: https://bootstrapmade.com/license/ -->
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/laura-free-creative-bootstrap-theme/ -->
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
</div>
</div>
</footer><!-- End Footer -->
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
<!-- Vendor JS Files -->
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
<script src="assets/vendor/waypoints/noframework.waypoints.js"></script>
<script src="assets/vendor/php-email-form/validate.js"></script>
<!-- Template Main JS File -->
<script src="assets/js/main.js"></script>
</body>
</html>