.menu-container { position: relative; display: flex; align-items: flex-end; margin-bottom: 20px; background: #fff; color: #000; padding: 20px; z-index: 1; -webkit-user-select: none; user-select: none; box-sizing: border-box; font-weight: 500; } .menu-logo { margin: 0 20px; white-space: nowrap; font-size: 44px; margin-bottom: 0; } .menu-container a { text-decoration: none; color: #000; transition: color 0.1s ease; text-transform: lowercase; &:hover { color: #2FB6BC; } } .menu-container input { display: block; width: 30px; height: 30px; right: 10px; top: 10px; margin: 0; position: absolute; cursor: pointer; opacity: 0; /* hide this */ z-index: 2; /* and place it over the hamburger */ -webkit-touch-callout: none; } /* Burger menu */ .menu-container span { display: block; width: 14px; height: 2px; margin-bottom: 2px; position: relative; background: #000; border-radius: 2px; z-index: 1; transform-origin: 3px 0px; transition: all 0.1s ease; } .menu-container span:first-child { transform-origin: 0% 0%; } .menu-container span:nth-child(3) { transform-origin: 0% 100%; } .menu-container input:checked ~ span { opacity: 1; transform: rotate(45deg) translate(3px,-1px); } .menu-container input:checked ~ span:nth-child(4) { opacity: 0; transform: rotate(0deg) scale(0.1, 0.1); } .menu-container input:checked ~ span:nth-child(3) { transform: rotate(-45deg) translate(-1px, 6px); } .menu { list-style: none; margin: 0; } .menu li { margin-bottom: 0; padding: 10px 0; font-size: 20px; } /* mobile styles */ @media only screen and (max-width: 1000px) { .menu-container { flex-direction: column; align-items: flex-end; } .menu-logo { position: absolute; left: 0; top: 50%; transform: translateY(-50%); } .menu-logo img { max-height: 30px; } .menu { position: absolute; box-sizing: border-box; width: 300px; right: -300px; top: 0; margin: -20px; padding: 75px 50px 50px; background: #eee; -webkit-font-smoothing: antialiased; /* to stop flickering of text in safari */ transform-origin: 0% 0%; transform: translateX(0%); transition: transform 0.1s cubic-bezier(0.77,0.2,0.05,1.0); } .menu-container input:checked ~ .menu { transform: translateX(-100%); } } /* desktop styles */ @media only screen and (min-width: 1001px) { .menu-container { width: 100%; } .menu-container a { color: #000; } .menu-container input { display: none; } /* Burger menu */ .menu-container span { display: none; } .menu { position: relative; width: 100%; display: flex; justify-content: flex-end; } .menu ul { display: flex; padding: 0; } .menu li { padding: 0 20px; } }