| @@ -6,8 +6,7 @@ import { TabsComponent } from './tabs/tabs.component'; | |||
| const routes: Routes = [ | |||
| { path: '', pathMatch: 'full', redirectTo: 'welcome' }, | |||
| { component: WelcomeComponent, path: 'welcome' }, | |||
| { component: TabsComponent, path: 'tabs' }, | |||
| { component: TabsComponent, path: 'tabs/:subpage' } | |||
| { component: TabsComponent, path: 'tabs' } | |||
| ]; | |||
| @NgModule({ | |||
| @@ -1 +1,85 @@ | |||
| <p>home works!</p> | |||
| <header class="header-bar"> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <button> <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/calendar.svg"></svg-icon> </button> | |||
| <button> <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/bell.svg"></svg-icon> </button> | |||
| </header> | |||
| <section class="video-section"> | |||
| <div> | |||
| <h2> English Class </h2> | |||
| <p> Starts in </p> | |||
| <div class="counter"> 00:00:59 </div> | |||
| </div> | |||
| <span class="tutor"> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| </span> | |||
| </section> | |||
| <ul class="subject-list"> | |||
| <header> <h5> Latest Classes: </h5> </header> | |||
| <li> | |||
| <div class="schedule"> | |||
| <label> 3:30 PM </label> | |||
| <p> 40 Minutes </p> | |||
| </div> | |||
| <div class="subject"> | |||
| <label> Mathematics </label> | |||
| <p> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| </p> | |||
| </div> | |||
| <button class="view-button"> View </button> | |||
| </li> | |||
| <li> | |||
| <div class="schedule"> | |||
| <label> 4:20 PM </label> | |||
| <p> 40 Minutes </p> | |||
| </div> | |||
| <div class="subject"> | |||
| <label> English </label> | |||
| <p> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| </p> | |||
| </div> | |||
| <button class="view-button"> View </button> | |||
| </li> | |||
| <header> <h5> Today: </h5> </header> | |||
| <li> | |||
| <div class="schedule"> | |||
| <label> 5:30 PM </label> | |||
| <p> 40 Minutes </p> | |||
| </div> | |||
| <div class="subject"> | |||
| <label> Mathematics </label> | |||
| <p> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| </p> | |||
| </div> | |||
| <button class="view-button"> View </button> | |||
| </li> | |||
| <li> | |||
| <div class="schedule"> | |||
| <label> 6:20 PM </label> | |||
| <p> 40 Minutes </p> | |||
| </div> | |||
| <div class="subject"> | |||
| <label> English </label> | |||
| <p> | |||
| <img src="https://pbs.twimg.com/profile_images/3478244961/01ebfc40ecc194a2abc81e82ab877af4.jpeg"> | |||
| <span> Dwayne the Rock </span> | |||
| </p> | |||
| </div> | |||
| <button class="view-button"> View </button> | |||
| </li> | |||
| </ul> | |||
| @@ -0,0 +1,167 @@ | |||
| .header-bar { | |||
| display: flex; | |||
| align-items: center; | |||
| height: 60px; | |||
| position: relative; | |||
| padding: 0 5%; | |||
| img { | |||
| width: 35px; | |||
| height: 35px; | |||
| border-radius: 50%; | |||
| overflow: hidden; | |||
| margin-right: auto; | |||
| } | |||
| .icon { | |||
| width: 20px; | |||
| height: 20px; | |||
| fill: white; | |||
| } | |||
| button { | |||
| margin-left: 25px; | |||
| border: 0px; | |||
| background-color: transparent; | |||
| } | |||
| } | |||
| .video-section { | |||
| position: relative; | |||
| text-align: center; | |||
| background-color: var(--dark-grey); | |||
| height: 30vh; | |||
| width: 90%; | |||
| margin: 10px auto; | |||
| border-radius: 5px; | |||
| display: flex; | |||
| align-items: center; | |||
| justify-content: center; | |||
| color: white; | |||
| .tutor { | |||
| position: absolute; | |||
| left: 10px; | |||
| bottom: 10px; | |||
| color: white; | |||
| img { | |||
| width: 20px; | |||
| height: 20px; | |||
| border-radius: 50%; | |||
| margin-right: 5px; | |||
| vertical-align: middle; | |||
| overflow: hidden; | |||
| } | |||
| span { | |||
| font-size: 12px; | |||
| } | |||
| } | |||
| h2 { | |||
| font-size: 20px; | |||
| margin-bottom: 5px; | |||
| } | |||
| p { | |||
| font-size: 16px; | |||
| } | |||
| .counter { | |||
| font-size: 28px; | |||
| font-weight: 500; | |||
| letter-spacing: 1px; | |||
| } | |||
| } | |||
| .subject-list { | |||
| position: relative; | |||
| width: 90%; | |||
| margin: 0 auto; | |||
| list-style: none; | |||
| header { | |||
| color: var(--black); | |||
| h5 { | |||
| font-size: 14px; | |||
| margin-top: 30px; | |||
| font-weight: 500; | |||
| } | |||
| &:first-child h5 { | |||
| margin-top: 20px; | |||
| } | |||
| } | |||
| li { | |||
| background-color: white; | |||
| border-radius: 15px; | |||
| overflow: hidden; | |||
| display: flex; | |||
| align-items: center; | |||
| padding: 15px 10px; | |||
| margin-top: 15px; | |||
| box-shadow: 0px 0px 5px -2px var(--black); | |||
| justify-content: space-between; | |||
| position: relative; | |||
| } | |||
| .schedule { | |||
| width: 80px; | |||
| padding: 0 5px; | |||
| text-align: center; | |||
| } | |||
| .subject { | |||
| width: calc(100% - 180px); | |||
| border-left: 1px solid #cecece; | |||
| padding-left: 15px; | |||
| p { | |||
| margin-top: 10px; | |||
| } | |||
| } | |||
| .view-button { | |||
| height: 33px; | |||
| border-radius: 5px; | |||
| border: 0px; | |||
| background-color: var(--teal-green); | |||
| color: white; | |||
| font-size: 14px; | |||
| width: 80px; | |||
| } | |||
| label { | |||
| font-size: 16px; | |||
| color: var(--black); | |||
| font-weight: 500; | |||
| } | |||
| p { | |||
| font-size: 13px; | |||
| color: var(--dark-grey); | |||
| margin-top: 2px; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| overflow: hidden; | |||
| img { | |||
| width: 20px; | |||
| height: 20px; | |||
| border-radius: 50%; | |||
| overflow: hidden; | |||
| object-fit: cover; | |||
| object-position: top; | |||
| vertical-align: middle; | |||
| } | |||
| span { | |||
| vertical-align: middle; | |||
| margin-left: 3px; | |||
| } | |||
| } | |||
| } | |||
| @@ -1,20 +1,24 @@ | |||
| <div class="page"> | |||
| <app-home *ngIf="selectedTab === 'home'"></app-home> | |||
| </div> | |||
| <section class="tabs"> | |||
| <button> | |||
| <button (click)="selectedTab='home'" [ngClass]="{'active' : selectedTab === 'home'}"> | |||
| <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/home.svg"></svg-icon> | |||
| <span> Home </span> | |||
| </button> | |||
| <button> | |||
| <button (click)="selectedTab='courses'" [ngClass]="{'active' : selectedTab === 'courses'}"> | |||
| <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/mortarboard.svg"></svg-icon> | |||
| <span> Courses </span> | |||
| </button> | |||
| <button class="mid-button"> | |||
| <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/book.svg"></svg-icon> | |||
| </button> | |||
| <button> | |||
| <button (click)="selectedTab='reports'" [ngClass]="{'active' : selectedTab === 'reports'}"> | |||
| <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/newspaper.svg"></svg-icon> | |||
| <span> Reports </span> | |||
| </button> | |||
| <button> | |||
| <button (click)="selectedTab='more'" [ngClass]="{'active' : selectedTab === 'more'}"> | |||
| <svg-icon [applyClass]="true" class="icon" src="assets/custom-icons/more.svg"></svg-icon> | |||
| <span> More </span> | |||
| </button> | |||
| @@ -1,3 +1,22 @@ | |||
| .page { | |||
| height: 100vh; | |||
| overflow: auto; | |||
| padding-bottom: 100px; | |||
| &::before { | |||
| content: ''; | |||
| position: absolute; | |||
| left: 0; | |||
| top: 0; | |||
| height: 30vh; | |||
| width: 100%; | |||
| background-color: var(--black); | |||
| border-bottom-left-radius: 30px; | |||
| border-bottom-right-radius: 30px; | |||
| pointer-events: none; | |||
| } | |||
| } | |||
| .tabs { | |||
| display: flex; | |||
| width: 100%; | |||
| @@ -20,6 +39,15 @@ | |||
| display: block; | |||
| text-align: center; | |||
| &.active { | |||
| .icon { | |||
| fill: var(--teal-green); | |||
| } | |||
| span { | |||
| color: var(--teal-green); | |||
| } | |||
| } | |||
| &.mid-button { | |||
| height: calc(90vw / 5); | |||
| background-color: white; | |||
| @@ -29,7 +57,7 @@ | |||
| box-shadow: 0px 0px 5px var(--black); | |||
| .icon { | |||
| fill: var(--teal); | |||
| fill: var(--teal-green); | |||
| width: 25px; | |||
| height: 25px; | |||
| } | |||
| @@ -1,15 +1,16 @@ | |||
| import { Component, OnInit } from '@angular/core'; | |||
| @Component({ | |||
| selector: 'app-tabs', | |||
| templateUrl: './tabs.component.html', | |||
| styleUrls: ['./tabs.component.scss'] | |||
| selector: 'app-tabs', | |||
| templateUrl: './tabs.component.html', | |||
| styleUrls: ['./tabs.component.scss'] | |||
| }) | |||
| export class TabsComponent implements OnInit { | |||
| selectedTab: string = 'home'; | |||
| constructor() { } | |||
| constructor() { } | |||
| ngOnInit(): void { | |||
| } | |||
| ngOnInit(): void { | |||
| } | |||
| } | |||
| @@ -114,6 +114,9 @@ | |||
| font-size: 13px; | |||
| color: var(--dark-grey); | |||
| margin-top: 2px; | |||
| white-space: nowrap; | |||
| text-overflow: ellipsis; | |||
| overflow: hidden; | |||
| img { | |||
| width: 20px; | |||