Skip to content

Marketing pages UI updates - #136

Merged
Smartlify07 merged 6 commits into
mainfrom
marketing-pages-ui-updates
Aug 7, 2026
Merged

Marketing pages UI updates#136
Smartlify07 merged 6 commits into
mainfrom
marketing-pages-ui-updates

Conversation

@Smartlify07

@Smartlify07 Smartlify07 commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Redesign and polish of the public marketing pages.

Changes

  • Reworked the homepage with new hero, community, empowerment, practical pathways, stories, and invest-in-hope sections
  • Updated CTA section copy and styling
  • Improved donation form and footer responsive layout
  • Various responsive and typography tweaks across marketing components
  • Added new homepage imagery under \public/figma-home/\
  • Active nav item highlighting and CTA button color updates
  • Refreshed README and documented frontend refactor practices in AGENTS.md

Summary by CodeRabbit

  • New Features

    • Added refreshed marketing sections focused on empowerment, community, practical pathways, personal stories, and investing in hope.
    • Added donation options with preset or custom amounts, recurring frequency, fee details, and payment authorization.
    • Added rotating community testimonials with previous/next navigation.
    • Added active-state highlighting for mobile navigation links.
  • Improvements

    • Replaced the hero area with a streamlined responsive design and updated messaging.
    • Refined colors, typography, spacing, and responsive layouts across the marketing experience.
  • Documentation

    • Added comprehensive setup, configuration, project, and contribution guidance.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
modern-advocates Building Building Preview Aug 7, 2026 1:18am

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR replaces the default project documentation, adds frontend workflow guidance, and refreshes the marketing landing page. It introduces new marketing sections, donation controls, testimonial navigation, route-aware mobile navigation, and updated shared styling.

Changes

Marketing platform refresh

Layer / File(s) Summary
Project guidance and documentation
AGENTS.md, README.md
Adds frontend workflow, verification, shared infrastructure, conflict-resolution guidance, and project-specific setup documentation.
Shared presentation and utility updates
src/app/globals.css, src/app/layout.tsx, src/shared/ui/button.tsx, src/shared/ui/marketing-container.tsx, src/shared/ui/select.tsx, src/shared/lib/api-handler.ts
Adds Playfair font mapping and number-input styling, updates shared button and container classes, changes a utility import path, and reformats API error handling without changing runtime behavior.
Marketing page composition and static sections
src/app/(marketing)/page.tsx, src/features/marketing/components/{hero-section,empowerment-section,community-section,practical-pathways-section,invest-in-hope-section,cta-section,faq,footer}.tsx
Replaces the hero and mission content with new empowerment, community, practical pathways, and investment sections, while updating supporting layout and messaging.
Donation and navigation interactions
src/features/marketing/components/{donation-form,stories-from-our-community-section,navbar}.tsx
Adds donation amount, frequency, authorization, fee, and total controls; adds cyclic testimonial navigation; and highlights the active mobile route.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Poem

A rabbit hops through hope’s new page,
With gifts and stories set on stage.
Buttons bloom in colors bright,
Paths guide hearts toward futures light.
“Donate,” says Bun, “and browse with cheer!”

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary marketing pages redesign and UI updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch marketing-pages-ui-updates

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.

@Smartlify07
Smartlify07 merged commit db78753 into main Aug 7, 2026
1 of 3 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🧹 Nitpick comments (7)
src/features/marketing/components/invest-in-hope-section.tsx (1)

6-9: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Replace arbitrary presentation values with design tokens.

