Skip to content

Improved the UI of the targetted section#239

Open
Shayan-Bhowmik wants to merge 1 commit into
GitMetricsLab:mainfrom
Shayan-Bhowmik:improvising-UI-how-it-works-section
Open

Improved the UI of the targetted section#239
Shayan-Bhowmik wants to merge 1 commit into
GitMetricsLab:mainfrom
Shayan-Bhowmik:improvising-UI-how-it-works-section

Conversation

@Shayan-Bhowmik
Copy link
Copy Markdown

@Shayan-Bhowmik Shayan-Bhowmik commented May 15, 2026

Related Issue


Description

UI/UX improvements to the "How It Works" section based on screenshot feedback and theme compatibility review. The section was redesigned with a cleaner three-card layout, improved spacing, animated flow connectors, and theme-aware styling so it blends properly in both light and dark modes without changing any content or behavior.

Changes Made

Updated HowItWorks.tsx to improve the section layout and visual hierarchy:

  • Kept the same 3-step content:

    • Search Users
    • Monitor Activity
    • Analyze Insights
  • Replaced the plain numbered circles with larger, stylized step indicators featuring a soft blue glow.

  • Added small relevant icons for each step using lucide-react.

  • Wrapped each step inside a polished card with:

    • subtle border
    • lifted surface treatment
    • rounded corners
    • hover glow effect
    • slight upward hover motion
  • Added animated dashed flow connectors between steps to visually show progression.

  • Improved spacing and alignment throughout the section for a cleaner visual flow.

  • Made the section theme-aware so the light theme blends naturally with the rest of the site instead of appearing overly dark.

  • Kept all copy, routing, and application behavior unchanged.

Dependencies

  • None — no new packages added or version changes required.

How Has This Been Tested?

1. Development Setup

npm install
npm run dev

