react-toolbox/components/menu/theme.scss

155 lines
2.8 KiB
SCSS

@import "../colors";
@import "../globals";
@import "../mixins";
@import "./config";
.iconMenu {
position: relative;
display: inline-block;
text-align: center;
.icon {
cursor: pointer;
}
}
.menu {
position: relative;
display: inline-block;
&.topLeft {
position: absolute;
top: 0;
left: 0;
> .outline {
transform-origin: 0 0;
}
}
&.topRight {
position: absolute;
top: 0;
right: 0;
> .outline {
transform-origin: 100% 0;
}
}
&.bottomLeft {
position: absolute;
bottom: 0;
left: 0;
> .outline {
transform-origin: 0 100%;
}
}
&.bottomRight {
position: absolute;
right: 0;
bottom: 0;
> .outline {
transform-origin: 100% 100%;
}
}
&:not(.static) {
z-index: $z-index-higher;
pointer-events: none;
> .outline {
opacity: 0;
transition: transform $menu-expand-duration $animation-curve-default,
opacity $menu-fade-duration $animation-curve-default;
transform: scale(0);
will-change: transform;
}
> .menuInner {
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
&.rippled:not(.active) {
> .outline {
transition-delay: $menu-ripple-delay;
}
> .menuInner {
transition-delay: $menu-ripple-delay;
}
}
&.active {
pointer-events: all;
> .outline {
opacity: 1;
transform: scale(1);
}
> .menuInner {
opacity: 1;
transition: opacity $menu-fade-duration $animation-curve-default,
clip $menu-expand-duration $animation-curve-default;
}
}
}
}
.outline {
@include shadow-2dp();
position: absolute;
top: 0;
left: 0;
display: block;
background-color: $menu-background-color;
border-radius: $menu-outline-border-radius;
}
.menuInner {
position: relative;
display: block;
padding: $menu-padding;
text-align: left;
white-space: nowrap;
list-style: none;
}
.menuItem {
position: relative;
display: flex;
height: $menu-item-height;
align-items: center;
padding: 0 $menu-item-padding;
overflow: hidden;
font-size: $menu-item-font-size;
color: $color-text;
&:not(.disabled):hover {
cursor: pointer;
background-color: $menu-item-hover-background;
}
&.disabled {
pointer-events: none;
opacity: .5;
}
&.selected {
font-weight: 500;
background-color: $menu-item-selected-background;
}
.ripple {
color: $color-text-secondary;
}
.icon {
width: $menu-item-icon-size;
font-size: $menu-item-icon-font-size !important;
}
}
.caption {
flex-grow: 1;
font-size: $font-size-normal;
}
.shortcut {
margin-left: $menu-item-padding;
}
.menuDivider {
display: block;
width: 100%;
height: 1px;
margin: $menu-divider-height 0;
background-color: $color-divider;
}