UNPKG

@r00t80y/primary-navigation

Version:

An overlay Menu with a collection of effects and styles using CSS transitions.

169 lines (165 loc) 4.15 kB
.navigation { position: relative; } .navigation__state-control { display: none; -webkit-appearance: none; appearance: none; opacity: 0; } .navigation__state-control:checked ~ .navigation__panel { visibility: visible; opacity: 1; } .navigation__state-control:checked ~ .navigation__panel--left { -ms-transform: translateX(400px); transform: translateX(400px); } .navigation__state-control:checked ~ .navigation__panel--right { -ms-transform: translateX(-400px); transform: translateX(-400px); } .navigation__panel { visibility: hidden; display: block; position: fixed; top: 0px; z-index: 1000; will-change: transform, opacity; opacity: 0; transition-property: transform, opacity, visibility; transition-duration: 400ms; transition-timing-function: ease-in-out; } .navigation__panel--left { left: -400px; -ms-transform: translateX(0); transform: translateX(0); } .navigation__panel--right { right: -400px; -ms-transform: translateX(0); transform: translateX(0); } .navigation__button { display: block; position: relative; cursor: pointer; overflow: hidden; } .navigation__button--burger { width: 34px; height: 26px; background-repeat: no-repeat; background-position: center; background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 34 26%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Crect y=%2722%27 width=%2734%27 height=%274%27 fill=%27%23000000%27/%3E%3Crect y=%2711%27 width=%2734%27 height=%274%27 fill=%27%23000000%27/%3E%3Crect width=%2734%27 height=%274%27 fill=%27%23000000%27/%3E%3C/svg%3E"); } .navigation__button--close { width: 27px; height: 27px; background-repeat: no-repeat; background-position: center; background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 27 27%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Crect x=%273.72792%27 y=%270.899495%27 width=%2732%27 height=%274%27 transform=%27rotate%2845 3.72792 0.899495%29%27 fill=%27%23000000%27/%3E%3Crect x=%270.957062%27 y=%2723.5845%27 width=%2732%27 height=%274%27 transform=%27rotate%28-45 0.957062 23.5845%29%27 fill=%27%23000000%27/%3E%3C/svg%3E"); } .navigation__panel { width: 100%; height: 100%; max-width: 400px; background-color: rgba(255, 255, 255, 0.95); } .navigation__list { display: block; } .navigation__item { list-style: none; } .navigation { display: inline-block; } .navigation__panel { display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; } .navigation { font-size: 1.125em; } @supports ((-webkit-backdrop-filter: ) or (backdrop-filter: )) { .navigation__panel { -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } } .navigation__list { padding: 0; margin: 0; overflow-x: hidden; overflow-y: auto; } .navigation__item { padding: 0; margin: 0; } .navigation__link { display: block; padding: 16px 8px; background-color: #f9f9f9; color: #333; font-weight: bold; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .navigation__link:hover { background-color: #f1f1f1; color: #000; } .navigation__button--close { margin: 8px; float: right; } @media (min-width: 756px) { .navigation { display: block; } .navigation__panel { position: static; display: block; width: auto; max-width: none; height: auto; background: transparent; opacity: 1; -ms-transform: none; transform: none; transition: none; visibility: visible; } .navigation__list { display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -ms-flex-align: center; align-items: center; -ms-flex-pack: end; justify-content: flex-end; } @supports ((-webkit-backdrop-filter: ) or (backdrop-filter: )) { .navigation__panel { -webkit-backdrop-filter: none; backdrop-filter: none; } } .navigation__list { padding: 0; margin: 0; } .navigation__link { padding: 0; } .navigation__button { display: none; } }