Skip to content

Draft: chore(GlBadge): Add story for baseline alignment

Mark Florian requested to merge 1673-fix-icon-badge-alignment into main

What does this MR do?

fix(GlBadge): Ensure consistent baseline

Previously, the text-only type of GlBadge did not share the same baseline as the icon-only and icon-and-text versions.

This is because GlBadge's icons are set to a height of 16px, whereas the line-height of the text is 14px. Combined with .gl-badge's styling of align-items: center, this made the icon determine the badge's baseline, rather than the text.

The fix is to make sure that the text determines the baseline. For the icon-and-text case, that's straight forward: set align-items: baseline for the .gl-badge, and set the icon to align-self: center.

The icon-only case is trickier, since there is no text to create a baseline from. The fix in this case is also simple, but weird: to add a .gl-badge::after pseudo element with the content of a zero-width space!

It must be a zero-width space so that it doesn't affect the rendered output, other than creating the text baseline if there isn't any other text.

Addresses #1673 (closed).

Screenshots

Screenshot
Before
MISALIGNED
badges_before
After, without pseudo element fix
MISALIGNED
badges_after_without_pseudo_element_fix
After, with pseudo element and regular space
MISALIGNED
badges_after_regular_space
Final result, with pseudo element and zero-width space (this MR)
ALIGNED
badges_after

Does this MR meet the acceptance criteria?

Conformity

  • Code review guidelines.
  • GitLab UI's contributing guidlines.
  • If it changes a Pajamas-compliant component's look & feel, the MR has been reviewed by a UX designer.
  • [-] If it changes GitLab UI's documentation guidelines, the MR has been reviewed by a Technical Writer.
  • [-] If the MR changes a component's API, integration MR(s) have been opened in the following projects to ensure that the @gitlab/ui package can be upgraded quickly after the changes are released:
  • Added the ~"component:*" label(s) if applicable.

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • Security reports checked/validated by a reviewer from the AppSec team

Accessibility

If this MR adds or modifies a component, take a few moments to review the following:

  • [-] All actions and functionality can be done with a keyboard.
  • [-] Links, buttons, and controls have a visible focus state.
  • [-] All content is presented in text or with a text equivalent. For example, alt text for SVG, or aria-label for icons that have meaning or perform actions.
  • [-] Changes in a component’s state are announced by a screen reader. For example, changing aria-expanded="false" to aria-expanded="true" when an accordion is expanded.
  • [-] Color combinations have sufficient contrast.

Closes #1673 (closed)

Edited by Mark Florian

Merge request reports

Loading