@@ -1,23 +1,41 @@ | |||||
<ion-content> | <ion-content> | ||||
<ion-button (click)="showGrid = !showGrid" | |||||
class="grid-button"> | |||||
<ion-icon *ngIf="!showGrid" name="grid"></ion-icon> | |||||
<ion-icon *ngIf="showGrid" name="logo-buffer"></ion-icon> | |||||
</ion-button> | |||||
<section class="collections"> | <section class="collections"> | ||||
<img class="glass-box" src="assets/collections/glassbox.png" alt=""> | |||||
<ng-container *ngIf="showGrid"> | |||||
<ul class="collection-grid"> | |||||
<li *ngFor="let collection of collections"> | |||||
<img [src]="collection.image"> | |||||
<label> {{ collection.name }} </label> | |||||
</li> | |||||
</ul> | |||||
</ng-container> | |||||
<ng-container *ngIf="!showGrid"> | |||||
<img class="glass-box" src="assets/collections/glassbox.png" alt=""> | |||||
<ion-slides [options]="slideOpts"> | |||||
<ion-slide *ngFor="let collection of collections"> | |||||
<img [ngClass]="{'bat' : collection.type === 'BAT' || collection.type === 'INVERTED BAT', | |||||
'ball' : collection.type === 'BALL', | |||||
'inverted' : collection.type === 'INVERTED BAT' }" | |||||
[src]="collection.image"> | |||||
<ion-slides [options]="slideOpts"> | |||||
<ion-slide *ngFor="let collection of collections"> | |||||
<img [ngClass]="{'bat' : collection.type === 'BAT' || collection.type === 'INVERTED BAT', | |||||
'ball' : collection.type === 'BALL', | |||||
'inverted' : collection.type === 'INVERTED BAT' }" | |||||
[src]="collection.image"> | |||||
<header class="box-heading"> | |||||
<h5> {{ collection.name }} </h5> | |||||
<header class="box-heading"> | |||||
<h5> {{ collection.name }} </h5> | |||||
<p> {{ collection.details }} </p> | |||||
</header> | |||||
</ion-slide> | |||||
</ion-slides> | |||||
<p> {{ collection.details }} </p> | |||||
</header> | |||||
</ion-slide> | |||||
</ion-slides> | |||||
</ng-container> | |||||
</section> | </section> | ||||
</ion-content> | </ion-content> |
@@ -1,3 +1,11 @@ | |||||
$lumous-blue: #1a2389; | |||||
$dark-blue-shade1: #24367c; | |||||
$dark-blue-shade2: #263982; | |||||
$green: #01b868; | |||||
$pink: #d73e53; | |||||
$dark-blue: #161e2d; | |||||
$blue-grey: #949599; | |||||
.collections { | .collections { | ||||
height: calc(100vh - 56px); | height: calc(100vh - 56px); | ||||
background-image: url('../../assets/collections/museum_background.png'); | background-image: url('../../assets/collections/museum_background.png'); | ||||
@@ -5,6 +13,70 @@ | |||||
background-size: 100% 100%; | background-size: 100% 100%; | ||||
} | } | ||||
.grid-button { | |||||
position: fixed; | |||||
right: 10px; | |||||
top: 10px; | |||||
--border-radius: 10px; | |||||
width: 40px; | |||||
height: 40px; | |||||
z-index: 3; | |||||
margin: 0; | |||||
--padding-start: 0; | |||||
--padding-end: 0; | |||||
--padding-top: 0; | |||||
--padding-bottom: 0; | |||||
--background: white; | |||||
--color: #d73e53; | |||||
ion-icon { | |||||
font-size: 24px; | |||||
} | |||||
} | |||||
.collection-grid { | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
list-style: none; | |||||
margin: 0; | |||||
width: 100%; | |||||
padding: 0 5%; | |||||
position: fixed; | |||||
left: 0; | |||||
top: 20vh; | |||||
max-height: 40vh; | |||||
overflow: auto; | |||||
animation: fadeUp 0.5s forwards; | |||||
li { | |||||
width: 100px; | |||||
min-height: 100px; | |||||
border-radius: 10px; | |||||
background-color: rgba(white, 0.8); | |||||
box-shadow: 2px 2px 10px -4px $dark-blue; | |||||
position: relative; | |||||
padding: 10px; | |||||
margin: 10px; | |||||
img { | |||||
width: 50px; | |||||
height: 50px; | |||||
display: block; | |||||
object-fit: contain; | |||||
margin: 0 auto; | |||||
} | |||||
label { | |||||
margin-top: 10px; | |||||
display: block; | |||||
color: dimgrey; | |||||
font-weight: 500; | |||||
font-size: 0.9rem; | |||||
text-align: center; | |||||
} | |||||
} | |||||
} | |||||
.glass-box { | .glass-box { | ||||
width: 55vw; | width: 55vw; | ||||
height: 40vh; | height: 40vh; | ||||
@@ -28,19 +100,7 @@ ion-slides { | |||||
animation: fadeUp 0.5s forwards; | animation: fadeUp 0.5s forwards; | ||||
animation-delay: 0.2s; | animation-delay: 0.2s; | ||||
} | } | ||||
} | |||||
@keyframes fadeUp { | |||||
0% { | |||||
opacity: 0; | |||||
transform: translateY(10px); | |||||
} | |||||
100% { | |||||
opacity: 1; | |||||
transform: translateY(0vh); | |||||
} | |||||
} | |||||
} | |||||
.box-heading { | .box-heading { | ||||
position: absolute; | position: absolute; | ||||
@@ -90,4 +150,16 @@ ion-slides { | |||||
left: 45vw; | left: 45vw; | ||||
} | } | ||||
} | } | ||||
} | |||||
@keyframes fadeUp { | |||||
0% { | |||||
opacity: 0; | |||||
transform: translateY(10px); | |||||
} | |||||
100% { | |||||
opacity: 1; | |||||
transform: translateY(0vh); | |||||
} | |||||
} | } |
@@ -22,7 +22,9 @@ export class CollectionsPage implements OnInit { | |||||
details: string, | details: string, | ||||
image: string, | image: string, | ||||
type: 'BAT' | 'BALL' | 'INVERTED BAT' | type: 'BAT' | 'BALL' | 'INVERTED BAT' | ||||
}> | |||||
}> = []; | |||||
showGrid: boolean = false; | |||||
constructor() { } | constructor() { } | ||||