From 5ac5605933d066d356fab33389862fb6e306dd8e Mon Sep 17 00:00:00 2001 From: Krishna Ayyalasomayajula Date: Mon, 1 Jun 2026 22:47:06 -0500 Subject: [PATCH] feat: PostCard card boundary + author + reading time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Card: rounded-xl, border, bg-canvas, p-6, hover shadow-card - Author and reading time on meta line with · separators - Tags use rounded-full pill shape (consistent with post detail) - Title hover via group-hover:text-accent - Excerpt uses leading-relaxed text-sm --- components/blog/PostCard.tsx | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/components/blog/PostCard.tsx b/components/blog/PostCard.tsx index cbd5f3c..d199dbc 100644 --- a/components/blog/PostCard.tsx +++ b/components/blog/PostCard.tsx @@ -1,38 +1,40 @@ -"use client"; +'use client'; -import Link from "next/link"; -import { m } from "motion/react"; -import type { PostMeta } from "@/lib/posts"; +import Link from 'next/link'; +import { m } from 'motion/react'; +import type { PostMeta } from '@/lib/posts'; -interface PostCardProps extends PostMeta { - index?: number; -} - -export function PostCard({ slug, title, date, excerpt, index = 0, tags = [] }: PostCardProps) { +export function PostCard({ slug, title, date, excerpt, tags = [], author, readingTime, index = 0 }: PostMeta & { index?: number }) { return ( - -

+
+ + {author && ·} + {author && {author}} + {readingTime && ·} + {readingTime && {readingTime} min read} +
+

{title}

{tags && tags.length > 0 && ( -
+
{tags.slice(0, 3).map((tag) => ( - + {tag} ))}
)} {excerpt && ( -

{excerpt}

+

{excerpt}

)}