Skip to content

Add Mobile Menu with lifecycle-phase accordion for Services - #16

Merged
brandonmarshal merged 2 commits into
developfrom
feature/mobile-menu
Jul 29, 2026
Merged

Add Mobile Menu with lifecycle-phase accordion for Services#16
brandonmarshal merged 2 commits into
developfrom
feature/mobile-menu

Conversation

@brandonmarshal

@brandonmarshal brandonmarshal commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • New parts/mobile-menu.html template part, registered in theme.json, wired to the header's core/navigation via Ollie Menu Designer's mobileMenuSlug (drawer breakpoint raised to 1024px so tablets get it too, not just phones).
  • All 8 real nav items in order (Work, Solutions, Services, Systems, Pricing, Insights, About, Contact); 6 use native core/details accordions reusing the theme's existing chevron/hover mechanism, with Systems and Contact as plain links.
  • Services accordion is phase-grouped (Discover → Evolve) with colour-coded dots and dashed dividers between phase groups, content ported from the existing desktop Services mega menu.
  • Footer CTAs (Book a consultation / Start a project) reuse the existing button-secondary / button-secondary-outline styles.
  • Added add_theme_support('custom-logo') so core/site-logo renders in the menu's logo row.
  • New src/scss/animations/_mobile-menu-motion.scss: styles WP core's native overlay close button to match the header's icon-button treatment, aligns the logo row with it, and normalizes row height/spacing across all accordion and link rows.

Test plan

Static checks:

  • npm run lint:json — passed
  • npm run schema:validate — passed
  • npm run security:scan — passed
  • npm run build:css compiles cleanly

Verified live on a local WordPress instance:

  • Drawer opens/closes correctly at 380px and at 820px (tablet), covering the raised 1024px breakpoint
  • All 8 nav items present in the correct order; 6 accordions expand/collapse correctly with matching content to their desktop mega menus
  • Services accordion shows all 6 lifecycle phases with correct colour-coded dots and dividers
  • Template part parses cleanly via parse_blocks() — no invalid/freeform block content
  • Close button and logo row aligned on the same line with consistent row spacing throughout

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a responsive mobile navigation drawer with sections for Work, Solutions, Services, Pricing, Insights, and About.
    • Added accordion navigation, standalone links, branded logo area, and mobile call-to-action buttons.
    • Enabled the mobile menu at screen widths up to 1024px.
    • Added support for displaying the site logo in the mobile menu.
  • Style

    • Added responsive styling, dividers, focus and hover states, and reduced-motion behavior for the mobile menu.

- New parts/mobile-menu.html template part, registered in theme.json, wired to the header's core/navigation via Ollie Menu Designer's mobileMenuSlug (drawer breakpoint raised to 1024px so tablets get it too, not just phones)
- All 8 real nav items in order (Work, Solutions, Services, Systems, Pricing, Insights, About, Contact); 6 use native core/details accordions reusing the theme's existing chevron/hover mechanism, with Systems and Contact as plain links
Services accordion is phase-grouped (Discover → Evolve) with colour-coded dots and dashed dividers between phase groups, content ported from the existing desktop Services mega menu
Footer CTAs (Book a consultation / Start a project) reuse the existing button-secondary / button-secondary-outline styles
Added add_theme_support('custom-logo') so core/site-logo renders in the menu's logo row
New src/scss/animations/_mobile-menu-motion.scss: styles WP core's native overlay close button to match the header's icon-button treatment, aligns the logo row with it, and normalizes row height/spacing across all accordion and link rows
@brandonmarshal brandonmarshal added area:navigation Menus & nav UX area:theme Theme & styles (templates, template parts, FSE) comp:theme-json Tokens, presets, settings lang:css Stylesheets lang:php PHP code priority:normal Default priority for most issues. labels Jul 29, 2026
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@brandonmarshal, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: a4d62a92-bc1e-4b46-8327-9ffe2960e008

