Skip to content

ux(frontend/recs): enlarge cell-expand chevron + reposition (closes #280) - #798

Merged
cristim merged 1 commit into
feat/multicloud-web-frontendfrom
fix/280-wave2
Jun 8, 2026
Merged

ux(frontend/recs): enlarge cell-expand chevron + reposition (closes #280)#798
cristim merged 1 commit into
feat/multicloud-web-frontendfrom
fix/280-wave2

Conversation

@cristim

@cristim cristim commented May 28, 2026

Copy link
Copy Markdown
Member

Summary

  • Bump .rec-cell-chevron font-size from 1.2em to 1.5em and minimum click target from 24px to 32px so the glyph is a comfortable 32x32 tap/click target
  • Add padding: 6px, border-radius: 4px, and a focus-visible highlight (background: var(--cudly-info-bg)) so keyboard focus is visible without extra keydown handlers (native <button> handles Enter/Space)
  • Add two tests: (1) chevron is a <button type="button"> with aria-label and lives outside .rec-cell-summary-content; (2) existing placement test continues to confirm it sits in td.checkbox-col

Before / after CSS

Property Before After
font-size 1.2em 1.5em
padding 4px 6px
min-width/height 24px 32px
:hover selector .rec-cell-chevron:hover .rec-cell-chevron:hover, .rec-cell-chevron:focus-visible

Test plan

  • npx tsc --noEmit clean
  • jest src/__tests__/recommendations*.test.ts -- 320 passed, 0 regressions
  • New test: chevron is <button> outside .rec-cell-summary-content
  • Existing test: chevron lives in td.checkbox-col
  • Existing test: click toggles expand and flips aria-expanded

Summary by CodeRabbit

  • Improvements
    • Enhanced recommendation cell chevron control with larger dimensions for improved accessibility and easier interaction.
    • Added smooth transitions for state changes and improved keyboard navigation support with enhanced focus-visible styling.

Review Change Stack

Bump .rec-cell-chevron from font-size 1.2em/24px target to 1.5em/32px,
add focus-visible highlight, and add two tests: one asserting the
chevron is a <button> outside .rec-cell-summary-content (keyboard
accessible without extra keydown wiring), one confirming no-overlap with
the summary content cell.
@cristim cristim added triaged Item has been triaged priority/p3 Polish / idea / may never ship severity/low Minor harm urgency/this-sprint Within the current sprint impact/few Limited audience effort/s Hours type/feat New capability labels May 28, 2026
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@cristim, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 9 minutes and 9 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

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.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a5348f07-7597-4520-afcb-39d5363b4ed8

📥 Commits

Reviewing files that changed from the base of the PR and between 4956d66 and 119e79c.

📒 Files selected for processing (2)
  • frontend/src/__tests__/recommendations.test.ts
  • frontend/src/styles/components.css
📝 Walkthrough

Walkthrough

The PR improves the recommendation cell chevron control by adding DOM validation for its accessibility structure and enhancing its visual presentation. A new test asserts the chevron is a real button with aria-label and proper nesting, while CSS updates enlarge its interactive dimensions, add smooth transitions, and refine the hover/focus-visible styling to use primary color and info-background theming.

Changes

Recommendation cell chevron control

Layer / File(s) Summary
Chevron DOM accessibility test
frontend/src/__tests__/recommendations.test.ts
New test validates that .rec-cell-chevron is rendered as a <button> element with a truthy aria-label and is not a descendant of .rec-cell-summary-content.
Chevron sizing and interactive styling
frontend/src/styles/components.css
Enhanced .rec-cell-chevron styling: increased font-size, padding, and min-width/min-height for better hit-area; added border-radius and transition; combined hover and focus-visible states to apply primary text color and info-background, with focus outline suppressed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

Possibly related PRs

  • LeanerCloud/CUDly#283: Overlapping .rec-cell-chevron DOM assertions and styling tweaks for multi-variant chevron placement.
  • LeanerCloud/CUDly#253: Introduced the original chevron expand/collapse UI and prior tests; this PR adds stricter DOM validation and refined styling for that same control.

Suggested labels

impact/many

Poem

🐰 A chevron sits now bold and tall,
with button roots and labels for all!
Focus shines bright, a gentle glow—
through hover's dance, the colors flow.

🚥 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 accurately describes the primary change: enlarging and repositioning the cell-expand chevron, which matches the CSS modifications and test additions in the changeset.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/280-wave2

Comment @coderabbitai help to get the list of available commands and usage tips.

@cristim

cristim commented May 28, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Actionable comments posted: 0

@cristim

cristim commented May 30, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@cristim have exceeded the limit for the number of chat messages per hour. Please wait 54 minutes and 24 seconds before sending another message.

@cristim

cristim commented Jun 4, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Rate Limit Exceeded

@cristim have exceeded the limit for the number of chat messages per hour. Please wait 38 minutes and 38 seconds before sending another message.

@cristim

cristim commented Jun 8, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.

@cristim
cristim merged commit 3228d98 into feat/multicloud-web-frontend Jun 8, 2026
5 checks passed
@cristim
cristim deleted the fix/280-wave2 branch July 27, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/s Hours impact/few Limited audience priority/p3 Polish / idea / may never ship severity/low Minor harm triaged Item has been triaged type/feat New capability urgency/this-sprint Within the current sprint

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant