You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Connected.Components/Styles/components/_navmenu.scss

274 lines
6.1 KiB

2 years ago
@import '../abstracts/variables';
.navmenu {
margin: 0;
position: relative;
list-style: none;
overscroll-behavior-y: contain;
}
.nav-group {
width: 100%;
display: block;
justify-content: flex-start;
& > .nav-link > .nav-link-text {
font-weight: 500;
}
& * .nav-group {
& > .nav-link > .nav-link-text {
font-weight: 400;
}
}
& * .nav-group {
& > .nav-link.expanded > .nav-link-text {
font-weight: 500;
}
}
& * .navmenu .nav-item .nav-link {
padding-left: 36px;
padding-inline-start: 36px;
padding-inline-end: unset;
}
}
.nav-group-disabled {
&, .nav-link-text, .nav-link-expand-icon, .nav-link-icon {
color: var(--palette-text-disabled) !important;
cursor: default;
pointer-events: none;
}
}
.nav-item {
width: 100%;
display: flex;
justify-content: flex-start;
text-decoration: none;
}
.nav-link {
width: 100%;
font-weight: 400;
padding: 8px 16px 8px 16px;
color: inherit;
line-height: 1.75;
display: inline-flex;
align-items: center;
justify-content: flex-start;
text-transform: inherit;
background-color: transparent;
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, padding 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
align-items: flex-start;
&.nav-link-disabled {
color: var(--palette-text-disabled) !important;
cursor: default;
pointer-events: none;
}
&:hover:not(.nav-link-disabled) {
cursor: pointer;
text-decoration: none;
background-color: var(--palette-action-default-hover);
}
&:focus:not(.nav-link-disabled) {
background-color: var(--palette-action-default-hover);
}
&.active:not(.nav-link-disabled) {
font-weight: 500 !important;
}
&:not(.nav-link-disabled) .nav-link-icon.nav-link-icon-default {
color: var(--palette-drawer-icon);
}
&.nav-link-disabled .nav-link-icon {
color: var(--palette-text-disabled);
}
& .nav-link-expand-icon {
color: var(--palette-drawer-icon);
transition: .3s cubic-bezier(.25,.8,.5,1),visibility 0s;
&.transform {
transform: rotate(-180deg);
}
&.transform-disabled {
transform: rotate(-180deg);
}
}
& .nav-link-text {
width: 100%;
text-align: start;
margin-left: 12px;
margin-inline-start: 12px;
margin-inline-end: unset;
letter-spacing: 0;
}
}
.navmenu{
&.navmenu-dense{
.nav-link{
padding: 4px 16px 4px 16px;
}
}
&.navmenu-margin-dense{
.nav-link{
margin: 2px 0;
}
}
&.navmenu-margin-normal{
.nav-link{
margin: 4px 0;
}
}
&.navmenu-rounded{
.nav-link{
border-radius: var(--default-borderradius);
}
}
&.navmenu-bordered{
.nav-link{
&.active:not(.nav-link-disabled) {
border-inline-end-style: solid;
border-inline-end-width: 2px;
}
}
}
&.navmenu-default{
.nav-link.active:not(.nav-link-disabled) {
color: var(--palette-primary);
background-color: var(--palette-action-default-hover);
&:hover:not(.nav-link-disabled), &:focus-visible:not(.nav-link-disabled) {
background-color: var(--palette-action-default-hover);
}
}
.nav-link-expand-icon.transform {
fill: var(--palette-primary);
}
}
@each $color in $palette-colors {
&.navmenu-#{$color} {
.nav-link.active:not(.nav-link-disabled) {
color: var(--palette-#{$color});
background-color: var(--palette-#{$color}-hover);
&:hover:not(.nav-link-disabled), &:focus-visible:not(.nav-link-disabled) {
background-color: rgba(var(--palette-#{$color}-rgb), 0.12);
}
.nav-link-icon {
color: var(--palette-#{$color});
}
}
.nav-link-expand-icon.transform {
fill: var(--palette-#{$color});
}
}
}
}
.nav-group * .navmenu > .nav-group {
& .nav-link {
padding-left: 36px;
padding-inline-start: 36px;
padding-inline-end: 16px;
}
& * .navmenu .nav-item .nav-link {
padding-left: 48px;
padding-inline-start: 48px;
}
& * .navmenu > .nav-group {
& .nav-link {
padding-left: 48px;
padding-inline-start: 48px;
padding-inline-end: 16px;
}
& * .navmenu .nav-item .nav-link {
padding-left: 60px;
padding-inline-start: 60px;
padding-inline-end: 0;
}
& * .navmenu > .nav-group {
& .nav-link {
padding-left: 60px;
padding-inline-start: 60px;
padding-inline-end: 16px;
}
& * .navmenu .nav-item .nav-link {
padding-left: 72px;
padding-inline-start: 72px;
padding-inline-end: 0;
}
}
}
}
.drawer--closed.drawer-mini {
& > .drawer-content > .navmenu {
& .nav-link .icon-root:first-child + .nav-link-text {
display: none;
}
}
.nav-group {
& * .navmenu .nav-item .nav-link {
padding: 8px 16px 8px 16px;
}
}
.nav-group * .navmenu > .nav-group {
& .nav-link {
padding: 8px 16px 8px 16px;
}
& * .navmenu .nav-item .nav-link {
padding: 8px 16px 8px 16px;
}
& * .navmenu > .nav-group {
& .nav-link {
padding: 8px 16px 8px 16px;
}
& * .navmenu .nav-item .nav-link {
padding: 8px 16px 8px 16px;
}
& * .navmenu > .nav-group {
& .nav-link {
padding: 8px 16px 8px 16px;
}
& * .navmenu .nav-item .nav-link {
padding: 8px 16px 8px 16px;
}
}
}
}
}