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 stickyto push footer to bottom.
- Property stickyrespects dimensions of siblings, stays in viewport on scroll and won't cover scrolling body of a drawer as it could be withabsoluteorfixed,so there is no need to add extra padding to drawer body based onfooter height.
- Drawer should have display flexwith flex-directioncolumn
- Drawer-body have flex-grow: 1, so it is stretched between betweenheaderandfooterand 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/uipackage 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-labelfor 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