📥 Commits

Reviewing files that changed from the base of the PR and between 4ef083f and b5456d7.

📒 Files selected for processing (4)
  • assets/css/animations.css
  • functions.php
  • parts/mobile-menu.html
  • src/scss/animations/_mobile-menu-motion.scss

Note

.coderabbit.yml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "version"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
📝 Walkthrough

Walkthrough

The theme adds a responsive mobile navigation drawer with a registered template part, header breakpoint configuration, accordion-based menu markup, custom logo support, and styling for rows, controls, actions, separators, branding, and reduced-motion behavior.

Changes

Mobile Menu Drawer

Layer / File(s) Summary
Mobile menu registration and navigation wiring
functions.php, theme.json, patterns/header.php
Custom logo support and the mobile-menu template part are registered, and header navigation is configured to activate the drawer at 1024px.
Mobile menu structure and actions
parts/mobile-menu.html
The template part adds the logo area, Work, Solutions, Services, Pricing, Insights, and About accordions, standalone links, and two action buttons.
Mobile drawer styling and motion
src/scss/animations.scss, src/scss/animations/_mobile-menu-motion.scss, assets/css/animations.css
Drawer controls, accordion rows, links, CTAs, separators, branding, logo sizing, and reduced-motion behavior are styled in source and compiled CSS.

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

Sequence Diagram(s)

sequenceDiagram
  participant Visitor
  participant HeaderNavigation
  participant MobileMenuDrawer
  participant BrowserStyles
  Visitor->>HeaderNavigation: Opens navigation below 1024px
  HeaderNavigation->>MobileMenuDrawer: Activates mobileMenuSlug drawer
  MobileMenuDrawer->>BrowserStyles: Applies drawer and accordion styles
  Visitor->>MobileMenuDrawer: Expands a menu section or selects an action
Loading

Suggested labels: comp:template-parts, comp:block-patterns, lang:json

Suggested reviewers: zaredrogers, krugazul, ashleyshaw

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding a mobile menu with a Services accordion.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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
🛠️ Fix failing CI checks 💡
  • Fix failing CI checks
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/mobile-menu

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.

@mergify

mergify Bot commented Jul 29, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@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: 3

🤖 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 `@parts/mobile-menu.html`:
- Around line 9-213: Replace every placeholder href in the mobile menu,
including service, solution, case-study, and CTA links, with the corresponding
real deployment-independent destination; also replace any localhost URLs in the
affected navigation entries. Update the anchors throughout the mobile-menu
accordion sections and preserve each item’s existing label and structure.

In `@patterns/header.php`:
- Line 18: Update the file header docblock in patterns/header.php to include the
project’s required `@package` tag, placing it at the indicated position near the
top of the file while preserving the existing navigation markup.

In `@src/scss/animations/_mobile-menu-motion.scss`:
- Around line 114-116: Update the mobile drawer focus handling around
&:focus-within in src/scss/animations/_mobile-menu-motion.scss:114-116 to add a
visible :focus-visible outline or ring for accordion summaries and plain menu
links instead of removing focus treatment; regenerate the corresponding compiled
styles in assets/css/animations.css:1587-1589 from the corrected Sass source.
🪄 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: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: 667f40fc-ef29-4bd9-9a36-cd292c3f0ddd

📥 Commits

Reviewing files that changed from the base of the PR and between 1289b92 and 4ef083f.

📒 Files selected for processing (7)
  • assets/css/animations.css
  • functions.php
  • parts/mobile-menu.html
  • patterns/header.php
  • src/scss/animations.scss
  • src/scss/animations/_mobile-menu-motion.scss
  • theme.json

Comment thread parts/mobile-menu.html
Comment thread patterns/header.php
Comment thread src/scss/animations/_mobile-menu-motion.scss

Copilot AI 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.

Pull request overview

