/* 1rem = 16px by default */ .page { max-width: 64rem; margin: 1rem auto; display: grid; grid-template-areas: "header" "body" "aside" "footer"; grid-template-columns: minmax(0, 1fr); /* https://css-tricks.com/preventing-a-grid-blowout/ */ grid-row-gap: 2rem; } @media (min-width: 45rem) { .page { grid-template-areas: "header header" "body aside" "footer footer"; grid-template-columns: minmax(0, 1fr) 15rem; grid-column-gap: 2rem; } } /* Header */ .page__header { grid-area: header; display: flex; } .page__logo { flex-shrink: 0; } .page__nav { flex-grow: 1; } /* Body + aside */ .page__body { grid-area: body; background-color: var(--bg); outline: 1rem solid var(--bg); } .page__aside { grid-area: aside; color: var(--bright-bg); } /* Footer */ .page__footer { grid-area: footer; }