Adds: Sidebar Footer (style only)

This commit is contained in:
apapachristou 2019-05-02 15:43:02 +03:00
parent 4562f65a6d
commit 078d2a736c
8 changed files with 578 additions and 495 deletions

View File

@ -0,0 +1,29 @@
.sidebar-footer {
width: 230px;
height: 40px;
margin: 5px 15px;
padding: 5px;
color: rgb(117, 117, 117);
background-color: #fafafa;
box-shadow: 0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 255, 255, 0.4);
}
.sidebar-footer .option {
margin: 0px;
padding-top: 2px;
padding-bottom: 2px;
padding-right: 10px;
border-radius: 0px;
}
.sidebar-footer .vl {
border-right: 1px solid #d4d4d4;
}
.option .style-icon {
font-size: 15px;
margin: 0px;
width: 20px;
padding-top: 2px;
color: #2e75b6;
}

View File

@ -0,0 +1,8 @@
<div class="sidebar-footer d-flex justify-content-around">
<a class="option vl" href="#">
<i class="material-icons style-icon">mode_comment</i>
Glossary
</a>
<a class="option vl" href="#"><i class="fa fa-book style-icon"></i>Guide</a>
<a class="option" href="#"><i class="fa fa-life-ring style-icon"></i>Help</a>
</div>

View File

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SidebarFooterComponent } from './sidebar-footer.component';
describe('SidebarFooterComponent', () => {
let component: SidebarFooterComponent;
let fixture: ComponentFixture<SidebarFooterComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SidebarFooterComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SidebarFooterComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-sidebar-footer',
templateUrl: './sidebar-footer.component.html',
styleUrls: ['./sidebar-footer.component.css']
})
export class SidebarFooterComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}

View File

@ -18,6 +18,11 @@
.nav hr { .nav hr {
width: 230px; width: 230px;
border-top: 2px solid #fff; border-top: 1px solid #fff;
border-bottom: 2px solid #e0e2e3; border-bottom: 2px solid #d4d4d4;
}
.sidebar-footer {
position: relative;
height: 48%;
} }

View File

@ -45,6 +45,7 @@
<!-- END OF MOBILE MENU --> <!-- END OF MOBILE MENU -->
<!-- Sidebar Menu -->
<ul class="nav" *ngFor="let groupMenuItem of groupMenuItems; last as isLast; first as isFirst"> <ul class="nav" *ngFor="let groupMenuItem of groupMenuItems; last as isLast; first as isFirst">
<div class="sidebarSubtitle"> <div class="sidebarSubtitle">
<p>{{ groupMenuItem.title }}</p> <p>{{ groupMenuItem.title }}</p>
@ -59,4 +60,10 @@
</li> </li>
<hr *ngIf="!isLast"> <hr *ngIf="!isLast">
</ul> </ul>
<!-- Sidebar Footer -->
<ul class="nav sidebar-footer">
<li class="active-pro nav-item">
<app-sidebar-footer></app-sidebar-footer>
</li>
</ul>
</div> </div>

View File

