@@ -1,12 +1,12 @@ | |||||
import { NgModule } from '@angular/core'; | import { NgModule } from '@angular/core'; | ||||
import { RouterModule, Routes } from '@angular/router'; | import { RouterModule, Routes } from '@angular/router'; | ||||
import { DashboardComponent } from './dashboard/dashboard.component'; | |||||
import { LoginComponent } from './login/login.component'; | import { LoginComponent } from './login/login.component'; | ||||
import { TabsComponent } from './tabs/tabs.component'; | |||||
const routes: Routes = [ | const routes: Routes = [ | ||||
{ path: '', pathMatch: 'full', redirectTo: 'login' }, | { path: '', pathMatch: 'full', redirectTo: 'login' }, | ||||
{ component: LoginComponent, path: 'login' }, | { component: LoginComponent, path: 'login' }, | ||||
{ component: DashboardComponent, path: 'dashboard' }, | |||||
{ component: TabsComponent, path: 'tabs' }, | |||||
]; | ]; | ||||
@NgModule({ | @NgModule({ | ||||
@@ -4,13 +4,13 @@ import { BrowserModule } from '@angular/platform-browser'; | |||||
import { AppRoutingModule } from './app-routing.module'; | import { AppRoutingModule } from './app-routing.module'; | ||||
import { AppComponent } from './app.component'; | import { AppComponent } from './app.component'; | ||||
import { LoginComponent } from './login/login.component'; | import { LoginComponent } from './login/login.component'; | ||||
import { DashboardComponent } from './dashboard/dashboard.component'; | |||||
import { TabsComponent } from './tabs/tabs.component'; | |||||
@NgModule({ | @NgModule({ | ||||
declarations: [ | declarations: [ | ||||
AppComponent, | AppComponent, | ||||
LoginComponent, | LoginComponent, | ||||
DashboardComponent | |||||
TabsComponent | |||||
], | ], | ||||
imports: [ | imports: [ | ||||
BrowserModule, | BrowserModule, | ||||
@@ -1 +0,0 @@ | |||||
<p>dashboard works!</p> |
@@ -1,15 +0,0 @@ | |||||
import { Component, OnInit } from '@angular/core'; | |||||
@Component({ | |||||
selector: 'app-dashboard', | |||||
templateUrl: './dashboard.component.html', | |||||
styleUrls: ['./dashboard.component.scss'] | |||||
}) | |||||
export class DashboardComponent implements OnInit { | |||||
constructor() { } | |||||
ngOnInit(): void { | |||||
} | |||||
} |
@@ -21,7 +21,7 @@ | |||||
<a href="#"> Forgot Password </a> | <a href="#"> Forgot Password </a> | ||||
</div> | </div> | ||||
<button class="form-button" [routerLink]="['/dashboard']"> | |||||
<button class="form-button" [routerLink]="['/tabs']"> | |||||
Login | Login | ||||
</button> | </button> | ||||
@@ -0,0 +1,29 @@ | |||||
<section class="navbar"> | |||||
<figure class="logo"> | |||||
<img src="assets/icons/logo.svg" alt="logo image"> | |||||
</figure> | |||||
<div class="search-input"> | |||||
<input type="text" placeholder="Search for Business Entities"> | |||||
<img src="assets/icons/search.svg" alt="search icon"> | |||||
</div> | |||||
<section class="profile-actions"> | |||||
<img src="assets/icons/user.svg" alt="user icon"> | |||||
<span> Hi, Joe Ghatto </span> | |||||
<img src="assets/icons/chevron-down.svg" alt="chevron down image"> | |||||
</section> | |||||
</section> | |||||
<section class="tabs"> | |||||
<button class="active"> | |||||
<img src="assets/icons/home.svg" alt="home icon"> | |||||
</button> | |||||
<button> | |||||
<img src="assets/icons/dashboard.svg" alt="dashboard icon"> | |||||
</button> | |||||
<button> | |||||
<img src="assets/icons/tiles-dashboard.svg" alt="tiles dashboard icon"> | |||||
</button> | |||||
</section> |
@@ -0,0 +1,114 @@ | |||||
.navbar { | |||||
display: flex; | |||||
width: 100%; | |||||
height: 10rem; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
.logo { | |||||
width: 12rem; | |||||
margin: 0 2rem; | |||||
img { | |||||
width: 100%; | |||||
height: 100%; | |||||
} | |||||
} | |||||
.search-input { | |||||
position: relative; | |||||
margin-left: auto; | |||||
input { | |||||
display: block; | |||||
height: 5rem; | |||||
border: 1px solid var(--border-grey); | |||||
border-radius: 4rem; | |||||
padding: 0 2.5rem; | |||||
width: 35rem; | |||||
font-size: 1.5rem; | |||||
font-weight: 300; | |||||
&::placeholder { | |||||
color: var(--dark-grey); | |||||
opacity: 0.6; | |||||
} | |||||
} | |||||
img { | |||||
position: absolute; | |||||
width: 1.8rem; | |||||
top: 1.5rem; | |||||
right: 1.8rem; | |||||
} | |||||
} | |||||
.profile-actions { | |||||
margin: 0 2rem; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
height: 5rem; | |||||
border-radius: 4rem; | |||||
padding: 0 2rem; | |||||
position: relative; | |||||
overflow: hidden; | |||||
width: 20rem; | |||||
&::before { | |||||
content: ''; | |||||
position: absolute; | |||||
left: 0; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
background-color: var(--secondary); | |||||
opacity: 0.3; | |||||
filter: brightness(110%); | |||||
} | |||||
& > * { | |||||
position: relative; | |||||
} | |||||
img { | |||||
width: 1.5rem; | |||||
} | |||||
span { | |||||
margin: 0 auto; | |||||
color: var(--primary); | |||||
font-size: 1.4rem; | |||||
} | |||||
} | |||||
} | |||||
.tabs { | |||||
position: fixed; | |||||
height: calc(100% - 10rem); | |||||
top: 10rem; | |||||
left: 4rem; | |||||
background-color: var(--primary); | |||||
border-radius: 5rem; | |||||
width: 7rem; | |||||
overflow: hidden; | |||||
button { | |||||
display: block; | |||||
width: 100%; | |||||
background-color: transparent; | |||||
border: 0px; | |||||
margin: 4rem 0; | |||||
img { | |||||
width: 1.8rem; | |||||
} | |||||
&.active { | |||||
img { | |||||
opacity: 0.6; | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -1,20 +1,20 @@ | |||||
import { ComponentFixture, TestBed } from '@angular/core/testing'; | import { ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
import { DashboardComponent } from './dashboard.component'; | |||||
import { TabsComponent } from './tabs.component'; | |||||
describe('DashboardComponent', () => { | |||||
let component: DashboardComponent; | |||||
let fixture: ComponentFixture<DashboardComponent>; | |||||
describe('TabsComponent', () => { | |||||
let component: TabsComponent; | |||||
let fixture: ComponentFixture<TabsComponent>; | |||||
beforeEach(async () => { | beforeEach(async () => { | ||||
await TestBed.configureTestingModule({ | await TestBed.configureTestingModule({ | ||||
declarations: [ DashboardComponent ] | |||||
declarations: [ TabsComponent ] | |||||
}) | }) | ||||
.compileComponents(); | .compileComponents(); | ||||
}); | }); | ||||
beforeEach(() => { | beforeEach(() => { | ||||
fixture = TestBed.createComponent(DashboardComponent); | |||||
fixture = TestBed.createComponent(TabsComponent); | |||||
component = fixture.componentInstance; | component = fixture.componentInstance; | ||||
fixture.detectChanges(); | fixture.detectChanges(); | ||||
}); | }); |
@@ -0,0 +1,15 @@ | |||||
import { Component, OnInit } from '@angular/core'; | |||||
@Component({ | |||||
selector: 'app-tabs', | |||||
templateUrl: './tabs.component.html', | |||||
styleUrls: ['./tabs.component.scss'] | |||||
}) | |||||
export class TabsComponent implements OnInit { | |||||
constructor() { } | |||||
ngOnInit(): void { | |||||
} | |||||
} |
@@ -1,3 +1,3 @@ | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="19.752" viewBox="0 0 18 19.752"> | <svg xmlns="http://www.w3.org/2000/svg" width="18" height="19.752" viewBox="0 0 18 19.752"> | ||||
<path id="home" d="M23.333,11.084,14.852,4.516a.655.655,0,0,0-.809.007L5.833,11.09a.655.655,0,0,0-.245.51V23.478a.653.653,0,0,0,.654.654h4.88a.654.654,0,0,0,.654-.654V16.206H17.4v7.272a.654.654,0,0,0,.654.654h4.881a.654.654,0,0,0,.654-.654V11.6a.652.652,0,0,0-.254-.517Z" transform="translate(-5.588 -4.379)" fill="#c4b57b"/> | |||||
<path id="home" d="M23.333,11.084,14.852,4.516a.655.655,0,0,0-.809.007L5.833,11.09a.655.655,0,0,0-.245.51V23.478a.653.653,0,0,0,.654.654h4.88a.654.654,0,0,0,.654-.654V16.206H17.4v7.272a.654.654,0,0,0,.654.654h4.881a.654.654,0,0,0,.654-.654V11.6a.652.652,0,0,0-.254-.517Z" transform="translate(-5.588 -4.379)" fill="#f0ead1"/> | |||||
</svg> | </svg> |
@@ -9,6 +9,10 @@ | |||||
outline: none; | outline: none; | ||||
} | } | ||||
button, a { | |||||
cursor: pointer; | |||||
} | |||||
:root { | :root { | ||||
font-size: 62.5%; | font-size: 62.5%; | ||||
--primary: #6d654e; | --primary: #6d654e; | ||||