tiny-popup-menu
Version:
162 lines • 5.25 kB
CSS
.popup-menu {
width: -moz-max-content;
width: -webkit-max-content;
width: max-content;
min-width: 50px;
right: 0;
padding: 0;
--ofx: $tmp-arrowWidth;
z-index: 9999;
font-family: sans-serif;
}
.popup-menu .popup-menu--submenu-content,
.popup-menu .popup-menu--container {
background: #ffffff;
border-radius: 6px;
border: 1px solid #c5c5c5;
box-shadow: 0 1px 14px rgba(0, 0, 0, 0.2);
z-index: 9998;
padding: 10px 0;
}
.popup-menu .popup-menu--align-center .popup-menu--submenu,
.popup-menu .popup-menu--align-center .popup-menu--item {
justify-content: center;
}
.popup-menu .popup-menu--align-left .popup-menu--submenu,
.popup-menu .popup-menu--align-left .popup-menu--item {
justify-content: left;
}
.popup-menu .popup-menu--align-right .popup-menu--submenu,
.popup-menu .popup-menu--align-right .popup-menu--item {
justify-content: right;
}
.popup-menu .popup-menu--container {
position: relative;
color: #4e4e4e;
font-size: 13px;
letter-spacing: 0;
text-transform: none;
}
.popup-menu .popup-menu--container .popup-menu--submenu,
.popup-menu .popup-menu--container .popup-menu--item {
padding: 6px 16px;
display: -webkit-flex;
display: flex;
}
.popup-menu .popup-menu--container .popup-menu--submenu,
.popup-menu .popup-menu--container .popup-menu--item.popup-menu--item-clickleable {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.popup-menu .popup-menu--container .popup-menu--submenu:focus, .popup-menu .popup-menu--container .popup-menu--submenu:active, .popup-menu .popup-menu--container .popup-menu--submenu:hover,
.popup-menu .popup-menu--container .popup-menu--item.popup-menu--item-clickleable:focus,
.popup-menu .popup-menu--container .popup-menu--item.popup-menu--item-clickleable:active,
.popup-menu .popup-menu--container .popup-menu--item.popup-menu--item-clickleable:hover {
background: rgb(234.6, 234.6, 234.6);
}
.popup-menu .popup-menu--container .popup-menu--submenu {
display: -webkit-flex;
display: flex;
align-items: center;
position: relative;
}
.popup-menu .popup-menu--container .popup-menu--submenu > span {
cursor: default;
}
.popup-menu .popup-menu--container .popup-menu--submenu .popup-menu--submenu-content {
position: absolute;
visibility: hidden;
opacity: 0;
top: 0;
min-width: -moz-max-content;
min-width: -webkit-max-content;
min-width: max-content;
}
.popup-menu .popup-menu--container .popup-menu--submenu .popup-menu--submenu-arrow {
position: absolute;
}
.popup-menu .popup-menu--container .popup-menu--submenu .popup-menu--submenu-arrow svg {
width: 20px;
height: 20px;
fill: #4e4e4e;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-right > span {
padding-right: 15px;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-right .popup-menu--submenu-arrow {
right: 8px;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-right .popup-menu--submenu-content {
left: 100%;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-left > span {
padding-left: 15px;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-left .popup-menu--submenu-arrow {
left: 8px;
order: -1;
}
.popup-menu .popup-menu--container .popup-menu--submenu.popup-menu--submenu-left .popup-menu--submenu-content {
right: 100%;
}
.popup-menu .popup-menu--container .popup-menu--submenu:hover .popup-menu--submenu-content, .popup-menu .popup-menu--container .popup-menu--submenu:focus .popup-menu--submenu-content {
opacity: 1;
visibility: visible;
}
.popup-menu .popup-menu--container .popup-menu--item-clickleable {
cursor: pointer;
}
.popup-menu .popup-menu--container .popup-menu--item-separator {
width: 100%;
height: 1px;
display: block;
margin: 6px 0;
background-color: rgb(212.3, 212.3, 212.3);
}
.popup-menu.popup-menu--show-arrow:after {
content: "";
z-index: 997;
width: 0;
height: 0;
position: absolute;
}
.popup-menu.popup-menu--show-arrow:before {
content: "";
z-index: 9999;
width: 0;
height: 0;
position: absolute;
}
.popup-menu.popup-menu--show-arrow.popup-menu--show-arrow-top:after {
border-top: 10px solid transparent;
border-bottom: 10px solid #c5c5c5;
border-right: 10px solid transparent;
border-left: 10px solid transparent;
left: calc(50% - var(--ofx) - 2px);
top: -17px;
}
.popup-menu.popup-menu--show-arrow.popup-menu--show-arrow-top:before {
border-top: 8px solid transparent;
border-bottom: 8px solid #ffffff;
border-right: 8px solid transparent;
border-left: 8px solid transparent;
left: calc(50% - var(--ofx));
top: -14px;
}
.popup-menu.popup-menu--show-arrow.popup-menu--show-arrow-bottom:after {
border-top: 10px solid #c5c5c5;
border-bottom: 10px solid transparent;
border-right: 10px solid transparent;
border-left: 10px solid transparent;
left: calc(50% - var(--ofx) - 2px);
bottom: -17px;
}
.popup-menu.popup-menu--show-arrow.popup-menu--show-arrow-bottom:before {
border-top: 8px solid #ffffff;
border-bottom: 8px solid transparent;
border-right: 8px solid transparent;
border-left: 8px solid transparent;
left: calc(50% - var(--ofx));
bottom: -14px;
}