Skip to content

Fix hero section performance: eliminate expensive CSS operations and unnecessary re-renders#27

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/fix-hero-section-performance
Draft

Fix hero section performance: eliminate expensive CSS operations and unnecessary re-renders#27
Copilot wants to merge 2 commits intomainfrom
copilot/fix-hero-section-performance

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 26, 2026

Hero section suffers from multiple compounding performance issues: transition-all on numerous elements, backdrop-blur filters, un-promoted GPU animations, unmemoized child components, and an un-debounced resize handler.

CSS transition specificity

  • Replace transition-all with targeted properties (transition-[opacity,filter,transform], transition-transform, etc.) across Hero.js and HeroText.js — avoids the browser monitoring ~50 CSS properties per element per frame
- transition-all duration-300 will-change-auto
+ transition-[opacity,filter,transform] duration-300

Remove backdrop-blur

  • Strip backdrop-blur and backdrop-blur-sm from the CTA button container — these force per-paint pixel sampling/blurring of underlying content

GPU compositing for InfiniteSlider

  • Add willChange: 'transform' to the continuously animated slider element, promoting it to its own compositing layer

React re-render prevention

  • Wrap HeroText with React.memo — no props, so prevents re-renders on every parent state change (e.g., Spline visibility toggling)

Debounce resize handler

  • Add 150ms debounce to the window.resize listener in Home.js to prevent rapid cascading setIsMobile state updates

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • fonts.googleapis.com
    • Triggering command: /opt/hostedtoolcache/node/24.13.1/x64/bin/node /opt/hostedtoolcache/node/24.13.1/x64/bin/node /home/REDACTED/work/portfolio/portfolio/portfolio/node_modules/next/dist/compiled/jest-worker/processChild.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Feb 26, 2026

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

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview, Comment Feb 26, 2026 7:01pm

- Replace transition-all with specific transition properties to reduce
  layout/paint recalculations (Hero.js, HeroText.js)
- Remove expensive backdrop-blur CSS filters from button container (Hero.js)
- Add will-change: transform to InfiniteSlider for GPU-accelerated animation
- Memoize HeroText with React.memo to prevent unnecessary re-renders
- Debounce window resize handler to prevent rapid cascading state updates (Home.js)
- Add explicit duration-200 to transitions that were missing it

Co-authored-by: reach2saksham <113931310+reach2saksham@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix performance issues in hero section Fix hero section performance: eliminate expensive CSS operations and unnecessary re-renders Feb 26, 2026
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