Open the app in the browser (usually http://localhost:3000).


2. Desktop Verification

Verified that:

  • The three steps display as polished cards.
  • Step indicators are larger and visually clearer.
  • Animated flow connectors appear between cards.
  • Hovering over a card adds:
    • soft blue glow
    • slight upward lift animation
  • The section blends naturally in both light and dark themes.
  • Card spacing and typography feel balanced and clean.

3. Mobile Verification

Using browser DevTools responsive mode and mobile testing:

  • Cards stack vertically on smaller screens.
  • Flow connectors remain visually clean and readable.
  • Icons and step numbers stay properly aligned.
  • No overlap, clipping, or spacing issues occur.
  • Touch interactions remain smooth and accessible.

4. Production Build Verification

npm run build

Verified that the production build completes successfully without warnings or errors.


Screenshots (if applicable)

image

Type of Change

  • Bug fix
  • New feature
  • Code style update
  • Breaking change
  • Documentation update

Summary by CodeRabbit

  • New Features

    • Steps in the How It Works section now display as interactive cards with icon visuals
    • Added responsive visual connectors between steps (arrows on desktop, vertical line on mobile)
  • Style

    • Enhanced theme support with dark and light mode styling
    • Step cards now feature hover effects, shadows, and animated flow-line effects with dashed patterns

Review Change Stack

Copilot AI review requested due to automatic review settings May 15, 2026 00:28
@netlify
Copy link
Copy Markdown

netlify Bot commented May 15, 2026

Deploy Preview for github-spy ready!

Name Link
🔨 Latest commit a99ff12
🔍 Latest deploy log https://app.netlify.com/projects/github-spy/deploys/6a0668b3d879a40008cb2313
😎 Deploy Preview https://deploy-preview-239--github-spy.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

📝 Walkthrough

Walkthrough

The HowItWorks component is refactored from static CSS-class-based layout to a theme-aware, interactive component. Steps are enriched with icons and rendered as styled article cards. The layout now includes responsive connector visuals (desktop arrows, mobile vertical line), and new CSS animations provide animated flow-line effects in both light and dark themes.

Changes

HowItWorks Theme-Aware Interactive Enhancement

Layer / File(s) Summary
Theme Context & Steps Data Structure
src/components/HowItWorks.tsx
Component imports useContext and ThemeContext to derive mode (light/dark, defaulting to light), and steps array is expanded to include icon component per step.
Theme-Dependent Styling Configuration
src/components/HowItWorks.tsx
Theme-dependent class variables are computed from mode for section background, card surface/border, title/body text colors, and connector styling.
Component Layout with Responsive Connectors
src/components/HowItWorks.tsx
Return markup applies computed theme classes and introduces responsive connector elements: desktop arrow/pill connectors and mobile down arrows with vertical line.
Interactive Step Card Rendering
src/components/HowItWorks.tsx
Steps are rendered as mapped interactive article cards, each including icon badge, themed typography, and updated hover/translation styling.
Flow-Line CSS Animations & Variants
src/index.css
Keyframe animations for horizontal and vertical dash flow (how-it-works-dash-flow, how-it-works-dash-flow-vertical), plus .how-it-works-flow-line variants with light/dark and horizontal/vertical combinations, each applying repeating gradient dashes and glowing effects via box-shadow.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Suggested labels

gssoc25, level2

Poem

🐰 Hop skip and refactor, the HowItWorks blooms,
With themes and with icons, in light-dancing rooms,
Cards flow with connector dashes bright,
Interactive steps that shimmer and light!
A theme-aware tale, so refined and so neat, 🌟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Improved the UI of the targetted section' is vague and uses generic language without specifying which section or what improvements were made. Use a more specific title that identifies the section and key improvement, e.g., 'Redesign How It Works section with cards, icons, and animated connectors'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The PR description is comprehensive and well-structured, covering all template sections with detailed changes, testing procedures, and visual documentation.
Linked Issues check ✅ Passed The PR fully addresses issue #223 by implementing visual polish and refinement to the 'How It Works' section with improved styling, cards, icons, connectors, and theme-aware design.
Out of Scope Changes check ✅ Passed All changes are scoped to the 'How It Works' section UI/UX improvements as defined in issue #223; no unrelated modifications were introduced.
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

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
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

UI/UX redesign of the landing page “How It Works” section to better match the site’s visual style across light/dark themes (per #223), while keeping the existing 3-step content unchanged.

Changes:

  • Rebuilt HowItWorks into a three-card layout with step indicators, lucide icons, hover effects, and responsive (desktop/mobile) connector visuals.
  • Added global CSS keyframes/classes for animated dashed connector lines, with light/dark variants.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/index.css Adds keyframes and utility classes for animated dashed connector lines used by the How It Works section.
src/components/HowItWorks.tsx Updates the How It Works UI to a themed card-based layout with icons and animated flow connectors.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/index.css
Comment on lines +25 to +38
.how-it-works-flow-line {
display: block;
height: 2px;
border-radius: 9999px;
background-image: repeating-linear-gradient(
90deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 28px 2px;
animation: how-it-works-dash-flow 10s linear infinite;
box-shadow: 0 0 18px rgba(59, 130, 246, 0.24);
Copy link
Copy Markdown
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: 3

🧹 Nitpick comments (1)
src/components/HowItWorks.tsx (1)

41-43: ⚡ Quick win

Respect reduced-motion preferences for animated/hovered UI.

Line 85 introduces motion on hover, and the flow-line class is animation-driven. Add reduced-motion fallbacks to avoid forced motion for users with prefers-reduced-motion.

Proposed fix
-                  className={`group relative rounded-3xl border p-8 text-center backdrop-blur-sm transition-all duration-300 hover:-translate-y-1 hover:border-blue-400/30 hover:shadow-[0_24px_60px_rgba(46,89,255,0.18)] ${cardBorderClass} ${cardSurfaceClass} ${mode === 'dark' ? 'hover:bg-white/[0.06]' : 'hover:bg-white'}`}
+                  className={`group relative rounded-3xl border p-8 text-center backdrop-blur-sm transition-all duration-300 motion-reduce:transition-none motion-reduce:transform-none hover:-translate-y-1 motion-reduce:hover:translate-y-0 hover:border-blue-400/30 hover:shadow-[0_24px_60px_rgba(46,89,255,0.18)] ${cardBorderClass} ${cardSurfaceClass} ${mode === 'dark' ? 'hover:bg-white/[0.06]' : 'hover:bg-white'}`}
/* src/index.css */
`@media` (prefers-reduced-motion: reduce) {
  .how-it-works-flow-line,
  .how-it-works-flow-line.vertical {
    animation: none;
  }
}

Also applies to: 85-85

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/HowItWorks.tsx` around lines 41 - 43, The animated connector
line and hover motion do not respect users' prefers-reduced-motion setting;
update the stylesheet to add a `@media` (prefers-reduced-motion: reduce) rule that
disables animations/transitions for the how-it-works flow classes (e.g.,
.how-it-works-flow-line and .how-it-works-flow-line.vertical) and any related
hover transform/transition rules used by the connectorLineClass, so animation:
none and transition/transform: none are applied under that media query.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/HowItWorks.tsx`:
- Around line 56-74: The decorative connector arrow wrappers are being announced
by screen readers; mark the two outer wrapper divs that contain the
ArrowRight/ArrowDown elements as presentational by adding accessibility
attributes (e.g., aria-hidden="true" and role="presentation") to the divs that
wrap the arrows (the divs with classes "pointer-events-none absolute left-0
right-0 top-28 hidden md:block" and "pointer-events-none absolute left-1/2
top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between
md:hidden") so the spans using connectorLineClass/connectorBubbleClass and the
ArrowRight/ArrowDown icons are ignored by assistive tech.

In `@src/index.css`:
- Around line 5-23: The keyframes how-it-works-dash-flow and
how-it-works-dash-flow-vertical currently move background-position by 72px which
doesn't align with the pattern repeat of 28px; update the "to" values to use a
multiple of 28px (recommended 56px) so the animation loops seamlessly (e.g.,
change background-position: 72px 0 to 56px 0 in how-it-works-dash-flow and 0
72px to 0 56px in how-it-works-dash-flow-vertical), keeping the rest of the
keyframe definitions unchanged.
- Around line 25-74: The animated repeating gradients (.how-it-works-flow-line
and .how-it-works-flow-line.vertical) use infinite animations
(how-it-works-dash-flow and how-it-works-dash-flow-vertical) which should be
disabled for users who set prefers-reduced-motion; add a media query `@media`
(prefers-reduced-motion: reduce) that targets .how-it-works-flow-line,
.how-it-works-flow-line.light, .how-it-works-flow-line.vertical and
.how-it-works-flow-line.vertical.light and set animation: none !important;
transition: none !important; and optionally reduce or remove strong visual
effects like box-shadow (e.g., box-shadow: none) to fully respect the user
preference while keeping the same selectors and keyframe names referenced.

---

Nitpick comments:
In `@src/components/HowItWorks.tsx`:
- Around line 41-43: The animated connector line and hover motion do not respect
users' prefers-reduced-motion setting; update the stylesheet to add a `@media`
(prefers-reduced-motion: reduce) rule that disables animations/transitions for
the how-it-works flow classes (e.g., .how-it-works-flow-line and
.how-it-works-flow-line.vertical) and any related hover transform/transition
rules used by the connectorLineClass, so animation: none and
transition/transform: none are applied under that media query.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bce03872-0004-4cc1-81df-5f5616be7233

📥 Commits

Reviewing files that changed from the base of the PR and between 56e17a3 and a99ff12.

📒 Files selected for processing (2)
  • src/components/HowItWorks.tsx
  • src/index.css

Comment on lines +56 to +74
<div className="pointer-events-none absolute left-0 right-0 top-28 hidden md:block">
<div className="relative mx-auto h-10 max-w-6xl">
<span className={`${connectorLineClass} absolute left-16 right-16 top-1/2 -translate-y-1/2`} />
<span className={`absolute left-1/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
<span className={`absolute left-2/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
</div>
))}
</div>

<div className="pointer-events-none absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between md:hidden">
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Hide decorative connector arrows from assistive technologies.

These connector arrows are purely visual. Mark their wrapper blocks as presentational so screen readers don’t announce extra non-content graphics.

Proposed fix
-          <div className="pointer-events-none absolute left-0 right-0 top-28 hidden md:block">
+          <div aria-hidden="true" className="pointer-events-none absolute left-0 right-0 top-28 hidden md:block">
@@
-          <div className="pointer-events-none absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between md:hidden">
+          <div aria-hidden="true" className="pointer-events-none absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between md:hidden">
📝 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 className="pointer-events-none absolute left-0 right-0 top-28 hidden md:block">
<div className="relative mx-auto h-10 max-w-6xl">
<span className={`${connectorLineClass} absolute left-16 right-16 top-1/2 -translate-y-1/2`} />
<span className={`absolute left-1/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
<span className={`absolute left-2/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
</div>
))}
</div>
<div className="pointer-events-none absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between md:hidden">
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
<div aria-hidden="true" className="pointer-events-none absolute left-0 right-0 top-28 hidden md:block">
<div className="relative mx-auto h-10 max-w-6xl">
<span className={`${connectorLineClass} absolute left-16 right-16 top-1/2 -translate-y-1/2`} />
<span className={`absolute left-1/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
<span className={`absolute left-2/3 top-1/2 -translate-x-1/2 -translate-y-1/2 ${connectorBubbleClass}`}>
<ArrowRight className="h-4 w-4" />
</span>
</div>
</div>
<div aria-hidden="true" className="pointer-events-none absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center justify-between md:hidden">
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
<span className={connectorBubbleClass}>
<ArrowDown className="h-4 w-4" />
</span>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/HowItWorks.tsx` around lines 56 - 74, The decorative connector
arrow wrappers are being announced by screen readers; mark the two outer wrapper
divs that contain the ArrowRight/ArrowDown elements as presentational by adding
accessibility attributes (e.g., aria-hidden="true" and role="presentation") to
the divs that wrap the arrows (the divs with classes "pointer-events-none
absolute left-0 right-0 top-28 hidden md:block" and "pointer-events-none
absolute left-1/2 top-24 bottom-24 flex -translate-x-1/2 flex-col items-center
justify-between md:hidden") so the spans using
connectorLineClass/connectorBubbleClass and the ArrowRight/ArrowDown icons are
ignored by assistive tech.

Comment thread src/index.css
Comment on lines +5 to +23
@keyframes how-it-works-dash-flow {
from {
background-position: 0 0;
}

to {
background-position: 72px 0;
}
}

@keyframes how-it-works-dash-flow-vertical {
from {
background-position: 0 0;
}

to {
background-position: 0 72px;
}
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix animation distance to ensure seamless looping.

The animation moves background-position by 72px, but the pattern repeats every 28px (from background-size). Since 72 ÷ 28 = 2.57, the pattern won't align when the animation loops, causing a visible jump.

For seamless animation, use a multiple of 28px:

  • 56px (2 full patterns) – recommended
  • 84px (3 full patterns) – alternative if slower flow is preferred
🔄 Proposed fix for seamless looping
 `@keyframes` how-it-works-dash-flow {
   from {
     background-position: 0 0;
   }

   to {
-    background-position: 72px 0;
+    background-position: 56px 0;
   }
 }

 `@keyframes` how-it-works-dash-flow-vertical {
   from {
     background-position: 0 0;
   }

   to {
-    background-position: 0 72px;
+    background-position: 0 56px;
   }
 }
📝 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
@keyframes how-it-works-dash-flow {
from {
background-position: 0 0;
}
to {
background-position: 72px 0;
}
}
@keyframes how-it-works-dash-flow-vertical {
from {
background-position: 0 0;
}
to {
background-position: 0 72px;
}
}
`@keyframes` how-it-works-dash-flow {
from {
background-position: 0 0;
}
to {
background-position: 56px 0;
}
}
`@keyframes` how-it-works-dash-flow-vertical {
from {
background-position: 0 0;
}
to {
background-position: 0 56px;
}
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/index.css` around lines 5 - 23, The keyframes how-it-works-dash-flow and
how-it-works-dash-flow-vertical currently move background-position by 72px which
doesn't align with the pattern repeat of 28px; update the "to" values to use a
multiple of 28px (recommended 56px) so the animation loops seamlessly (e.g.,
change background-position: 72px 0 to 56px 0 in how-it-works-dash-flow and 0
72px to 0 56px in how-it-works-dash-flow-vertical), keeping the rest of the
keyframe definitions unchanged.

Comment thread src/index.css
Comment on lines +25 to +74
.how-it-works-flow-line {
display: block;
height: 2px;
border-radius: 9999px;
background-image: repeating-linear-gradient(
90deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 28px 2px;
animation: how-it-works-dash-flow 10s linear infinite;
box-shadow: 0 0 18px rgba(59, 130, 246, 0.24);
}

.how-it-works-flow-line.light {
background-image: repeating-linear-gradient(
90deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
box-shadow: 0 0 14px rgba(59, 130, 246, 0.14);
}

.how-it-works-flow-line.vertical {
width: 2px;
height: 100%;
background-image: repeating-linear-gradient(
180deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 2px 28px;
animation: how-it-works-dash-flow-vertical 10s linear infinite;
}

.how-it-works-flow-line.vertical.light {
background-image: repeating-linear-gradient(
180deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add prefers-reduced-motion support for accessibility.

The infinite animations can cause discomfort for users with vestibular disorders or motion sensitivity. Respect the user's motion preference setting to comply with WCAG accessibility guidelines.

♿ Proposed fix to disable animations for users who prefer reduced motion
+@media (prefers-reduced-motion: reduce) {
+  .how-it-works-flow-line {
+    animation: none;
+  }
+}
+
 .how-it-works-flow-line {
   display: block;
   height: 2px;
📝 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
.how-it-works-flow-line {
display: block;
height: 2px;
border-radius: 9999px;
background-image: repeating-linear-gradient(
90deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 28px 2px;
animation: how-it-works-dash-flow 10s linear infinite;
box-shadow: 0 0 18px rgba(59, 130, 246, 0.24);
}
.how-it-works-flow-line.light {
background-image: repeating-linear-gradient(
90deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
box-shadow: 0 0 14px rgba(59, 130, 246, 0.14);
}
.how-it-works-flow-line.vertical {
width: 2px;
height: 100%;
background-image: repeating-linear-gradient(
180deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 2px 28px;
animation: how-it-works-dash-flow-vertical 10s linear infinite;
}
.how-it-works-flow-line.vertical.light {
background-image: repeating-linear-gradient(
180deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
}
`@media` (prefers-reduced-motion: reduce) {
.how-it-works-flow-line,
.how-it-works-flow-line.vertical {
animation: none;
}
}
.how-it-works-flow-line {
display: block;
height: 2px;
border-radius: 9999px;
background-image: repeating-linear-gradient(
90deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 28px 2px;
animation: how-it-works-dash-flow 10s linear infinite;
box-shadow: 0 0 18px rgba(59, 130, 246, 0.24);
}
.how-it-works-flow-line.light {
background-image: repeating-linear-gradient(
90deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
box-shadow: 0 0 14px rgba(59, 130, 246, 0.14);
}
.how-it-works-flow-line.vertical {
width: 2px;
height: 100%;
background-image: repeating-linear-gradient(
180deg,
rgba(96, 165, 250, 0.78) 0,
rgba(96, 165, 250, 0.78) 14px,
rgba(96, 165, 250, 0.08) 14px,
rgba(96, 165, 250, 0.08) 26px
);
background-size: 2px 28px;
animation: how-it-works-dash-flow-vertical 10s linear infinite;
}
.how-it-works-flow-line.vertical.light {
background-image: repeating-linear-gradient(
180deg,
rgba(59, 130, 246, 0.6) 0,
rgba(59, 130, 246, 0.6) 12px,
rgba(59, 130, 246, 0.12) 12px,
rgba(59, 130, 246, 0.12) 24px
);
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/index.css` around lines 25 - 74, The animated repeating gradients
(.how-it-works-flow-line and .how-it-works-flow-line.vertical) use infinite
animations (how-it-works-dash-flow and how-it-works-dash-flow-vertical) which
should be disabled for users who set prefers-reduced-motion; add a media query
`@media` (prefers-reduced-motion: reduce) that targets .how-it-works-flow-line,
.how-it-works-flow-line.light, .how-it-works-flow-line.vertical and
.how-it-works-flow-line.vertical.light and set animation: none !important;
transition: none !important; and optionally reduce or remove strong visual
effects like box-shadow (e.g., box-shadow: none) to fully respect the user
preference while keeping the same selectors and keyframe names referenced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI enhancement

2 participants