@import 'animations'; @import 'breakpoints'; @import 'colors'; * { box-sizing: border-box; margin: 0; padding: 0; } body { background: $color-background; color: $color-text; display: flex; flex-direction: column; font-family: "Noto Sans", sans-serif; margin: 0 auto; max-width: $large; min-height: 100vh; & > main { flex-grow: 1; } } header { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; margin-top: 1rem; padding: 0 1rem; & > .header-title { font-weight: bold; } & > .nav-burger { margin-right: 0.5rem; } } main { padding: 1rem; } nav { display: flex; flex-direction: column; &.nav-toggleable { flex-basis: 100%; max-height: 0; overflow-y: hidden; transition: max-height 0.5s; .nav-toggle:checked ~ & { max-height: calc(var(--num-elements) * 2em); } } a, span { line-height: 1.5em; margin: 0.5em 0 0 0; } @media screen and (min-width: $small) { flex-direction: row; &.nav-toggleable { flex-basis: auto; max-height: max-content; } a, span { margin: 0 0 0 1.2em; } } } a { color: $color-link; text-decoration: none; &:hover { text-decoration: underline; } } .hello-world { animation: rainbow 3s linear 0s infinite; font-family: "Noto Sans Mono", monospace; font-size: 96px; line-height: 1.15; text-align: center; } .nav-burger { cursor: pointer; display: flex; flex-direction: column; height: 1rem; justify-content: space-between; width: 1.2rem; div { background: $color-burger; height: 2px; transition: background 0.5s, transform 0.5s; } .nav-toggle:checked ~ & div { background: transparent; &:first-child { background: $color-burger; transform: translateY(0.5rem) translateY(-1px) rotate(45deg) scaleX(141%); } &:last-child { background: $color-burger; transform: translateY(-0.5rem) translateY(1px) rotate(-45deg) scaleX(141%); } } @media screen and (min-width: $small) { display: none; } } .nav-toggle { display: none; }