/** * Copyright (c) 2021 OpenLens Authors * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .Menu { --bgc: #{$layoutBackground}; position: absolute; display: flex; flex-direction: column; background: var(--bgc); list-style: none; border: 1px solid $borderColor; z-index: 101; box-shadow: rgba(0,0,0,0.24) 0px 8px 16px 0px; border-radius: 4px; &.portal { left: -1000px; top: -1000px; } &:not(.portal) { margin: $margin 0; &.left { left: 0; } &.right { right: 0; } &.top { bottom: 100%; } &.bottom { top: 100%; } } &:empty { display: none; } } .MenuItem { --color: #{$textColorPrimary}; --color-active: #{$textColorAccent}; --bgc-active: #{$menuActiveBackground}; --spacing: #{$padding}; position: relative; display: flex; align-items: center; color: var(--color); padding: var(--spacing); white-space: nowrap; transition: 250ms background; text-decoration: none; text-overflow: ellipsis; &:hover:not(.disabled) { color: var(--color-active); background: var(--bgc-active); cursor: pointer; } &:focus { outline: 2px solid $colorInfo; } &.active { color: var(--color-active); background-color: var(--bgc-active); cursor: default; } &.disabled { pointer-events: none; opacity: .5; } &.spacer { padding: 0; height: 0; overflow: hidden; border-top: 1px solid $contentColor; pointer-events: none; } .Icon { &:first-child { margin-left: 0; margin-right: $padding; } } }