Skip to content

Add FuzzyText component and enhance ErrorPage with new styles#10

Merged
aintnier merged 1 commit intomainfrom
responsive
Jul 25, 2025
Merged

Add FuzzyText component and enhance ErrorPage with new styles#10
aintnier merged 1 commit intomainfrom
responsive

Conversation

@aintnier
Copy link
Copy Markdown
Owner

@aintnier aintnier commented Jul 25, 2025

  • Introduced FuzzyText component for animated text effects.
  • Updated ErrorPage to utilize FuzzyText for a more engaging 404 message.
  • Added new CSS styles for ErrorPage to improve layout and responsiveness.
  • Modified LandingPage styles for consistency with new design.
  • Fixed CI Pipeline README file

Summary by Sourcery

Introduce a fuzzy animated text component, enhance the ErrorPage with new interactive styles, tweak LandingPage visuals for consistency, and refine the CI pipeline documentation.

New Features:

  • Add FuzzyText component for canvas-based animated text effects
  • Integrate FuzzyText into the ErrorPage to display an interactive 404 message

Bug Fixes:

  • Fix CI pipeline README installation command

Enhancements:

  • Add responsive CSS styles for ErrorPage layout and content
  • Update LandingPage gradient, adjust stat count, and switch text animations to line-based splitting with updated delays

Documentation:

  • Simplify CI pipeline README by removing optional Prettier/VS Code configurations

Chores:

  • Add yarn.lock for the amplify backend function

- Introduced FuzzyText component for animated text effects.
- Updated ErrorPage to utilize FuzzyText for a more engaging 404 message.
- Added new CSS styles for ErrorPage to improve layout and responsiveness.
- Modified LandingPage styles for consistency with new design.
- Fixed CI Pipeline README file
@aintnier aintnier requested a review from Copilot July 25, 2025 15:03
@sourcery-ai
Copy link
Copy Markdown

sourcery-ai bot commented Jul 25, 2025

Reviewer's Guide

This PR introduces a reusable, canvas-based FuzzyText component for animated text effects, integrates it into the ErrorPage with a responsive layout and back-to-home button, refines LandingPage visuals and animation settings for consistency, and cleans up the CI pipeline documentation.

Class diagram for the new FuzzyText component

classDiagram
  class FuzzyText {
    +children
    +fontSize
    +fontWeight
    +fontFamily
    +color
    +enableHover
    +baseIntensity
    +hoverIntensity
    +canvasRef
    +useEffect()
    +render()
  }
Loading

Class diagram for updated ErrorPage usage

classDiagram
  class ErrorPage {
    +render()
  }
  class FuzzyText
  ErrorPage --> FuzzyText : uses
  ErrorPage --> Link : uses
Loading

File-Level Changes

Change Details Files
Implemented a new FuzzyText component for flickering text animations
  • Built canvas-based rendering with dynamic text measurement
  • Added requestAnimationFrame loop for per-pixel fuzzing
  • Supported hover/touch intensity changes and cleanup on unmount
src/components/FuzzyText/FuzzyText.jsx
Enhanced ErrorPage with animated 404 message and styled layout
  • Replaced static heading with FuzzyText for the ‘404’ display
  • Added react-router Link as a back-to-home button
  • Introduced error-page CSS class and responsive stylesheet
src/pages/ErrorPage.js
src/styles/ErrorPage.css
Refined LandingPage animations and design for consistency
  • Switched animation splitType from “words” to “lines” across multiple sections
  • Adjusted animation delay for the call-to-action
  • Replaced infinite symbol with “100+” and removed inline fontFamily
  • Updated background gradient in CSS for darker theme
src/pages/LandingPage.js
src/styles/LandingPage.css
Cleaned up CI pipeline README file
  • Simplified pnpm install command
  • Removed Prettier and VS Code settings sections
.github/README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Copy Markdown

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

We've reviewed this pull request using the Sourcery rules engine

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces a new FuzzyText component for animated text effects and enhances the ErrorPage design with modern styling and improved responsiveness.

Key changes:

  • Added FuzzyText component with canvas-based text animation effects
  • Redesigned ErrorPage with new CSS styles and integrated FuzzyText component
  • Updated design consistency with a darker gradient theme across LandingPage and ErrorPage

Reviewed Changes

Copilot reviewed 8 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/components/FuzzyText/FuzzyText.jsx New component providing animated fuzzy text effects using canvas rendering
src/pages/ErrorPage.js Enhanced 404 page with FuzzyText integration and proper navigation
src/styles/ErrorPage.css New responsive styles for ErrorPage with modern design
src/styles/LandingPage.css Updated background gradient to match new design theme
src/pages/LandingPage.js Minor animation tweaks and content updates
amplify/backend/function/homecloudSharedUtils/* AWS CloudFormation template updates for deployment
.github/README.md Documentation cleanup and CI pipeline updates
Comments suppressed due to low confidence (1)

amplify/backend/function/homecloudSharedUtils/parameters.json:2

  • The Node.js runtime version 'nodejs22.x' does not exist. AWS Lambda currently supports up to nodejs20.x. This should be changed to 'nodejs20.x' or another supported version.
  "runtimes": [

}
};

canvas.cleanupFuzzyText = cleanup;
Copy link

Copilot AI Jul 25, 2025

Choose a reason for hiding this comment

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

Adding a custom property 'cleanupFuzzyText' directly to the canvas DOM element is not a standard practice and could lead to memory leaks or conflicts. Consider using a WeakMap or ref-based cleanup approach instead.

Suggested change
canvas.cleanupFuzzyText = cleanup;
cleanupMap.set(canvas, cleanup);

Copilot uses AI. Check for mistakes.
Comment on lines +145 to +150
e.preventDefault();
const rect = canvas.getBoundingClientRect();
const touch = e.touches[0];
const x = touch.clientX - rect.left;
const y = touch.clientY - rect.top;
isHovering = isInsideTextArea(x, y);
Copy link

Copilot AI Jul 25, 2025

Choose a reason for hiding this comment

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

Calling preventDefault() on all touchmove events can interfere with normal scrolling behavior. Consider only preventing default when the touch is actually over the interactive area.

Suggested change
e.preventDefault();
const rect = canvas.getBoundingClientRect();
const touch = e.touches[0];
const x = touch.clientX - rect.left;
const y = touch.clientY - rect.top;
isHovering = isInsideTextArea(x, y);
const rect = canvas.getBoundingClientRect();
const touch = e.touches[0];
const x = touch.clientX - rect.left;
const y = touch.clientY - rect.top;
if (isInsideTextArea(x, y)) {
e.preventDefault();
isHovering = true;
} else {
isHovering = false;
}

Copilot uses AI. Check for mistakes.
@aintnier aintnier merged commit 948bea8 into main Jul 25, 2025
5 of 7 checks passed
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