Skip to content

Conversation

@successbyte
Copy link

@successbyte successbyte commented Jan 9, 2026

Description
Fixes visual issues in header dropdown menus (Docs, Tools, Community) where shadows and border radius were inconsistent or missing.

Related issue(s)
Fixes #4911

Changes

  • Flyout menus now have:
    • consistent shadow-lg on all sides
    • rounded-lg border radius on all corners
  • No changes to Navbar logic or behavior
  • Minimal changes to prevent introducing new layout issues

Screenshots after fix:
Screenshot From 2026-01-09 22-54-52

Screenshot From 2026-01-09 22-54-33 Screenshot From 2026-01-09 22-55-29

Result

  • Dropdowns now visually appear as floating popups above the page content
  • Shadow is visible on all sides
  • Rounded corners are consistent, including for scrollable community dropdowns

Summary by CodeRabbit

  • Style

    • Improved the navigation flyout menu’s visual presentation with cleaner spacing, a white background, rounded corners, and enhanced shadowing for better depth and polish.
  • Refactor

    • Simplified the flyout’s internal layout by flattening redundant wrappers into a single responsive grid container, preserving two-column behavior and existing responsive sizing.

✏️ Tip: You can customize this high-level summary in your review settings.

@netlify
Copy link

netlify bot commented Jan 9, 2026

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit be1e923
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-website/deploys/6961c3978e042a0008825ff2
😎 Deploy Preview https://deploy-preview-4915--asyncapi-website.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
Contributor

coderabbitai bot commented Jan 9, 2026

📝 Walkthrough

Walkthrough

The FlyoutMenu component was simplified and restyled: redundant nested wrappers were removed and the main container now includes bg-white, rounded-lg, shadow-lg, adjusted padding/gaps, and md:max-h-[80vh] to constrain height responsively.

Changes

Cohort / File(s) Summary
FlyoutMenu styling refinement
components/navigation/FlyoutMenu.tsx
Replaced multiple nested wrapper elements with a single grid container. Added bg-white, rounded-lg, shadow-lg; preserved overflow-x-auto, width/padding constraints, updated height constraint to md:max-h-[80vh], and adjusted padding/gap values.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐰 I hopped in swift to tweak the view,
Rounded corners, shadows new,
One tidy grid, no layers cluttered,
The menu’s light, the code’s unuttered.
A little polish, soft and bright—cheer through!

🚥 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 describes the main change: adding consistent shadow and border radius to header dropdowns, which matches the primary focus of the code changes.
Linked Issues check ✅ Passed The code changes directly address all requirements from issue #4911: adding shadow-lg and rounded-lg classes to the FlyoutMenu component ensures consistent shadow on all sides and border radius on all corners for all header dropdowns.
Out of Scope Changes check ✅ Passed All changes are scoped to the FlyoutMenu component styling to address visual consistency issues; no unrelated modifications or logic changes were introduced.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e78ac2c and be1e923.

📒 Files selected for processing (1)
  • components/navigation/FlyoutMenu.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • components/navigation/FlyoutMenu.tsx

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.

@asyncapi-bot
Copy link
Contributor

asyncapi-bot commented Jan 9, 2026

⚡️ Lighthouse report for the changes in this PR:

Category Score
🔴 Performance 34
🟢 Accessibility 98
🟢 Best practices 92
🟢 SEO 100
🔴 PWA 33

Lighthouse ran on https://deploy-preview-4915--asyncapi-website.netlify.app/

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

