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 {
width: 230px;
border-top: 2px solid #fff;
border-bottom: 2px solid #e0e2e3;
border-top: 1px solid #fff;
border-bottom: 2px solid #d4d4d4;
}
.sidebar-footer {
position: relative;
height: 48%;
}

View File

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

View File

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

View File

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