From ef24c27085afbec014575f65b4f72a59d3a352df Mon Sep 17 00:00:00 2001 From: nicholai Date: Tue, 7 Oct 2025 19:08:57 -0600 Subject: [PATCH] UX overhaul: cohesive navigation + sticky header, new sidebar menu with smooth anchor scrolling, home layout restructured into cards (About/Writing/Contact), blog list affordance improved, background dot contrast reduced, Lenis tuned for softer feel, footer aligned to page container, Next/Image sizing warning fixed, providers (Lenis/Motion) wired. --- app/components/avatar-motion.tsx | 2 + app/components/dotbackground.tsx | 1 + app/components/footer.tsx | 8 +- app/components/nav.tsx | 99 +++++++++----- app/components/sidebar-menu.tsx | 82 ++++++++++++ app/layout.tsx | 18 ++- app/page.tsx | 215 ++++++++++++++++++------------- app/providers/LenisProvider.tsx | 9 +- components/posts.tsx | 35 ++--- components/ui/card.tsx | 61 +++++++++ package-lock.json | 36 ++++++ package.json | 1 + 12 files changed, 416 insertions(+), 151 deletions(-) create mode 100644 app/components/sidebar-menu.tsx create mode 100644 components/ui/card.tsx diff --git a/app/components/avatar-motion.tsx b/app/components/avatar-motion.tsx index 942687a..36e1884 100644 --- a/app/components/avatar-motion.tsx +++ b/app/components/avatar-motion.tsx @@ -32,6 +32,8 @@ export function AvatarMotion({ alt={alt} width={size} height={size} + sizes={`${size}px`} + style={{ width: size, height: size }} className={cn( baseSizeClasses, "rounded-full object-cover ring-2 ring-neutral-200 shadow-lg transition-shadow duration-300 group-hover:shadow-xl dark:shadow-none dark:ring-neutral-800", diff --git a/app/components/dotbackground.tsx b/app/components/dotbackground.tsx index 3b91c12..c7e6310 100644 --- a/app/components/dotbackground.tsx +++ b/app/components/dotbackground.tsx @@ -12,6 +12,7 @@ export function DotBackground({ className }: { className?: string }) { "[background-size:28px_28px]", "[background-image:radial-gradient(var(--dot-color)_1px,transparent_1px)]", "dark:[background-image:radial-gradient(#404040_1px,transparent_1px)]", + "opacity-40 dark:opacity-20", )} /> {/* Radial gradient for the container to give a faded look */} diff --git a/app/components/footer.tsx b/app/components/footer.tsx index b2f3482..3006cde 100644 --- a/app/components/footer.tsx +++ b/app/components/footer.tsx @@ -17,8 +17,9 @@ function ArrowIcon() { export default function Footer() { return ( -