@ -3,6 +3,7 @@ import { RouterModule } from '@angular/router';
import { CommonFormsModule } from '../../common/forms/common-forms.module'; import { CommonFormsModule } from '../../common/forms/common-forms.module';
import { CommonUiModule } from '../../common/ui/common-ui.module'; import { CommonUiModule } from '../../common/ui/common-ui.module';
import { SidebarComponent } from './sidebar.component'; import { SidebarComponent } from './sidebar.component';
import { SidebarFooterComponent } from './sidebar-footer/sidebar-footer.component';
@NgModule({ @NgModule({
imports: [ imports: [
@ -11,7 +12,8 @@ import { SidebarComponent } from './sidebar.component';
RouterModule RouterModule
], ],
declarations: [ declarations: [
SidebarComponent SidebarComponent,
SidebarFooterComponent
], ],
entryComponents: [], entryComponents: [],
exports: [SidebarComponent] exports: [SidebarComponent]

View File

@ -1,4 +1,4 @@
.wrapper{ .wrapper {
position: relative; position: relative;
top: 0; top: 0;
height: 100vh; height: 100vh;
@ -14,7 +14,7 @@
background: $white-color; background: $white-color;
@include shadow-big(); @include shadow-big();
.caret{ .caret {
display: inline-block; display: inline-block;
width: 0; width: 0;
height: 0; height: 0;
@ -26,36 +26,36 @@
border-left: 4px solid transparent; border-left: 4px solid transparent;
} }
&[data-background-color="black"]{ &[data-background-color="black"] {
background-color: #191919; background-color: #191919;
} }
.logo-img{ .logo-img {
width: 35px; width: 35px;
display: block; display: block;
max-height: 30px; max-height: 30px;
margin-left: 13px; margin-left: 13px;
margin-right: 15px; margin-right: 15px;
img{ img {
width: 35px; width: 35px;
top: 16px; top: 16px;
position: absolute; position: absolute;
} }
} }
.sidebar-wrapper{ .sidebar-wrapper {
position: relative; position: relative;
height: calc(100vh - 75px); height: calc(100vh - 75px);
overflow: auto; overflow: auto;
width: 260px; width: 260px;
z-index: 4; z-index: 4;
padding-bottom: 30px; padding-bottom: 10px;
.dropdown .dropdown-backdrop{ .dropdown .dropdown-backdrop {
display: none !important; display: none !important;
} }
.navbar-form{ .navbar-form {
border: none; border: none;
box-shadow: none; box-shadow: none;
@ -68,24 +68,23 @@
} }
> .nav, > .nav,
.user .user-info{ .user .user-info {
[data-toggle="collapse"] ~ div > ul > li > a{ [data-toggle="collapse"] ~ div > ul > li > a {
span{ span {
display: inline-block; display: inline-block;
@extend .animation-transition-general; @extend .animation-transition-general;
} }
.sidebar-normal{ .sidebar-normal {
margin: 0; margin: 0;
position: relative; position: relative;
transform: translateX(0px); transform: translateX(0px);
opacity: 1; opacity: 1;
white-space: nowrap; white-space: nowrap;
display: block; display: block;
} }
.sidebar-mini{ .sidebar-mini {
text-transform: uppercase; text-transform: uppercase;
width: 30px; width: 30px;
margin-right: 15px; margin-right: 15px;
@ -96,7 +95,7 @@
display: inherit; display: inherit;
} }
i{ i {
font-size: 17px; font-size: 17px;
line-height: 20px; line-height: 20px;
width: 26px; width: 26px;
@ -105,7 +104,7 @@
} }
} }
.logo-tim{ .logo-tim {
border-radius: 50%; border-radius: 50%;
border: 1px solid #333; border: 1px solid #333;
display: block; display: block;
@ -114,65 +113,65 @@
float: left; float: left;
overflow: hidden; overflow: hidden;
img{ img {
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
} }
.nav{ .nav {
margin-top: 20px; margin-top: 20px;
display: block; display: block;
.caret{ .caret {
margin-top: 13px; margin-top: 13px;
position: absolute; position: absolute;
right: 6px; right: 6px;
} }
li{ li {
> a{ > a {
&:hover, &:hover,
&:focus{ &:focus {
background-color: transparent; background-color: transparent;
outline: none; outline: none;
} }
} }
&:first-child > a{ &:first-child > a {
margin: 0 15px; margin: 0 15px;
} }
&:hover > a, &:hover > a,
& .dropdown-menu a:hover, & .dropdown-menu a:hover,
& .dropdown-menu a:focus, & .dropdown-menu a:focus,
&.active > [data-toggle="collapse"]{ &.active > [data-toggle="collapse"] {
background-color: rgba(200, 200, 200, 0.2); background-color: rgba(200, 200, 200, 0.2);
color: $black-color; color: $black-color;
box-shadow: none; box-shadow: none;
} }
&.active > [data-toggle="collapse"]{ &.active > [data-toggle="collapse"] {
i{ i {
color: #a9afbb; color: #a9afbb;
} }
} }
&.active > a, &.active > a,
&.active > a i{ &.active > a i {
color: $white-color; color: $white-color;
} }
&.separator{ &.separator {
margin: 15px 0; margin: 15px 0;
&:after{ &:after {
width: calc(100% - 30px); width: calc(100% - 30px);
content: ""; content: "";
position: absolute; position: absolute;
height: 1px; height: 1px;
left: 15px; left: 15px;
background-color: rgba(180,180,180, .3); background-color: rgba(180, 180, 180, 0.3);
} }
& + li { & + li {
@ -181,7 +180,7 @@
} }
} }
p{ p {
margin: 0; margin: 0;
line-height: 30px; line-height: 30px;
font-size: 14px; font-size: 14px;
@ -191,7 +190,7 @@
white-space: nowrap; white-space: nowrap;
} }
i{ i {
font-size: 24px; font-size: 24px;
float: left; float: left;
margin-right: 15px; margin-right: 15px;
@ -203,7 +202,7 @@
} }
.nav li a, .nav li a,
.nav li .dropdown-menu a{ .nav li .dropdown-menu a {
margin: 10px 15px 0; margin: 10px 15px 0;
border-radius: $border-radius-base; border-radius: $border-radius-base;
color: $black-color; color: $black-color;
@ -214,8 +213,7 @@
padding: 10px 15px; padding: 10px 15px;
} }
.sidebar-background {
.sidebar-background{
position: absolute; position: absolute;
z-index: 1; z-index: 1;
height: 100%; height: 100%;
@ -226,37 +224,36 @@
background-size: cover; background-size: cover;
background-position: center center; background-position: center center;
&:after{ &:after {
position: absolute; position: absolute;
z-index: 3; z-index: 3;
width: 100%; width: 100%;
height: 100%; height: 100%;
content: ""; content: "";
display: block; display: block;
background: #FFFFFF; background: #ffffff;
opacity: .93; opacity: 0.93;
} }
} }
.logo{ .logo {
padding: 15px 0px; padding: 15px 0px;
margin: 0; margin: 0;
display: block; display: block;
position: relative; position: relative;
z-index: 4; z-index: 4;
&:after{ &:after {
content: ''; content: "";
position: absolute; position: absolute;
bottom: 0; bottom: 0;
right: 15px; right: 15px;
height: 1px; height: 1px;
width: calc(100% - 30px); width: calc(100% - 30px);
background-color: rgba(180,180,180, .3); background-color: rgba(180, 180, 180, 0.3);
} }
p{ p {
float: left; float: left;
font-size: 20px; font-size: 20px;
margin: 10px 10px; margin: 10px 10px;
@ -264,7 +261,7 @@
line-height: 20px; line-height: 20px;
} }
.simple-text{ .simple-text {
text-transform: uppercase; text-transform: uppercase;
padding: $padding-small-vertical $padding-zero; padding: $padding-small-vertical $padding-zero;
display: inline-block; display: inline-block;
@ -279,7 +276,7 @@
} }
} }
.logo-tim{ .logo-tim {
border-radius: 50%; border-radius: 50%;
border: 1px solid #333; border: 1px solid #333;
display: block; display: block;
@ -288,216 +285,211 @@
float: left; float: left;
overflow: hidden; overflow: hidden;
img{ img {
width: 60px; width: 60px;
height: 60px; height: 60px;
} }
} }
&[data-background-color="black"] {
&[data-background-color="black"]{
@include sidebar-background-color($gray-base, $white-color); @include sidebar-background-color($gray-base, $white-color);
.nav li .dropdown-menu .dropdown-item{ .nav li .dropdown-menu .dropdown-item {
color: $white-color; color: $white-color;
} }
} }
&[data-color="purple"]{ &[data-color="purple"] {
@include set-background-color-button($brand-primary); @include set-background-color-button($brand-primary);
} }
&[data-color="azure"]{ &[data-color="azure"] {
@include set-background-color-button($brand-info); @include set-background-color-button($brand-info);
} }
&[data-color="green"]{ &[data-color="green"] {
@include set-background-color-button($brand-success); @include set-background-color-button($brand-success);
} }
&[data-color="orange"]{ &[data-color="orange"] {
@include set-background-color-button($brand-warning); @include set-background-color-button($brand-warning);
} }
&[data-color="danger"]{ &[data-color="danger"] {
@include set-background-color-button($brand-danger); @include set-background-color-button($brand-danger);
} }
&[data-color="rose"]{ &[data-color="rose"] {
@include set-background-color-button($brand-rose); @include set-background-color-button($brand-rose);
} }
&[data-color="white"]{ &[data-color="white"] {
@include set-background-color-button($white-color); @include set-background-color-button($white-color);
@include sidebar-active-color($black-color); @include sidebar-active-color($black-color);
} }
&[data-background-color="red"]{ &[data-background-color="red"] {
@include sidebar-background-color($brand-danger, $white-color); @include sidebar-background-color($brand-danger, $white-color);
.user, .user,
.logo, .logo,
.nav li.separator{ .nav li.separator {
&:after{ &:after {
background-color: rgba(255,255,255, .3); background-color: rgba(255, 255, 255, 0.3);
} }
} }
.nav{ .nav {
li:hover:not(.active) > a, li:hover:not(.active) > a,
li.active > [data-toggle="collapse"]{ li.active > [data-toggle="collapse"] {
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1);
} }
} }
} }
&[data-image]:after, &[data-image]:after,
&.has-image:after{ &.has-image:after {
opacity: .77; opacity: 0.77;
}
.nav .nav-item {
&.active-pro {
position: absolute;
width: 100%;
bottom: 0px;
}
} }
} }
.off-canvas-sidebar .navbar-collapse{ .off-canvas-sidebar .navbar-collapse {
.nav { .nav {
> li > a, > li > a,
> li > a:hover{ > li > a:hover {
color: $white-color; color: $white-color;
margin: 0 15px; margin: 0 15px;
} }
> li > a:focus, > li > a:focus,
> li > a:hover{ > li > a:hover {
background: rgba(200, 200, 200, 0.2); background: rgba(200, 200, 200, 0.2);
} }
} }
} }
.main-panel {
.main-panel{
position: relative; position: relative;
float: right; float: right;
width: $sidebar-width; width: $sidebar-width;
@include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1)); @include transition(0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));
.main-content{ .main-content {
margin-top: 70px; margin-top: 70px;
padding: 30px 15px; padding: 30px 15px;
min-height: calc(100vh - 123px); min-height: calc(100vh - 123px);
} }
.footer{ .footer {
border-top: 1px solid #e7e7e7; border-top: 1px solid #e7e7e7;
} }
.navbar{ .navbar {
margin-bottom: 0; margin-bottom: 0;
} }
.header{ .header {
margin-bottom: 30px; margin-bottom: 30px;
.title{ .title {
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
} }
} }
} }
.perfect-scrollbar-on{ .perfect-scrollbar-on {
.sidebar, .sidebar,
.main-panel{ .main-panel {
height: 100%; height: 100%;
max-height: 100%; max-height: 100%;
} }
} }
.sidebar, .sidebar,
.main-panel, .main-panel,
.sidebar-wrapper{ .sidebar-wrapper {
-webkit-transition-property: top,bottom,width; -webkit-transition-property: top, bottom, width;
transition-property: top,bottom, width; transition-property: top, bottom, width;
-webkit-transition-duration: .2s,.2s, .35s; -webkit-transition-duration: 0.2s, 0.2s, 0.35s;
transition-duration: .2s,.2s, .35s; transition-duration: 0.2s, 0.2s, 0.35s;
-webkit-transition-timing-function: linear,linear,ease; -webkit-transition-timing-function: linear, linear, ease;
transition-timing-function: linear,linear,ease; transition-timing-function: linear, linear, ease;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
} }
.visible-on-sidebar-regular{ .visible-on-sidebar-regular {
display: inline-block !important; display: inline-block !important;
} }
.visible-on-sidebar-mini{ .visible-on-sidebar-mini {
display: none !important; display: none !important;
} }
@media (min-width: 991px) { @media (min-width: 991px) {
.sidebar-mini{ .sidebar-mini {
.visible-on-sidebar-regular{ .visible-on-sidebar-regular {
display: none !important; display: none !important;
} }
.visible-on-sidebar-mini{ .visible-on-sidebar-mini {
display: inline-block !important; display: inline-block !important;
} }
.sidebar, .sidebar,
.sidebar .sidebar-wrapper{ .sidebar .sidebar-wrapper {
width: 80px; width: 80px;
} }
.main-panel{ .main-panel {
width: $sidebar-mini-width; width: $sidebar-mini-width;
} }
.sidebar{ .sidebar {
display: block; display: block;
font-weight: 200; font-weight: 200;
z-index: 9999; z-index: 9999;
.logo{ .logo {
a.logo-normal{ a.logo-normal {
opacity: 0; opacity: 0;
@include transform-translate-x(-25px); @include transform-translate-x(-25px);
} }
} }
.sidebar-wrapper{ .sidebar-wrapper {
> .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal, > .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
.user .user-info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal, .user .user-info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
.user .user-info > a > span, .user .user-info > a > span,
> .nav li > a p{ > .nav li > a p {
@include transform-translate-x(-25px); @include transform-translate-x(-25px);
opacity: 0; opacity: 0;
} }
} }
} }
.sidebar:hover{ .sidebar:hover {
width: 260px; width: 260px;
.logo{ .logo {
a.logo-normal{ a.logo-normal {
opacity: 1; opacity: 1;
@include transform-translate-x(0px); @include transform-translate-x(0px);
} }
} }
.sidebar-wrapper{ .sidebar-wrapper {
width: 260px; width: 260px;
> .nav li > a p, > .nav li > a p,
> .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal, > .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
.user .user-info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal, .user .user-info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
.user .user-info > a > span{ .user .user-info > a > span {
@include transform-translate-x(0px); @include transform-translate-x(0px);
opacity: 1; opacity: 1;
} }
} }
} }
} }
.sidebar {
.nav .nav-item {
&.active-pro {
position: absolute;
width: 100%;
bottom: 13px;
}
}
}
} }