Skip to content

blog: add list/expanded view toggle to the homepage feed - #20508

Merged
jeffmerrick merged 3 commits into
masterfrom
jeffmerrick/blog-homepage-view-toggle
Jul 27, 2026
Merged

blog: add list/expanded view toggle to the homepage feed#20508
jeffmerrick merged 3 commits into
masterfrom
jeffmerrick/blog-homepage-view-toggle

Conversation

@jeffmerrick

@jeffmerrick jeffmerrick commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

Adds a client-side list/expanded view toggle to the right of the blog homepage filter bar (mirroring the /releases/ button group). The default compact list view is unchanged; the expanded view arranges each row like the other blog cards — category, title, excerpt (meta description, falling back to a clamped summary), and byline — with an optional square feature image on the right. Each row carries both representations, so the infinite-scroll and category-filter paths inherit the toggle for free, and the choice is persisted to localStorage under a blog-scoped key. Homepage only.

Related issues (optional)

https://github.com/pulumi/marketing/issues/1790

Screenshot 2026-07-24 at 11 43 28 AM

jeffmerrick and others added 2 commits July 22, 2026 10:41
Add a client-side view toggle to the right of the blog homepage filter bar
(mirroring the /releases/ button group). The default compact list view is
unchanged; the card view arranges each row like the other blog cards —
category, title, excerpt (meta_desc, falling back to a clamped summary),
and byline — with an optional square feature image on the right.

Each row carries both representations, so the infinite-scroll and
category-filter paths inherit the toggle for free. The choice is persisted
to localStorage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Shrink the card title to heading-4 and the excerpt to body-sm, grow the
feature thumbnail on large screens (lg:size-36), and vertically center the
text block against the image.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jeffmerrick
jeffmerrick marked this pull request as ready for review July 24, 2026 16:45
@github-actions github-actions Bot added the review:triaging Claude Triage is currently classifying the PR label Jul 24, 2026
@github-actions github-actions Bot added domain:infra PR touches workflows, scripts, infra, Makefile, or build config and removed review:triaging Claude Triage is currently classifying the PR labels Jul 24, 2026
@jeffmerrick jeffmerrick changed the title blog: add list/card view toggle to the homepage feed blog: add list/expanded view toggle to the homepage feed Jul 24, 2026
@github-actions github-actions Bot added the review:in-progress Claude review is currently running label Jul 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Pre-merge Review — Last updated 2026-07-24T16:47:50Z

Tip

Summary: This is an infra/template change that adds a client-side list/card view toggle to the blog homepage feed. Each row (layouts/partials/blog/card/list-row.html) now carries both a compact and a card representation in one [data-post-row] element, and a new [data-blog-view-toggle] control (view-toggle.html) flips .is-cards on the list container via theme/src/ts/blog-list.ts, persisting the choice in localStorage. Carrying both forms in the markup is a deliberate choice so the existing infinite-scroll / category-filter JS (which clones rows) inherits the current view for free. The wrongness that would matter here is a build break or a broken toggle; I reviewed the diff and the toggle logic (init, click handling, guarded localStorage, the .is-cards display swap) is sound, the SCSS !important overrides are scoped and justified, and no factual claims are involved. The Hugo preflight was skipped this run (see mechanics note), so the referenced partials/icons resolve only at deploy-time build.

Review confidence:

Dimension Level Notes
mechanics MEDIUM Hugo build wasn't run in this review — the preflight classified the change as content-only and skipped it (the full build validates in the deploy job). The card view references the blog/post-meta.html, blog/has-feature-image.html, and blog/feature-image.html partials plus the list-dashes and cards icons; those resolve at build time, which this review didn't execute.
facts HIGH No user-facing factual claims — template, SCSS, and TypeScript change only.
Investigation log
  • Cross-sibling reads: not run (not in a templated section)
  • External claim verification: 0 of 1 claims verified (0 unverifiable, 0 contradicted) · 4 specialists (numerical, cross-reference, capability, framing); 0 cross-specialist corroborations · routed: 0 inline, 0 Pass 1, 0 Pass 2, 1 Pass 3 (verified 0, contradicted 0, unverifiable 1).
  • Cited-claim spot-checks: not run (no cited claims)
  • Frontmatter sweep: not run (no frontmatter in diff)
  • Temporal-trigger sweep: ran (recency words present in diff; spot-check in-review)
  • Code execution: not run (no static/programs/ change)
  • Code-examples checks: not run (no fenced code blocks in content files)
  • Editorial-balance pass: not run (not under content/blog/)
🚨 Outstanding ⚠️ Low-confidence 💡 Pre-existing ✅ Resolved
0 0 0 0

🔍 Verification trail

1 claims extracted · 0 verified · 0 unverifiable · 0 contradicted
  • L30 in layouts/partials/blog/card/list-row.html "<time class='body-sm whitespace-nowrap text-service-black md:w-28 md:text-right' datetime='{{ $page.Date.Format '2006-01-02' }}'>{{ $page.Date.Format 'Jan 2, 2…" → ➖ not-a-claim (evidence: This is a Hugo/Go template snippet formatting a blog post's date using Go's standard reference time layout constants; it is code, not a falsifiable factual assertion.; source: layouts/partials/blog/card/list-row.html)

🚨 Outstanding in this PR

No outstanding findings in this PR.

⚠️ Low-confidence

No low-confidence findings.

💡 Pre-existing issues in touched files (optional)

No pre-existing issues in touched files.

✅ Resolved since last review

No items resolved since the last review.

📜 Review history

  • 2026-07-24T16:47:50Z — No blockers: clean template/SCSS/TS change adding the homepage list/card view toggle; no factual claims, no style findings; Hugo build deferred to the deploy job (a8e1907)

Need a re-review? Want to dispute a finding? Mention @claude and include #update-review.
(For ad-hoc questions or fixes, just @claude — no hashtag.)

@github-actions github-actions Bot added review:no-blockers Claude review completed cleanly; outstanding is empty and removed review:in-progress Claude review is currently running labels Jul 24, 2026
@pulumi-bot

pulumi-bot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

@pulumi-bot

pulumi-bot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Lighthouse Performance Report

Commit: a8e1907 | Metric definitions

Page Device Score FCP LCP TBT CLS SI
Homepage Mobile 🔴 31 3.3s 13.1s 2930ms 0.074 8.3s
Homepage Desktop 🟡 84 0.8s 1.0s 320ms 0.014 1.3s
Install Pulumi Mobile 🟡 57 6.1s 9.5s 66ms 0.053 8.1s
Install Pulumi Desktop 🟡 86 1.4s 2.0s 0ms 0.015 1.5s
AWS Get Started Mobile 🟡 56 6.0s 9.8s 78ms 0.071 8.0s
AWS Get Started Desktop 🟡 81 1.4s 2.0s 0ms 0.019 2.9s

@CamSoper CamSoper left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated rubber stamp approval applied :shipit:


Generated by Claude Code

@cnunciato cnunciato left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice!

@jeffmerrick
jeffmerrick merged commit 654059a into master Jul 27, 2026
18 checks passed
@jeffmerrick
jeffmerrick deleted the jeffmerrick/blog-homepage-view-toggle branch July 27, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:infra PR touches workflows, scripts, infra, Makefile, or build config review:no-blockers Claude review completed cleanly; outstanding is empty

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants