%menu-panel { position: absolute; } %menu-panel [type='checkbox'] { display: none; } %menu-panel { overflow: hidden; transition: min-height 150ms, max-height 150ms; min-height: 0; } %menu-panel:not(.confirmation) [type='checkbox'] ~ * { transition: transform 150ms; } %menu-panel [type='checkbox']:checked ~ * { transform: translateX(calc(-100% - 10px)); } %menu-panel.confirmation [role='menu'] { min-height: 200px !important; } %menu-panel [role='menuitem'] { display: flex; justify-content: space-between; } %menu-panel [role='menuitem']:after { @extend %as-pseudo; display: block !important; background-position: center right !important; } %menu-panel-sub-panel { position: absolute; top: 0; left: calc(100% + 10px); display: none; } /* TODO: once everything is using ListCollection */ /* this can go */ %menu-panel [type='checkbox']:checked ~ * { /* this needs to autocalculate */ min-height: 143px; max-height: 143px; } %menu-panel [id$='-']:first-child:checked ~ ul label[for$='-'] * [role='menu'], %menu-panel [id$='-']:first-child:checked ~ ul > li > [role='menu'] { display: block; } /**/ %menu-panel dl { padding: 0.9em 1em; } %menu-panel > ul > li > div[role='menu'] { @extend %menu-panel-sub-panel; } %menu-panel > ul > li > *:not(div[role='menu']) { position: relative; } %menu-panel:not(.left) { right: 0px; left: auto; } %menu-panel.left { left: 0px; } %menu-panel:not(.above) { top: 28px; } %menu-panel.above { bottom: 42px; } %menu-panel > ul { margin: 0; padding: 4px 0; } %menu-panel > ul, %menu-panel > ul > li, %menu-panel > ul > li > * { width: 100%; } %menu-panel > ul > li > * { text-align: left !important; } %menu-panel-separator { padding-top: 0.35em; } %menu-panel-separator:not(:first-child) { margin-top: 0.35em; } %menu-panel-separator:not(:empty) { padding-left: 1em; padding-right: 1em; padding-bottom: 0.1em; } %menu-panel-header { padding: 10px; white-space: normal; } /* here the !important is only needed for what seems to be a difference */ /* with the CSS before and after compression */ /* i.e. before compression this style is applied */ /* after compression it is in the source but doesn't seem to get */ /* applied (unless you add the !important) */ %menu-panel .is-active { position: relative !important; } %menu-panel .is-active > *::after { position: absolute; top: 50%; margin-top: -8px; right: 10px; } %menu-panel-header::before { position: absolute; left: 15px; top: calc(10px + 0.1em); } %menu-panel-header { max-width: fit-content; } @supports not (max-width: fit-content) { %menu-panel-header { max-width: 200px; } }