fixed project page design

This commit is contained in:
2026-04-16 11:55:31 +02:00
parent 2bf8bae473
commit 15f39c4cb2
6 changed files with 71 additions and 62 deletions
+24 -18
View File
@@ -40,7 +40,7 @@ export default async function ProjectPage({ params }: props) {
return ( return (
<main className="bg-[#f5f3ef]"> <main className="bg-[#f5f3ef]">
<div className="mx-auto max-w-full "> <div className="mx-auto max-w-full flex flex-col items-center">
<ProjectHero <ProjectHero
locale={locale} locale={locale}
title={project.title} title={project.title}
@@ -48,26 +48,32 @@ export default async function ProjectPage({ params }: props) {
dateLabel={project.dateLabel} dateLabel={project.dateLabel}
/> />
<ProjectMeta <div className="lg:max-w-[70vw]">
dateLabel={project.dateLabel} <ProjectMeta
category={project.category} dateLabel={project.dateLabel}
roles={project.roles} category={project.category}
client={project.client} roles={project.roles}
/> client={project.client}
/>
<ProjectTechnologies technologies={project.technologies} /> <ProjectTechnologies technologies={project.technologies} />
<section className="pb-16"> <section className="pb-16">
<article className=" <article className="
prose prose-neutral max-w-none flex flex-col gap-20
prose-h2:text-6xl prose-h2:font-semibold prose-h2:text-[#2b160f] [&>div>h2]:text-[clamp(80px,10vw,128px)] [&>div>h2]:font-serif [&>div>h2]:text-brand-brown
prose-p:text-base prose-p:leading-8 prose-p:text-neutral-800 ">
"> <MDXRemote
<MDXRemote source={project.content} components={mdxComponents} /> source={project.content}
</article> components={mdxComponents}
</section> options={{ blockJS: false, blockDangerousJS: true }}
/>
</article>
</section>
<OtherProjects locale={locale} projects={otherProjects} />
</div>
<OtherProjects locale={locale} projects={otherProjects} />
</div> </div>
</main> </main>
); );
+23 -23
View File
@@ -1,31 +1,31 @@
type PreviewItem = { type PreviewItem = {
title: string; title: string;
image: string; image: string;
}; };
type props = { type props = {
items?: PreviewItem[]; items?: PreviewItem[];
}; };
export function ProjectPreviewGrid({ items = [] }: props) { export function ProjectPreviewGrid({ items = [] }: props) {
return ( return (
<div className="grid gap-6 md:grid-cols-2"> <div className="grid gap-6 2xl:grid-cols-2 2xl:space-x-6">
{items.map((item) => ( {items.map((item) => (
<div <div
key={item.title} key={item.title}
className="rounded-2xl overflow-hidden bg-[#2b160f] text-white min-h-[260px] flex items-center justify-center" className="rounded-[10px] overflow-hidden bg-[#2b160f] text-white min-h-65 flex items-center justify-center"
> >
{item.image ? ( {item.image ? (
<img <img
src={item.image} src={item.image}
alt={item.title} alt={item.title}
className="h-full w-full object-cover" className="h-full w-full object-cover"
/> />
) : ( ) : (
<span className="text-2xl">{item.title}</span> <span className="text-2xl">{item.title}</span>
)} )}
</div> </div>
))} ))}
</div> </div>
); );
} }
+16 -13
View File
@@ -1,18 +1,21 @@
import { GoLinkExternal } from "react-icons/go";
type VisitButtonProps = { type VisitButtonProps = {
href: string; href: string;
}; };
export function ProjectVisitButton({ href }: VisitButtonProps) { export function ProjectVisitButton({ href }: VisitButtonProps) {
return ( return (
<div className="flex justify-center"> <div className="flex justify-center">
<a <a
href={href} href={href}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
className="rounded-full bg-[#2b160f] px-4 py-2 text-white text-sm" className="rounded-[10px] border border-brand-brown px-6 py-4 text-brand-brown text-base flex flex-row justify-center items-center gap-2"
> >
Visiter le site Visiter le site
</a> <GoLinkExternal className="text-xl" />
</div> </a>
); </div>
);
} }
+6 -6
View File
@@ -1,11 +1,11 @@
type props = { type props = {
children: React.ReactNode; children: React.ReactNode;
}; };
export function ProjectsColumns({ children }: props) { export function ProjectsColumns({ children }: props) {
return ( return (
<div className="grid gap-6 md:grid-cols-2"> <div className="grid gap-6 text-justify text-base font-sans lg:grid-cols-2 lg:space-x-6">
{children} {children}
</div> </div>
); );
} }
+1 -1
View File
@@ -11,7 +11,7 @@ type props = {
export function ProjectHero({ title, description, dateLabel, locale }: props) { export function ProjectHero({ title, description, dateLabel, locale }: props) {
return ( return (
<div className="md:pt-22"> <div className="md:pt-22 w-full">
<section className="rounded-[10px] bg-brand-brown flex flex-col items-center justify-center text-brand-beige px-6 py-4"> <section className="rounded-[10px] bg-brand-brown flex flex-col items-center justify-center text-brand-beige px-6 py-4">
<Link <Link
href={`/${locale}#works`} href={`/${locale}#works`}
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB