Skip to content

chore: update responsive tab's more icon#6509

Merged
bijin-bruno merged 1 commit intomainfrom
feat/update-responsive-tabs-more-icon
Dec 26, 2025
Merged

chore: update responsive tab's more icon#6509
bijin-bruno merged 1 commit intomainfrom
feat/update-responsive-tabs-more-icon

Conversation

@bijin-bruno
Copy link
Collaborator

@bijin-bruno bijin-bruno commented Dec 26, 2025

Description

Update responsive tab's more icon

Contribution Checklist:

  • I've used AI significantly to create this pull request
  • The pull request only addresses one issue or adds one feature.
  • The pull request does not introduce any breaking changes
  • I have added screenshots or gifs to help explain the change if applicable.
  • I have read the contribution guidelines.
  • Create an issue and link to the pull request.

Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.

Publishing to New Package Managers

Please see here for more information.

Summary by CodeRabbit

  • Style
    • Updated the visual indicator for the responsive tabs overflow menu. The control now displays a single, larger chevron icon instead of a text label combined with a chevron, providing a cleaner interface.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 26, 2025

Walkthrough

Single file modification to the ResponsiveTabs component, replacing the "More" label and down chevron icon with a single right-facing chevron icon of increased size for the overflow menu trigger.

Changes

Cohort / File(s) Summary
UI Component Icon Update
packages/bruno-app/src/ui/ResponsiveTabs/index.js
Replaced dropdown indicator from "More" text + down chevron to a single IconChevronsRight icon; increased icon size.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • usebruno/bruno#6490: Modifies the same ResponsiveTabs component, adding expand/collapse logic and new props, so concurrent changes to the same file may need coordination.

Suggested reviewers

  • helloanoop
  • lohit-bruno
  • naman-bruno

Poem

A chevron so bold, pointing right with grace,
"More" text departs, leaves icon in place,
Tabs stay responsive, sleek and refined,
Design speaks volumes without the grind. ➡️

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: updating the icon used for the responsive tab's overflow menu trigger.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/update-responsive-tabs-more-icon

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.

@github-actions
Copy link

CLI Test Results

  1 files  ±0  140 suites  ±0   1m 1s ⏱️ +7s
235 tests ±0  235 ✅ ±0  0 💤 ±0  0 ❌ ±0 
301 runs  ±0  300 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit 0816eef. ± Comparison against base commit b41f497.

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

📜 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 b41f497 and 0816eef.

📒 Files selected for processing (1)
  • packages/bruno-app/src/ui/ResponsiveTabs/index.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-app/src/ui/ResponsiveTabs/index.js
🧠 Learnings (1)
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.

Applied to files:

  • packages/bruno-app/src/ui/ResponsiveTabs/index.js
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: Unit Tests
  • GitHub Check: CLI Tests
  • GitHub Check: Playwright E2E Tests
🔇 Additional comments (1)
packages/bruno-app/src/ui/ResponsiveTabs/index.js (1)

4-4: Import looks good—only IconChevronsRight is present with no unused imports.

Comment on lines 253 to 255
<div className="more-tabs select-none flex items-center cursor-pointer gap-1">
<span>More</span>
<IconChevronDown size={14} strokeWidth={2} />
<IconChevronsRight size={18} strokeWidth={2} />
</div>
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 | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

cat -n packages/bruno-app/src/ui/ResponsiveTabs/index.js | head -280 | tail -40

Repository: usebruno/bruno

Length of output: 1426


🏁 Script executed:

# Check the full context around lines 253-255
sed -n '240,260p' packages/bruno-app/src/ui/ResponsiveTabs/index.js

Repository: usebruno/bruno

Length of output: 658


🏁 Script executed:

# Check what icon libraries are imported in this file
head -30 packages/bruno-app/src/ui/ResponsiveTabs/index.js

Repository: usebruno/bruno

Length of output: 1159


🏁 Script executed:

# Search for similar dropdown triggers in the codebase to understand patterns
rg -A3 "aria-label.*[Dd]rop" --type js --type jsx --type ts --type tsx | head -30

Repository: usebruno/bruno

Length of output: 85


🏁 Script executed:

# Find other uses of IconChevronsRight to understand its typical usage
rg "IconChevronsRight" --type js --type jsx --type ts --type tsx

Repository: usebruno/bruno

Length of output: 85


🏁 Script executed:

find . -name "*MenuDropdown*" -type f

Repository: usebruno/bruno

Length of output: 40


🏁 Script executed:

# Check MenuDropdown implementation
cat -n packages/bruno-app/src/ui/MenuDropdown/index.js | head -100

Repository: usebruno/bruno

Length of output: 5390


🏁 Script executed:

# Search for other dropdown/menu button patterns with proper accessibility
rg -B2 -A5 "role=\"button\"" --type js --type ts | head -40

