diff --git a/apps/logicsrc-web/src/app/blog/[slug]/page.tsx b/apps/logicsrc-web/src/app/blog/[slug]/page.tsx index 76cdc83..7b5d7be 100644 --- a/apps/logicsrc-web/src/app/blog/[slug]/page.tsx +++ b/apps/logicsrc-web/src/app/blog/[slug]/page.tsx @@ -69,12 +69,14 @@ export default async function BlogPostPage({

- + ← Blog

-

{post.title}

-
+

+ {post.title} +

+
{formatDate(post.published_at)}
{post.featured_image?.url ? ( diff --git a/apps/logicsrc-web/src/app/blog/page.tsx b/apps/logicsrc-web/src/app/blog/page.tsx index 67a1051..8bbdba5 100644 --- a/apps/logicsrc-web/src/app/blog/page.tsx +++ b/apps/logicsrc-web/src/app/blog/page.tsx @@ -17,6 +17,7 @@ type PostRow = { slug: string; title: string; excerpt: string | null; + featured_image: { url?: string } | null; published_at: string; }; @@ -32,7 +33,7 @@ export default async function BlogIndex(): Promise { const supabase = publicClient(); const { data } = await supabase .from("blog_posts") - .select("slug, title, excerpt, published_at") + .select("slug, title, excerpt, featured_image, published_at") .eq("status", "published") .order("published_at", { ascending: false }); const posts = (data ?? []) as PostRow[]; @@ -50,35 +51,71 @@ export default async function BlogIndex(): Promise {
{posts.length === 0 ? ( -

No posts yet.

+

No posts yet.

) : ( )} diff --git a/apps/logicsrc-web/src/components/site-shell.tsx b/apps/logicsrc-web/src/components/site-shell.tsx index 271e5b2..75c22a6 100644 --- a/apps/logicsrc-web/src/components/site-shell.tsx +++ b/apps/logicsrc-web/src/components/site-shell.tsx @@ -56,13 +56,13 @@ export function SiteShell({ maxWidth: "72rem", margin: "2rem auto 0", padding: "1.25rem 0", - borderTop: "1px solid rgba(245, 247, 244, 0.12)", + borderTop: "1px solid #d9ded4", display: "flex", flexWrap: "wrap", gap: "0.75rem", justifyContent: "space-between", fontSize: "0.85rem", - color: "#b5beb2", + color: "#5b6b7a", }} > © {new Date().getFullYear()} Profullstack, Inc. · LogicSRC diff --git a/apps/logicsrc-web/src/styles.css b/apps/logicsrc-web/src/styles.css index f35ca96..4352367 100644 --- a/apps/logicsrc-web/src/styles.css +++ b/apps/logicsrc-web/src/styles.css @@ -15,7 +15,7 @@ body { } a { - color: #5ac8a6; + color: #0a7d59; text-decoration: none; } @@ -703,18 +703,19 @@ pre { } } -/* Rendered blog post HTML (autoblog payload) on the dark workspace. */ +/* Rendered blog post HTML (autoblog payload) on the light workspace. */ .blog-content { - color: #e7ebe4; + color: #1f2933; } .blog-content a { - color: #5ac8a6; + color: #0a7d59; } .blog-content h2, .blog-content h3, .blog-content h4 { margin: 1.75rem 0 0.5rem; line-height: 1.25; + color: #101418; } .blog-content p, .blog-content ul, @@ -728,13 +729,14 @@ pre { border-radius: 0.5rem; } .blog-content pre { - background: rgba(0, 0, 0, 0.32); + background: #f1f3ef; + border: 1px solid #e3e6e0; padding: 1rem; border-radius: 0.5rem; overflow: auto; } .blog-content code { - background: rgba(0, 0, 0, 0.32); + background: rgba(16, 20, 24, 0.06); padding: 0.1rem 0.35rem; border-radius: 0.25rem; font-size: 0.9em; @@ -744,7 +746,7 @@ pre { padding: 0; } .blog-content blockquote { - border-left: 3px solid rgba(245, 247, 244, 0.2); + border-left: 3px solid #d9ded4; padding-left: 1rem; - color: #b5beb2; + color: #5b6b7a; }