Skip to content

fix(docs): prevent homepage hero atmosphere overflow#8642

Merged
jdx merged 1 commit intojdx:mainfrom
nygmaaa:fix/docs-hero-atmosphere-overflow
Mar 19, 2026
Merged

fix(docs): prevent homepage hero atmosphere overflow#8642
jdx merged 1 commit intojdx:mainfrom
nygmaaa:fix/docs-hero-atmosphere-overflow

Conversation

@nygmaaa
Copy link
Copy Markdown
Contributor

@nygmaaa nygmaaa commented Mar 18, 2026

Summary

Prevent the homepage hero background effects from causing page overflow and a horizontal scrollbar.

Root cause

The decorative .hero-glow-* elements inside .hero-atmosphere are oversized, offset beyond the hero bounds, blurred, and animated. That allows their painted blur region to extend outside the intended area and contribute to page overflow.

Fix

Clip and isolate paint on .hero-atmosphere by adding:

  • overflow: clip
  • contain: paint

This keeps the visual effect contained without changing the hero layout or content.

Validation

  • built docs successfully with npm run docs:build
  • verified the docs dev server starts successfully

Notes

This is a small homepage/docs-site bugfix only.

This PR description was generated with AI assistance.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves a visual bug on the homepage where decorative background elements within the hero section were causing unwanted page overflow and a horizontal scrollbar. The fix ensures that these visual effects are properly contained within their intended area, improving the overall user experience by eliminating disruptive scroll behavior without altering the hero's layout or content.

Highlights

  • Homepage Hero Overflow Fix: Prevented the homepage hero background effects from causing page overflow and a horizontal scrollbar by applying overflow: clip and contain: paint to the .hero-atmosphere element.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Mar 18, 2026

Greptile Summary

This PR fixes a page overflow bug on the homepage by adding overflow: clip and contain: paint to the .hero-atmosphere element in docs/.vitepress/theme/Layout.vue. The decorative animated glow children (.hero-glow-*) use large sizes, negative offsets, and filter: blur(80px), which can cause their painted blur region to extend beyond their layout box and contribute to horizontal page overflow and an unwanted scrollbar.

  • The contain: paint property creates paint containment, clipping all descendant paint output (including blur filter overflow) to the element's border box — this is the key fix for blur-induced overflow.
  • The overflow: clip property reinforces this by clipping child layout overflow without creating a new scroll container.
  • .VPHero already had overflow: hidden (line 73), but that alone doesn't prevent filter: blur() effects from painting outside the parent's clip region in some browser rendering paths. The targeted fix on .hero-atmosphere itself is the more precise and correct solution.
  • No layout, content, or visual changes are expected — the glow effects remain visible within the hero area.

Confidence Score: 5/5

  • This PR is safe to merge — it is a minimal, docs-only CSS fix with no risk to functionality.
  • The change is two CSS property additions scoped entirely to the decorative .hero-atmosphere element in the docs site. Both properties (overflow: clip, contain: paint) are well-supported in modern browsers, do not affect layout or content, and directly address the reported horizontal scrollbar bug caused by filter blur overflow. There are no logic changes, no Rust/TypeScript changes, and no risk of regression in the main codebase.
  • No files require special attention.

Important Files Changed

Filename Overview
docs/.vitepress/theme/Layout.vue Adds overflow: clip and contain: paint to .hero-atmosphere to prevent animated/blurred glow elements from causing horizontal page overflow.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[".VPHero\n(overflow: hidden)"] --> B[".hero-atmosphere\n(position: absolute, inset: 0)\n+ overflow: clip ✨\n+ contain: paint ✨"]
    B --> C[".hero-glow-1\n(600px, blur(80px), animated)"]
    B --> D[".hero-glow-2\n(500px, blur(80px), animated)"]
    B --> E[".hero-glow-3\n(400px, blur(80px), animated)"]
    B --> F[".hero-grain\n(SVG noise texture)"]

    style B fill:#d4edda,stroke:#28a745
    C -->|"blur paint extends\nbeyond element bounds"| G{"Paint clipped to\n.hero-atmosphere bounds\n(via contain: paint)"}
    D --> G
    E --> G
    G -->|"No overflow\nto page"| H["✅ No horizontal scrollbar"]
Loading

Last reviewed commit: "fix(docs): prevent h..."

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request addresses a visual bug on the homepage where background effects were causing page overflow. The fix involves adding overflow: clip and contain: paint to the .hero-atmosphere element. This is a correct and effective solution that properly contains the decorative elements both for layout and rendering performance, resolving the horizontal scrollbar issue. The changes are well-implemented and address the root cause effectively.

