Skip to content

style: redesign blog page with grid outline and serif typography#6

Merged
hallelx2 merged 1 commit into
mainfrom
halleluyaholudele/hal-332-redesign-vectorless-blog
Jun 20, 2026
Merged

style: redesign blog page with grid outline and serif typography#6
hallelx2 merged 1 commit into
mainfrom
halleluyaholudele/hal-332-redesign-vectorless-blog

Conversation

@hallelx2

@hallelx2 hallelx2 commented Jun 20, 2026

Copy link
Copy Markdown
Owner

This PR redesigns the Blog index layout to use a modern grid outline system, Instrument Serif display typography, and high-fidelity schematic blueprint drawings. Closes HAL-332

Summary by CodeRabbit

  • Style
    • Redesigned blog post index layout with new card structures and updated hover interactions.
    • Enhanced blueprint illustrations with more detailed schematic elements for better visual fidelity.
    • Refreshed article reading experience including updated typography, author info bar, and content layout.
    • Adjusted hero section background gradient.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @hallelx2, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@vercel

vercel Bot commented Jun 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vectorless-web Ready Ready Preview, Comment Jun 20, 2026 11:33pm

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The blog index page (apps/blogs/app/page.tsx) receives a visual overhaul: BlueprintIllustration is rewritten with richer variant-specific SVG schematics, the article reader view is restyled, openSandbox/selectDoc helpers are relocated in the file, and the featured post section plus card grid layout are restructured.

Changes

Blog Page UI Refactor

Layer / File(s) Summary
BlueprintIllustration component rewrite
apps/blogs/app/page.tsx
ArrowUpRight added to icon imports. BlueprintIllustration replaced with a styled-container renderer that produces variant-specific high-fidelity SVG schematics for architecture, database, code, and benchmark types, replacing the prior simple SVGs and early-return structure.
Sandbox helpers relocation and reader view refactor
apps/blogs/app/page.tsx
openSandbox and selectDoc removed from their prior position and re-declared identically later in the file. Hero radial-gradient values adjusted. The activeArticle reader view receives new container classes, a reformatted Log // {id}.txt author bar, restyled numbered content blocks, and a simplified "Return to Index" footer.
Index layout: featured post, card grid, and nav
apps/blogs/app/page.tsx
Terminal Sandbox button styling and section comment updated. Featured post section reworked into a split grid with repositioned BlueprintIllustration. Per-post cards adopt new hover/border wrapper and rearranged category/date/title/snippet/author internals. Empty-state wrapper and grid/footer boundary styling changed. Modal terminal panel comment updated.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐇 Hoppity-hop through the blueprint land,
SVG schematics drawn by a careful hand.
The cards got new borders, the hero new hues,
The reader view polished — no more old blues!
From index to modal, every pixel in place,
A rabbit-approved redesign, full of grace. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main changes: redesigning the blog page with grid outline and serif typography, which aligns with the PR's primary focus on layout redesign and typography updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch halleluyaholudele/hal-332-redesign-vectorless-blog

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
apps/blogs/app/page.tsx (1)

466-471: ⚡ Quick win

Replace raw <img> with Next.js <Image> for avatar rendering.

Both avatar blocks use <img>, which bypasses Next.js image optimization and can hurt LCP/bandwidth on this page. Prefer next/image with explicit sizing and sizes; if these URLs are external, verify images.remotePatterns in next.config.*.

Suggested diff
+import Image from 'next/image';

-<img 
-  src={activeArticle.author.avatarUrl} 
-  alt={activeArticle.author.name}
-  className="object-cover w-full h-full"
-  referrerPolicy="no-referrer"
-/>
+<Image
+  src={activeArticle.author.avatarUrl}
+  alt={activeArticle.author.name}
+  width={40}
+  height={40}
+  sizes="40px"
+  className="object-cover w-full h-full"
+  referrerPolicy="no-referrer"
+/>

-<img 
-  src={post.author.avatarUrl} 
-  alt={post.author.name}
-  className="object-cover w-full h-full"
-  referrerPolicy="no-referrer"
-/>
+<Image
+  src={post.author.avatarUrl}
+  alt={post.author.name}
+  width={32}
+  height={32}
+  sizes="32px"
+  className="object-cover w-full h-full"
+  referrerPolicy="no-referrer"
+/>

Also applies to: 671-676

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/blogs/app/page.tsx` around lines 466 - 471, Replace the raw `<img>` tags
used for rendering `activeArticle.author.avatarUrl` (occurring at both avatar
blocks around lines 466-471 and 671-676) with the Next.js `<Image>` component
from next/image. Import `Image` from next/image and replace the img elements
with Image components, ensuring you add explicit width and height attributes
(e.g., width={40} height={40}), a sizes prop appropriate for the layout, and
keep the alt text from `activeArticle.author.name`. If the avatarUrl is an
external URL, verify that images.remotePatterns is properly configured in
next.config.js to allow that domain. Adjust or remove the referrerPolicy
attribute as needed since it may not be directly supported on the Image
component (handle it at the parent level if necessary).

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@apps/blogs/app/page.tsx`:
- Around line 466-471: Replace the raw `<img>` tags used for rendering
`activeArticle.author.avatarUrl` (occurring at both avatar blocks around lines
466-471 and 671-676) with the Next.js `<Image>` component from next/image.
Import `Image` from next/image and replace the img elements with Image
components, ensuring you add explicit width and height attributes (e.g.,
width={40} height={40}), a sizes prop appropriate for the layout, and keep the
alt text from `activeArticle.author.name`. If the avatarUrl is an external URL,
verify that images.remotePatterns is properly configured in next.config.js to
allow that domain. Adjust or remove the referrerPolicy attribute as needed since
it may not be directly supported on the Image component (handle it at the parent
level if necessary).

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 173139ee-d65f-4db9-b9f6-3b5ab89141fe

📥 Commits

Reviewing files that changed from the base of the PR and between 2232042 and 612fe60.

📒 Files selected for processing (1)
  • apps/blogs/app/page.tsx

@hallelx2 hallelx2 merged commit 08af764 into main Jun 20, 2026
8 checks passed
@hallelx2 hallelx2 deleted the halleluyaholudele/hal-332-redesign-vectorless-blog branch June 20, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant