Scrapboard.org client

feat: update navbar and boards

TurtlePaw d7499113 8ac448ab

+36 -30
+23 -25
src/app/boards/page.tsx
··· 34 34 ); 35 35 36 36 return ( 37 - <div className="py-4 px-4 sm:py-8 sm:px-6 lg:px-8 flex items-center justify-center"> 38 - {/* Container that adapts to image width */} 39 - <div className="w-full max-w-4xl flex justify-center"> 40 - <div className="inline-block"> 41 - <div className="grid grid-cols-1 md:grid-cols-4 gap-3"> 42 - {Array.from(boards.entries()).map(([key, it]) => ( 43 - <Link 44 - href={`/board/${agent?.did ?? "unknown"}/${key}`} 45 - key={key} 46 - className="h-full" 37 + <div className="py-4 px-4 flex items-center justify-center"> 38 + <div className="w-full max-w-4xl"> 39 + <h1 className="font-medium text-lg mb-4">My Boards</h1> 40 + <div className="grid grid-cols-1 md:grid-cols-4 gap-3"> 41 + {Array.from(boards.entries()).map(([key, it]) => ( 42 + <Link 43 + href={`/board/${agent?.did ?? "unknown"}/${key}`} 44 + key={key} 45 + className="h-full" 46 + > 47 + <motion.div 48 + initial={{ opacity: 0, y: 2 }} 49 + animate={{ opacity: 1, y: 0 }} 50 + transition={{ duration: 0.3, ease: "easeOut" }} 51 + whileTap={{ scale: 0.95 }} 52 + className="flex flex-col h-full bg-black/10 dark:bg-white/3 p-4 rounded-lg hover:bg-black/15 dark:hover:bg-white/5 transition-colors" 47 53 > 48 - <motion.div 49 - initial={{ opacity: 0, y: 2 }} 50 - animate={{ opacity: 1, y: 0 }} 51 - transition={{ duration: 0.3, ease: "easeOut" }} 52 - whileTap={{ scale: 0.95 }} 53 - className="flex flex-col h-full bg-black/10 dark:bg-white/3 p-4 rounded-lg hover:bg-black/15 dark:hover:bg-white/5 transition-colors" 54 - > 55 - <h2 className="font-medium text-lg">{it.name}</h2> 56 - <p className="text-sm text-black/80 dark:text-white/80 mt-1 line-clamp-2"> 57 - {it.description} 58 - </p> 59 - </motion.div> 60 - </Link> 61 - ))} 62 - </div> 54 + <h2 className="font-medium text-lg">{it.name}</h2> 55 + <p className="text-sm text-black/80 dark:text-white/80 mt-1 line-clamp-2"> 56 + {it.description} 57 + </p> 58 + </motion.div> 59 + </Link> 60 + ))} 63 61 </div> 64 62 </div> 65 63 </div>
+13 -5
src/nav/navbar.tsx
··· 26 26 DropdownMenuTrigger, 27 27 } from "@/components/ui/dropdown-menu"; 28 28 import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; 29 + import { motion } from "motion/react"; 29 30 30 31 export function Navbar() { 31 32 const [open, setOpen] = useState(false); ··· 35 36 return ( 36 37 <header className="border-b border-border bg-background/90 backdrop-blur-[200px] sticky top-0 z-50"> 37 38 <div className="flex items-center justify-between h-16 px-5"> 38 - <Link 39 - href="/" 40 - className="text-xl font-bold hover:text-black/70 dark:hover:text-white/70 transition-colors" 39 + <motion.div 40 + initial={{ opacity: 0, y: 2 }} 41 + animate={{ opacity: 1, y: 0 }} 42 + transition={{ duration: 0.2 }} 43 + whileTap={{ scale: 0.98 }} 41 44 > 42 - pin.to.it 43 - </Link> 45 + <Link 46 + href="/" 47 + className="text-xl font-bold hover:text-black/70 dark:hover:text-white/70 transition-colors" 48 + > 49 + pin.to.it 50 + </Link> 51 + </motion.div> 44 52 45 53 <nav className="hidden md:flex gap-4"> 46 54 {/* <Link href="/explore" className="hover:underline">