@@ -1,14 +1,7 @@ | |||
<section class="notifications"> | |||
<header> | |||
<h4> Notifications </h4> | |||
</header> | |||
<ul> | |||
<li *ngFor="let notification of notifications"> | |||
<h5> {{ notification.text }} </h5> | |||
<p *ngIf="notification.description"> {{ notification.description }} </p> | |||
<span class="time-stamp"> {{ notification.timeStamp }} </span> | |||
</li> | |||
</ul> | |||
</section> | |||
<ul> | |||
<li *ngFor="let notification of notifications"> | |||
<h5> {{ notification.text }} </h5> | |||
<p *ngIf="notification.description"> {{ notification.description }} </p> | |||
<span class="time-stamp"> {{ notification.timeStamp }} </span> | |||
</li> | |||
</ul> |
@@ -1,29 +1,31 @@ | |||
header { | |||
background-color: white; | |||
position: sticky; | |||
top: 0; | |||
padding: 1.5rem 2rem; | |||
border-bottom: 1px solid var(--border-grey); | |||
h4{ | |||
font-size: 1.8rem; | |||
color: var(--primary); | |||
font-weight: 500; | |||
} | |||
} | |||
ul { | |||
list-style: none; | |||
height: 100%; | |||
overflow: auto; | |||
min-height: 10rem; | |||
max-height: 40rem; | |||
li { | |||
display: block; | |||
padding: 1.5rem 2rem; | |||
width: calc(100% - 2rem); | |||
padding: 1.5rem; | |||
cursor: pointer; | |||
position: relative; | |||
margin: 1rem auto; | |||
border: 1px solid var(--border-grey); | |||
border-radius: 1rem; | |||
line-height: 1.5; | |||
&:hover { | |||
box-shadow: 0px 0px 10px -4px var(--dark-grey); | |||
} | |||
h5 { | |||
font-size: 1.4rem; | |||
margin: 0 0 0.5rem; | |||
font-weight: 500; | |||
color: var(--highlight); | |||
filter: brightness(80%); | |||
} | |||
p { | |||
@@ -12,7 +12,8 @@ | |||
<img src="assets/icons/search.svg" alt="search icon"> | |||
</div> | |||
<button class="notification-button"> | |||
<button class="notification-button" (click)="showNotifications = true" | |||
[ngClass]="{'active' : showNotifications}"> | |||
<img src="assets/icons/bell.svg" alt="bell icon"> | |||
<span class="badge"> 9+ </span> | |||
@@ -26,10 +27,15 @@ | |||
</section> | |||
<div class="notifications-window"> | |||
<div class="notifications-window" *ngIf="showNotifications"> | |||
<div class="backdrop" (click)="showNotifications = false"></div> | |||
<header> | |||
<h4> Notifications </h4> | |||
</header> | |||
<app-notifications></app-notifications> | |||
</div> | |||
<div class="page"> | |||
<div class="page" [ngClass]="{'blur' : showNotifications}"> | |||
<router-outlet></router-outlet> | |||
</div> |
@@ -85,6 +85,24 @@ $header-height: 10rem; | |||
background-color: white; | |||
margin-left: 2rem; | |||
&.active { | |||
box-shadow: 0px 0px 10px -3px var(--primary); | |||
img { | |||
filter: brightness(500%); | |||
} | |||
.badge { | |||
transform: scale(0); | |||
} | |||
&::before { | |||
background-color: var(--highlight); | |||
opacity: 1; | |||
filter: none; | |||
} | |||
} | |||
&:hover { | |||
box-shadow: 0px 0px 10px -3px var(--primary); | |||
} | |||
@@ -104,6 +122,7 @@ $header-height: 10rem; | |||
align-items: center; | |||
justify-content: center; | |||
font-weight: 600; | |||
transition: transform 0.1s; | |||
} | |||
&::before { | |||
@@ -177,14 +196,53 @@ $header-height: 10rem; | |||
position: fixed; | |||
top: calc(#{$header-height} - 1rem); | |||
background-color: white; | |||
width: 40rem; | |||
min-height: 10rem; | |||
max-height: 40rem; | |||
box-shadow: 0px 0px 15px -7px var(--dark-grey); | |||
width: 40rem; | |||
box-shadow: 0px 0px 15px -3px var(--dark-grey); | |||
z-index: 2; | |||
right: 26rem; | |||
border-radius: 1.5rem; | |||
overflow: auto; | |||
overflow: hidden; | |||
header { | |||
height: 5rem; | |||
padding: 0 2rem; | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-start; | |||
width: calc(100% - 2rem); | |||
border-radius: 1rem; | |||
margin: 1rem auto 0; | |||
position: relative; | |||
overflow: hidden; | |||
&::before { | |||
content: ''; | |||
position: absolute; | |||
left: 0; | |||
top: 0; | |||
width: 100%; | |||
height: 100%; | |||
background-color: var(--border-grey); | |||
opacity: 0.7; | |||
} | |||
h4{ | |||
position: relative; | |||
font-size: 1.7rem; | |||
color: var(--primary); | |||
font-weight: 500; | |||
} | |||
} | |||
.backdrop { | |||
position: fixed; | |||
left: 0; | |||
top: 0; | |||
width: 100vw; | |||
height: 100vw; | |||
z-index: 0; | |||
} | |||
} | |||
.page { | |||
@@ -192,4 +250,8 @@ $header-height: 10rem; | |||
margin: 0 auto; | |||
overflow: auto; | |||
width: calc(100% - 4rem); | |||
&.blur { | |||
filter: blur(5px); | |||
} | |||
} |
@@ -6,7 +6,8 @@ import { Component, OnInit } from '@angular/core'; | |||
styleUrls: ['./tabs.component.scss'] | |||
}) | |||
export class TabsComponent implements OnInit { | |||
showNotifications: boolean = false; | |||
constructor() { | |||
} | |||