@@ -0,0 +1,16 @@ | |||||
$brand-black: #272727; | |||||
$brand-red: #ED1C24; | |||||
$brand-red-rgb: 237, 28, 36; | |||||
$light-grey: #666666; | |||||
$light-grey-rgb: 102, 102, 102; | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
$lumous-blue: #1a2389; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
$voilet: #424264; | |||||
$dark-voilet: #09092b; | |||||
$luminous-blue: #2ea9f5; | |||||
$sea-blue: #2ea9f5; |
@@ -1,5 +1,5 @@ | |||||
<ion-content> | <ion-content> | ||||
<section class="action-buttons"> | |||||
<section class="header-with-action-buttons"> | |||||
<div class="nav"> | <div class="nav"> | ||||
<button (click)="back()"> | <button (click)="back()"> | ||||
<ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> | <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> | ||||
@@ -1,9 +1,4 @@ | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
@import '../colors'; | |||||
ion-content { | ion-content { | ||||
--background: white; | --background: white; | ||||
@@ -1,6 +1,6 @@ | |||||
<ion-content> | <ion-content> | ||||
<section class="action-buttons"> | |||||
<section class="header-with-action-buttons"> | |||||
<div class="nav"> | <div class="nav"> | ||||
<button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | <button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | ||||
</div> | </div> | ||||
@@ -61,7 +61,7 @@ | |||||
<section class="checkout-data" *ngIf="selectedSeats.length > 0"> | <section class="checkout-data" *ngIf="selectedSeats.length > 0"> | ||||
<p> <span> Total: </span> ₹ {{ getTotalAmount() }} </p> | <p> <span> Total: </span> ₹ {{ getTotalAmount() }} </p> | ||||
<button class="checkout-button"> Proceed to Payment </button> | |||||
<button class="checkout-button" (click)="confirmPayment()"> Proceed to Payment </button> | |||||
</section> | </section> | ||||
</ion-content> | </ion-content> |
@@ -1,92 +1,14 @@ | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
$sea-blue: #2ea9f5; | |||||
$green: #01b868; | |||||
ion-content { | |||||
--background: transparent; | |||||
background-color: $dark-blue; | |||||
} | |||||
@import '../colors'; | |||||
.push-bottom { | .push-bottom { | ||||
margin-bottom: 50px; | margin-bottom: 50px; | ||||
} | } | ||||
.action-buttons { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: flex-start; | |||||
padding: 0 3% 0 0%; | |||||
height: 70px; | |||||
.header-with-action-buttons { | |||||
position: fixed; | position: fixed; | ||||
left: 0; | left: 0; | ||||
top: 0; | top: 0; | ||||
background-color: lighten($blue-grey, 35%); | |||||
z-index: 2; | |||||
width: 100%; | |||||
align-items: center; | |||||
box-shadow: 0px 0px 5px $dark-blue; | |||||
button { | |||||
background-color: transparent; | |||||
border: none; | |||||
} | |||||
.nav button { | |||||
color: $blue-grey; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
ion-icon { | |||||
font-size: 24px; | |||||
} | |||||
span { | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
header { | |||||
flex-grow: 1; | |||||
padding: 0 10px; | |||||
font-size: 14px; | |||||
color: darken($blue-grey, 30%); | |||||
font-weight: 500; | |||||
text-align: left; | |||||
white-space: nowrap; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
span { | |||||
font-weight: 500; | |||||
color: $blue-grey; | |||||
font-size: 12px; | |||||
} | |||||
} | |||||
.action { | |||||
display: flex; | |||||
justify-content: flex-end; | |||||
} | |||||
.action button { | |||||
width: 35px; | |||||
height: 35px; | |||||
border: 1px solid $blue-grey; | |||||
background-color: rgba($blue-grey, 0.1); | |||||
border-radius: 50%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
margin-left: 15px; | |||||
ion-icon { | |||||
color: $blue-grey; | |||||
font-size: 17px; | |||||
} | |||||
} | |||||
} | } | ||||
.upfold { | .upfold { | ||||
@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core'; | |||||
import { ActivatedRoute } from '@angular/router'; | import { ActivatedRoute } from '@angular/router'; | ||||
import { Location } from '@angular/common'; | import { Location } from '@angular/common'; | ||||
import * as moment from 'moment'; | import * as moment from 'moment'; | ||||
import { AlertController } from '@ionic/angular'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-booking-details', | selector: 'app-booking-details', | ||||
@@ -18,9 +19,29 @@ export class BookingDetailsPage implements OnInit { | |||||
constructor( | constructor( | ||||
private route: ActivatedRoute, | private route: ActivatedRoute, | ||||
private location: Location | |||||
private location: Location, | |||||
public alertController: AlertController | |||||
) { } | ) { } | ||||
async confirmPayment() { | |||||
const alert = await this.alertController.create({ | |||||
header: 'Purchase Complete', | |||||
message: 'Your ticket details will be sent over E-Mail and SMS, Enjoy the game!', | |||||
mode: 'ios', | |||||
buttons: [{ | |||||
text: 'Okay!', | |||||
role: 'confirm', | |||||
handler: () => { | |||||
setTimeout(() => { | |||||
this.back(); | |||||
}, 100); | |||||
} | |||||
}] | |||||
}); | |||||
await alert.present(); | |||||
} | |||||
ngOnInit() { | ngOnInit() { | ||||
this.matchDay = JSON.parse(this.route.snapshot.paramMap.get('matchData')); | this.matchDay = JSON.parse(this.route.snapshot.paramMap.get('matchData')); | ||||
console.log(this.matchDay); | console.log(this.matchDay); | ||||
@@ -1,7 +1,7 @@ | |||||
<ion-content> | <ion-content> | ||||
<div class="content-container"> | <div class="content-container"> | ||||
<div class="heading-holder"> | <div class="heading-holder"> | ||||
<h2 class="main-header"> Booking </h2> | |||||
<h2 class="main-header"> # Booking </h2> | |||||
<section class="segments"> | <section class="segments"> | ||||
<button [ngClass]="{'active' : selectedDate === bookingDate.dateTime}" | <button [ngClass]="{'active' : selectedDate === bookingDate.dateTime}" | ||||
@@ -1,20 +1,14 @@ | |||||
$lumous-blue: #1a2389; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
ion-content { | |||||
--background: transparent; | |||||
background: linear-gradient(90deg, $dark-blue-shade1 50%, $dark-blue-shade2); | |||||
} | |||||
@import '../colors'; | |||||
.heading-holder { | .heading-holder { | ||||
margin-bottom: 2.3rem; | margin-bottom: 2.3rem; | ||||
} | } | ||||
.main-header { | .main-header { | ||||
color: white; | |||||
background: linear-gradient(90deg, lighten($brand-red, 0%), lighten($brand-red, 10%) 50%); | |||||
-webkit-background-clip: text; | |||||
background-clip: text; | |||||
-webkit-text-fill-color: transparent; | |||||
font-size: 2.3rem; | font-size: 2.3rem; | ||||
font-weight: 700; | font-weight: 700; | ||||
letter-spacing: 1px; | letter-spacing: 1px; | ||||
@@ -32,7 +26,7 @@ ion-content { | |||||
button { | button { | ||||
display: inline-block; | display: inline-block; | ||||
background-color: rgba(#ffff, 0.4); | |||||
background-color: rgba($blue-grey, 0.4); | |||||
padding: 10px 15px; | padding: 10px 15px; | ||||
color: white; | color: white; | ||||
font-size: 1rem; | font-size: 1rem; | ||||
@@ -45,7 +39,7 @@ ion-content { | |||||
&.active { | &.active { | ||||
font-weight: 500; | font-weight: 500; | ||||
background-color: white; | background-color: white; | ||||
color: $lumous-blue; | |||||
color: lighten($brand-red, 10%); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -65,7 +59,7 @@ ion-slides { | |||||
display: block; | display: block; | ||||
overflow: visible; | overflow: visible; | ||||
text-align: left; | text-align: left; | ||||
height: 80%; | |||||
height: 90%; | |||||
position: relative; | position: relative; | ||||
transform: scale(0.9); | transform: scale(0.9); | ||||
background-color: transparent; | background-color: transparent; | ||||
@@ -81,7 +75,7 @@ ion-slides { | |||||
height: 100%; | height: 100%; | ||||
overflow: hidden; | overflow: hidden; | ||||
border-radius: 7px; | border-radius: 7px; | ||||
box-shadow: 0px 10px 25px -7px darken($lumous-blue, 80%); | |||||
box-shadow: 10px 10px 15px -7px darken($dark-blue, 10%); | |||||
figure { | figure { | ||||
margin: 0; | margin: 0; | ||||
@@ -1,5 +1,5 @@ | |||||
<ion-content> | <ion-content> | ||||
<section class="action-buttons"> | |||||
<section class="header-with-action-buttons"> | |||||
<div class="nav"> | <div class="nav"> | ||||
<button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | <button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | ||||
</div> | </div> | ||||
@@ -1,69 +1,8 @@ | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
ion-content { | |||||
--background: transparent; | |||||
background-color: $dark-blue; | |||||
} | |||||
.action-buttons { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: center; | |||||
padding: 15px 5% 15px 10px; | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
width: 100%; | |||||
z-index: 1; | |||||
background-color: #161e2d; | |||||
box-shadow: 0px 0px 5px black; | |||||
button { | |||||
background-color: transparent; | |||||
border: none; | |||||
} | |||||
.nav button { | |||||
color: $blue-grey; | |||||
display: flex; | |||||
align-items: center; | |||||
@import '../colors'; | |||||
ion-icon { | |||||
font-size: 24px; | |||||
} | |||||
span { | |||||
margin-left: 5px; | |||||
font-size: 0.9rem; | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
.action { | |||||
display: flex; | |||||
} | |||||
.header-with-action-buttons { | |||||
.action button { | .action button { | ||||
width: 35px; | |||||
height: 35px; | |||||
border: 1px solid $blue-grey; | |||||
background-color: rgba($blue-grey, 0.1); | |||||
border-radius: 50%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
margin-left: 15px; | |||||
ion-icon { | |||||
color: $blue-grey; | |||||
font-size: 17px; | |||||
} | |||||
&.toggle { | &.toggle { | ||||
width: auto; | width: auto; | ||||
padding: 0 10px; | padding: 0 10px; | ||||
@@ -71,15 +10,15 @@ ion-content { | |||||
color: $blue-grey; | color: $blue-grey; | ||||
font-weight: 500; | font-weight: 500; | ||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
ion-checkbox { | ion-checkbox { | ||||
pointer-events: none; | pointer-events: none; | ||||
margin: 0; | margin: 0; | ||||
margin-right: 10px; | margin-right: 10px; | ||||
--border-color: #949599a6; | --border-color: #949599a6; | ||||
--border-color-checked: #d73e53; | |||||
--border-color-checked: #01b868; | |||||
--background: #94959970; | --background: #94959970; | ||||
--background-checked: #d73e53; | |||||
--background-checked: #01b868; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -88,7 +27,6 @@ ion-content { | |||||
.chat { | .chat { | ||||
margin-top: 65px; | |||||
padding: 10px 5%; | padding: 10px 5%; | ||||
height: calc(100vh - 65px); | height: calc(100vh - 65px); | ||||
color: white; | color: white; | ||||
@@ -217,7 +155,7 @@ ion-content { | |||||
background-color: white; | background-color: white; | ||||
padding: 10px; | padding: 10px; | ||||
border-radius: 10px; | border-radius: 10px; | ||||
box-shadow: 0px 0px 10px -2px black; | |||||
box-shadow: 10px 10px 15px -7px darken($dark-blue, 10%); | |||||
margin: 40px 0; | margin: 40px 0; | ||||
overflow: hidden; | overflow: hidden; | ||||
background-color: rgba($blue-grey, 0.3); | background-color: rgba($blue-grey, 0.3); | ||||
@@ -82,7 +82,7 @@ export class ChatPage implements OnInit { | |||||
this.myAccount = this.members[myAccountIndex]; | this.myAccount = this.members[myAccountIndex]; | ||||
for (let i = 0; i < 5; i += 1) { | |||||
for (let i = 0; i < 2; i += 1) { | |||||
let options = []; | let options = []; | ||||
for (let j = 0; j < 4; j += 1) { | for (let j = 0; j < 4; j += 1) { | ||||
@@ -99,7 +99,7 @@ export class ChatPage implements OnInit { | |||||
let chat = []; | let chat = []; | ||||
for (let k = 0; k < randomNumber; k += 1) { | for (let k = 0; k < randomNumber; k += 1) { | ||||
let randomMemberIndex = Math.floor(Math.random() * 19); | |||||
let randomMemberIndex = Math.floor(Math.random() * 3); | |||||
chat.push({ | chat.push({ | ||||
user: this.members[randomMemberIndex], | user: this.members[randomMemberIndex], | ||||
text: faker.lorem.sentence(), | text: faker.lorem.sentence(), | ||||
@@ -2,15 +2,16 @@ | |||||
<ion-button (click)="showGrid = !showGrid" | <ion-button (click)="showGrid = !showGrid" | ||||
class="grid-button"> | class="grid-button"> | ||||
<ion-icon *ngIf="!showGrid" name="grid"></ion-icon> | |||||
<ion-icon *ngIf="showGrid" name="logo-buffer"></ion-icon> | |||||
<ion-icon *ngIf="!showGrid" name="apps-outline"></ion-icon> | |||||
<ion-icon *ngIf="showGrid" name="layers-outline"></ion-icon> | |||||
</ion-button> | </ion-button> | ||||
<section class="collections"> | <section class="collections"> | ||||
<ng-container *ngIf="showGrid"> | <ng-container *ngIf="showGrid"> | ||||
<ul class="collection-grid"> | <ul class="collection-grid"> | ||||
<li *ngFor="let collection of collections"> | |||||
<li *ngFor="let collection of collections; let i = index" | |||||
(click)="goToCollection(i)"> | |||||
<img [src]="collection.image"> | <img [src]="collection.image"> | ||||
<label> {{ collection.name }} </label> | <label> {{ collection.name }} </label> | ||||
</li> | </li> | ||||
@@ -20,7 +21,7 @@ | |||||
<ng-container *ngIf="!showGrid"> | <ng-container *ngIf="!showGrid"> | ||||
<img class="glass-box" src="assets/collections/glassbox.png" alt=""> | <img class="glass-box" src="assets/collections/glassbox.png" alt=""> | ||||
<ion-slides [options]="slideOpts"> | |||||
<ion-slides #slides [options]="slideOpts"> | |||||
<ion-slide *ngFor="let collection of collections"> | <ion-slide *ngFor="let collection of collections"> | ||||
<img [ngClass]="{'bat' : collection.type === 'BAT' || collection.type === 'INVERTED BAT', | <img [ngClass]="{'bat' : collection.type === 'BAT' || collection.type === 'INVERTED BAT', | ||||
'ball' : collection.type === 'BALL', | 'ball' : collection.type === 'BALL', | ||||
@@ -1,10 +1,4 @@ | |||||
$lumous-blue: #1a2389; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
@import '../colors'; | |||||
.collections { | .collections { | ||||
height: calc(100vh - 56px); | height: calc(100vh - 56px); | ||||
@@ -15,11 +9,11 @@ $blue-grey: #949599; | |||||
.grid-button { | .grid-button { | ||||
position: fixed; | position: fixed; | ||||
right: 10px; | |||||
top: 10px; | |||||
--border-radius: 10px; | |||||
width: 40px; | |||||
height: 40px; | |||||
right: calc(50% - 35px); | |||||
bottom: 20px; | |||||
--border-radius: 50%; | |||||
width: 70px; | |||||
height: 70px; | |||||
z-index: 3; | z-index: 3; | ||||
margin: 0; | margin: 0; | ||||
--padding-start: 0; | --padding-start: 0; | ||||
@@ -28,9 +22,10 @@ $blue-grey: #949599; | |||||
--padding-bottom: 0; | --padding-bottom: 0; | ||||
--background: white; | --background: white; | ||||
--color: #d73e53; | --color: #d73e53; | ||||
--box-shadow: 2px 2px 5px -2px var(--dark-blue); | |||||
ion-icon { | ion-icon { | ||||
font-size: 24px; | |||||
font-size: 28px; | |||||
} | } | ||||
} | } | ||||
@@ -1,4 +1,5 @@ | |||||
import { Component, OnInit } from '@angular/core'; | |||||
import { Component, OnInit, ViewChild } from '@angular/core'; | |||||
import { IonSlides } from '@ionic/angular'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-collections', | selector: 'app-collections', | ||||
@@ -6,6 +7,9 @@ import { Component, OnInit } from '@angular/core'; | |||||
styleUrls: ['./collections.page.scss'], | styleUrls: ['./collections.page.scss'], | ||||
}) | }) | ||||
export class CollectionsPage implements OnInit { | export class CollectionsPage implements OnInit { | ||||
@ViewChild('slides') slides: IonSlides; | |||||
selectedIndex: number = 0; | |||||
slideOpts = { | slideOpts = { | ||||
slidesPerView: 1, | slidesPerView: 1, | ||||
@@ -14,7 +18,6 @@ export class CollectionsPage implements OnInit { | |||||
centeredSlides: true, | centeredSlides: true, | ||||
simulateTouch: false, | simulateTouch: false, | ||||
followFinger: false, | followFinger: false, | ||||
loop: true, | |||||
}; | }; | ||||
collections: Array<{ | collections: Array<{ | ||||
@@ -47,4 +50,11 @@ export class CollectionsPage implements OnInit { | |||||
}]; | }]; | ||||
} | } | ||||
goToCollection(index: number) { | |||||
this.showGrid = false; | |||||
setTimeout(() => { | |||||
this.slides.slideTo(index); | |||||
}, 200); | |||||
} | |||||
} | } |
@@ -1,12 +1,11 @@ | |||||
$dark-blue: #076a93; | |||||
$dark-voilet: #8c6ee5; | |||||
@import '../colors'; | |||||
.heading-holder { | .heading-holder { | ||||
margin-bottom: 2.7rem; | margin-bottom: 2.7rem; | ||||
} | } | ||||
.main-header { | .main-header { | ||||
background: -webkit-linear-gradient(180deg, $dark-blue 50%, $dark-voilet); | |||||
background: linear-gradient(90deg, lighten($brand-red, 0%), lighten($brand-red, 10%) 50%); | |||||
-webkit-background-clip: text; | -webkit-background-clip: text; | ||||
background-clip: text; | background-clip: text; | ||||
-webkit-text-fill-color: transparent; | -webkit-text-fill-color: transparent; | ||||
@@ -26,7 +25,7 @@ $dark-voilet: #8c6ee5; | |||||
button { | button { | ||||
background-color: transparent; | background-color: transparent; | ||||
color: $dark-blue; | |||||
color: $blue-grey; | |||||
font-size: 1.1rem; | font-size: 1.1rem; | ||||
font-weight: 400; | font-weight: 400; | ||||
margin-right: 5%; | margin-right: 5%; | ||||
@@ -36,7 +35,7 @@ $dark-voilet: #8c6ee5; | |||||
&.active { | &.active { | ||||
font-weight: 500; | font-weight: 500; | ||||
opacity: 1; | opacity: 1; | ||||
color: var(--brand-black); | |||||
color: $blue-grey; | |||||
&::before { | &::before { | ||||
content: ''; | content: ''; | ||||
@@ -46,7 +45,7 @@ $dark-voilet: #8c6ee5; | |||||
position: absolute; | position: absolute; | ||||
bottom: -18px; | bottom: -18px; | ||||
left: calc(50% - 4px); | left: calc(50% - 4px); | ||||
background-color: var(--brand-red); | |||||
background-color: $blue-grey; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -69,7 +68,7 @@ ion-slides { | |||||
text-align: left; | text-align: left; | ||||
height: 100%; | height: 100%; | ||||
position: relative; | position: relative; | ||||
box-shadow: 0px 10px 25px -7px rgba(var(--light-grey-rgb), 0.5); | |||||
box-shadow: 10px 10px 15px -7px darken($dark-blue, 10%); | |||||
transition: transform 0.3s; | transition: transform 0.3s; | ||||
transform: scale(0.9); | transform: scale(0.9); | ||||
@@ -4,7 +4,7 @@ | |||||
<div class="heading-holder"> | <div class="heading-holder"> | ||||
<h2 class="main-header"> | <h2 class="main-header"> | ||||
Matches | |||||
#Live | |||||
</h2> | </h2> | ||||
<p> | <p> | ||||
@@ -1,13 +1,4 @@ | |||||
$lumous-blue: #1a2389; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
ion-content { | |||||
--background: transparent; | |||||
background: linear-gradient(90deg, $dark-blue-shade1 50%, $dark-blue-shade2); | |||||
} | |||||
@import '../colors'; | |||||
.content-container { | .content-container { | ||||
padding-bottom: 50px; | padding-bottom: 50px; | ||||
@@ -18,15 +9,18 @@ ion-content { | |||||
padding: 0px 7%; | padding: 0px 7%; | ||||
.main-header { | .main-header { | ||||
background: linear-gradient(90deg, lighten($brand-red, 0%), lighten($brand-red, 10%) 50%); | |||||
-webkit-background-clip: text; | |||||
background-clip: text; | |||||
-webkit-text-fill-color: transparent; | |||||
font-size: 2.3rem; | font-size: 2.3rem; | ||||
font-weight: 700; | font-weight: 700; | ||||
letter-spacing: 1px; | letter-spacing: 1px; | ||||
margin: 5% 0%; | margin: 5% 0%; | ||||
color: white; | |||||
} | } | ||||
p { | p { | ||||
color: white; | |||||
color: $blue-grey; | |||||
font-size: 1.2rem; | font-size: 1.2rem; | ||||
font-weight: 500; | font-weight: 500; | ||||
} | } | ||||
@@ -39,12 +33,13 @@ ion-content { | |||||
padding: 15px 5%; | padding: 15px 5%; | ||||
overflow: visible; | overflow: visible; | ||||
position: relative; | position: relative; | ||||
background: linear-gradient(45deg, $pink 30%, $dark-blue-shade1); | |||||
background: linear-gradient(45deg, lighten($brand-red, 5%) 5%, lighten($dark-blue, 10%) 80%); | |||||
box-shadow: 2px 2px 10px -2px darken($dark-blue, 5%); | |||||
.format { | .format { | ||||
background-color: $green; | |||||
background-color: darken($green, 5%); | |||||
border-radius: 5px; | border-radius: 5px; | ||||
padding: 7px; | |||||
padding: 7px 15px; | |||||
color: white; | color: white; | ||||
font-size: 0.9rem; | font-size: 0.9rem; | ||||
font-weight: 500; | font-weight: 500; | ||||
@@ -138,8 +133,8 @@ ion-content { | |||||
margin: 30px auto; | margin: 30px auto; | ||||
border-radius: 10px; | border-radius: 10px; | ||||
overflow: hidden; | overflow: hidden; | ||||
background: linear-gradient(90deg, darken($dark-blue-shade2, 10%) 50%, $dark-blue-shade2); | |||||
box-shadow: 0px 0px 5px darken($dark-blue-shade2, 30%); | |||||
background: linear-gradient(45deg, lighten($dark-blue, 10%) 20%, lighten($dark-blue, 15%)); | |||||
box-shadow: 5px 5px 10px -5px darken($dark-blue, 5%); | |||||
height: 50px; | height: 50px; | ||||
-webkit-perspective: 1200px; | -webkit-perspective: 1200px; | ||||
@@ -173,11 +168,12 @@ ion-content { | |||||
button { | button { | ||||
border-radius: 50%; | border-radius: 50%; | ||||
background-color: $green; | |||||
background-color: darken($green, 5%); | |||||
box-shadow: 2px 2px 7px -2px darken($dark-blue, 10%); | |||||
height: 30px; | height: 30px; | ||||
width: 30px; | width: 30px; | ||||
font-size: 24px; | font-size: 24px; | ||||
color: white; | |||||
color: white; | |||||
} | } | ||||
} | } | ||||
@@ -185,11 +181,12 @@ ion-content { | |||||
display: block; | display: block; | ||||
width: 100%; | width: 100%; | ||||
border-radius: 7px; | border-radius: 7px; | ||||
background-color: $pink; | |||||
background-color: lighten($brand-red, 10%); | |||||
font-weight: 500; | |||||
color: white; | color: white; | ||||
font-size: 1rem; | font-size: 1rem; | ||||
height: 40px; | height: 40px; | ||||
box-shadow: 0px 0px 5px 2px darken($dark-blue-shade2, 10%); | |||||
box-shadow: 2px 2px 7px -3px darken($dark-blue, 10%); | |||||
} | } | ||||
.card { | .card { | ||||
@@ -238,7 +235,7 @@ ion-content { | |||||
} | } | ||||
ion-slides { | ion-slides { | ||||
padding: 30px 0 20px 0; | |||||
padding: 15px 0 20px 0; | |||||
position: relative; | position: relative; | ||||
left: 0; | left: 0; | ||||
top: 0; | top: 0; | ||||
@@ -267,7 +264,7 @@ ion-slides { | |||||
height: 100%; | height: 100%; | ||||
overflow: hidden; | overflow: hidden; | ||||
border-radius: 7px; | border-radius: 7px; | ||||
box-shadow: 0px 10px 25px -7px darken($lumous-blue, 80%); | |||||
box-shadow: 10px 10px 15px -7px darken($dark-blue, 10%); | |||||
figure { | figure { | ||||
margin: 0; | margin: 0; | ||||
@@ -1,13 +1,13 @@ | |||||
<ion-content *ngIf="matchStats" [scrollEvents]="true"> | <ion-content *ngIf="matchStats" [scrollEvents]="true"> | ||||
<section class="action-buttons"> | |||||
<section class="header-with-action-buttons"> | |||||
<div class="nav"> | <div class="nav"> | ||||
<button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | <button (click)="back()"> <ion-icon name="chevron-back-outline"></ion-icon> <span> BACK </span> </button> | ||||
</div> | </div> | ||||
<header> {{ matchStats.homeTeam.teamName }} v/s {{ matchStats.awayTeam.teamName }} <br> | <header> {{ matchStats.homeTeam.teamName }} v/s {{ matchStats.awayTeam.teamName }} <br> | ||||
<span> Live from {{ matchStats.stadium }} Stadium </span> </header> | <span> Live from {{ matchStats.stadium }} Stadium </span> </header> | ||||
<div class="action"> | <div class="action"> | ||||
<button> <ion-icon name="share-social-outline"></ion-icon> </button> | |||||
<button> <ion-icon name="share-social"></ion-icon> </button> | |||||
</div> | </div> | ||||
</section> | </section> | ||||
@@ -1,100 +1,14 @@ | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
$luminous-blue: #2ea9f5; | |||||
$voilet: #424264; | |||||
$dark-voilet: #09092b; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
ion-content { | |||||
--background: white; | |||||
} | |||||
.action-buttons { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: flex-start; | |||||
padding: 0 3% 0 0%; | |||||
height: 70px; | |||||
position: sticky; | |||||
position: -webkit-sticky; | |||||
left: 0; | |||||
top: 0; | |||||
background-color: lighten($blue-grey, 35%); | |||||
z-index: 2; | |||||
width: 100%; | |||||
align-items: center; | |||||
box-shadow: 0px 0px 5px $blue-grey; | |||||
button { | |||||
background-color: transparent; | |||||
border: none; | |||||
} | |||||
.nav button { | |||||
color: $blue-grey; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
@import '../colors'; | |||||
ion-icon { | |||||
font-size: 24px; | |||||
} | |||||
span { | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
header { | |||||
flex-grow: 1; | |||||
padding: 0 10px; | |||||
font-size: 14px; | |||||
color: darken($blue-grey, 30%); | |||||
font-weight: 500; | |||||
text-align: left; | |||||
white-space: nowrap; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
span { | |||||
font-weight: 500; | |||||
color: $blue-grey; | |||||
font-size: 12px; | |||||
} | |||||
} | |||||
.action { | |||||
display: flex; | |||||
justify-content: flex-end; | |||||
} | |||||
.action button { | |||||
width: 35px; | |||||
height: 35px; | |||||
border: 1px solid $blue-grey; | |||||
background-color: rgba($blue-grey, 0.1); | |||||
border-radius: 50%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
margin-left: 15px; | |||||
ion-icon { | |||||
color: $blue-grey; | |||||
font-size: 17px; | |||||
} | |||||
} | |||||
} | |||||
.field-container { | .field-container { | ||||
position: sticky; | position: sticky; | ||||
position: -webkit-sticky; | position: -webkit-sticky; | ||||
top: 70px; | |||||
top: 0px; | |||||
height: calc(100vh - 70px); | height: calc(100vh - 70px); | ||||
width: 100%; | width: 100%; | ||||
z-index: 0; | z-index: 0; | ||||
margin-top: -80px; | |||||
} | } | ||||
.field-image { | .field-image { | ||||
@@ -249,8 +163,8 @@ ion-content { | |||||
} | } | ||||
&:nth-child(12) { | &:nth-child(12) { | ||||
left: 45%; | |||||
top: 53%; | |||||
left: 50%; | |||||
top: 52%; | |||||
animation: runUp 1s forwards linear; | animation: runUp 1s forwards linear; | ||||
animation-delay: 2.8s; | animation-delay: 2.8s; | ||||
} | } | ||||
@@ -275,17 +189,17 @@ ion-content { | |||||
0% { | 0% { | ||||
transform: translate(0,0); | transform: translate(0,0); | ||||
} 100% { | } 100% { | ||||
transform: translate(-5vw, 15vh); | |||||
transform: translate(7vw, 15vh); | |||||
} | } | ||||
} | } | ||||
&:nth-child(14) { | &:nth-child(14) { | ||||
left: 37%; | |||||
left: 39%; | |||||
top: 82%; | top: 82%; | ||||
img { | img { | ||||
width: 30px; | |||||
height: 30px; | |||||
width: 20px; | |||||
height: 20px; | |||||
} | } | ||||
&::after { | &::after { | ||||
@@ -358,7 +272,7 @@ ion-content { | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
overflow: hidden; | overflow: hidden; | ||||
background-color: rgba(white, 0.5); | |||||
background-color: rgba($blue-grey, 0.5); | |||||
&.change-bg { | &.change-bg { | ||||
background-color: rgba($blue-grey, 0.3); | background-color: rgba($blue-grey, 0.3); | ||||
@@ -374,7 +288,7 @@ ion-content { | |||||
} | } | ||||
button:nth-child(3) { | button:nth-child(3) { | ||||
color: #4eb54b; | |||||
color: darken($green, 10%); | |||||
} | } | ||||
button:nth-child(1) { | button:nth-child(1) { | ||||
@@ -412,7 +326,7 @@ ion-content { | |||||
border-radius: 30px; | border-radius: 30px; | ||||
border-radius: 30px; | border-radius: 30px; | ||||
transition: color 0.3s; | transition: color 0.3s; | ||||
color: #4eb54b; | |||||
color: darken($green, 10%); | |||||
height: 100%; | height: 100%; | ||||
background-color: transparent; | background-color: transparent; | ||||
font-weight: 700; | font-weight: 700; | ||||
@@ -428,7 +342,7 @@ ion-content { | |||||
span { | span { | ||||
width: 12px; | width: 12px; | ||||
height: 12px; | height: 12px; | ||||
background-color: #4eb54b; | |||||
background-color: darken($green, 10%); | |||||
display: block; | display: block; | ||||
border-radius: 50%; | border-radius: 50%; | ||||
@@ -440,7 +354,7 @@ ion-content { | |||||
width: 16px; | width: 16px; | ||||
position: absolute; | position: absolute; | ||||
border-radius: 50%; | border-radius: 50%; | ||||
border: 12px solid rgba(#4eb54b, 0.5); | |||||
border: 12px solid rgba(darken($green, 10%), 0.5); | |||||
opacity: 0.7; | opacity: 0.7; | ||||
animation: rippleBorder 1.5s infinite; | animation: rippleBorder 1.5s infinite; | ||||
} | } | ||||
@@ -468,16 +382,19 @@ ion-content { | |||||
} | } | ||||
.segment-holder { | .segment-holder { | ||||
position: fixed; | |||||
position: sticky; | |||||
left: 0; | left: 0; | ||||
top: 70px; | top: 70px; | ||||
z-index: 2; | |||||
z-index: 1; | |||||
width: 100%; | width: 100%; | ||||
padding: 20px 0; | padding: 20px 0; | ||||
background-color: lighten($voilet, 10%); | |||||
background-color: $dark-blue; | |||||
box-shadow: 0px 0px 10px -2px darken($dark-blue, 10%); | |||||
transition: background-color 0.3s, box-shadow 0.3s; | |||||
&.no-bg { | &.no-bg { | ||||
background-color: transparent; | background-color: transparent; | ||||
box-shadow: 0px 0px 0px $dark-blue; | |||||
} | } | ||||
} | } | ||||
@@ -490,11 +407,12 @@ ion-content { | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
overflow: hidden; | overflow: hidden; | ||||
background-color: rgba($blue-grey, 0.5); | |||||
background-color: lighten($dark-blue, 15%); | |||||
box-shadow: 0px 0px 5px inset $dark-blue; | |||||
&.active { | &.active { | ||||
&::before { | &::before { | ||||
transform: translateX(100%); | |||||
transform: translateX(98%); | |||||
} | } | ||||
button:nth-child(2) { | button:nth-child(2) { | ||||
@@ -512,10 +430,12 @@ ion-content { | |||||
left: 0; | left: 0; | ||||
top: 0; | top: 0; | ||||
width: 50%; | width: 50%; | ||||
height: 100%; | |||||
height: 90%; | |||||
top: 5%; | |||||
border-radius: 30px; | border-radius: 30px; | ||||
background-color: $luminous-blue; | |||||
background-color: darken($green, 5%); | |||||
transition: transform 0.3s; | transition: transform 0.3s; | ||||
transform: translateX(2%); | |||||
} | } | ||||
button { | button { | ||||
@@ -537,17 +457,14 @@ ion-content { | |||||
} | } | ||||
} | } | ||||
.score-container { | |||||
margin-top: 100px; | |||||
} | |||||
.score-card { | .score-card { | ||||
background-color: white; | background-color: white; | ||||
box-shadow: 0px 0px 10px $blue-grey; | |||||
box-shadow: 10px 10px 15px -7px darken($dark-blue, 10%); | |||||
border-radius: 7px; | border-radius: 7px; | ||||
overflow: hidden; | overflow: hidden; | ||||
width: 90%; | width: 90%; | ||||
margin: 20px auto; | |||||
margin: 30px auto; | |||||
.container { | .container { | ||||
width: 90%; | width: 90%; | ||||
@@ -636,8 +553,6 @@ ion-content { | |||||
} | } | ||||
.player-list { | .player-list { | ||||
background: linear-gradient(0deg, $voilet 50%, $dark-voilet); | |||||
margin-top: 78px; | |||||
position: sticky; | position: sticky; | ||||
top: 0px; | top: 0px; | ||||
z-index: 0; | z-index: 0; | ||||
@@ -653,7 +568,6 @@ ion-content { | |||||
display: flex; | display: flex; | ||||
width: 100%; | width: 100%; | ||||
align-items: center; | align-items: center; | ||||
background-color: rgba(#ffff, 0.1); | |||||
border-bottom: 1px solid rgba(white, 0.1); | border-bottom: 1px solid rgba(white, 0.1); | ||||
padding: 15px 5%; | padding: 15px 5%; | ||||
} | } | ||||
@@ -1,28 +1,17 @@ | |||||
@import '../colors'; | |||||
ion-tab-bar { | ion-tab-bar { | ||||
--background: white; | |||||
--background: transparent; | |||||
background-color: $dark-blue; | |||||
--border: none; | --border: none; | ||||
margin-top: -1px; | |||||
box-shadow: 0px 0px 15px rgba(var(--light-grey-rgb), 0.5); | |||||
--color: var(--light-grey); | |||||
--color-selected: var(--brand-black); | |||||
&.live { | |||||
--background: #24367c; | |||||
--color: white; | |||||
--color-selected: #01b868; | |||||
box-shadow: none; | |||||
} | |||||
&.dark { | |||||
--background: #161e2d; | |||||
--color: white; | |||||
--color-selected: #01b868; | |||||
box-shadow: none; | |||||
} | |||||
margin-top: -2px; | |||||
box-shadow: 0px 0px 15px -2px darken($dark-blue, 10%); | |||||
--color: var(--blue-grey); | |||||
--color-selected: #01b868; | |||||
ion-tab-button { | ion-tab-button { | ||||
ion-icon { | ion-icon { | ||||
font-size: 20px; | |||||
font-size: 25px; | |||||
&:nth-child(1) { | &:nth-child(1) { | ||||
display: block; | display: block; | ||||
@@ -25,6 +25,8 @@ | |||||
@import "~@ionic/angular/css/text-transformation.css"; | @import "~@ionic/angular/css/text-transformation.css"; | ||||
@import "~@ionic/angular/css/flex-utils.css"; | @import "~@ionic/angular/css/flex-utils.css"; | ||||
@import './app/colors'; | |||||
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); | @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap'); | ||||
* { | * { | ||||
@@ -34,6 +36,89 @@ | |||||
letter-spacing: 0.5px; | letter-spacing: 0.5px; | ||||
} | } | ||||
ion-content { | |||||
--background: transparent; | |||||
background: linear-gradient(0deg, lighten($dark-blue, 10%), $dark-blue 80%); | |||||
} | |||||
.header-with-action-buttons { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: flex-start; | |||||
padding: 0 3% 0 0%; | |||||
height: 70px; | |||||
position: sticky; | |||||
position: -webkit-sticky; | |||||
left: 0; | |||||
top: 0; | |||||
background-color: lighten($dark-blue, 5%); | |||||
z-index: 2; | |||||
width: 100%; | |||||
align-items: center; | |||||
box-shadow: 0px 0px 5px $dark-blue; | |||||
button { | |||||
background-color: transparent; | |||||
border: none; | |||||
} | |||||
.nav button { | |||||
color: lighten($blue-grey, 10%); | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
ion-icon { | |||||
font-size: 24px; | |||||
} | |||||
span { | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
header { | |||||
flex-grow: 1; | |||||
padding: 0 15px; | |||||
font-size: 14px; | |||||
color: lighten($blue-grey, 50%); | |||||
font-weight: 500; | |||||
text-align: left; | |||||
white-space: nowrap; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
span { | |||||
font-weight: 500; | |||||
color: lighten($blue-grey, 10%); | |||||
font-size: 12px; | |||||
} | |||||
} | |||||
.action { | |||||
display: flex; | |||||
justify-content: flex-end; | |||||
} | |||||
.action button { | |||||
width: 40px; | |||||
height: 40px; | |||||
border: 2px solid darken($green, 10%); | |||||
background-color: rgba($green, 0.1); | |||||
border-radius: 50%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: center; | |||||
margin-left: 15px; | |||||
ion-icon { | |||||
color: darken($green, 10%); | |||||
font-size: 20px; | |||||
} | |||||
} | |||||
} | |||||
figure { | figure { | ||||
margin: 0; | margin: 0; | ||||
} | } | ||||
@@ -55,7 +140,9 @@ figure { | |||||
} | } | ||||
.chat-button { | .chat-button { | ||||
--background: #d73e53; | |||||
--background: transparent; | |||||
background-color: lighten($brand-red, 10%); | |||||
border-radius: 50%; | |||||
position: relative; | position: relative; | ||||
overflow: visible; | overflow: visible; | ||||
width: 60px; | width: 60px; | ||||
@@ -67,8 +154,8 @@ figure { | |||||
ion-badge { | ion-badge { | ||||
position: absolute; | position: absolute; | ||||
right: 10px; | |||||
top: 10px; | |||||
right: 7px; | |||||
top: 7px; | |||||
font-size: 10px; | font-size: 10px; | ||||
} | } | ||||
} | } |
@@ -82,6 +82,8 @@ | |||||
--brand-red-rgb: 237, 28, 36; | --brand-red-rgb: 237, 28, 36; | ||||
--light-grey: #666666; | --light-grey: #666666; | ||||
--light-grey-rgb: 102, 102, 102; | --light-grey-rgb: 102, 102, 102; | ||||
--dark-blue: #161e2d; | |||||
--blue-grey: #949599; | |||||
} | } | ||||