Repository: usebruno/bruno

Length of output: 1067


🏁 Script executed:

# Check how other dropdown triggers are implemented in the codebase
rg -B3 -A3 "placement=\"bottom" --type js --type ts | head -50

Repository: usebruno/bruno

Length of output: 4970


🏁 Script executed:

# Check how MenuDropdown renders its children and if it adds accessibility
sed -n '140,200p' packages/bruno-app/src/ui/MenuDropdown/index.js

Repository: usebruno/bruno

Length of output: 1918


🏁 Script executed:

# Check Dropdown component to see if it handles accessibility on trigger
find . -name "Dropdown.js" -o -name "Dropdown.jsx" | head -5

Repository: usebruno/bruno

Length of output: 40


🏁 Script executed:

# Look for uses of IconDots in dropdowns to understand the pattern
rg "IconDots.*size" --type js --type ts -B3 -A3 | head -50

Repository: usebruno/bruno

Length of output: 5109


🏁 Script executed:

# Check if there are any other ResponsiveTabs components to understand patterns
rg -l "ResponsiveTabs" --type js --type ts

Repository: usebruno/bruno

Length of output: 308


🏁 Script executed:

# Check how ResponsiveTabs is used in other files
grep -n "ResponsiveTabs" packages/bruno-app/src/components/ResponsePane/index.js -A5 | head -20

Repository: usebruno/bruno

Length of output: 515


🏁 Script executed:

# Check the Dropdown component to understand how it handles trigger accessibility
find . -path "*/components/Dropdown*" -name "*.js" -o -path "*/components/Dropdown*" -name "*.jsx" | head -1

Repository: usebruno/bruno

Length of output: 119


🏁 Script executed:

# Check ActionIcon to see how it provides accessibility
rg -B2 -A8 "export.*ActionIcon" --type js --type ts --type jsx

Repository: usebruno/bruno

Length of output: 85


🏁 Script executed:

# Find ActionIcon component
find . -name "*ActionIcon*" -type f | head -5

Repository: usebruno/bruno

Length of output: 40


🏁 Script executed:

# Search for ActionIcon definition
rg "const ActionIcon|function ActionIcon|export.*ActionIcon" --type js --type ts -A10 | head -40

Repository: usebruno/bruno

Length of output: 844


🏁 Script executed:

# Check how MenuDropdown children (the trigger) is handled for accessibility
sed -n '200,270p' packages/bruno-app/src/ui/MenuDropdown/index.js

Repository: usebruno/bruno

Length of output: 2294


🏁 Script executed:

# Check if the div trigger is wrapped in anything that might add accessibility
sed -n '245,260p' packages/bruno-app/src/ui/ResponsiveTabs/index.js

Repository: usebruno/bruno

Length of output: 561


🏁 Script executed:

# Look at the complete ActionIcon to understand its accessibility support
cat -n packages/bruno-app/src/ui/ActionIcon/index.js | head -50

Repository: usebruno/bruno

Length of output: 2379


Use appropriate icon and add accessibility attributes to the dropdown trigger.

Two issues:

  1. UX: IconChevronsRight is semantically incorrect for dropdown triggers. The codebase consistently uses IconDots or IconDotsVertical for menu triggers. Right-facing chevrons indicate "fast forward" or "skip", not "more options".

  2. Accessibility: The trigger div lacks required accessibility attributes. Use ActionIcon component (already used throughout the codebase for dropdown triggers) or add aria-label, role="button", and tabIndex={0} to the div.

🤖 Prompt for AI Agents
In packages/bruno-app/src/ui/ResponsiveTabs/index.js around lines 253 to 255,
the dropdown trigger uses IconChevronsRight and a bare div without accessibility
attributes; replace the chevrons icon with the project-standard IconDots or
IconDotsVertical and either wrap/replace the div with the existing ActionIcon
component used for menu triggers or, if keeping a div, add role="button",
tabIndex={0} and an appropriate aria-label (e.g., "More options") and ensure
click/keyboard handlers work for Enter/Space; update imports as needed.

@bijin-bruno bijin-bruno merged commit d37bf7a into main Dec 26, 2025
9 checks passed
bijin-bruno added a commit that referenced this pull request Feb 13, 2026
* chore: playwright fix (#6507)

* chore: update responsive tab's more icon (#6509)

* refactor: replace button elements with new Button component (#6512)

* refactor: replace button elements with new Button component

* chore: fix button size for consistency

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* feat: `collection-level` and `app-level` proxy settings updates (#6514)

* feat: collection and app proxy settings updates

* fix: opencollection proxy config export and import

* fix: coderabbit review fixes

* chore: fix minor runtime warnings (#6518)

---------

Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com>
Co-authored-by: lohit <lohit@usebruno.com>
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.

1 participant