@jdx jdx merged commit 7974aac into jdx:main Mar 19, 2026
34 of 36 checks passed
jdx pushed a commit that referenced this pull request Mar 21, 2026
### 🐛 Bug Fixes

- **(config)** resolve trust hash collision for same-name directories by
@tdragon in [#8628](#8628)
- **(docs)** fix width of tools table by @himkt in
[#8625](#8625)
- **(docs)** prevent homepage hero atmosphere overflow by @nygmaaa in
[#8642](#8642)
- **(doctor)** detect PATH ordering issues when mise is activated by
@jdx in [#8585](#8585)
- **(git)** use origin as remote name by @bentinata in
[#8626](#8626)
- **(installer)** normalize current version before comparison by @tak848
in [#8649](#8649)
- **(lockfile)** Resolve symlink when updating lockfiles by @chancez in
[#8589](#8589)
- **(python)** verify checksums for precompiled binary downloads by
@malept in [#8593](#8593)
- **(rust)** resolve relative CARGO_HOME/RUSTUP_HOME to absolute paths
by @simonepri in [#8604](#8604)
- **(task)** correctly resolve task name for _default files with
extensions by @youta1119 in
[#8646](#8646)
- **(tasks)** global file tasks not properly marked as such by @roele in
[#8618](#8618)
- **(tasks)** handle broken pipe in table print and task completion
output by @vmaleze in [#8608](#8608)
- use dark/light logo variants in README for GitHub dark mode by @jdx in
[#8656](#8656)
- failing rebuild of runtime symlinks for shared tools by @roele in
[#8647](#8647)
- add spaces around current element operator in flutter version_expr by
@roele in [#8616](#8616)
- complete task arguments correctly by @KevSlashNull in
[#8601](#8601)

### 📚 Documentation

- switch body font to DM Sans and darken dark mode background by @jdx in
[6e3ad34](6e3ad34)
- use Cormorant Garamond for headers and Roc Grotesk for body text by
@jdx in
[010812a](010812a)
- resolve chaotic heading hierarchy in task-arguments.md by @muzimuzhi
in [#8644](#8644)

### 🧪 Testing

- fix test_java and mark as slow by @roele in
[#8634](#8634)

### 📦️ Dependency Updates

- update docker/dockerfile:1 docker digest to 4a43a54 by @renovate[bot]
in [#8657](#8657)
- update ghcr.io/jdx/mise:alpine docker digest to 2584470 by
@renovate[bot] in [#8658](#8658)

### 📦 Registry

- add viteplus (npm:vite-plus) by @risu729 in
[#8594](#8594)
- remove backend.options for podman by @roele in
[#8633](#8633)
- add pi.dev coding agent by @dector in
[#8635](#8635)
- add ormolu ([github:tweag/ormolu](https://github.com/tweag/ormolu)) by
@3w36zj6 in [#8617](#8617)
- use version_expr for dart and sort versions by @roele in
[#8631](#8631)

### New Contributors

- @bentinata made their first contribution in
[#8626](#8626)
- @tdragon made their first contribution in
[#8628](#8628)
- @nygmaaa made their first contribution in
[#8642](#8642)
- @youta1119 made their first contribution in
[#8646](#8646)
- @chancez made their first contribution in
[#8589](#8589)
- @dector made their first contribution in
[#8635](#8635)
- @tak848 made their first contribution in
[#8649](#8649)

## 📦 Aqua Registry Updates

#### New Packages (5)

- [`acsandmann/rift`](https://github.com/acsandmann/rift)
-
[`alltuner/mise-completions-sync`](https://github.com/alltuner/mise-completions-sync)
- [`berbicanes/apiark`](https://github.com/berbicanes/apiark)
-
[`gitlab.com/graphviz/graphviz`](https://github.com/gitlab.com/graphviz/graphviz)
-
[`jorgelbg/pinentry-touchid`](https://github.com/jorgelbg/pinentry-touchid)

#### Updated Packages (7)

- [`UpCloudLtd/upcloud-cli`](https://github.com/UpCloudLtd/upcloud-cli)
- [`aquaproj/registry-tool`](https://github.com/aquaproj/registry-tool)
- [`go-swagger/go-swagger`](https://github.com/go-swagger/go-swagger)
-
[`gopinath-langote/1build`](https://github.com/gopinath-langote/1build)
- [`sassman/t-rec-rs`](https://github.com/sassman/t-rec-rs)
- [`sharkdp/fd`](https://github.com/sharkdp/fd)
- [`temporalio/cli`](https://github.com/temporalio/cli)
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.

2 participants