Skip to content

Feature/dino page#186

Open
Robot1508 wants to merge 2 commits intodeveloper-diganta:mainfrom
Robot1508:feature/dino-page
Open

Feature/dino page#186
Robot1508 wants to merge 2 commits intodeveloper-diganta:mainfrom
Robot1508:feature/dino-page

Conversation

@Robot1508
Copy link

@Robot1508 Robot1508 commented Mar 3, 2026

Fixes #(issue)

Description

Describe your changes in detail

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.

SWOC Participation

  • Name: (Your name)
  • Discord Username: (Your discord username)
  • I have included the issue number in my PR

Summary by CodeRabbit

Release Notes

  • New Features
    • New interactive landing page for the Dino extension now available, featuring a custom cursor that follows mouse movement, animated background with floating characters, responsive card grid with dynamic glow effects on hover, and clickable text animations. Accessible from the main navigation.

@Robot1508
Copy link
Author

Applied fixes. Ready for review.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 3, 2026

📝 Walkthrough

Walkthrough

A new interactive HTML landing page for a Dino extension is introduced with a blob cursor, animated alphabet background, responsive card grid, and clickable word effects. An index page link directs users to this new experience. All functionality is client-side and self-contained within the HTML file.

Changes

Cohort / File(s) Summary
New Dino Landing Page
dino_webpage/dino.html
Complete interactive landing experience featuring sticky navbar, hero section with blob cursor, canvas-based animated background with floating letters, three responsive bento-style cards with glow effects, and clickable word animations. Includes comprehensive JavaScript for mouse tracking, particle animations, card interactions, and DOM element transformations.
Navigation Link
dino_webpage/index.html
Added anchor link to direct users to the new Dino extension landing page.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Poem

🐰 A dino page now springs to life,
With blobs that dance and swirl in strife,
Canvas letters drift on high,
Cards that glow beneath the sky,
Words that spin when clicked just right—
Pure magic coded day and night! ✨

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning PR description is incomplete: issue number missing, change description not filled, screenshots omitted, change types unchecked, and conflicting checklist responses. Fill in the issue number, provide a detailed description of changes, specify change type (New feature), correct checklist inconsistencies (documentation not updated), and complete SWOC details if applicable.
Title check ❓ Inconclusive The title 'Feature/dino page' is vague and uses generic branch naming convention rather than a descriptive summary of the actual change. Use a more descriptive title that conveys the specific change, such as 'Add interactive Dino landing page with blob cursor and alphabet animation' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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 and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (4)
dino_webpage/dino.html (3)

351-362: Add null checks for DOM element selectors.

document.querySelector can return null if elements aren't found. While unlikely in this self-contained page, adding null checks improves robustness.

🛡️ Suggested defensive check
         // 1. BLOB CURSOR
         const blob = document.querySelector('.blob');
         const dot = document.querySelector('.inner-dot');
