From 29aad29d59a533193c869e1d801d09130f138f35 Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Thu, 21 May 2026 12:19:21 -0400 Subject: [PATCH] fix padding and header things --- app/globals.css | 20 +++++++++++++++++++ .../[publication]/PublicationContent.tsx | 17 +++++++++------- .../[did]/[publication]/PublicationHeader.tsx | 12 +++-------- .../[publication]/PublicationHomeLayout.tsx | 2 +- .../[publication]/PublicationPostItem.tsx | 6 +++--- .../[publication]/PublicationStickyHeader.tsx | 6 +++++- .../[rkey]/PublicationPageRenderer.tsx | 18 ++++++++++------- 7 files changed, 53 insertions(+), 28 deletions(-) diff --git a/app/globals.css b/app/globals.css index e2d5a0f5..6c3c1968 100644 --- a/app/globals.css +++ b/app/globals.css @@ -701,3 +701,23 @@ pre.shiki { .toastError a { color: var(--color-white); } + +.pubHeaderIcon { + width: 40px; + height: 40px; + transition: + width 180ms ease-out, + height 180ms ease-out; +} +.pubHeaderTitle { + font-size: 22px; + line-height: 1.2; + transition: font-size 180ms ease-out; +} +.pubStickyHeader.header-shrunk .pubHeaderIcon { + width: 24px; + height: 24px; +} +.pubStickyHeader.header-shrunk .pubHeaderTitle { + font-size: 16px; +} diff --git a/app/lish/[did]/[publication]/PublicationContent.tsx b/app/lish/[did]/[publication]/PublicationContent.tsx index 4d9ac966..424963c1 100644 --- a/app/lish/[did]/[publication]/PublicationContent.tsx +++ b/app/lish/[did]/[publication]/PublicationContent.tsx @@ -60,6 +60,9 @@ export const PublicationContent = ({ fakePosts?: FakePost[]; }) => { const newsletterMode = !!publication.publication_newsletter_settings?.enabled; + const navPages = (publication.publication_pages ?? []).filter( + (p) => p.record_uri, + ); const posts: PublicationPostsListPost[] = fakePosts ? [] : publication.documents_in_publications @@ -90,13 +93,13 @@ export const PublicationContent = ({ stickyHeader={ p.record_uri, - )} - activePath="/" - /> + navPages.length > 0 ? ( + + ) : undefined } > {props.publicationName} @@ -42,10 +39,7 @@ export function PublicationHeader(props: { }} > {variant === "inline" ? ( -
+
{icon} {title}
diff --git a/app/lish/[did]/[publication]/PublicationHomeLayout.tsx b/app/lish/[did]/[publication]/PublicationHomeLayout.tsx index 96a61e7d..28151805 100644 --- a/app/lish/[did]/[publication]/PublicationHomeLayout.tsx +++ b/app/lish/[did]/[publication]/PublicationHomeLayout.tsx @@ -12,7 +12,7 @@ export function PublicationHomeLayout(props: { let inner = ( <> {props.stickyHeader} -
+
{props.children}
diff --git a/app/lish/[did]/[publication]/PublicationPostItem.tsx b/app/lish/[did]/[publication]/PublicationPostItem.tsx index 38a1e26c..99f3d846 100644 --- a/app/lish/[did]/[publication]/PublicationPostItem.tsx +++ b/app/lish/[did]/[publication]/PublicationPostItem.tsx @@ -99,7 +99,7 @@ export function PublicationPostItemMedium(props: MediumProps) { const hasCoverImage = !!props.coverImageSrc; return ( <> -
+
{props.title && ( @@ -117,11 +117,11 @@ export function PublicationPostItemMedium(props: MediumProps) { />
{hasCoverImage && ( -
+
{props.coverImageAlt
)} diff --git a/app/lish/[did]/[publication]/PublicationStickyHeader.tsx b/app/lish/[did]/[publication]/PublicationStickyHeader.tsx index d2bef4ad..f3608108 100644 --- a/app/lish/[did]/[publication]/PublicationStickyHeader.tsx +++ b/app/lish/[did]/[publication]/PublicationStickyHeader.tsx @@ -10,8 +10,10 @@ export function PublicationStickyHeader(props: { let ref = useRef(null); let pathname = usePathname(); let sticky = props.sticky ?? true; + let hasNav = !!props.nav; useEffect(() => { + if (!hasNav) return; let el = ref.current; let parent = el?.parentElement; if (!el || !parent) return; @@ -20,6 +22,7 @@ export function PublicationStickyHeader(props: { let writeProgress = (target: HTMLElement) => { let p = Math.min(Math.max(target.scrollTop / 100, 0), 1); el!.style.setProperty("--header-shrink", String(p)); + el!.classList.toggle("header-shrunk", target.scrollTop > 32); }; let schedule = (target: HTMLElement) => { if (rafId !== null) return; @@ -51,10 +54,11 @@ export function PublicationStickyHeader(props: { if (rafId !== null) cancelAnimationFrame(rafId); parent.removeEventListener("scroll", onScroll, true); }; - }, []); + }, [hasNav]); useEffect(() => { ref.current?.style.setProperty("--header-shrink", "0"); + ref.current?.classList.remove("header-shrunk"); }, [pathname]); return ( diff --git a/app/lish/[did]/[publication]/[rkey]/PublicationPageRenderer.tsx b/app/lish/[did]/[publication]/[rkey]/PublicationPageRenderer.tsx index 68e3a2ca..55bb5592 100644 --- a/app/lish/[did]/[publication]/[rkey]/PublicationPageRenderer.tsx +++ b/app/lish/[did]/[publication]/[rkey]/PublicationPageRenderer.tsx @@ -156,6 +156,10 @@ export async function PublicationPageRenderer({ recommendsCount: 0, }; + const navPages = (publication.publication_pages ?? []).filter( + (p) => p.record_uri, + ); + return ( @@ -177,13 +181,13 @@ export async function PublicationPageRenderer({ stickyHeader={ p.record_uri, - )} - activePath={page.path} - /> + navPages.length > 0 ? ( + + ) : undefined } >