Add new components, styles, and services for user management and navigation

This commit is contained in:
liosha84
2025-06-25 13:44:35 +03:00
parent 9b7465d3dc
commit 2ae1871330
125 changed files with 12940 additions and 1610 deletions
@@ -0,0 +1,18 @@
.avatar {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: $border-radius;
font: {
size: 18px;
weight: 600;
}
width: 48px;
height: 48px;
&.avatar-s {
width: 40px;
height: 40px;
font-size: 14px;
}
}
@@ -0,0 +1,13 @@
// ============================
// Badge css start
// ============================
.badge {
@each $color, $value in $theme-colors {
&.bg-light-#{$color} {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
}
}
}
@@ -0,0 +1,125 @@
// ============================
// Button css start
// ============================
.btn {
font-size: 14px;
i {
font-size: 18px;
}
svg {
width: 18px;
height: 18px;
}
&[class*='btn-link-'],
&[class*='btn-light-'] {
box-shadow: none;
}
&[class*='btn-outline-']:not(:hover) {
box-shadow: none;
}
&.btn-shadow {
box-shadow: 0 6px 7px -1px rgba(80, 86, 175, 0.3);
}
&.btn-sm {
i {
font-size: 14px;
}
}
}
@each $color, $value in $theme-colors {
.btn-light-#{$color} {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
.material-icons-two-tone {
background-color: $value;
}
&:hover {
background: $value;
color: #fff;
border-color: $value;
.material-icons-two-tone {
background-color: #fff;
}
}
&.focus,
&:focus {
background: $value;
color: #fff;
border-color: $value;
.material-icons-two-tone {
background-color: #fff;
}
}
&:not(:disabled):not(.disabled).active,
&:not(:disabled):not(.disabled):active,
.show > &.dropdown-toggle {
background: $value;
color: #fff;
border-color: $value;
.material-icons-two-tone {
background-color: #fff;
}
}
}
.btn-check:active,
.btn-check:checked {
+ .btn-light-#{$color} {
background: $value;
color: #fff;
border-color: $value;
.material-icons-two-tone {
background-color: #fff;
}
}
}
.btn-link-#{$color} {
background: transparent;
color: $value;
border-color: transparent;
.material-icons-two-tone {
background-color: $value;
}
&:hover {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
}
&.focus,
&:focus {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
}
&:not(:disabled):not(.disabled).active,
&:not(:disabled):not(.disabled):active,
.show > &.dropdown-toggle {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
}
}
.btn-check:active,
.btn-check:checked {
+ .btn-link-#{$color} {
background: shift-color($value, $soft-bg-level);
color: $value;
border-color: shift-color($value, $soft-bg-level);
}
}
}
@@ -0,0 +1,58 @@
.card {
margin-bottom: 24px;
transition: box-shadow 0.2s ease-in-out;
.card-header {
border-bottom: 1px solid $border-color;
h5 {
margin-bottom: 0;
color: $headings-color;
font-size: 0.875rem;
font-weight: 600;
+ p,
+ small {
margin-top: 10px;
&:last-child {
margin-bottom: 0;
}
}
}
}
.card-footer {
transition: box-shadow 0.2s ease-in-out;
border-top: 1px solid $border-color;
}
&:hover {
.card-footer[class*='bg-'] {
box-shadow: none;
}
}
.card-body {
&.pc-component {
position: relative;
padding: 25px;
border: 1px solid rgba(215, 223, 233, 0.5);
}
}
}
@include media-breakpoint-down(sm) {
.card {
margin-bottom: 20px;
.card-header {
padding: 20px;
h5 {
font-size: 0.875rem;
}
}
.card-body {
padding: 20px;
}
}
}
@@ -0,0 +1,8 @@
@import 'avatar';
@import 'button';
@import 'badge';
@import 'dropdown';
@import 'table';
@import 'tabs';
@import 'card';
@import 'form';
@@ -0,0 +1,85 @@
.dropdown-toggle {
&.arrow-none {
&:after {
display: none;
}
}
}
.pc-header {
.dropdown-menu {
animation: 0.3s ease-in-out 0s normal forwards 0.3s fadeIn;
}
}
@keyframes fadeIn {
from {
transform: translate3d(0, 8px, 0);
opacity: 0;
}
to {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
.dropdown .dropdown-item {
display: flex;
align-items: center;
&.active,
&:active,
&:focus,
&:hover {
background: var(--pc-active-background);
color: var(--bs-dropdown-link-color);
i {
&.material-icons-two-tone {
background-color: $dropdown-link-hover-color;
}
}
}
}
.dropdown-menu {
--bs-dropdown-zindex: 8;
box-shadow: 0 4px 24px 0 rgba(62, 57, 107, 0.18);
border: none;
.dropdown-item {
padding: 10px 25px;
i {
font-size: 18px;
margin-right: 10px;
&.material-icons-two-tone {
vertical-align: bottom;
font-size: 22px;
background-color: var(--pc-header-color);
}
}
svg {
width: 18px;
height: 18px;
margin-right: 10px;
}
.float-right {
svg {
width: 14px;
height: 14px;
}
}
}
}
.dropdown-menu-dark {
.dropdown-item {
&.active,
&:active {
color: var(--bs-dropdown-link-hover-color);
background-color: var(--bs-dropdown-link-hover-bg);
}
}
}
@@ -0,0 +1,255 @@
.form-group {
margin-bottom: 1rem;
label {
font-size: 14px;
font-weight: 500;
}
}
select.form-control,
.form-control {
&:hover {
background-color: $gray-100;
}
&[readonly] {
opacity: 0.6;
}
}
.input-group-text svg {
width: 18px;
height: 18px;
}
.form-control-color-picker {
height: 43px;
padding: 0.5rem;
}
select.form-control {
appearance: none;
background: #{$input-bg}
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='currentColor' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")
no-repeat right 0.75rem center/18px 25px;
&[data-multiselectsplitter-firstselect-selector],
&[data-multiselectsplitter-secondselect-selector] {
background: none;
}
}
.form-floating {
> label {
top: 1px;
}
> .form-control:focus,
> .form-control:not(:placeholder-shown),
> .form-select {
~ label {
color: $gray-600;
}
}
> .form-control:focus {
~ label {
color: $component-active-bg;
}
}
> input {
color: $body-color;
}
}
.user-card {
.form-search {
position: relative;
i {
position: absolute;
top: 12px;
left: 15px;
font-size: 14px;
}
.form-control {
padding-left: 42px;
background: transparent;
}
}
.btn {
i {
font-size: inherit;
}
span {
white-space: pre;
}
}
}
.form-check {
label {
cursor: pointer;
input {
cursor: pointer;
}
}
}
@each $color, $value in $theme-colors {
.form-check {
.form-check-input {
&.input-#{$color} {
&:checked {
border-color: $value;
background-color: $value;
}
}
&.input-light-#{$color} {
&:checked {
border-color: shift-color($value, $soft-bg-level);
background-color: shift-color($value, $soft-bg-level);
&[type='checkbox'] {
background-image: escape-svg(
url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$value}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/></svg>")
);
}
&[type='radio'] {
background-image: escape-svg(
url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='2' fill='#{$value}'/></svg>")
);
}
}
}
&.input-#{$color},
&.input-light-#{$color} {
&:focus {
&[type='checkbox'],
&[type='radio'] {
box-shadow: 0 0 0 0.2rem rgba($value, 0.25);
border-color: $value;
}
}
}
}
&.form-switch {
.form-check-input.input-light-#{$color} {
&:checked {
background-image: escape-svg(
url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$value}'/></svg>")
);
}
}
}
}
}
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child),
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
border-right: none;
}
// sticky header start
.sticky-action {
top: $header-height;
position: sticky;
z-index: 1020;
background: var(--bs-card-bg);
border-radius: var(--bs-card-border-radius);
}
// sticky header end
// switch v1 start
.switch-demo {
.custom-switch-v1 {
margin-bottom: 4px;
}
}
.custom-switch-v1 {
&.form-switch {
padding-left: 2.9em;
.form-check-input {
height: 20px;
width: 35px;
margin-left: -2.9em;
background-image: escape-svg(
url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='4.1' fill='#{$form-switch-color}'/%3e%3c/svg%3e")
);
transition: 0.35s cubic-bezier(0.54, 1.6, 0.5, 1);
//box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
&[class*='input-light-'] {
border: none;
}
&:focus {
box-shadow: none;
border-color: rgba(0, 0, 0, 0.25);
}
&:checked {
background-image: escape-svg(
url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='4.1' fill='%23ffffff'/%3e%3c/svg%3e")
);
}
}
@each $color, $value in $theme-colors {
.form-check-input.input-light-#{$color} {
&:checked {
background-image: escape-svg(
url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='4.1' fill='#{$value}'/%3e%3c/svg%3e")
);
}
}
}
}
// ===========
.custom-control-label {
&::before {
transition: 0.2s cubic-bezier(0.24, 0, 0.5, 1);
height: 20px;
width: 35px;
border-radius: 0.8rem;
top: 0;
left: -2.55rem;
}
&::after {
top: calc(0.15625rem - 2px);
left: calc(-2.25rem - 4px);
height: 19px;
width: 19px;
border-radius: 0.7rem;
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.1),
0 4px 0 0 rgba(0, 0, 0, 0.04),
0 4px 9px rgba(0, 0, 0, 0.13),
0 3px 3px rgba(0, 0, 0, 0.05);
transition: 0.35s cubic-bezier(0.54, 1.6, 0.5, 1);
}
}
.custom-control-input {
&:checked ~ .custom-control-label::after {
transform: translateX(0.95rem);
}
}
// ===========
}
// switch v1 end
@@ -0,0 +1,39 @@
.table {
&.table-align-center {
td,
th {
vertical-align: middle;
}
}
thead th {
padding: 0.9rem 0.75rem;
}
td,
th {
vertical-align: middle;
&:first-child {
padding-left: 24px;
}
&:last-child {
padding-right: 24px;
}
}
&.table-borderless {
td,
th {
border: none !important;
}
}
thead th {
background-color: $gray-100;
border-top: 1px solid $gray-300;
border-bottom: 2px solid $gray-300;
font-size: 12px;
}
}
.table-hover tbody tr:hover {
// background-color: transparentize($primary, 0.97);
background-color: $gray-200;
}
@@ -0,0 +1,57 @@
.tabs-border {
&.nav-tabs {
.nav-item {
margin-bottom: 0;
}
.nav-link {
border: none;
background:
no-repeat center bottom,
center 100%;
background-size:
0 100%,
100% 100%;
transition: background 0.3s ease-out;
background-image: linear-gradient(to top, theme-color('primary') 2px, rgba(255, 255, 255, 0) 2px);
&.active {
background-size:
100% 100%,
100% 100%;
}
}
}
}
.tabs-light {
&.nav-pill {
+ .tab-content {
border-top: 1px solid $border-color;
}
.nav-item {
margin-bottom: 0;
.nav-link {
color: $primary;
background: shift-color($primary, $soft-bg-level);
border-radius: 4px;
transition: background 0.3s ease-out;
}
+ .nav-item {
margin-left: 10px;
}
}
.nav-link {
border: none;
&.active {
color: $white;
background: $primary;
}
}
}
}
+233
View File
@@ -0,0 +1,233 @@
/** =====================
2. Custom css start
========================== **/
* {
&:focus {
outline: none;
}
}
.accordion {
--#{$prefix}accordion-color: #{$body-color};
}
a {
color: $black;
&:hover {
outline: none;
text-decoration: none;
}
&:not([href]) {
color: inherit;
}
}
p {
font-size: 14px;
}
h6,
.h6,
h5,
.h5,
h4,
.h4,
h3,
.h3,
h2,
.h2,
h1,
.h1 {
color: var(--pc-heading-color);
}
b,
strong {
font-weight: 600;
}
.breadcrumb-default-icon {
.breadcrumb-item + .breadcrumb-item::before {
position: relative;
top: 2px;
}
}
.btn-page {
.btn {
margin-right: 5px;
margin-bottom: 5px;
}
.btn-group {
.btn {
margin-right: 0;
margin-bottom: 0;
&:last-child {
border-left: none;
}
}
label {
&:first-of-type {
border-right: none;
}
}
}
}
.material-icons-two-tone {
background-color: $body-color;
-webkit-text-fill-color: transparent;
vertical-align: text-bottom;
-webkit-background-clip: text;
&.text-white {
background-color: $white;
}
}
.img-radius {
border-radius: 50%;
}
.pc-icon {
&:not([class*='wid-']) {
width: 22px;
}
&:not([class*='hei-']) {
height: 22px;
}
}
/* ========================================================
=============== document ======================
========================================================
Grid examples
*/
// modal box select
.ng-dropdown-panel.ng-select-bottom {
z-index: 1099;
}
/* ================================ Blockquote Start ===================== */
@media (min-width: 1600px) {
.container {
max-width: 1540px;
}
}
.media {
display: flex;
.media-body {
flex-grow: 1;
}
}
.blockquote {
padding: 0.5rem 1rem;
}
/* ================================ Blockquote End ===================== */
.color-card {
.card-body {
margin: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
background: rgba(107, 117, 125, 0.08);
border-radius: $border-radius;
}
}
.color-block {
border-radius: $border-radius;
margin: 4px 0;
@each $name, $value in $more-colors {
$i: 100;
@while $i<=900 {
&.bg-#{$name}-#{$i} {
color: color-contrast(map-get($value, $i));
}
&.text-#{$name}-#{$i} {
background-color: color-contrast(map-get($value, $i));
}
$i: $i + 100;
}
}
}
.row {
> div {
.color-block {
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
}
}
.pagination {
.page-item {
.page-link {
border-radius: 0;
}
&:first-child {
.page-link {
border-radius: var(--bs-pagination-border-radius) 0 0 var(--bs-pagination-border-radius);
}
}
&:last-child {
.page-link {
border-radius: 0 var(--bs-pagination-border-radius) var(--bs-pagination-border-radius) 0;
}
}
}
}
.form-search {
position: relative;
i {
position: absolute;
top: 12px;
left: 15px;
font-size: 20px;
}
.form-control {
padding-left: 50px;
}
&.product-search {
i {
font-size: 13px;
color: rgba(0, 0, 0, 0.54);
top: 12px;
}
.form-control {
padding-left: 35px;
}
}
}
// offcanvas page css
.customer-body {
height: calc(100% - 60px);
}
.offcanvas-top,
.offcanvas-bottom {
min-height: 240px;
}
+184
View File
@@ -0,0 +1,184 @@
/** =====================
Generic-class css start
========================== **/
/*====== Padding , Margin css starts ======*/
$i: 0;
@while $i<=50 {
.p {
&-#{$i} {
padding: #{$i}px;
}
&-t-#{$i} {
padding-top: #{$i}px;
}
&-b-#{$i} {
padding-bottom: #{$i}px;
}
&-l-#{$i} {
padding-left: #{$i}px;
}
&-r-#{$i} {
padding-right: #{$i}px;
}
}
.m {
&-#{$i} {
margin: #{$i}px;
}
&-t-#{$i} {
margin-top: #{$i}px;
}
&-b-#{$i} {
margin-bottom: #{$i}px;
}
&-l-#{$i} {
margin-left: #{$i}px;
}
&-r-#{$i} {
margin-right: #{$i}px;
}
}
$i: $i + 5;
}
/*====== Padding , Margin css ends ======*/
/*====== Font-size css starts ======*/
$i: 6;
@while $i<=80 {
.f-#{$i} {
font-size: #{$i}px;
}
$i: $i + 2;
}
/*====== Font-size css ends ======*/
/*====== Font-weight css starts ======*/
$i: 100;
@while $i<=900 {
.f-w-#{$i} {
font-weight: #{$i};
}
$i: $i + 100;
}
/*====== Font-weight css ends ======*/
/*====== width, Height css starts ======*/
$i: 10;
@while $i<=150 {
.wid-#{$i} {
width: #{$i}px;
}
.hei-#{$i} {
height: #{$i}px;
}
$i: $i + 5;
}
/*====== width, Height css ends ======*/
/*====== border-width css starts ======*/
$i: 1;
@while $i<=8 {
.b-wid-#{$i} {
border-width: #{$i}px;
}
$i: $i + 1;
}
/*====== border-width css ends ======*/
/*====== background starts ======*/
.text-header {
color: var(--bs-heading-color);
}
.bg-body {
background: var(--bs-body-bg);
}
@each $color, $value in $theme-colors {
.bg-light-#{$color} {
background: shift-color($value, $soft-bg-level);
color: $value;
}
.icon-svg-#{$color} {
fill: shift-color($value, $soft-bg-level);
stroke: $value;
}
.material-icons-two-tone {
&.text-#{$color} {
background-color: $value;
}
}
.text-hover-#{$color}:hover {
color: $value !important;
}
}
/*====== background ends ======*/
/*====== border color css starts ======*/
@each $color, $value in $theme-colors {
.b-#{$color} {
border: 1px solid $value;
}
.border-bottom-#{$color} td {
border-bottom: 1px solid $value;
}
.border-bottom-#{$color} th {
border-bottom: 1px solid $value !important;
}
.fill-#{$color} {
fill: $value;
}
}
/*====== border color css ends ======*/
/*====== text-color, background color css starts ======*/
.text-sm {
font-size: 0.75rem !important;
}
/*====== more bootstrap colors start ======*/
$more-colors: (
'blue': (
100: $blue-100,
200: $blue-200,
300: $blue-300,
400: $blue-400,
500: $blue-500,
600: $blue-600,
700: $blue-700,
800: $blue-800,
900: $blue-900
),
'gray': (
100: $gray-100,
200: $gray-200,
300: $gray-300,
400: $gray-400,
500: $gray-500,
600: $gray-600,
700: $gray-700,
800: $gray-800,
900: $gray-900
)
);
@each $name, $value in $more-colors {
$i: 100;
@while $i<=900 {
.bg-#{$name}-#{$i} {
background: map-get($value, $i);
}
.text-#{$name}-#{$i} {
color: map-get($value, $i);
}
$i: $i + 100;
}
}
/*====== more bootstrap colors end ======*/
@@ -0,0 +1,65 @@
.page-header {
display: flex;
align-items: center;
top: $header-height;
left: $sidebar-width;
right: 0;
z-index: 1023;
min-height: 55px;
padding: 0px 0px 13px 0px;
background: transparent;
border-radius: $border-radius;
.page-block {
width: 100%;
}
.page-header-title {
display: inline-block;
}
h5 {
margin-bottom: 0;
margin-right: 8px;
padding-right: 8px;
font-weight: 500;
}
.breadcrumb {
padding: 0;
display: inline-flex;
margin-bottom: 0;
background: transparent;
font-size: 13px;
a {
color: var(--pc-sidebar-color);
}
.breadcrumb-item {
.home {
color: $gray-600;
font-size: 14px;
}
a:hover {
color: $primary;
}
+ .breadcrumb-item::before {
position: relative;
top: 2px;
}
&:last-child {
opacity: 0.75;
}
}
svg {
width: 14px;
height: 14px;
vertical-align: baseline;
}
}
}
@@ -0,0 +1,23 @@
.pc-footer {
position: relative;
z-index: 995;
margin-left: $sidebar-width;
margin-top: $header-height;
padding: 15px 0;
background: rgb(250, 250, 251);
padding: 12px 48px;
.footer-wrapper {
padding-left: 20px;
padding-right: 20px;
}
.footer-link {
.list-inline-item:not(:last-child) {
margin-right: 0.9rem;
}
}
@media (max-width: 1024px) {
margin-left: 0;
}
}
@@ -0,0 +1,338 @@
.pc-sidebar {
background: var(--pc-sidebar-background);
width: $sidebar-width;
position: fixed;
top: 0;
bottom: 0;
overflow: hidden;
z-index: 1026;
box-shadow: var(--pc-sidebar-shadow);
display: block;
height: 100vh;
color: var(--pc-sidebar-color);
border-right: 1px solid rgb(240, 240, 240);
a {
color: #262626;
cursor: pointer;
}
.navbar-wrapper {
width: 100%;
height: 100%;
}
ul {
list-style: none;
padding-left: 0;
margin-bottom: 0;
}
.m-header {
height: $header-height;
display: flex;
align-items: center;
padding: 16px 24px;
position: relative;
.logo-sm {
display: none;
}
}
.nav-card {
background: $gray-100;
}
.user-profile-section {
padding: 10px 24px;
border-top: 2px solid rgb(240, 240, 240);
.dropdown-toggle::after {
display: none;
}
.user-images {
position: relative;
display: flex;
align-items: center;
justify-content: center;
line-height: 1;
border-radius: 50%;
overflow: hidden;
width: 46px;
height: 46px;
img {
width: 100%;
height: 100%;
text-align: center;
object-fit: cover;
color: transparent;
text-indent: 10000px;
}
}
}
&.navbar-collapsed {
width: 0px;
height: 100%;
transition: all 0.3s ease-in-out;
~ app-nav-bar .pc-header {
left: 0px;
}
~ .pc-footer {
margin-left: 20px;
}
~ .pc-container {
margin-left: 0px;
}
.navbar-wrapper {
.m-header {
left: -260px;
}
}
}
.navbar-content {
// position: relative;
// height: calc(100vh - 60px);
padding: 16px 0;
.coded-inner-navbar {
flex-direction: column;
app-nav-item > li.active:after {
top: 0 !important;
height: 100% !important;
}
li {
&.coded-hasmenu {
position: relative;
padding-bottom: 2px;
> a {
&:after {
content: '\e844';
font-family: 'feather';
font-size: 15px;
border: none;
position: absolute;
top: 11px;
right: 20px;
transition: 0.3s ease-in-out;
}
}
.coded-submenu {
opacity: 0;
visibility: hidden;
transform-origin: 50% 50%;
transition:
transform 0.3s,
opacity 0.3s;
transform-style: preserve-3d;
transform: rotateX(-90deg);
position: absolute;
display: block;
> app-nav-item li {
> a {
text-align: left;
padding: 12px 30px 12px 55px;
margin: 0;
display: block;
&:before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 2px;
height: 100%;
}
}
}
> app-nav-collapse li {
> a {
text-align: left;
padding: 12px 30px 12px 55px;
margin: 0;
display: block;
}
.coded-submenu > {
app-nav-item li {
> a {
padding: 12px 30px 12px 75px;
}
}
}
}
}
&.coded-trigger {
> a {
&:after {
transform: rotate(90deg);
}
}
> .coded-submenu {
position: relative;
opacity: 1;
visibility: visible;
transform: rotateX(0deg);
}
}
}
&.coded-menu-caption {
font-size: 0.75rem;
font-weight: 500;
padding: 12px 24px 12px;
text-transform: capitalize;
position: relative;
color: $gray-600;
&.first-group {
padding: 0px 24px 12px;
}
}
> a {
padding: 12px 16px 12px 28px;
display: flex;
align-items: center;
border-radius: 5px;
position: relative;
.coded-mtext {
position: relative;
}
> .coded-micon {
font-size: 16px;
margin-right: 8px;
height: 16px;
display: inline-block;
text-align: center;
i {
display: flex;
}
+ .coded-mtext {
position: relative;
vertical-align: middle;
text-align: center;
}
}
}
}
app-nav-item {
li {
> a {
> .coded-micon {
margin-right: 12px;
}
}
}
}
> app-nav-group > app-nav-item {
li {
position: relative;
&:before {
content: '';
position: absolute;
top: 0;
right: 0;
width: 2px;
height: 100%;
}
}
}
}
}
.version {
display: flex;
flex-direction: row;
justify-content: center;
margin-bottom: 16px;
cursor: pointer;
label {
overflow: hidden;
text-overflow: ellipsis;
padding-left: 8px;
padding-right: 8px;
white-space: nowrap;
background-color: rgb(250, 250, 250);
color: rgb(158, 158, 158);
border-radius: 16px;
}
}
}
@media (min-width: 1025px) {
.pc-sidebar {
transition: width 0.15s ease;
~ .pc-header {
transition: left 0.15s ease;
}
~ .pc-footer,
~ .pc-container {
transition: margin-left 0.15s ease;
}
&.pc-sidebar-hide {
width: 0;
~ .pc-header {
left: 0;
}
~ .pc-footer,
~ .pc-container {
margin-left: 0px;
}
}
}
}
@media (max-width: 1024px) {
.pc-header .pc-h-item.pc-sidebar-collapse {
display: none;
}
.pc-sidebar {
left: -#{$sidebar-width};
box-shadow: none;
top: 0;
transition: all 0.15s ease-in-out;
&.mob-open {
left: 0;
.navbar-wrapper {
position: relative;
z-index: 5;
background: inherit;
}
~ .pc-container {
.pc-menu-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1025;
}
}
}
}
}
@@ -0,0 +1,465 @@
.pc-header {
background: var(--pc-header-background);
color: var(--pc-header-color);
min-height: $header-height;
border-bottom: 1px solid rgb(240, 240, 240);
position: fixed;
left: $sidebar-width;
right: 0;
z-index: 1025;
display: flex;
ul {
margin-bottom: 0;
display: inline-flex;
}
.m-header {
height: $header-height;
display: flex;
align-items: center;
justify-content: space-between;
width: $sidebar-width;
padding: 16px 10px 16px 24px;
}
.header-wrapper {
display: flex;
padding: 0 25px 0px 12px;
flex-grow: 1;
justify-content: space-between;
@include media-breakpoint-down(sm) {
padding: 0 15px;
}
}
.header-search {
position: relative;
.form-control {
border-radius: $border-radius;
padding: 0.344rem 1.8rem;
width: 200px;
max-width: 100%;
font-size: 0.75rem;
@media (max-width: 1024px) {
width: 100%;
}
}
.search {
position: absolute;
top: 5px;
left: 11px;
width: 12px;
height: 12px;
}
.btn-search {
position: absolute;
top: 7px;
right: 9px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: $border-radius;
}
}
.pc-h-item {
min-height: $header-height;
display: flex;
align-items: center;
position: relative;
}
.pc-head-link {
margin: 0 8px;
position: relative;
font-weight: 500;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: $border-radius;
color: var(--pc-header-color);
overflow: hidden;
&.dropdown-toggle::after {
display: none;
}
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
background: var(--pc-active-background);
border-radius: 50%;
transform: scale(0);
transition: all 0.08s cubic-bezier(0.37, 0.24, 0.53, 0.99);
}
> img,
> span,
> svg,
> i {
position: relative;
z-index: 5;
transition: all 0.08s cubic-bezier(0.37, 0.24, 0.53, 0.99);
}
> i {
color: var(--pc-header-color);
font-size: 16px;
}
> svg {
width: 20px;
height: 20px;
}
&.active,
&:active,
&:focus,
&:hover {
text-decoration: none;
color: var(--pc-header-color);
> svg,
> i {
color: var(--pc-header-color);
}
&::before {
border-radius: 0;
transform: scale(1);
}
.hamburger {
.hamburger-inner {
background-color: $secondary;
&::after,
&::before {
background-color: $secondary;
}
}
}
i.material-icons-two-tone {
background-color: $secondary;
}
}
.pc-h-badge {
display: flex;
flex-flow: wrap;
place-content: center;
font-weight: 500;
font-size: 0.75rem;
line-height: 1;
transition: transform 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
transform-origin: 100% 0%;
min-width: 16px;
height: 16px;
padding: 4px;
position: absolute;
top: 2px;
right: 2px;
border-radius: 50%;
z-index: 9;
&.dots {
width: 9px;
height: 9px;
top: 7px;
right: 16px;
padding: 0;
}
}
.user-desc,
.user-name {
display: block;
line-height: 1;
}
.user-name {
margin-bottom: 5px;
font: {
size: 15px;
weight: 600;
}
}
.user-desc {
font: {
size: 12px;
weight: 400;
}
color: var(--pc-header-color);
}
.settings {
animation: anim-rotate 2s infinite linear;
}
}
.pc-h-dropdown {
transform: none !important;
top: 100% !important;
&.dropdown-menu-end {
right: 0 !important;
left: auto !important;
}
}
.drp-search {
min-width: 20rem;
}
.user-avatar {
width: 40px;
border-radius: 50%;
}
.header-user-profile {
.pc-head-link {
width: auto;
padding: 7px;
> span > i {
font-size: 22px;
margin-right: 8px;
}
.user-avatar {
width: 34px;
}
@include media-breakpoint-down(sm) {
width: 40px;
.user-avatar {
margin-right: 0;
}
> span,
> span > i {
display: none;
}
}
}
}
.dropdown-user-profile {
min-width: 290px;
max-width: 100%;
.drp-tabs {
border-bottom: 0;
display: flex;
margin-bottom: 10px;
.nav-item {
margin-bottom: -0px;
.nav-link {
position: relative;
padding: 0.7rem;
font-weight: 500;
color: $body-color;
display: flex;
align-items: center;
justify-content: center;
i {
font-size: 18px;
margin: 0 4px;
}
.material-icons-two-tone {
font-size: 20px;
}
&:after {
content: '';
background: $primary;
position: absolute;
transition: all 0.3s ease-in-out;
left: 50%;
right: 50%;
bottom: -1px;
height: 2px;
border-radius: 2px 2px 0 0;
}
}
}
.nav-link:hover {
border-color: transparent;
color: $primary;
.material-icons-two-tone {
background-color: $primary;
}
}
.nav-item.show .nav-link,
.nav-link.active {
border-color: transparent;
color: $primary;
.material-icons-two-tone {
background-color: $primary;
}
&:after {
left: 0;
right: 0;
}
}
}
.tab-content {
.dropdown-item {
i {
font-size: 14px;
}
svg {
margin-right: 0px;
width: 14px;
height: 14px;
}
}
}
}
.dropdown-notification {
min-width: 420px;
max-width: 100%;
.list-group-item-action {
&:active,
&:hover,
&:focus {
background: shift-color($primary, $soft-bg-level);
}
.user-avatar,
h5 {
cursor: pointer;
}
}
.badge {
font-size: 0.8125rem;
padding: 0.43em 1em;
}
.user-avatar {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
font-size: 20px;
}
.notification-file {
display: flex;
align-items: center;
i {
font-size: 20px;
margin-right: 16px;
}
}
@media (max-width: 575.98px) {
min-width: 100%;
}
}
}
@keyframes anim-rotate {
0% {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
@media (min-width: 1025px) {
.pc-header .pc-h-item.pc-sidebar-popup {
display: none;
}
}
@media (max-width: 1024px) {
.pc-header {
top: 0;
left: 0;
transition: all 0.15s ease-in-out;
.m-header {
display: none;
}
.pc-head-link {
.user-desc,
.user-name {
display: none;
}
}
.pc-mob-drp {
&.mob-drp-active {
.pc-h-item {
display: block;
min-height: auto;
position: relative;
.pc-head-link {
display: block;
margin: 5px 10px !important;
}
.dropdown-menu {
position: relative !important;
width: 100%;
float: none;
box-shadow: none;
}
}
ul {
display: block;
}
}
}
}
}
@include media-breakpoint-down(sm) {
.pc-header {
.pc-head-link {
padding: 0.65rem;
margin: 0 5px;
}
.pc-h-item {
position: static;
.pc-h-dropdown {
left: 0 !important;
right: 0 !important;
}
}
}
}
@@ -0,0 +1,41 @@
body {
background-color: $white;
}
.pc-container {
$temp: $header-height + 53;
position: relative;
top: $header-height;
margin-left: $sidebar-width;
min-height: calc(100vh - #{$temp});
background: rgba(250, 250, 251, 0.7);
.coded-content {
padding-left: 48px;
padding-right: 48px;
padding-top: 24px;
@include media-breakpoint-down(xl) {
&.container {
max-width: 100%;
}
}
@include media-breakpoint-down(md) {
padding-left: 32px;
padding-right: 32px;
padding-top: 16px;
}
}
.page-header + .row {
padding-top: 24px;
}
.page-header + .coded-content {
padding-top: calc(30px + 55px);
}
@media (max-width: 1024px) {
margin-left: 0px;
margin-right: 0px;
}
}
@@ -0,0 +1,87 @@
@import '../settings/color-variables.scss';
:root {
@each $name, $value in $preset-colors {
$pc-primary: map-get($value, 'primary');
$color-rgb: to-rgb($pc-primary);
--bs-blue: #{$pc-primary};
--bs-primary-rgb: #{$color-rgb};
}
}
.pc-sidebar {
.coded-inner-navbar {
> app-nav-group {
> app-nav-collapse {
.coded-hasmenu {
&.active,
&:focus,
&:hover {
> a {
background: rgba(var(--bs-primary-rgb), 0.1);
}
&.coded-trigger {
> a {
color: var(--bs-blue);
background: none;
}
.coded-submenu {
> app-nav-item {
li {
&.active,
&:focus,
&:hover {
> a {
background: rgba(var(--bs-primary-rgb), 0.1);
}
}
}
}
}
}
}
}
.coded-submenu > app-nav-item li {
&.active {
> a {
background: rgba(var(--bs-primary-rgb), 0.1);
color: var(--bs-blue);
&:before {
background: var(--bs-blue);
}
}
}
}
}
> app-nav-item {
li {
&.nav-item {
&.active,
&:focus,
&:hover {
background: rgba(var(--bs-primary-rgb), 0.1);
}
&.active {
> a {
color: var(--bs-blue);
.coded-micon {
color: var(--bs-blue);
}
}
&:before {
background: var(--bs-blue);
}
}
}
}
}
}
}
}