Move user popover busy badge onto the avatar

What does this MR do and why?

The profile header shows the Busy badge overlapping the bottom of the avatar, but the user popover still rendered it inline beside the name. Anchor the badge to the bottom center of the popover avatar so the two surfaces match.

GlAvatarLabeled renders its avatar internally with no slot for an overlay, so the badge becomes an absolutely positioned sibling of the avatar block: gl-left-7/gl-top-11 (32px/64px) are the horizontal center and bottom edge of the 64px avatar, and the translate utilities center the badge and lift it flush with the avatar's bottom edge. Variant, text, and the white ring reuse the profile header's badge classes from app/views/users/show.html.haml.

Design fidelity

Against the design in Update user popover to match profile changes (#438435):

Design This MR Match
Busy badge horizontally centered on the avatar gl-left-7 + -gl-translate-x-1/2 center it on the 64px avatar Yes
Badge sits on the avatar's bottom edge, inside the circle gl-top-11 + -gl-translate-y-full put its bottom edge flush with the avatar's Yes
Warning-variant pill with a white ring against the photo variant="warning" with gl-border gl-border-white, the header's own classes Yes
Name and @username unchanged beside the avatar, nothing inline in the name row Badge leaves the #meta slot; pronouns stay beside the name Yes

References

Screenshots or screen recordings

State Before After
User popover, light user_popover_busy_badge user_popover_busy_badge
User popover, dark user_popover_busy_badge_dark user_popover_busy_badge_dark
Profile header (reference) profile_header_reference profile_header_reference

The profile header row is the unchanged reference surface the popover now matches; its before and after are identical by design.

How to set up and validate locally

  1. As one user, set a Busy status: avatar menu, then Set status, then check Set yourself as busy.
  2. As another user, hover that user's name or avatar where it links to their profile, for example an issue or merge request author byline.
  3. The popover shows the Busy badge centered on the bottom edge of the avatar, matching the user's profile page header.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Paul W

Merge request reports

Loading
Loading