Skip to content

Commit 615d1bd

Browse files
BIA3IAtoto04
andauthored
feat: Materials component and update Home page layout (#59)
* feat: implement Materials component and update Home page layout * fix: correct padding value in Materials component * fix: correct HTML entity in Not Found page * Revert "fix: correct HTML entity in Not Found page" This reverts commit c194cbb. * fix: smaller gap at large screen sizes --------- Co-authored-by: Tommaso Morganti <tommaso.morganti01@gmail.com>
1 parent 4b9d0ed commit 615d1bd

File tree

2 files changed

+65
-52
lines changed

2 files changed

+65
-52
lines changed

src/app/page.tsx

Lines changed: 2 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,11 @@
1-
import { FiBook, FiBookOpen, FiClipboard, FiFileText, FiPenTool, FiTriangle, FiUploadCloud } from "react-icons/fi"
2-
import { CardIcon } from "@/components/card-icon"
31
import { Hero } from "@/components/home/hero"
4-
5-
const schoolCards = [
6-
{ title: "Scuola di Architettura", icon: FiTriangle, size: "md" },
7-
{ title: "Scuola di Design", icon: FiPenTool, size: "md" },
8-
{ title: "Scuola di Ingegneria", icon: FiBookOpen, size: "md" },
9-
] as const
10-
11-
const materialCards = [
12-
{
13-
title: "Carica",
14-
description:
15-
"Hai appunti, dispense o temi d'esame che vuoi condividere? Caricali qui! Il tuo contributo è prezioso per aiutare migliaia di colleghi con materiale aggiornato!",
16-
icon: FiUploadCloud,
17-
size: "lg",
18-
},
19-
{
20-
title: "Visualizza",
21-
description:
22-
"Cerca ciò che ti serve per il tuo prossimo esame. Naviga tra i corsi di studio e trova facilmente appunti, esercizi e dispense condivisi da altri studenti come te.",
23-
icon: FiBookOpen,
24-
size: "lg",
25-
},
26-
] as const
27-
28-
const otherCards = [
29-
{ title: "Dispense", icon: FiBook, size: "sm" },
30-
{ title: "Appunti", icon: FiFileText, size: "sm" },
31-
{ title: "Esami", icon: FiClipboard, size: "sm" },
32-
] as const
2+
import { Materials } from "@/components/home/materials"
333

344
export default function Home() {
355
return (
366
<main className="w-full">
377
<Hero />
38-
<div className="mx-auto flex max-w-6xl flex-col gap-12">
39-
<section>
40-
<div className="grid gap-6 sm:grid-cols-2 md:grid-cols-3">
41-
{schoolCards.map((card) => (
42-
<CardIcon key={card.title} {...card} href="#" hoverEffect />
43-
))}
44-
</div>
45-
</section>
46-
<section className="flex max-w-4xl flex-col gap-6">
47-
<div className="grid gap-32 sm:grid-cols-2">
48-
{materialCards.map((card) => (
49-
<CardIcon key={card.title} {...card} href="#" />
50-
))}
51-
</div>
52-
<div className="grid gap-16 sm:grid-cols-3">
53-
{otherCards.map((card) => (
54-
<CardIcon key={card.title} {...card} href="#" />
55-
))}
56-
</div>
57-
</section>
58-
</div>
8+
<Materials />
599
</main>
6010
)
6111
}

src/components/home/materials.tsx

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import { FiArrowUpRight, FiBook, FiBookOpen, FiClipboard, FiFileText, FiUploadCloud } from "react-icons/fi"
2+
import { CardIcon } from "@/components/card-icon"
3+
import { Button } from "@/components/ui/button"
4+
5+
const featuredCards = [
6+
{
7+
title: "Carica",
8+
description:
9+
"Hai appunti, dispense o temi d'esame che vuoi condividere? Caricali qui! Il tuo contributo é prezioso per aiutare migliaia di colleghi con materiale aggiornato!",
10+
icon: FiUploadCloud,
11+
size: "lg",
12+
href: "#",
13+
},
14+
{
15+
title: "Visualizza",
16+
description:
17+
"Cerca cio che ti serve per il tuo prossimo esame. Naviga tra i corsi di studio e trova facilmente appunti, esercizi e dispense condivisi da altri studenti come te.",
18+
icon: FiBookOpen,
19+
size: "lg",
20+
href: "#",
21+
},
22+
] as const
23+
24+
const quickLinks = [
25+
{ title: "Dispense", icon: FiBook, size: "sm", href: "#" },
26+
{ title: "Esami", icon: FiFileText, size: "sm", href: "#" },
27+
{ title: "Appunti", icon: FiClipboard, size: "sm", href: "#" },
28+
] as const
29+
30+
export function Materials() {
31+
return (
32+
<section className="mx-auto flex max-w-500 flex-col-reverse gap-8 px-4 py-10 sm:px-8 sm:py-12 lg:gap-10 lg:px-12 xl:flex-row xl:items-start xl:gap-12 xl:px-16 2xl:gap-32 2xl:px-32">
33+
<div className="flex grow flex-col gap-5 lg:gap-6 xl:gap-8 xl:pt-12 2xl:pt-44">
34+
<div className="grid gap-12 md:grid-cols-2 2xl:gap-20">
35+
{featuredCards.map((card) => (
36+
<CardIcon key={card.title} {...card} className="h-full" />
37+
))}
38+
</div>
39+
40+
<div className="grid gap-4 sm:grid-cols-2 sm:gap-12 lg:grid-cols-3 2xl:gap-20">
41+
{quickLinks.map((card) => (
42+
<CardIcon key={card.title} {...card} className="h-full" />
43+
))}
44+
</div>
45+
</div>
46+
47+
<div className="flex flex-col items-start gap-8 xl:justify-self-end">
48+
<h2 className="typo-display-large sm:typo-display-extralarge w-fit bg-linear-to-b from-text-primary to-text-secondary bg-clip-text py-4 text-transparent">
49+
Materials
50+
</h2>
51+
<p className="typo-body-large max-w-lg">
52+
Il piu grande archivio didattico creato dagli studenti per gli studenti del Politecnico di Milano. Cerca tra
53+
migliaia di appunti, dispense, temi d'esame e molto altro. Carica i tuoi file per far crescere la community e
54+
trova tutto cio che ti serve, organizzato per corso di studi.
55+
</p>
56+
<Button variant="primary" size="lg" className="w-fit">
57+
Scopri di piu
58+
<FiArrowUpRight />
59+
</Button>
60+
</div>
61+
</section>
62+
)
63+
}

0 commit comments

Comments
 (0)