feat: plakat redesign for subpages (projects, books, legal, privacy)
- Shared SubpageShell (HeaderClient paper strip + ink footer) and SubpageIntro, btn/ghost/card helpers in app/_ui/subpage.tsx - Projects list: poster cards with hard ink shadows, filter pills, ink search field; no fake 800ms skeleton and no framer-motion opacity:0 in SSR - Project detail: poster hero, .plakat-prose markdown, links/stack aside, back link works without JS - Books: server-side fetch (visible without JS), cover + rating pills - Legal notice / privacy: moved to app/_ui/*Client.tsx, root routes removed (middleware always redirects to /[locale]), consent reset via useConsent - ProjectThumbnail rebuilt on Plakat tokens - Old Header.tsx + test removed; brown/cream/sand palettes and unused glass-panel/admin-glass(-light)/liquid-bg-blob/float CSS dropped (liquid palette, glass-card, admin-glass-card stay for admin + 404) - .plakat-prose replaces the missing typography plugin Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import type { ReactNode } from "react";
|
||||
import Header from "../components/Header.server";
|
||||
import { FooterClient } from "../components/ClientWrappers";
|
||||
import { getFooterTranslations } from "@/lib/translations-loader";
|
||||
|
||||
interface SubpageShellProps {
|
||||
locale: string;
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rahmen für alle Unterseiten: derselbe Kopf wie auf der Startseite
|
||||
* (dort als Papierstreifen), Papier als Grund, Tinten-Footer.
|
||||
*/
|
||||
export default async function SubpageShell({ locale, children }: SubpageShellProps) {
|
||||
const footerT = await getFooterTranslations(locale);
|
||||
|
||||
return (
|
||||
<div id="top" className="min-h-screen bg-paper text-ink">
|
||||
<Header locale={locale} />
|
||||
<main className="px-4 pb-20 pt-24 sm:px-6 md:pb-28 md:pt-32 lg:px-10">
|
||||
<div className="mx-auto max-w-[1400px]">{children}</div>
|
||||
</main>
|
||||
<FooterClient locale={locale} translations={footerT} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user