fixed project page design
This commit is contained in:
@@ -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,27 +48,33 @@ 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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
@@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -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 |
Reference in New Issue
Block a user