feat(GlDrawer): add sticky footer
What does this MR do?
This MR resolves #1811 (closed).
New requirement based on this review
It is important to have sticky footer
- I used relatively new css property
sticky
to push footer to bottom. - Property
sticky
respects dimensions of siblings, stays in viewport on scroll and won't cover scrolling body of a drawer as it could be withabsolute
orfixed
,so there is no need to add extra padding to drawer body based onfooter height
. - Drawer should have display
flex
with flex-directioncolumn
- Drawer-body have
flex-grow: 1
, so it is stretched between betweenheader
andfooter
and footer stays on bottom even when list is short
It shouldn't affect existing codebase in gitlab anywhere where GlDrawer
is used.
Example 1 |
---|
header_footer |
Example 2 |
---|
other_options |
Here example in design how it is planned to be used.
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 #1811 (closed)
Edited by Artur Fedorov