Skip to content

Give the default shell the bottom room the other three already have - #1555

Merged
feruzm merged 1 commit into
developfrom
fix/default-shell-bottom-padding
Aug 20, 2026
Merged

Give the default shell the bottom room the other three already have#1555
feruzm merged 1 commit into
developfrom
fix/default-shell-bottom-padding

Conversation

@feruzm

@feruzm feruzm commented Aug 20, 2026

Copy link
Copy Markdown
Member

Follow-up to #1552, from looking at the merged result: the About page ends in the newsletter section and it sat flush against the bottom of the viewport.

The cause is not that section. DefaultShell's <main> carried a top margin and nothing below it, so the last element of every page it frames sat flush. The other three shells already reserve the room:

shell bottom room
journal <main className="pb-16">
terminal <main className="pb-16">
reader py-6 on its inner column
default none

So this is one class, in the shell, matching the value the other two already chose, rather than padding bolted onto the newsletter section. It fixes the archive's last card and the post page's last block on the same five templates (medium, minimal, magazine, developer, modern-gradient).

Verified: 1004 tests, typecheck clean, rsbuild build clean with the node-globals check passing.

The About page ends in the newsletter section and it sat flush against the
bottom of the viewport. The cause is not the section: DefaultShell's main had a
top margin and nothing below it, while every other shell already reserves the
room (journal and terminal pb-16, reader py-6 on its inner column), so this was
true of the last element on every page it frames.
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@feruzm, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b2a14453-f381-4d50-bb9a-50cba8e6f7e3

📥 Commits

Reviewing files that changed from the base of the PR and between 6746575 and 0cc3161.

📒 Files selected for processing (1)
  • apps/self-hosted/src/features/blog/layout/default-shell.tsx

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.

@qodo-code-review

qodo-code-review Bot commented Aug 20, 2026

Copy link
Copy Markdown

PR Summary by Qodo

Add bottom padding to DefaultShell content

🐞 Bug fix 🕐 Less than 5 minutes

Grey Divider

AI Description

• Adds consistent bottom padding to DefaultShell main content.
• Prevents final page elements from touching the viewport across default-shell templates.
Diagram

graph TD
  A["CSS Templates"] -->|resolve shell| B["Theme Registry"] -->|selects| C["Default Shell"] -->|wraps| D["Main Content"] -->|reserves pb-16| E["Bottom Space"]
Loading
High-Level Assessment

The shell-level padding is the optimal approach because the spacing defect affects every page rendered by DefaultShell. Adding padding to individual terminal sections, such as the newsletter or archive card, would duplicate styling and leave other page endings unfixed.

Files changed (1) +6 / -1

Bug fix (1) +6 / -1
default-shell.tsxReserve bottom space in the default blog shell +6/-1

Reserve bottom space in the default blog shell

• Adds 'pb-16' to the shared main container so final page elements do not sit flush against the viewport. An explanatory comment documents consistency with the journal, terminal, and reader shells.

apps/self-hosted/src/features/blog/layout/default-shell.tsx

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can copy the agent prompt from any finding and feed it to your IDE agent

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@greptile-apps

greptile-apps Bot commented Aug 20, 2026

Copy link
Copy Markdown

Greptile Summary

Adds consistent bottom breathing room to pages rendered through DefaultShell.

  • Applies pb-16 to the shell’s main content container.
  • Aligns default-template spacing with the journal and terminal shells.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified.

The change adds static bottom padding to the default shell using the same spacing pattern as sibling shells, and affected callers do not supply conflicting bottom room.

Important Files Changed

Filename Overview
apps/self-hosted/src/features/blog/layout/default-shell.tsx Adds compatible bottom padding to the shared default blog shell without introducing a concrete layout or behavioral defect.

Reviews (1): Last reviewed commit: "Give the default shell the bottom room t..." | Re-trigger Greptile

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Missing bottom-padding regression test 📘 Rule violation ▣ Testability
Description
The PR fixes a previously incorrect layout behavior by adding pb-16 to DefaultShell, but the
change set contains no automated regression test that verifies the last page content is separated
from the viewport bottom. Without such a test, the fix can regress while the suite still passes.
Code

apps/self-hosted/src/features/blog/layout/default-shell.tsx[30]

+          <main id="main-content" className="blog-main-container order-2 items-start mt-4 sm:mt-8 pb-16 section-gap-theme">
Relevance

●● Moderate

No exact precedent for CSS-only fixes requiring tests; team sometimes pushes back on over-testing
styling changes.

PR-#1552
PR-#1442

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 2667981 requires each bug fix to include an automated test reproducing the
previously failing scenario. The diff changes the shell’s production layout to add pb-16, while
the supplied change set includes no test file or test modification.

Rule 2667981: Require a failing regression test alongside each bug fix
apps/self-hosted/src/features/blog/layout/default-shell.tsx[30-30]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The `DefaultShell` layout now adds `pb-16` to prevent the final page content from sitting flush against the viewport, but no regression test was added.

## Issue Context
The test must exercise a page rendered through `DefaultShell` and fail against the pre-fix class without `pb-16`, then pass with the new class. Assert the observable rendered layout/class contract used by the project’s test setup.

## Fix Focus Areas
- apps/self-hosted/src/features/blog/layout/default-shell.tsx[30-30]
- apps/self-hosted/src/specs/features/blog/

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
✅ Compliance rules (platform): 82 rules
✅ Skills: 6 invoked
  add-feature
  add-query
  add-sdk-mutation
  add-test
  code-review
  debug
Review mode: 🚀 Fast: This is a localized, low-risk UI class change in one shell, with no security, API, schema, or cross-cutting logic impact.

Grey Divider

Tip of the day
💡 Did you know, you can copy the agent prompt from any finding and feed it to your IDE agent

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

section, and the archive ends in a card. The other three shells
already reserve the same room (journal and terminal pb-16, reader
py-6 on its inner column); this one only ever had a top margin. */}
<main id="main-content" className="blog-main-container order-2 items-start mt-4 sm:mt-8 pb-16 section-gap-theme">

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

1. Missing bottom-padding regression test 📘 Rule violation ▣ Testability

The PR fixes a previously incorrect layout behavior by adding pb-16 to DefaultShell, but the
change set contains no automated regression test that verifies the last page content is separated
from the viewport bottom. Without such a test, the fix can regress while the suite still passes.
Agent Prompt
## Issue description
The `DefaultShell` layout now adds `pb-16` to prevent the final page content from sitting flush against the viewport, but no regression test was added.

## Issue Context
The test must exercise a page rendered through `DefaultShell` and fail against the pre-fix class without `pb-16`, then pass with the new class. Assert the observable rendered layout/class contract used by the project’s test setup.

## Fix Focus Areas
- apps/self-hosted/src/features/blog/layout/default-shell.tsx[30-30]
- apps/self-hosted/src/specs/features/blog/

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@feruzm
feruzm merged commit b683b4d into develop Aug 20, 2026
13 checks passed
@feruzm
feruzm deleted the fix/default-shell-bottom-padding branch August 20, 2026 08:59
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