Line 6 uses bg-[#ECE8FF]. Line 9 uses sm:text-[3.5rem]. Use semantic color and typography tokens instead.

As per coding guidelines, do not use arbitrary hex colors or spacing; use design tokens.

🤖 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/features/marketing/components/invest-in-hope-section.tsx` around lines 6
- 9, In the InvestInHope section markup, replace the arbitrary bg-[`#ECE8FF`]
class and sm:text-[3.5rem] class with the project’s semantic background-color
and typography tokens, preserving the existing responsive styling and visual
intent.

Source: Coding guidelines

src/features/marketing/components/empowerment-section.tsx (2)

10-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reuse the shared marketing container.

These sites duplicate the layout contract already provided by src/shared/ui/marketing-container.tsx.

  • src/features/marketing/components/empowerment-section.tsx#L10-L10: Replace the raw container with MarketingContainer and retain section padding through className.
  • src/features/marketing/components/invest-in-hope-section.tsx#L7-L7: Replace the raw container with MarketingContainer and retain grid classes through className.
  • src/features/marketing/components/navbar.tsx#L26-L26: Replace the raw container with MarketingContainer and retain header-specific classes through className.

As per coding guidelines, reuse shared UI components instead of creating equivalent components.

🤖 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/features/marketing/components/empowerment-section.tsx` at line 10,
Replace the raw containers with MarketingContainer in
src/features/marketing/components/empowerment-section.tsx#L10-L10,
src/features/marketing/components/invest-in-hope-section.tsx#L7-L7, and
src/features/marketing/components/navbar.tsx#L26-L26; preserve each site’s
existing section padding, grid classes, or header-specific classes through
className.

Source: Coding guidelines


27-27: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Replace arbitrary color and spacing values with design tokens.

Lines 27, 82, 108, 137, and 173 use arbitrary hex colors. Lines 36, 63, 139, 151, and 177 use arbitrary bracketed spacing values. Define or reuse semantic design tokens for these values.

As per coding guidelines, do not use arbitrary hex colors or spacing; use design tokens.

Also applies to: 36-36, 63-63, 82-82, 108-108, 137-137, 139-139, 151-151, 173-177

🤖 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/features/marketing/components/empowerment-section.tsx` at line 27,
Replace the arbitrary Tailwind color values on the empowerment section container
and the referenced elements with existing or newly defined semantic color
tokens. Replace the bracketed spacing values in the same component with the
appropriate spacing/design tokens, preserving the current layout and styling
while eliminating all arbitrary hex colors and spacing utilities.

Source: Coding guidelines

src/features/marketing/components/donation-form.tsx (1)

130-130: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use design tokens for button dimensions.

Line 130 uses arbitrary height and radius values. Use the shared Button size and radius tokens instead.

As per coding guidelines, do not use arbitrary hex colors or spacing; use design tokens.

🤖 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/features/marketing/components/donation-form.tsx` at line 130, Update the
Button in the donation form to replace the arbitrary h-[51px] height and
rounded-[60px] radius with the shared Button size and radius design tokens,
while preserving its existing color and hover styling.

Source: Coding guidelines

src/features/marketing/components/practical-pathways-section.tsx (1)

5-5: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use a semantic background token.

Line 5 uses the arbitrary #111827 value. Reuse an existing semantic dark-surface token or add one to the design-token definition.

As per coding guidelines, “Do not use arbitrary hex colors or spacing; use design tokens.”

🤖 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/features/marketing/components/practical-pathways-section.tsx` at line 5,
Replace the arbitrary `#111827` background in the section element with the
existing semantic dark-surface design token; if no suitable token exists, add
one through the established design-token definition and use it here.

Source: Coding guidelines

src/features/marketing/components/footer.tsx (1)

16-16: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Replace the arbitrary column gap with a token.

Line 16 adds xl:gap-[154px]. Define a named layout-spacing token or use an existing spacing token so this value remains consistent across marketing layouts.

As per coding guidelines, “Do not use arbitrary hex colors or spacing; use design tokens.”

🤖 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/features/marketing/components/footer.tsx` at line 16, Replace the
arbitrary xl:gap-[154px] value in the footer grid class with an existing spacing
token, or define and use a named layout-spacing token if no suitable token
exists. Keep the responsive grid behavior unchanged and avoid introducing
another arbitrary spacing value.

Source: Coding guidelines

src/features/marketing/components/hero-section.tsx (1)

13-13: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Replace deprecated priority with preload.

next/image deprecated priority in Next.js 16 in favor of preload; switch this hero image to preload.

Proposed fix
-          priority
+          preload
🤖 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/features/marketing/components/hero-section.tsx` at line 13, Replace the
deprecated priority prop on the hero image component with preload, preserving
the image’s existing eager-loading behavior.

Source: Coding guidelines

🤖 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 `@AGENTS.md`:
- Around line 22-28: Align the verification instructions in AGENTS.md lines
22-28 and README.md lines 115-123: use pnpm typecheck, pnpm build, and pnpm lint
consistently, and require lint to introduce no new errors while allowing
documented pre-existing issues. Update both files’ command and pass/fail
guidance without changing the stated exception handling.

In `@README.md`:
- Around line 88-100: Update the README directory tree to include the shared
directories documented in AGENTS.md, specifically src/shared/ui and
src/shared/lib, so the structure reflects the repository’s actual organization
and guides contributors toward those shared locations.
- Around line 105-111: Update the README contribution workflow to match
AGENTS.md: replace the direct main-based feature-branch instructions with
stacked phase branches and explicit pull-request base management, and change
commit examples from feat: to the required refactor: P<N> <short name> format.
Ensure all referenced workflow steps use this single canonical convention.
- Line 87: Update the project-tree fenced code block in README.md to include a
language tag, preferably text, immediately after the opening fence so it
satisfies Markdownlint MD040.

In `@src/features/marketing/components/donation-form.tsx`:
- Around line 39-49: Wire the donation controls in DonationForm to controlled
state: update selectedPrice for preset amounts, store the custom amount, and
update selectedDonationType from the donation-type controls. Derive the fee and
total from these state values, then add submission handling to Donate Now that
validates the selection and starts checkout, using apiFetch for any server
request.

In `@src/features/marketing/components/navbar.tsx`:
- Line 22: Update the desktop navigation links near the desktop link group to
derive their active state from pathname, matching the mobile links: apply the
active class to the link whose destination matches pathname and set
aria-current="page" only for that link. Preserve the inactive presentation for
other links and apply the same behavior to the additional desktop link group.

---

Nitpick comments:
In `@src/features/marketing/components/donation-form.tsx`:
- Line 130: Update the Button in the donation form to replace the arbitrary
h-[51px] height and rounded-[60px] radius with the shared Button size and radius
design tokens, while preserving its existing color and hover styling.

In `@src/features/marketing/components/empowerment-section.tsx`:
- Line 10: Replace the raw containers with MarketingContainer in
src/features/marketing/components/empowerment-section.tsx#L10-L10,
src/features/marketing/components/invest-in-hope-section.tsx#L7-L7, and
src/features/marketing/components/navbar.tsx#L26-L26; preserve each site’s
existing section padding, grid classes, or header-specific classes through
className.
- Line 27: Replace the arbitrary Tailwind color values on the empowerment
section container and the referenced elements with existing or newly defined
semantic color tokens. Replace the bracketed spacing values in the same
component with the appropriate spacing/design tokens, preserving the current
layout and styling while eliminating all arbitrary hex colors and spacing
utilities.

In `@src/features/marketing/components/footer.tsx`:
- Line 16: Replace the arbitrary xl:gap-[154px] value in the footer grid class
with an existing spacing token, or define and use a named layout-spacing token
if no suitable token exists. Keep the responsive grid behavior unchanged and
avoid introducing another arbitrary spacing value.

In `@src/features/marketing/components/hero-section.tsx`:
- Line 13: Replace the deprecated priority prop on the hero image component with
preload, preserving the image’s existing eager-loading behavior.

In `@src/features/marketing/components/invest-in-hope-section.tsx`:
- Around line 6-9: In the InvestInHope section markup, replace the arbitrary
bg-[`#ECE8FF`] class and sm:text-[3.5rem] class with the project’s semantic
background-color and typography tokens, preserving the existing responsive
styling and visual intent.

In `@src/features/marketing/components/practical-pathways-section.tsx`:
- Line 5: Replace the arbitrary `#111827` background in the section element with
the existing semantic dark-surface design token; if no suitable token exists,
add one through the established design-token definition and use it here.
🪄 Autofix

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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 788f9ce8-3f26-4c35-909b-f159e7c91baa

📥 Commits

Reviewing files that changed from the base of the PR and between c918c0e and c9c8374.

⛔ Files ignored due to path filters (8)
  • public/figma-home/community-story-1.png is excluded by !**/*.png
  • public/figma-home/community-story-2.png is excluded by !**/*.png
  • public/figma-home/community-story-3.png is excluded by !**/*.png
  • public/figma-home/community-story-4.png is excluded by !**/*.png
  • public/figma-home/community-story-5.png is excluded by !**/*.png
  • public/figma-home/community.png is excluded by !**/*.png
  • public/figma-home/hero-life-direction.png is excluded by !**/*.png
  • public/figma-home/restoring-hope.png is excluded by !**/*.png
📒 Files selected for processing (20)
  • AGENTS.md
  • README.md
  • src/app/(marketing)/page.tsx
  • src/app/globals.css
  • src/app/layout.tsx
  • src/features/marketing/components/community-section.tsx
  • src/features/marketing/components/cta-section.tsx
  • src/features/marketing/components/donation-form.tsx
  • src/features/marketing/components/empowerment-section.tsx
  • src/features/marketing/components/faq.tsx
  • src/features/marketing/components/footer.tsx
  • src/features/marketing/components/hero-section.tsx
  • src/features/marketing/components/invest-in-hope-section.tsx
  • src/features/marketing/components/navbar.tsx
  • src/features/marketing/components/practical-pathways-section.tsx
  • src/features/marketing/components/stories-from-our-community-section.tsx
  • src/shared/lib/api-handler.ts
  • src/shared/ui/button.tsx
  • src/shared/ui/marketing-container.tsx
  • src/shared/ui/select.tsx

Comment thread AGENTS.md
Comment on lines +22 to +28
1. `npx tsc --noEmit` must be clean. If it reports generated-type errors (e.g. TS1128 in `.next`), delete stale generated output first: `Remove-Item -Recurse -Force .next\dev`, then re-run.
2. `npm run build` is the real gate. It can take 300-600s, so give it a generous timeout (600000 ms). Build-log warnings such as `BetterAuthError: default secret` are pre-existing.
3. `npm run lint` — compare against the known pre-existing issues; do not introduce new ones:
- `use-users.ts:6` unused `User` import
- `user-service.ts:4` unused `eq` import
- `use-pending-uploads` `set-state-in-effect` (line ~87) and unused `err` (line ~132)
4. When tsc/lint/build fails, confirm whether the issue is introduced by your change or pre-existing — check with `git stash` before "fixing" things.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use one verification contract across both documentation files.

The two files disagree on command invocation and on whether existing lint errors block the workflow.

  • AGENTS.md#L22-L28: use the canonical pnpm typecheck, pnpm build, and pnpm lint commands; require that lint introduces no new errors.
  • README.md#L115-L123: use the same commands and replace “All three must pass” with the documented pre-existing-lint exception.
📍 Affects 2 files
  • AGENTS.md#L22-L28 (this comment)
  • README.md#L115-L123
🤖 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 `@AGENTS.md` around lines 22 - 28, Align the verification instructions in
AGENTS.md lines 22-28 and README.md lines 115-123: use pnpm typecheck, pnpm
build, and pnpm lint consistently, and require lint to introduce no new errors
while allowing documented pre-existing issues. Update both files’ command and
pass/fail guidance without changing the stated exception handling.

Comment thread README.md
import { Button } from "@/components/ui/button";
## Project structure

```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language tag to the project-tree fence.

Markdownlint reports MD040 for this fence. Use text or another suitable language tag.

Proposed fix
-```
+```text
📝 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
```
🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 87-87: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 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 `@README.md` at line 87, Update the project-tree fenced code block in README.md
to include a language tag, preferably text, immediately after the opening fence
so it satisfies Markdownlint MD040.

Source: Linters/SAST tools

Comment thread README.md
Comment on lines +88 to +100
src/
├── app/ # Next.js App Router routes
│ ├── (admin)/ # Admin panel
│ ├── (auth)/ # Auth pages
│ ├── (course-player)/ # Course player
│ ├── (marketing)/ # Public marketing pages
│ ├── (user)/ # User dashboard, checkout, learning
│ └── api/ # API routes
├── components/ # Shared UI components
├── features/ # Feature modules (admin, auth, courses,
│ # marketing, orders, platform, videos)
├── infrastructure/ # Database config and scripts
└── lib/ # Shared libraries and utilities

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Document the shared directory structure.

The tree omits the documented src/shared/ui and src/shared/lib directories. Contributors may add duplicate components or utilities under src/components or src/lib. Update the tree to match the repository paths used by AGENTS.md.

🤖 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 `@README.md` around lines 88 - 100, Update the README directory tree to include
the shared directories documented in AGENTS.md, specifically src/shared/ui and
src/shared/lib, so the structure reflects the repository’s actual organization
and guides contributors toward those shared locations.

Comment thread README.md
Comment on lines +105 to +111
1. **Branch per task.** Create a feature branch off `main`:

```bash
git checkout -b feat/my-change
```

2. **Follow the repo conventions.** Read `AGENTS.md` first — it documents the frontend refactor practices, shared infrastructure to reuse, and anti-patterns to avoid.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Align the contribution workflow with AGENTS.md.

The README says to create a branch directly from main, but AGENTS.md requires stacked phase branches and explicit PR-base management. The README also gives feat: commit examples, while AGENTS.md requires refactor: P<N> <short name>. Use one canonical workflow.

Also applies to: 125-125

🤖 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 `@README.md` around lines 105 - 111, Update the README contribution workflow to
match AGENTS.md: replace the direct main-based feature-branch instructions with
stacked phase branches and explicit pull-request base management, and change
commit examples from feat: to the required refactor: P<N> <short name> format.
Ensure all referenced workflow steps use this single canonical convention.

Comment on lines +39 to +49
type DonationType = { label: string; value: string }
const donationTypes = [
{ label: "One time Donation", value: "one time" },
{ label: "Monthly Donation", value: "monthly_donation" },
{ label: "Fixed Donation", value: "fixed_donation" },
]

const DonationForm = () => {
const [selectedPrice, setSelectedPrice] = useState<null | number>(null)
const [selectedDonationType, setSelectedDonationType] =
useState<DonationType["value"]>("one_time")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

Connect donation controls to the donation calculation and checkout.

Lines 64-74 do not call setSelectedPrice. Lines 77-84 do not store the custom amount. Lines 89-106 do not update selectedDonationType. The fee and total at lines 121-128 therefore remain incorrect for every user selection.

Line 130 has no form action or click handler. The Donate Now control cannot start a checkout flow. Derive the fee and total from controlled donation state. Submit the validated selection to the checkout flow. If checkout requires a server request, use apiFetch.

As per coding guidelines, use apiFetch for all server calls.

Also applies to: 63-84, 89-106, 121-132

🤖 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/features/marketing/components/donation-form.tsx` around lines 39 - 49,
Wire the donation controls in DonationForm to controlled state: update
selectedPrice for preset amounts, store the custom amount, and update
selectedDonationType from the donation-type controls. Derive the fee and total
from these state values, then add submission handling to Donate Now that
validates the selection and starts checkout, using apiFetch for any server
request.

Source: Coding guidelines


const Navbar = () => {
const [mobileOpen, setMobileOpen] = useState(false)
const pathname = usePathname()

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Apply the active state to desktop navigation.

pathname only affects the mobile links. At desktop widths, every link at lines 42-49 has the same presentation. Apply the same active class and aria-current="page" value to the desktop link.

Also applies to: 98-104

🤖 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/features/marketing/components/navbar.tsx` at line 22, Update the desktop
navigation links near the desktop link group to derive their active state from
pathname, matching the mobile links: apply the active class to the link whose
destination matches pathname and set aria-current="page" only for that link.
Preserve the inactive presentation for other links and apply the same behavior
to the additional desktop link group.

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