🤖 Fix all issues with AI agents
In @components/navigation/FlyoutMenu.tsx:
- Line 20: The JSX in FlyoutMenu.tsx uses double quotes for the className
attribute on the div (the element with "relative z-20 grid gap-6 px-5 py-6
sm:gap-8 sm:p-8 lg:grid-cols-2"); update the attribute to use single quotes to
match project linting rules (e.g., change className="..." to className='...')
and ensure any other JSX attributes in the FlyoutMenu component follow the same
single-quote style.
- Around line 17-18: The className attribute on the FlyoutMenu JSX element is
too long and uses double quotes; split the className string across multiple
concatenated/interpolated segments or use template literals to keep each line
under 120 chars and change all JSX attribute quotes to single quotes to match
project style; update the JSX element that contains className='absolute z-50
...' (data-testid='Flyout-main') so the className value is wrapped in single
quotes and reformatted across lines (or refactored into a const/classNames
helper) to satisfy the 120-char lint rule and maintain the same classes and
order.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2fd8c44 and e78ac2c.

📒 Files selected for processing (1)
  • components/navigation/FlyoutMenu.tsx
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-12-29T14:21:28.216Z
Learnt from: sammy200-ui
Repo: asyncapi/website PR: 4804
File: components/navigation/Filter.tsx:32-41
Timestamp: 2025-12-29T14:21:28.216Z
Learning: In the asyncapi/website repository, when you intentionally omit dependencies in React hooks (e.g., useEffect, useMemo), add an eslint-disable comment with an explanatory note above the line to justify the design choice. For example: // eslint-disable-next-line react-hooks/exhaustive-deps: intentionally omitting dependencies to avoid unnecessary re-runs. This helps reviewers understand the rationale and keeps lint guidance informative.

Applied to files:

  • components/navigation/FlyoutMenu.tsx
🧬 Code graph analysis (1)
components/navigation/FlyoutMenu.tsx (1)
components/navigation/MenuBlocks.tsx (1)
  • MenuBlocks (28-72)
🪛 GitHub Actions: PR testing - if Node project
components/navigation/FlyoutMenu.tsx

[error] 17-17: max-len: This line has a length of 196. Maximum allowed is 120.


[error] 17-17: prettier/prettier: Replace line with a shorter version. Unexpected usage of doublequote.


[error] 17-17: jsx-quotes: Unexpected usage of doublequote.


[error] 18-18: prettier/prettier: Replace '"Flyout-main"' with 'Flyout-main'.


[error] 18-18: jsx-quotes: Unexpected usage of doublequote.


[error] 20-20: prettier/prettier: Replace line with shorter version. Replace '"relative·z-20·grid·gap-6·px-5·py-6·sm:gap-8·sm:p-8·lg:grid-cols-2"' with 'relative·z-20·grid·gap-6·px-5·py-6·sm:gap-8·sm:p-8·lg:grid-cols-2'.


[error] 20-20: prettier/prettier: Unexpected usage of doublequote.

Comment on lines 17 to 18
className="absolute z-50 bg-white rounded-lg -ml-4 md:max-h-[80vh] shadow-lg overflow-x-auto w-screen max-w-md pt-3 md:ml-12 md:-translate-x-1/2 lg:left-1/2 lg:max-w-3xl lg:-translate-x-1/2"
data-testid="Flyout-main"
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 | 🔴 Critical

Fix linting errors: line length and JSX quote style.

The pipeline is failing due to linting violations:

  1. Line 17 exceeds the 120-character limit (196 chars)
  2. JSX attributes use double quotes instead of single quotes (project standard)

The styling changes correctly implement the PR objectives (consistent shadow and border radius), but the code must comply with linting rules.

🔧 Proposed fix
-      className="absolute z-50 bg-white rounded-lg -ml-4 md:max-h-[80vh] shadow-lg overflow-x-auto w-screen max-w-md pt-3 md:ml-12 md:-translate-x-1/2 lg:left-1/2 lg:max-w-3xl lg:-translate-x-1/2"
-      data-testid="Flyout-main"
+      className='absolute z-50 -ml-4 w-screen max-w-md overflow-x-auto rounded-lg bg-white pt-3 shadow-lg md:ml-12 md:max-h-[80vh] md:-translate-x-1/2 lg:left-1/2 lg:max-w-3xl lg:-translate-x-1/2'
+      data-testid='Flyout-main'

Note: The className has been reorganized for readability while staying under the line length limit, and all quotes have been changed to single quotes per project standards.

📝 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
className="absolute z-50 bg-white rounded-lg -ml-4 md:max-h-[80vh] shadow-lg overflow-x-auto w-screen max-w-md pt-3 md:ml-12 md:-translate-x-1/2 lg:left-1/2 lg:max-w-3xl lg:-translate-x-1/2"
data-testid="Flyout-main"
className='absolute z-50 -ml-4 w-screen max-w-md overflow-x-auto rounded-lg bg-white pt-3 shadow-lg md:ml-12 md:max-h-[80vh] md:-translate-x-1/2 lg:left-1/2 lg:max-w-3xl lg:-translate-x-1/2'
data-testid='Flyout-main'
🧰 Tools
🪛 GitHub Actions: PR testing - if Node project

[error] 17-17: max-len: This line has a length of 196. Maximum allowed is 120.


[error] 17-17: prettier/prettier: Replace line with a shorter version. Unexpected usage of doublequote.


[error] 17-17: jsx-quotes: Unexpected usage of doublequote.


[error] 18-18: prettier/prettier: Replace '"Flyout-main"' with 'Flyout-main'.


[error] 18-18: jsx-quotes: Unexpected usage of doublequote.

🤖 Prompt for AI Agents
In @components/navigation/FlyoutMenu.tsx around lines 17 - 18, The className
attribute on the FlyoutMenu JSX element is too long and uses double quotes;
split the className string across multiple concatenated/interpolated segments or
use template literals to keep each line under 120 chars and change all JSX
attribute quotes to single quotes to match project style; update the JSX element
that contains className='absolute z-50 ...' (data-testid='Flyout-main') so the
className value is wrapped in single quotes and reformatted across lines (or
refactored into a const/classNames helper) to satisfy the 120-char lint rule and
maintain the same classes and order.

@successbyte successbyte force-pushed the header-dropdown-shadow branch from e78ac2c to 4c4d107 Compare January 10, 2026 03:10
@codecov
Copy link

codecov bot commented Jan 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2fd8c44) to head (be1e923).

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #4915   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           22        22           
  Lines          796       796           
  Branches       146       146           
=========================================
  Hits           796       796           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

[DESIGN]: Header dropdown menus lack consistent shadow and border styling

2 participants