Skip to content

feat(landing): theme toggle support for landing#177

Open
anirudhprmar wants to merge 2 commits into
getpaykit:mainfrom
anirudhprmar:feat(landing)/light-theme
Open

feat(landing): theme toggle support for landing#177
anirudhprmar wants to merge 2 commits into
getpaykit:mainfrom
anirudhprmar:feat(landing)/light-theme

Conversation

@anirudhprmar
Copy link
Copy Markdown
Contributor

@anirudhprmar anirudhprmar commented May 12, 2026

Issue : #75
now a user can toggle both light or dark mode accordingly.

dark mode :
screenshot-2026-05-12_16-25-16

light mode :
screenshot-2026-05-12_16-25-27

Summary by CodeRabbit

  • New Features

    • Theme toggle added to the navigation bar (visible on mobile and desktop) so users can switch between light and dark modes.
  • Bug Fixes / Behavior Change

    • Root layout no longer forces dark styling by default, allowing the app to respect the selected theme.

Review Change Stack

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 12, 2026

@anirudhprmar is attempting to deploy a commit to the maxktz Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 6669d7c3-5e3e-4acb-8109-1d6b4ed6c18d

📥 Commits

Reviewing files that changed from the base of the PR and between e01e816 and b846ec2.

📒 Files selected for processing (1)
  • apps/web/src/components/layout/navigation-bar.tsx

📝 Walkthrough

Walkthrough

Removes the hardcoded dark class from the marketing layout container and adds a ThemeToggle component to the navigation bar in both mobile and desktop headers.

Changes

Theme Toggle Feature

Layer / File(s) Summary
Navigation bar: add ThemeToggle
apps/web/src/components/layout/navigation-bar.tsx
Imports ThemeToggle and renders it in the mobile header next to the menu toggle and in the desktop nav control area next to the GitHub button; reformats a motion transition prop for readability.
Remove hardcoded dark class from marketing layout
apps/web/src/app/(marketing)/layout.tsx
Deletes the dark class from the outer container's class list so theme is not forced at layout level.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A tiny toggle hops into sight,
Navbar holds day and holds the night,
The layout shed its one dark coat,
Now users choose which theme to float,
Hooray — light, dark, and rabbit delight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.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 'feat(landing): theme toggle support for landing' directly and accurately describes the main change: adding theme toggle functionality to the landing page. It is concise, specific, and clearly summarizes the primary objective of the changeset.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/src/components/layout/navigation-bar.tsx (1)

108-127: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Theme toggle missing from mobile navigation.

The ThemeToggle component is only rendered in the desktop navigation (line 228) but is not accessible in the mobile header or menu overlay. Mobile users cannot switch themes, creating an inconsistent user experience across device sizes.

Consider adding the ThemeToggle to the mobile header controls alongside the menu button, or include it in the mobile overlay menu.

📱 Proposed fix: Add ThemeToggle to mobile header
         >
           <SectionShell className="flex items-center justify-between">
             <BrandMenu linkClassName="gap-1 px-5 py-3" wordmarkClassName="scale-95" />
-            <button
-              type="button"
-              aria-label={mobileMenuOpen ? "Close navigation menu" : "Open navigation menu"}
-              aria-controls="mobile-navigation-menu"
-              aria-expanded={mobileMenuOpen}
-              onClick={() => setMobileMenuOpen((prev) => !prev)}
-              className="text-foreground/65 dark:text-foreground/50 hover:text-foreground/80 px-5 py-3 transition-colors"
-            >
-              {mobileMenuOpen ? <X size={18} /> : <Menu size={18} />}
-            </button>
+            <div className="flex items-center gap-2">
+              <ThemeToggle />
+              <button
+                type="button"
+                aria-label={mobileMenuOpen ? "Close navigation menu" : "Open navigation menu"}
+                aria-controls="mobile-navigation-menu"
+                aria-expanded={mobileMenuOpen}
+                onClick={() => setMobileMenuOpen((prev) => !prev)}
+                className="text-foreground/65 dark:text-foreground/50 hover:text-foreground/80 px-5 py-3 transition-colors"
+              >
+                {mobileMenuOpen ? <X size={18} /> : <Menu size={18} />}
+              </button>
+            </div>
           </SectionShell>
         </motion.div>
🤖 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 `@apps/web/src/components/layout/navigation-bar.tsx` around lines 108 - 127,
The mobile header is missing the ThemeToggle, so add the ThemeToggle component
into the mobile UI (either next to the menu button inside the
motion.div/SectionShell block or inside the mobile overlay rendered when
mobileMenuOpen is true) so mobile users can change themes; update the JSX where
BrandMenu, the menu button (onClick uses setMobileMenuOpen) and icons (X/Menu)
are rendered to include <ThemeToggle /> (with any appropriate props already used
by the desktop ThemeToggle) and ensure accessibility attributes match the
surrounding controls.
🤖 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.

Outside diff comments:
In `@apps/web/src/components/layout/navigation-bar.tsx`:
- Around line 108-127: The mobile header is missing the ThemeToggle, so add the
ThemeToggle component into the mobile UI (either next to the menu button inside
the motion.div/SectionShell block or inside the mobile overlay rendered when
mobileMenuOpen is true) so mobile users can change themes; update the JSX where
BrandMenu, the menu button (onClick uses setMobileMenuOpen) and icons (X/Menu)
are rendered to include <ThemeToggle /> (with any appropriate props already used
by the desktop ThemeToggle) and ensure accessibility attributes match the
surrounding controls.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 50ea83fd-8d93-472f-afa2-6a884f250f7b

📥 Commits

Reviewing files that changed from the base of the PR and between 5715e18 and e01e816.

📒 Files selected for processing (2)
  • apps/web/src/app/(marketing)/layout.tsx
  • apps/web/src/components/layout/navigation-bar.tsx

@anirudhprmar
Copy link
Copy Markdown
Contributor Author

Mobile view :
screenshot-2026-05-12_16-44-27

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