+        if (!blob || !dot) return;
         window.addEventListener('mousemove', (e) => {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/dino.html` around lines 351 - 362, The blob cursor code uses
document.querySelector('.blob') and document.querySelector('.inner-dot') without
null checks; update the block that defines const blob and const dot and the
window.addEventListener callback to first verify blob and dot are non-null (or
guard early and return) before accessing style or calling blob.animate, and
ensure the event listener is only attached if the elements exist (reference
symbols: blob, dot, and the window.addEventListener mousemove callback).

324-347: Consider self-hosting card icons for reliability.

The card icons are loaded from cdn-icons-png.flaticon.com. External CDN dependencies may fail due to availability issues, regional blocking, or CORS changes. For a production landing page, consider self-hosting these icons or using inline SVGs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/dino.html` around lines 324 - 347, The card images in the
magic-bento-card elements currently use external CDN URLs (the <div
class="header"><img src="https://cdn-icons-png.flaticon.com/..."> entries);
replace those external src references with self-hosted assets or inline SVGs to
avoid CDN/CORS/availability issues — add local paths (e.g.,
assets/icons/change-colors.svg) or embed the SVG markup directly inside each
<div class="header">, ensure each <img> has an appropriate alt attribute (or SVG
has role/title) and update any build/static asset pipeline to copy the new icons
so the magic-bento-card instances (including the card-red variant) load reliably
in production.

364-396: Canvas context may be null; animation runs indefinitely.

getContext('2d') can return null if the canvas context isn't available, which would cause ctx.clearRect to throw. Additionally, the requestAnimationFrame loop runs continuously even when the tab is in background, consuming resources.

🛡️ Suggested improvements
         const canvas = document.getElementById('alphabet-blast-canvas');
         const ctx = canvas.getContext('2d');
+        if (!ctx) {
+            console.warn('Canvas 2D context not available');
+            return;
+        }
         let particles = [];
+        let animationId;
         const chars = "DINO";
         
         // ... init function unchanged ...

         function animate() {
             ctx.clearRect(0, 0, canvas.width, canvas.height);
             particles.forEach(p => {
                 // ... particle drawing unchanged ...
             });
-            requestAnimationFrame(animate);
+            animationId = requestAnimationFrame(animate);
         }

+        // Optional: pause when tab is hidden
+        document.addEventListener('visibilitychange', () => {
+            if (document.hidden) {
+                cancelAnimationFrame(animationId);
+            } else {
+                animate();
+            }
+        });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/dino.html` around lines 364 - 396, The canvas context (ctx) can
be null and the animation loop runs continuously; update init() to verify canvas
and ctx exist and bail out or disable the effect if ctx is null (check the
canvas and ctx variables returned by document.getElementById and getContext),
and refactor animate() to store the requestAnimationFrame id so you can cancel
it; also hook into the Page Visibility API (document.visibilityState /
visibilitychange) to pause (cancelAnimationFrame) when hidden and resume
(restart animate with a new requestAnimationFrame id) when visible, and ensure
resize listener still calls init() safely after the ctx presence check.
dino_webpage/index.html (1)

51-51: Link appears orphaned and unstyled.

The link to dino.html is placed directly before </body> without any container or styling, making it visually inconsistent with the rest of the page. Consider placing it within an appropriate section (e.g., inside section2_download_btn or a new styled container) and applying consistent styling.

♻️ Suggested integration
     <div class="section2_download_btn">
-    <button>Download Now <img src="images_icons/6.png" width="57px" height="60px" style="padding-top: 11px;"></button>
+        <button>Download Now <img src="images_icons/6.png" width="57px" height="60px" style="padding-top: 11px;"></button>
+        <a href="dino.html" class="section1_btn" style="text-decoration: none; margin-left: 20px;">Open Dino Extension</a>
     </div>
-
-<a href="dino.html">Open Dino Extension</a>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/index.html` at line 51, The anchor <a href="dino.html">Open Dino
Extension</a> is orphaned right before </body>; move it into an existing
container (e.g., the element with id="section2_download_btn") or create a new
semantic container (e.g., <div class="extension-link">) so it sits with related
content, then apply the page's button/link styling by adding the existing CSS
class (e.g., "download-btn" or "btn-primary") to the anchor and update CSS if
necessary to match spacing and typography; ensure the link preserves
href="dino.html" and accessible text, and verify layout in responsive
breakpoints.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@dino_webpage/dino.html`:
- Around line 316-319: The CTA button with class "btn-cta" (text "Know more
about the Extension") has no action; add type="button" and give it a navigation
handler by either wrapping the element in an anchor tag linking to the extension
section or adding an onclick that performs navigation (e.g., location.href =
'#extension-section' or calls a function navigateToExtension()); ensure the
selector remains .btn-cta so styling still applies and update any aria
attributes if needed for accessibility.
- Around line 271-274: The nav bar currently has a non-functional anchor and a
non-focusable user icon: replace the anchor with a real download target or, if
it triggers JS, convert the "Download" <a> (text "Download") into a <button> so
it is keyboard-accessible; convert the user icon <div> into a <button> (replace
the element referenced as the user icon div inside .nav-links) and add an
appropriate aria-label (e.g., aria-label="User menu") and keyboard/focus styles
so screen readers and keyboard users can interact with it; ensure any JS click
handlers are moved from the old div to the new button and preserve the visual
styling (border, size, emoji) via CSS.

---

Nitpick comments:
In `@dino_webpage/dino.html`:
- Around line 351-362: The blob cursor code uses document.querySelector('.blob')
and document.querySelector('.inner-dot') without null checks; update the block
that defines const blob and const dot and the window.addEventListener callback
to first verify blob and dot are non-null (or guard early and return) before
accessing style or calling blob.animate, and ensure the event listener is only
attached if the elements exist (reference symbols: blob, dot, and the
window.addEventListener mousemove callback).
- Around line 324-347: The card images in the magic-bento-card elements
currently use external CDN URLs (the <div class="header"><img
src="https://cdn-icons-png.flaticon.com/..."> entries); replace those external
src references with self-hosted assets or inline SVGs to avoid
CDN/CORS/availability issues — add local paths (e.g.,
assets/icons/change-colors.svg) or embed the SVG markup directly inside each
<div class="header">, ensure each <img> has an appropriate alt attribute (or SVG
has role/title) and update any build/static asset pipeline to copy the new icons
so the magic-bento-card instances (including the card-red variant) load reliably
in production.
- Around line 364-396: The canvas context (ctx) can be null and the animation
loop runs continuously; update init() to verify canvas and ctx exist and bail
out or disable the effect if ctx is null (check the canvas and ctx variables
returned by document.getElementById and getContext), and refactor animate() to
store the requestAnimationFrame id so you can cancel it; also hook into the Page
Visibility API (document.visibilityState / visibilitychange) to pause
(cancelAnimationFrame) when hidden and resume (restart animate with a new
requestAnimationFrame id) when visible, and ensure resize listener still calls
init() safely after the ctx presence check.

In `@dino_webpage/index.html`:
- Line 51: The anchor <a href="dino.html">Open Dino Extension</a> is orphaned
right before </body>; move it into an existing container (e.g., the element with
id="section2_download_btn") or create a new semantic container (e.g., <div
class="extension-link">) so it sits with related content, then apply the page's
button/link styling by adding the existing CSS class (e.g., "download-btn" or
"btn-primary") to the anchor and update CSS if necessary to match spacing and
typography; ensure the link preserves href="dino.html" and accessible text, and
verify layout in responsive breakpoints.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 588c4bc and 3bc6d7e.

⛔ Files ignored due to path filters (1)
  • dino_webpage/images_icons/dino_logo.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • dino_webpage/dino.html
  • dino_webpage/index.html

Comment on lines +271 to +274
<div class="nav-links">
<a href="#">Download</a>
<div style="color:white; border: 2px solid white; border-radius: 50%; padding: 5px; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center;">👤</div>
</div>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Accessibility issues in the navigation bar of an accessibility-focused page.

The "Download" link uses href="#", making it non-functional. The user icon is a <div> with emoji content that isn't keyboard-accessible or focusable.

Consider:

  • Replace href="#" with an actual download URL or use a <button> if it triggers JS behavior.
  • Convert the user icon <div> to a <button> with proper aria-label for screen readers.
♻️ Suggested improvement
         <div class="nav-links">
-            <a href="#">Download</a>
-            <div style="color:white; border: 2px solid white; border-radius: 50%; padding: 5px; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center;">👤</div>
+            <a href="#download-section">Download</a>
+            <button aria-label="User profile" style="color:white; border: 2px solid white; border-radius: 50%; padding: 5px; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; background: transparent; cursor: pointer;">👤</button>
         </div>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<div class="nav-links">
<a href="#">Download</a>
<div style="color:white; border: 2px solid white; border-radius: 50%; padding: 5px; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center;">👤</div>
</div>
<div class="nav-links">
<a href="#download-section">Download</a>
<button aria-label="User profile" style="color:white; border: 2px solid white; border-radius: 50%; padding: 5px; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; background: transparent; cursor: pointer;">👤</button>
</div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/dino.html` around lines 271 - 274, The nav bar currently has a
non-functional anchor and a non-focusable user icon: replace the anchor with a
real download target or, if it triggers JS, convert the "Download" <a> (text
"Download") into a <button> so it is keyboard-accessible; convert the user icon
<div> into a <button> (replace the element referenced as the user icon div
inside .nav-links) and add an appropriate aria-label (e.g., aria-label="User
menu") and keyboard/focus styles so screen readers and keyboard users can
interact with it; ensure any JS click handlers are moved from the old div to the
new button and preserve the visual styling (border, size, emoji) via CSS.

Comment on lines +316 to +319
<button class="btn-cta">
Know more about the Extension
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M19 14l-7 7m0 0l-7-7m7 7V3"></path></svg>
</button>
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

CTA button lacks functionality.

The "Know more about the Extension" button has no click handler or navigation action. Add type="button" and either an onclick handler or wrap it in an anchor tag to link to the relevant section.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@dino_webpage/dino.html` around lines 316 - 319, The CTA button with class
"btn-cta" (text "Know more about the Extension") has no action; add
type="button" and give it a navigation handler by either wrapping the element in
an anchor tag linking to the extension section or adding an onclick that
performs navigation (e.g., location.href = '#extension-section' or calls a
function navigateToExtension()); ensure the selector remains .btn-cta so styling
still applies and update any aria attributes if needed for accessibility.

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