diff --git a/src/app/components/BuyMeACoffee/styles.module.css b/src/app/components/BuyMeACoffee/styles.module.css
index 23bc14f..c05f4cd 100644
--- a/src/app/components/BuyMeACoffee/styles.module.css
+++ b/src/app/components/BuyMeACoffee/styles.module.css
@@ -11,6 +11,14 @@
}
}
+.buy_me_a_coffee-wrapper h4 {
+ display: none;
+
+ @media (min-width: 480px) {
+ display: block;
+ }
+}
+
.buy_me_a_coffee-wrapper:hover {
color: var(--secondary);
}
diff --git a/src/app/components/Footer/index.tsx b/src/app/components/Footer/index.tsx
index 14023ed..af4b716 100644
--- a/src/app/components/Footer/index.tsx
+++ b/src/app/components/Footer/index.tsx
@@ -1,10 +1,35 @@
+import BuyMeACoffee from "../BuyMeACoffee";
import Typography from "../Typography";
import styles from "./styles.module.css";
+import { GITHUB_LINK, EMAIL_LINK, LINKEDIN_LINK } from "../../utils/contrants";
+import GithubIcon from "../../assets/icons/github-logo.svg";
+import EmailIcon from "../../assets/icons/email-logo.svg";
+import LinkedinIcon from "../../assets/icons/linkedin-logo.svg";
export default function Footer() {
return (
diff --git a/src/app/components/Footer/styles.module.css b/src/app/components/Footer/styles.module.css
index afd6a1f..6ca21eb 100644
--- a/src/app/components/Footer/styles.module.css
+++ b/src/app/components/Footer/styles.module.css
@@ -16,3 +16,29 @@
max-width: 90rem;
padding: 1rem 2rem;
}
+.footer-wrapper ul {
+ list-style-type: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 1rem;
+}
+
+.footer-wrapper li svg {
+ width: 2rem;
+ height: 2rem;
+
+ @media (min-width: 768px) {
+ width: 3rem;
+ height: 3rem;
+ }
+}
+
+.footer-wrapper li svg path {
+ fill: var(--primary);
+ transition: var(--transition);
+}
+
+.footer-wrapper li:hover svg path {
+ fill: var(--secondary);
+}
diff --git a/src/app/components/PresentationCard/index.tsx b/src/app/components/PresentationCard/index.tsx
new file mode 100644
index 0000000..9460aab
--- /dev/null
+++ b/src/app/components/PresentationCard/index.tsx
@@ -0,0 +1,21 @@
+import styles from "./styles.module.css";
+
+interface PresentationCardProps {
+ title: string;
+ link: string;
+ date: Date;
+}
+
+export default function PresentationCard({ link }: PresentationCardProps) {
+ return (
+
+
+
+ );
+}
diff --git a/src/app/components/PresentationCard/styles.module.css b/src/app/components/PresentationCard/styles.module.css
new file mode 100644
index 0000000..e20ae80
--- /dev/null
+++ b/src/app/components/PresentationCard/styles.module.css
@@ -0,0 +1,6 @@
+.presentation iframe {
+ border: none;
+ width: 100%;
+ max-width: 30rem;
+ height: 16.875rem;
+}
diff --git a/src/app/components/ProjectCard/styles.module.css b/src/app/components/ProjectCard/styles.module.css
index e243fc2..f3f308f 100644
--- a/src/app/components/ProjectCard/styles.module.css
+++ b/src/app/components/ProjectCard/styles.module.css
@@ -1,13 +1,20 @@
.project {
- width: 100%;
+ width: 90%;
display: flex;
flex-direction: column;
gap: 0;
+ box-shadow: var(--shadow);
+ border-radius: 0.5rem;
+}
+
+.project:hover {
+ transform: scale(1.0125);
+ transition: var(--transition);
}
.project img {
width: 100%;
- height: 100%;
+ height: auto;
object-fit: cover;
border-radius: 0.5rem 0.5rem 0 0;
}
diff --git a/src/app/data/presentations.ts b/src/app/data/presentations.ts
new file mode 100644
index 0000000..0b63e90
--- /dev/null
+++ b/src/app/data/presentations.ts
@@ -0,0 +1,13 @@
+interface Presentation {
+ title: string;
+ link: string;
+ date: Date;
+}
+
+export const presentations: Presentation[] = [
+ {
+ title: "masterChefEcomp",
+ link: "https://www.youtube.com/embed/cK7dz0PXVq8?si=g3fMHDqd73KFvOl7",
+ date: new Date("2024-03-20"),
+ },
+];
diff --git a/src/app/i18n/locales/en.json b/src/app/i18n/locales/en.json
index 0e8c2cf..739e64b 100644
--- a/src/app/i18n/locales/en.json
+++ b/src/app/i18n/locales/en.json
@@ -35,8 +35,26 @@
"seeMore": {
"label": "See all projects"
}
+ },
+ "experience": {
+ "title": {
+ "label": "Experience"
+ },
+ "seeMore": {
+ "label": "See my full resume"
+ }
+ },
+ "formation": {
+ "title": {
+ "label": "Formation"
+ }
+ },
+ "presentations": {
+ "title": {
+ "label": "Presentations"
+ }
}
},
"projects": {}
}
-}
+}
\ No newline at end of file
diff --git a/src/app/i18n/locales/pt.json b/src/app/i18n/locales/pt.json
index 39d9175..a6b6197 100644
--- a/src/app/i18n/locales/pt.json
+++ b/src/app/i18n/locales/pt.json
@@ -35,8 +35,26 @@
"seeMore": {
"label": "Veja todos os projetos"
}
+ },
+ "experience": {
+ "title": {
+ "label": "Experiência"
+ },
+ "seeMore": {
+ "label": "Veja meu currículo completo"
+ }
+ },
+ "formation": {
+ "title": {
+ "label": "Formação"
+ }
+ },
+ "presentations": {
+ "title": {
+ "label": "Apresentações"
+ }
}
},
"projects": {}
}
-}
+}
\ No newline at end of file
diff --git a/src/app/page.module.css b/src/app/page.module.css
index b26fb7d..75b3b32 100644
--- a/src/app/page.module.css
+++ b/src/app/page.module.css
@@ -49,7 +49,7 @@
}
.home-intro_section-logo {
- filter: drop-shadow(var(--shadow));
+ filter: drop-shadow(4px 8px 32px rgba(0, 0, 0, 0.25));
}
.home-intro_section-title {
@@ -143,6 +143,7 @@
border: 0.25rem solid var(--primary);
grid-area: a;
justify-self: center;
+ box-shadow: var(--shadow);
@media (min-width: 768px) {
justify-self: start;
@@ -222,3 +223,7 @@
gap: 2rem;
}
}
+
+.home-presentations-list {
+ list-style-type: none;
+}
diff --git a/src/app/page.tsx b/src/app/page.tsx
index 2911fff..bbd9b86 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -17,6 +17,8 @@ import { projects } from "./data/projects";
import ProjectCard from "./components/ProjectCard";
import Link from "next/link";
import ArrowRight from "./assets/icons/arrow-right-alt.svg";
+import { presentations } from "./data/presentations";
+import PresentationCard from "./components/PresentationCard";
export default function Home() {
const { t } = useTranslation();
@@ -95,6 +97,50 @@ export default function Home() {
+
+
+
+
+ {t("pages.home.experience.title.label")}
+
+
+
+ {t("pages.home.experience.seeMore.label")}
+
+
+
+
+
+
+
+
+
+
+ {t("pages.home.formation.title.label")}
+
+
+
+
+
+
+
+
+ {t("pages.home.presentations.title.label")}
+
+
+
+ {presentations.map((presentation) => (
+ -
+
+
+ ))}
+
+
+
);