edc-gis/public/css/navbar.scss
2024-10-17 17:01:25 +07:00

928 lines
17 KiB
SCSS

.navbar {
position: fixed;
top: 0;
width: 100%;
left: 0;
right: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px 0px;
z-index: 1000;
border-radius: 0;
transition: .3s ease-in-out;
&.navScroll {
background: #ffffff50;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
box-shadow: 0px 0px 27px #74747430;
transition: .3s ease-in-out;
.nav-logo img {
filter: none;
}
.nav-logo .titleText,
.nav-logo .version,
.nav-account .container-account .account .text .name,
.nav-account .container-account .account .text .role {
color: #172236;
}
.ant-menu-overflow-item.ant-menu-item,
.ant-menu-submenu-horizontal {
.ant-menu-submenu-title {
display: flex !important;
justify-content: start !important;
align-items: center !important;
.ant-menu-title-content a {
font-size: 12px;
font-weight: 500;
color: #2b2b2b;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #2b2b2b;
}
}
&.ant-menu-submenu-open,
&.ant-menu-submenu-active {
.ant-menu-title-content a {
font-size: 12px;
color: #E7FF56;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #E7FF56;
}
}
}
}
}
.ant-menu {
gap: 1rem !important;
}
.ant-menu-overflow-item.ant-menu-item {
.ant-menu-title-content a {
font-size: 12px;
color: #fff;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #fff;
}
&.ant-menu-item-selected,
&.ant-menu-item-open,
&.ant-menu-item-active {
.ant-menu-title-content a {
font-size: 12px;
color: #E7FF56;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #E7FF56;
}
}
}
.ant-menu-submenu-horizontal {
.ant-menu-submenu-title {
display: flex !important;
justify-content: start !important;
align-items: center !important;
.ant-menu-title-content a {
font-size: 12px;
color: #fff;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #fff;
}
}
&.ant-menu-submenu-selected,
&.ant-menu-submenu-open,
&.ant-menu-submenu-active {
.ant-menu-title-content a {
font-size: 12px;
color: #E7FF56;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #E7FF56;
}
}
}
.ant-menu-submenu-vertical {
.ant-menu-submenu-title {
display: flex !important;
justify-content: start !important;
align-items: center !important;
.ant-menu-title-content a {
font-size: 12px;
color: #3a4b6b;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #3a4b6b;
}
i {
color: #3a4b6b !important;
}
}
}
.ant-menu.ant-menu-inline {
position: relative;
padding: 8px 10px;
.ant-menu-title-content a {
font-size: 12px;
font-weight: 500;
color: #2c3850;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #2c3850;
}
.ant-menu-item-selected {
border-radius: 12px;
background: #2c3850 !important;
svg {
fill: #fff !important;
}
a {
color: #fff !important;
}
}
&.ant-menu-submenu-selected,
&.ant-menu-submenu-open,
&.ant-menu-submenu-active {
.ant-menu-title-content a {
font-size: 12px !important;
font-weight: 500 !important;
color: #E7FF56 !important;
}
.ant-menu-item-icon svg {
width: 16px !important;
fill: #E7FF56 !important;
}
}
}
.ant-menu-item {
display: flex !important;
justify-content: start !important;
align-items: center !important;
.ant-menu-title-content {
font-size: 12px;
color: #3a4b6b;
}
.ant-menu-item-icon svg {
width: 16px;
fill: #3a4b6b;
}
}
.ant-menu-horizontal, .ant-menu-item::after, .ant-menu-submenu::after {
border: none !important;
}
.ant-menu-submenu-horizontal .ant-menu-submenu-title {
position: relative;
}
.ant-menu-submenu-inline .ant-menu-submenu-arrow {
color: #2c3850 !important;
}
.ant-menu-horizontal .ant-menu-item {
padding: 0 !important;
right: -1rem;
}
.ant-menu-submenu-horizontal .ant-menu-submenu-arrow {
position: absolute;
right: -1rem;
display: block !important;
color: #fff !important;
transform: rotate(90deg);
}
.ant-menu-submenu-horizontal {
&.ant-menu-submenu-selected,
&.ant-menu-submenu-open,
&.ant-menu-submenu-active {
.ant-menu-submenu-arrow {
color: #E7FF56 !important;
}
}
}
.btnMenuShow {
position: relative;
border: none;
outline: none;
background: transparent;
margin-left: 20px;
font-size: 18px;
color: #fff;
cursor: pointer;
}
.btnMenuHide {
position: absolute;
top: .6rem;
right: -2.4rem;
border: none;
outline: none;
border-radius: 50%;
width: 30px;
height: 30px;
font-size: 12px;
background: #ffffff60;
color: #fff;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
cursor: pointer;
}
.navbar .nav-start {
display: flex;
justify-content: start;
align-items: center;
gap: 1rem;
width: 100%;
}
.navbar .nav-logo {
display: flex;
justify-content: start;
align-items: flex-start;
gap: 10px;
margin-left: 20px;
padding: 10px 7px;
}
.navbar .nav-logo img {
width: 130px;
//filter: brightness(0) invert(1);
}
.navbar .nav-logo .titleText {
font-size: 11px;
font-weight: 600;
color: #fff;
white-space: nowrap;
}
.navbar .nav-logo .version {
font-size: 11px;
font-weight: 300;
color: #fff;
white-space: nowrap;
}
.nav-title {
display: flex;
justify-content: start;
align-items: center;
gap: 15px;
//background: #f5f1f1;
position: absolute;
border-radius: 35px;
padding: 10px 0px;
top: -10px;
}
.title-primary {
font-size: 18px;
text-transform: uppercase;
font-weight: 600;
margin-top: 34px;
color: var(--dark);
position: absolute;
top: -13px;
}
.nav-title .title {
position: relative;
font-size: 12px;
font-weight: 400;
color: var(--grey);
}
.nav-title .title::after {
content: "";
position: absolute;
top: 2px;
right: -8px;
height: 16px;
width: 1px;
background: var(--grey);
}
.nav-title .sub-title {
font-size: 12px;
font-weight: 400;
color: var(--grey);
}
.nav-account {
position: relative;
//background: #efefef;
border-radius: 35px;
}
.nav-account .container-account .account {
display: flex;
justify-content: end;
align-items: center;
gap: 1rem;
//background: rgba(255, 255, 255, 0);
padding: 8px 10px 8px 45px;
border-radius: 35px;
cursor: pointer;
}
.nav-account .container-account .account .text {
text-align: end;
}
.nav-account .detail-account .header .text .name {
font-size: 11px;
font-weight: 500;
line-height: 14px;
text-transform: uppercase;
white-space: nowrap;
color: var(--black);
}
.nav-account .container-account .account .text .name {
font-size: 11px;
font-weight: 500;
line-height: 14px;
text-transform: uppercase;
white-space: nowrap;
color: #fff;
}
.nav-account .detail-account .header .text .role {
font-size: 10px;
font-weight: 400;
text-transform: uppercase;
white-space: nowrap;
color: var(--grey);
}
.nav-account .container-account .account .text .role {
font-size: 10px;
font-weight: 500;
text-transform: uppercase;
white-space: nowrap;
color: #fff;
}
.nav-account .container-account .second-account i,
.nav-account .container-account .account i,
.nav-account .detail-account .header i {
font-size: 28px;
color: var(--dark-grey);
}
.nav-account .detail-account {
background: #fff;
height: 0;
right: 0;
opacity: 0;
visibility: hidden;
position: absolute;
transition: all 0.3s ease;
top: 100%;
margin-top: 10px;
min-width: 250px;
border-radius: 20px;
box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15);
}
.nav-account .container-account:hover .detail-account {
height: auto;
opacity: 1;
visibility: visible;
transition: all 0.5s ease;
transform: translateY(-10px);
}
.nav-account .detail-account .header {
position: relative;
display: flex;
justify-content: start;
align-items: center;
gap: 1rem;
padding: 18px 24px;
}
.nav-account .detail-account .header::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
background: #f4f4f4;
}
.nav-account .detail-account .feature {
position: relative;
display: flex;
justify-content: start;
align-items: flex-start;
flex-direction: column;
padding: 12px 14px;
}
.nav-account .detail-account button {
display: flex;
justify-content: start;
align-items: center;
text-decoration: none;
width: 100%;
padding: 8px 16px;
font-size: 13px;
font-weight: 500;
color: var(--black);
border-radius: 10px;
transition: all 0.2s ease;
border: none;
background: none;
}
.nav-account .detail-account button:hover {
background: var(--primary-light);
color: var(--primary);
transition: all 0.2s ease;
}
.nav-account .detail-account a {
display: flex;
justify-content: start;
align-items: center;
text-decoration: none;
width: 100%;
padding: 8px 16px;
font-size: 13px;
font-weight: 500;
color: var(--black);
border-radius: 10px;
transition: all 0.2s ease;
border: none;
background: none;
}
.nav-account .detail-account a:hover {
background: #f4f6fa;
color: #3e97ff;
transition: all 0.2s ease;
}
.toggle-icon {
background: #0049af24;
padding: 5px 10px;
border-radius: 10px;
cursor: pointer;
}
.foto-member-nav {
width: 30px;
height: 30px;
border-radius: 50%;
object-fit: cover;
}
.ant-menu-light{
background: none;
}
.con-mega-menu {
width: 700px;
height: 300px;
}
.nav-end {
display: flex;
justify-content: start;
align-items: center;
gap: .4rem;
}
.switchTheme {
position: relative;
width: 70px;
padding: 8px 16px;
.ant-switch {
background: #ccc !important;
&.ant-switch-checked {
background: #3a4b6b !important;
}
}
.ant-switch-inner {
position: relative;
left: -10px;
width: 80px;
height: 20px;
}
.anticon-moon {
position: relative;
top: 0;
left: -5px;
font-size: 14px;
}
.anticon-sun {
position: relative;
top: 0;
right: 5px;
font-size: 14px;
}
}
.containerSignOut {
position: relative;
width: 100%;
padding: 12px 14px;
&::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 1px;
background: #f4f4f4;
}
}
.btnNotif {
position: relative;
display: flex;
justify-content: center;
align-items: center;
width: 35px;
height: 35px;
background: #00000030;
border: none;
outline: none;
border-radius: 50%;
margin-right: 33px;
cursor: pointer;
svg {
font-size: 18px;
color: #fff;
}
.count {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: -3px;
right: -3px;
height: 14px;
padding: 2px 4px;
border-radius: 8px;
font-size: 10px;
font-weight: 600;
color: #0D466A;
background: #E7FF56;
}
}
.ant-drawer-header {
border: none !important;
padding-bottom: 0 !important;
}
.ant-drawer-header-title {
padding-bottom: .6rem;
border-bottom: 1px solid #ddd;
.ant-drawer-close svg {
font-size: 14px !important;
}
.ant-drawer-title {
font-size: 16px;
font-weight: 600;
color: #3a4b6b;
}
}
.ant-drawer-body {
ul.navNotif {
position: relative;
padding-left: .8rem;
// border-left: 2px solid #ddd;
li {
position: relative;
list-style: none;
width: 100%;
&:last-child .text-secondary::before {
background: transparent !important;
}
.date {
// position: relative;
font-size: 14px;
font-weight: 600;
margin-bottom: 2px;
span {
position: relative;
padding: 0 12px;
background: #fff;
z-index: 99;
}
&.text-primary::before {
content: '';
position: absolute;
top: 9px;
left: -14px;
height: calc(100% + 16px);
width: 2px;
background: var(--primary);
z-index: 7;
}
&.text-primary::after {
content: '';
position: absolute;
top: 9px;
left: -14px;
width: calc(100% + 14px);
height: 1px;
background: var(--primary);
z-index: 7;
}
&.text-secondary::before {
content: '';
position: absolute;
top: 9px;
left: -14px;
height: calc(100% + 16px);
width: 2px;
background: var(--secondary);
z-index: 7;
}
&.text-secondary::after {
content: '';
position: absolute;
top: 9px;
left: -14px;
width: calc(100% + 14px);
height: 1px;
background: var(--secondary);
z-index: 7;
}
.shape {
position: absolute;
}
&.text-primary .shape::after {
content: '';
position: absolute;
top: 6px;
left: -17px;
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--primary-light);
border: 2px solid var(--primary);
transform: rotate(45deg);
z-index: 999;
}
&.text-secondary .shape::after {
content: '';
position: absolute;
top: 6px;
left: -17px;
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--secondary-light);
border: 2px solid var(--secondary);
transform: rotate(45deg);
z-index: 999;
}
}
.notification {
position: relative;
display: flex;
justify-content: start;
align-items: center;
gap: .8rem;
width: 100%;
height: 70px;
padding: 8px 14px;
margin-bottom: 1rem;
border-radius: 16px;
&.notif-unread {
border: 1px solid var(--primary);
background: var(--primary-light);
.icon {
background: var(--primary);
svg {
animation: shake 2s ease infinite;
animation-iteration-count: infinite;
}
}
.title,
.subtitle {
color: var(--primary);
}
}
&.notif-read {
border: 1px solid var(--secondary);
background: var(--secondary-light);
.icon {
background: var(--secondary);
}
.title,
.subtitle {
color: #888;
}
}
.containerIcon {
position: relative;
width: 15%;
}
.desc {
position: relative;
width: 85%;
}
.icon {
display: flex;
justify-content: center;
align-items: center;
position: relative;
width: 40px !important;
height: 40px !important;
border-radius: 12px;
font-size: 22px;
color: #fff;
}
.title {
font-size: 14px;
font-weight: 600;
}
.subtitle {
font-size: 12px;
font-weight: 400;
line-height: 15px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
}
}
@keyframes shake {
0% { transform:translate(0,0) }
1.78571% { transform:translate(3px,0) }
3.57143% { transform:translate(0,0) }
5.35714% { transform:translate(3px,0) }
7.14286% { transform:translate(0,0) }
8.92857% { transform:translate(3px,0) }
10.71429% { transform:translate(0,0) }
100% { transform:translate(0,0) }
}
}
}
.menuHorizontal {
position: relative;
width: 100%;
}
.menuInline {
position: absolute;
top: 0;
left: 0;
width: 280px;
height: 100vh;
background: #ffffff80;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
box-shadow: 0px 0px 27px #74747430;
z-index: 999999;
transition: .4s;
&.out {
transform: translateX(-120%);
transition: .4s;
}
.ant-menu-inline {
max-height: 100vh;
overflow-y: scroll;
&::-webkit-scrollbar {
height: 0;
}
&::-webkit-scrollbar-thumb {
background: transparent;
}
&::-webkit-scrollbar-track {
background: transparent;
}
}
}
.backdropMenu {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: #ffffff20;
backdrop-filter: blur(4px);
-webkit-backdrop-filter: blur(4px);
z-index: 9999;
}
@media screen and (min-width: 1100px) {
.btnMenuShow,
.menuInline,
.backdropMenu {
display: none;
}
}
@media screen and (max-width: 1100px) {
.ant-menu.ant-menu-horizontal {
display: none;
}
.navbar .nav-start {
gap: 12px;
}
.navbar .nav-logo {
margin-left: 0;
}
}
@media screen and (max-width: 640px) {
.nav-account .container-account .account .text {
display: none;
}
}
.btn-menu-toggle{
width: 35px;
height:35px;
position: absolute;
bottom: 10px;
//background: #00000038;
background: rgba(0, 0, 0, 0.1882352941);
border-radius: 26px;
border: none;
color: #fff;
cursor: pointer;
margin-left: 7px;
margin-top: 5px;
font-size: 16px;
transition: 0.5s ease-in-out;
&:hover{
background: #ffffff;
color: var(--primary);
}
}