Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/components/Package/TableRow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const allMaintainersText = computed(() => {

<template>
<tr
class="group relative border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"
class="group relative transform scale-100 border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Consider adding clip-path: inset(0) to fully contain the last row's overlay in Safari.

The CSS transform correctly establishes a containing block on <tr> in Safari (where position: relative is ignored), which is the right approach. However, the blog post referenced in the PR description explicitly notes that after adding the transform, "the last link's clickable area expands below the table" in Safari — i.e. the last row's ::after overlay can still overflow the table's bottom edge. The complete solution recommended in that post uses transform: translate(0) alongside clip-path: inset(0) on tr.

The existing focus-visible:ring-inset on the <tr> already draws the ring inward, so it remains fully visible under clip-path: inset(0).

🛡️ Proposed addition
- class="group relative transform scale-100 border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"
+ class="group relative transform scale-100 [clip-path:inset(0)] border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"

Or if a scoped CSS rule is preferred (mirrors the existing <style scoped> block):

 tr {
   transform: scale(1);
+  clip-path: inset(0);
 }
📝 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
class="group relative transform scale-100 border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"
class="group relative transform scale-100 [clip-path:inset(0)] border-b border-border hover:bg-bg-muted transition-colors duration-200 focus-visible:ring-2 focus-visible:ring-fg focus-visible:ring-inset focus-visible:outline-none focus:bg-bg-muted"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you think of this comment @RYGRIT?

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.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what do you think of this comment @RYGRIT?

I tested it locally and didn't encounter the overflow issue mentioned in the blog post (I haven't figured out why it didn't occur). However, I agree with adding [clip-path:inset(0)] as a defense. WebKit's handling of table borders and absolute positioning can differ across Safari versions, so explicitly clipping the overlay ensures it never goes off-line. I also removed the redundant transform class.

tabindex="0"
:data-result-index="index"
>
Expand Down
Loading