This PR introduces a new mobile navigation drawer (driven by Ollie Menu Designer’s mobileMenuSlug) and associated styling, wiring it into the existing header Navigation block and adding the theme support needed for a Site Logo row within the drawer.

Changes:

  • Registers a new mobile-menu template part and adds a new parts/mobile-menu.html drawer layout.
  • Adds mobile-menu-specific motion/layout styles via a new Sass partial and includes it in the animations bundle.
  • Enables custom-logo theme support so core/site-logo renders in the mobile menu.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
theme.json Registers the new mobile-menu template part so it’s discoverable/usable by WordPress.
parts/mobile-menu.html Adds the drawer’s block markup (brand row, accordions, links, CTAs).
patterns/header.php Wires the header core/navigation to the new mobile menu via mobileMenuSlug and breakpoint settings.
functions.php Adds add_theme_support( 'custom-logo' ) to enable the Site Logo block output.
src/scss/animations/_mobile-menu-motion.scss Introduces styling for the responsive container close button and drawer row normalisation.
src/scss/animations.scss Includes the new mobile menu motion partial in the animations build.
assets/css/animations.css Updates compiled animations CSS to include the new mobile menu styles.
Comments suppressed due to low confidence (2)

parts/mobile-menu.html:319

  • Avoid environment-specific absolute URLs in theme files. This link hard-codes a localhost domain, which will break on non-local installs; use a root-relative URL (or a Navigation Link block) instead.
<p class="mobile-menu-link-row"><a href="http://localhost:8882/contact/">Contact</a></p>

src/scss/animations/_mobile-menu-motion.scss:21

  • This selector is currently global and will restyle the responsive overlay close button for any Navigation block on the site. Scope it to the header to avoid affecting Navigation blocks used elsewhere.
.wp-block-navigation__responsive-container-close {

Comment thread parts/mobile-menu.html Outdated
Comment thread src/scss/animations/_mobile-menu-motion.scss Outdated
Comment thread src/scss/animations/_mobile-menu-motion.scss Outdated
Comment thread functions.php
…ctor scoping

- Restore visible :focus-visible outline on accordion rows and links
- Replace hardcoded localhost URLs with root-relative paths (Systems, Contact)
- Scope close-button selectors to .site-header
- Correct site logo comment wording in functions.php
@brandonmarshal

Copy link
Copy Markdown
Collaborator Author

Reviewed all CodeRabbit and Copilot recommendations.

Applied:

  • Restored the focus outline on accordion rows/links
  • Replaced hardcoded localhost URLs with root-relative paths
  • Scoped the close-button selectors to the header
  • Fixed a comment wording issue in functions.php

Copilot AI 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.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

patterns/header.php:18

  • The header pattern still hard-codes a localhost image URL for the brand mark. This will break in any non-local environment, and now that the theme supports custom-logo it should use core/site-logo instead so the logo is managed via the Site Editor.
<div class="wp-block-group"><!-- wp:image {"id":225,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="http://localhost:8882/wp-content/uploads/2026/07/image-1.png" alt="<?php echo esc_attr__( 'LightSpeed', 'ls-theme' ); ?>" class="wp-image-225"/></figure>
<!-- /wp:image -->

<!-- wp:navigation {"ref":226,"mobileMenuSlug":"mobile-menu","mobileMenuBreakpointEnabled":true,"mobileMenuBreakpoint":1024,"layout":{"type":"flex","justifyContent":"left","flexWrap":"nowrap"}} /-->

@ZaredRogers ZaredRogers left a comment

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.

Looks good @brandonmarshal

@brandonmarshal
brandonmarshal merged commit d1d94e8 into develop Jul 29, 2026
6 of 8 checks passed
@brandonmarshal
brandonmarshal deleted the feature/mobile-menu branch July 29, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:navigation Menus & nav UX area:theme Theme & styles (templates, template parts, FSE) comp:theme-json Tokens, presets, settings lang:css Stylesheets lang:php PHP code priority:normal Default priority for most issues.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants