JSFiddle - React, Tailwind, and code Playground

HTML

<article>
  <header>header
  </header>

  <section>
    section
  </section>

  <footer>
    footer
  </footer>
</article>

CSS

* {
  box-sizing: border-box;
}

html, body {
  height: 100%;
}
article {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

header {
  background-color: black;
  height: 50px;
}

section {
  flex-grow: 1;
}

footer {
  background-color: gray;
  height: 30px;
}