Draft: chore(GlBadge): Add story for baseline alignment
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 |
|
After, without pseudo element fix MISALIGNED |
|
After, with pseudo element and regular space MISALIGNED |
|
Final result, with pseudo element and zero-width space (this MR) ALIGNED |
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:-
GitLab: mr_url -
CustomersDot: mr_url -
Status Page: mr_url
-
-
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"
toaria-expanded="true"
when an accordion is expanded. - [-] Color combinations have sufficient contrast.
Closes #1673 (closed)