:root { --header-colour: #00000031; --main-colour: #393e41; --footer-colour: #00000031; --text-colour: #f6f7eb; --text-accent-colour: #e94f37; --header-size: 100px; } html, body { width: 100%; height: 100%; margin: 0; } body { color: var(--text-colour); font-family: sans-serif; display: flex; flex-flow: column; background-color: var(--main-colour); } header main footer { width: 100%; } header { position: fixed; top: 0; background-color: var(--header-colour); } /* Required to set the width and height of the header, as `fixed` elements can't have their size set. */ header > div { width: 100vw; height: var(--header-size); } main { flex: 1 1 auto; margin-top: var(--header-size); text-align: center; background-color: var(--main-colour); } footer { flex: 0 1 auto; display: flex; background-color: var(--footer-colour); } footer > div { width: 50%; } #imaText { /* The text directly after "I'm a" */ color: #5a91ff; }