From ed9dd683db4fbf532da431f8f863e7b8c365d8dd Mon Sep 17 00:00:00 2001
From: atlinx
Date: Sun, 24 Nov 2024 01:49:51 -0500
Subject: [PATCH] Add scarlet-showcase page
---
src/_settings.ts | 2 +-
.../modules/_core/button/button.component.css | 20 +-
.../column-layout/column-layout.component.css | 15 +-
.../column-layout/column-layout.component.ts | 22 +-
.../event-header/event-header.component.html | 23 +-
.../full-page-header.component.css | 40 +--
.../full-page-header.component.html | 3 +-
.../full-page-header.component.ts | 15 +-
.../_core/section/section.component.ts | 20 +-
src/app/pages/_pages.scss | 20 +-
.../_global-game-jam-page.scss | 5 -
..._global-game-jam-page.component-theme.scss | 26 --
.../global-game-jam-page.component.css | 31 --
.../global-game-jam-page.component.html | 69 -----
.../global-game-jam-page.component.spec.ts | 24 --
.../pages/home/home/home-page.component.html | 24 +-
src/app/pages/pages.module.ts | 9 +-
.../_scarlet-showcase-page.scss | 5 +
.../scarlet-showcase-page.module.ts} | 14 +-
...scarlet-showcase-page.component-theme.scss | 64 ++++
.../scarlet-showcase-page.component.css | 162 ++++++++++
.../scarlet-showcase-page.component.html | 289 ++++++++++++++++++
.../scarlet-showcase-page.component.spec.ts | 24 ++
.../scarlet-showcase-page.component.ts} | 18 +-
.../services/breakpoint-manager.service.ts | 2 +
src/assets/fonts/now/Now-Black.otf | Bin 0 -> 38144 bytes
src/assets/fonts/now/Now-Bold.otf | Bin 0 -> 37776 bytes
src/assets/fonts/now/Now-Light.otf | Bin 0 -> 35980 bytes
src/assets/fonts/now/Now-Medium.otf | Bin 0 -> 36204 bytes
src/assets/fonts/now/Now-Regular.otf | Bin 0 -> 35920 bytes
src/assets/fonts/now/Now-Thin.otf | Bin 0 -> 35792 bytes
src/assets/fonts/now/NowAlt-Black.otf | Bin 0 -> 38140 bytes
src/assets/fonts/now/NowAlt-Bold.otf | Bin 0 -> 37828 bytes
src/assets/fonts/now/NowAlt-Light.otf | Bin 0 -> 36160 bytes
src/assets/fonts/now/NowAlt-Medium.otf | Bin 0 -> 36328 bytes
src/assets/fonts/now/NowAlt-Regular.otf | Bin 0 -> 36860 bytes
src/assets/fonts/now/NowAlt-Thin.otf | Bin 0 -> 35928 bytes
.../fonts/steelfish/steelfish bd it.otf | Bin 0 -> 117940 bytes
src/assets/fonts/steelfish/steelfish bd.otf | Bin 0 -> 69820 bytes
.../fonts/steelfish/steelfish eb it.otf | Bin 0 -> 117792 bytes
src/assets/fonts/steelfish/steelfish eb.otf | Bin 0 -> 109940 bytes
.../fonts/steelfish/steelfish outline.otf | Bin 0 -> 163064 bytes
.../fonts/steelfish/steelfish rg it.otf | Bin 0 -> 72160 bytes
src/assets/fonts/steelfish/steelfish rg.otf | Bin 0 -> 108120 bytes
.../fonts/uni-sans/Uni Sans Heavy Italic.otf | Bin 0 -> 115724 bytes
src/assets/fonts/uni-sans/Uni Sans Heavy.otf | Bin 0 -> 113772 bytes
.../fonts/uni-sans/Uni Sans Thin Italic.otf | Bin 0 -> 117772 bytes
src/assets/fonts/uni-sans/Uni Sans Thin.otf | Bin 0 -> 114344 bytes
src/assets/images/ggj-bg.png | Bin 66837 -> 0 bytes
src/assets/images/ggj-logo.png | Bin 2321454 -> 0 bytes
src/assets/images/ss-bg.png | Bin 0 -> 4685 bytes
src/assets/images/ss-logo.png | Bin 0 -> 635447 bytes
52 files changed, 688 insertions(+), 258 deletions(-)
delete mode 100644 src/app/pages/global-game-jam/_global-game-jam-page.scss
delete mode 100644 src/app/pages/global-game-jam/global-game-jam/_global-game-jam-page.component-theme.scss
delete mode 100644 src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.css
delete mode 100644 src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.html
delete mode 100644 src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.spec.ts
create mode 100644 src/app/pages/scarlet-showcase/_scarlet-showcase-page.scss
rename src/app/pages/{global-game-jam/global-game-jam-page.module.ts => scarlet-showcase/scarlet-showcase-page.module.ts} (63%)
create mode 100644 src/app/pages/scarlet-showcase/scarlet-showcase/_scarlet-showcase-page.component-theme.scss
create mode 100644 src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.css
create mode 100644 src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.html
create mode 100644 src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.spec.ts
rename src/app/pages/{global-game-jam/global-game-jam/global-game-jam-page.component.ts => scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.ts} (53%)
create mode 100644 src/assets/fonts/now/Now-Black.otf
create mode 100644 src/assets/fonts/now/Now-Bold.otf
create mode 100644 src/assets/fonts/now/Now-Light.otf
create mode 100644 src/assets/fonts/now/Now-Medium.otf
create mode 100644 src/assets/fonts/now/Now-Regular.otf
create mode 100644 src/assets/fonts/now/Now-Thin.otf
create mode 100644 src/assets/fonts/now/NowAlt-Black.otf
create mode 100644 src/assets/fonts/now/NowAlt-Bold.otf
create mode 100644 src/assets/fonts/now/NowAlt-Light.otf
create mode 100644 src/assets/fonts/now/NowAlt-Medium.otf
create mode 100644 src/assets/fonts/now/NowAlt-Regular.otf
create mode 100644 src/assets/fonts/now/NowAlt-Thin.otf
create mode 100644 src/assets/fonts/steelfish/steelfish bd it.otf
create mode 100644 src/assets/fonts/steelfish/steelfish bd.otf
create mode 100644 src/assets/fonts/steelfish/steelfish eb it.otf
create mode 100644 src/assets/fonts/steelfish/steelfish eb.otf
create mode 100644 src/assets/fonts/steelfish/steelfish outline.otf
create mode 100644 src/assets/fonts/steelfish/steelfish rg it.otf
create mode 100644 src/assets/fonts/steelfish/steelfish rg.otf
create mode 100644 src/assets/fonts/uni-sans/Uni Sans Heavy Italic.otf
create mode 100644 src/assets/fonts/uni-sans/Uni Sans Heavy.otf
create mode 100644 src/assets/fonts/uni-sans/Uni Sans Thin Italic.otf
create mode 100644 src/assets/fonts/uni-sans/Uni Sans Thin.otf
delete mode 100644 src/assets/images/ggj-bg.png
delete mode 100644 src/assets/images/ggj-logo.png
create mode 100644 src/assets/images/ss-bg.png
create mode 100644 src/assets/images/ss-logo.png
diff --git a/src/_settings.ts b/src/_settings.ts
index 479e951..5acbded 100644
--- a/src/_settings.ts
+++ b/src/_settings.ts
@@ -51,7 +51,7 @@ export class SettingsService {
public pageLinks: PageLink[] = [
new PageLink('Home', 'home'),
// new PageLink('SGJ', 'scarlet-game-jam'),
- // new PageLink('GGJ', 'global-game-jam'),
+ new PageLink('Scarlet S', 'scarlet-showcase'),
new PageLink('Members', 'members'),
new PageLink('Projects', 'projects'),
new PageLink('Pics', 'pictures'),
diff --git a/src/app/modules/_core/button/button.component.css b/src/app/modules/_core/button/button.component.css
index 3491fe6..2f86fdf 100644
--- a/src/app/modules/_core/button/button.component.css
+++ b/src/app/modules/_core/button/button.component.css
@@ -1,13 +1,13 @@
.button {
- border: none;
- text-align: center;
- text-decoration: none;
- display: inline-block;
- padding: 0 1.25em;
- height: 3em;
+ border: none;
+ text-align: center;
+ text-decoration: none;
+ display: inline-block;
+ padding: 0 1.25em;
+ height: 3em;
width: 100%;
border-radius: 30em;
- display: flex;
+ display: flex;
align-items: center;
justify-content: center;
outline: 0px;
@@ -17,4 +17,8 @@
background-color: transparent;
border: solid;
border-width: 2px;
-}
\ No newline at end of file
+}
+
+:host {
+ display: block;
+}
diff --git a/src/app/modules/_core/column-layout/column-layout.component.css b/src/app/modules/_core/column-layout/column-layout.component.css
index 25ed0b7..a46e807 100644
--- a/src/app/modules/_core/column-layout/column-layout.component.css
+++ b/src/app/modules/_core/column-layout/column-layout.component.css
@@ -1,15 +1,8 @@
:host {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 32px;
-}
-
-@media only screen and (max-width: 1080px) {
- :host {
- grid-template-columns: repeat(1, 1fr);
- }
+ display: grid;
+ gap: 32px;
}
:host > * {
- display: block;
-}
\ No newline at end of file
+ display: block;
+}
diff --git a/src/app/modules/_core/column-layout/column-layout.component.ts b/src/app/modules/_core/column-layout/column-layout.component.ts
index 0c20a83..8b6ad4b 100644
--- a/src/app/modules/_core/column-layout/column-layout.component.ts
+++ b/src/app/modules/_core/column-layout/column-layout.component.ts
@@ -1,4 +1,5 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, HostBinding, Input, OnInit } from '@angular/core';
+import { BreakpointManagerService } from '@src/app/services/breakpoint-manager.service';
@Component({
selector: 'app-column-layout',
@@ -6,7 +7,22 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./column-layout.component.css'],
})
export class ColumnLayoutComponent implements OnInit {
- constructor() {}
+ @Input('grid-template-columns') gridTemplateColumns: string = 'repeat(2, 1fr)';
+ @HostBinding('style.grid-template-columns') currGridTemplateColumns: string = '';
- ngOnInit(): void {}
+ constructor(private breakpointManagerService: BreakpointManagerService) {
+ breakpointManagerService.onBreakpointChanged.subscribe(() => {
+ this.updateGrid();
+ });
+ }
+
+ ngOnInit(): void {
+ this.updateGrid();
+ }
+
+ updateGrid() {
+ this.currGridTemplateColumns = this.breakpointManagerService.matchedBreakpointOrBelow('MOBILE')
+ ? 'repeat(1, 1fr)'
+ : this.gridTemplateColumns;
+ }
}
diff --git a/src/app/modules/_core/event-header/event-header.component.html b/src/app/modules/_core/event-header/event-header.component.html
index 7f33955..ced3f99 100644
--- a/src/app/modules/_core/event-header/event-header.component.html
+++ b/src/app/modules/_core/event-header/event-header.component.html
@@ -1,16 +1,23 @@
-
\ No newline at end of file
diff --git a/src/app/modules/_core/full-page-header/full-page-header.component.css b/src/app/modules/_core/full-page-header/full-page-header.component.css
index f5365ca..4ca7524 100644
--- a/src/app/modules/_core/full-page-header/full-page-header.component.css
+++ b/src/app/modules/_core/full-page-header/full-page-header.component.css
@@ -1,26 +1,28 @@
.bg {
- position: relative;
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
- box-sizing: border-box;
- min-height: calc(100vh - var(--site-header-height)); /* Accounting for header */
- padding: var(--content-padding);
- background-size: cover;
- background-position: center;
+ position: relative;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ box-sizing: border-box;
+ min-height: calc(100vh - var(--site-header-height)); /* Accounting for header */
+ padding: var(--content-padding);
+ background-size: cover;
+ background-position: center;
}
.content {
- display: block;
- margin-left: auto;
- margin-right: auto;
- width: var(--content-width);
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ width: var(--content-width);
}
.scroll-button {
- position: absolute;
- left: calc(50% - 21px);
- bottom: 10%;
- filter: drop-shadow(0 0 1rem black);
-}
\ No newline at end of file
+ position: absolute;
+ left: calc(50% - 21px);
+ bottom: 10%;
+ filter: drop-shadow(0 0 1rem black);
+ width: fit-content;
+ height: fit-content;
+}
diff --git a/src/app/modules/_core/full-page-header/full-page-header.component.html b/src/app/modules/_core/full-page-header/full-page-header.component.html
index 68c44ba..e901571 100644
--- a/src/app/modules/_core/full-page-header/full-page-header.component.html
+++ b/src/app/modules/_core/full-page-header/full-page-header.component.html
@@ -9,6 +9,7 @@
behavior: 'smooth'
});
">
-
+
\ No newline at end of file
diff --git a/src/app/modules/_core/full-page-header/full-page-header.component.ts b/src/app/modules/_core/full-page-header/full-page-header.component.ts
index dcc2916..ccb51a4 100644
--- a/src/app/modules/_core/full-page-header/full-page-header.component.ts
+++ b/src/app/modules/_core/full-page-header/full-page-header.component.ts
@@ -10,6 +10,8 @@ export class FullPageHeaderComponent implements OnInit {
@Input() color: string = 'primary';
@Input() bgRepeatMode: string = '';
@Input() bgPosition: string = '';
+ @Input() gradient: boolean = true;
+ @Input() fgColor: string = '';
constructor() {}
@@ -17,9 +19,20 @@ export class FullPageHeaderComponent implements OnInit {
getBgStyle(): Object {
return {
- 'background-image': 'linear-gradient(to bottom, var(--background-color), #00000000), url(' + this.bgImage + ')',
+ 'background-image':
+ (this.gradient ? 'linear-gradient(to bottom, var(--background-color), #00000000),' : '') +
+ ' url(' +
+ this.bgImage +
+ ')',
...(this.bgRepeatMode !== '' && { 'background-repeat': this.bgRepeatMode, 'background-size': 'auto' }),
...(this.bgPosition !== '' && { 'background-position': this.bgPosition }),
+ ...(this.color == 'none' && { 'background-color': 'none' }),
+ };
+ }
+
+ getIconClass(): Object {
+ return {
+ [this.fgColor]: true,
};
}
}
diff --git a/src/app/modules/_core/section/section.component.ts b/src/app/modules/_core/section/section.component.ts
index 5015e89..532d893 100644
--- a/src/app/modules/_core/section/section.component.ts
+++ b/src/app/modules/_core/section/section.component.ts
@@ -18,6 +18,7 @@ export class SectionComponent implements OnInit {
fullWidth: boolean;
shadow: boolean;
bottomGradient: boolean;
+ topGradient: boolean;
constructor(
private elementRef: ElementRef,
@@ -26,6 +27,7 @@ export class SectionComponent implements OnInit {
@Optional() @Attribute('full-page') fullPage: any,
@Optional() @Attribute('full-width') fullWidth: any,
@Optional() @Attribute('shadow') shadow: any,
+ @Optional() @Attribute('top-gradient') topGradient: any,
@Optional() @Attribute('bottom-gradient') bottomGradient: any,
) {
this.last = last != undefined;
@@ -34,6 +36,7 @@ export class SectionComponent implements OnInit {
this.fullWidth = fullWidth != undefined;
this.shadow = shadow != undefined;
this.bottomGradient = bottomGradient != undefined;
+ this.topGradient = topGradient != undefined;
}
ngOnInit(): void {
@@ -47,17 +50,22 @@ export class SectionComponent implements OnInit {
//transparent-background-color
getBgStyle(): Object {
+ let gradient = '';
+ if (this.topGradient || this.bottomGradient) {
+ gradient =
+ 'linear-gradient(' +
+ (this.topGradient ? 'var(--background-color),' : '') +
+ '#00000000' +
+ (this.bottomGradient ? ', var(--background-color)' : '') +
+ '),';
+ }
return {
...(this.bgImage && {
- 'background-image':
- 'linear-gradient(var(--background-color), #00000000' +
- (this.bottomGradient ? ', var(--background-color)' : '') +
- '), url(' +
- this.bgImage +
- ')',
+ 'background-image': gradient + 'url(' + this.bgImage + ')',
}),
...(this.bgRepeatMode !== '' && { 'background-repeat': this.bgRepeatMode, 'background-size': 'auto' }),
...(this.bgPosition !== '' && { 'background-position': this.bgPosition }),
+ ...(this.color == 'none' && { 'background-color': 'none' }),
};
}
}
diff --git a/src/app/pages/_pages.scss b/src/app/pages/_pages.scss
index 701fa6a..46dc928 100644
--- a/src/app/pages/_pages.scss
+++ b/src/app/pages/_pages.scss
@@ -5,15 +5,15 @@
@use './signup/signup-page' as signup;
@use './users/users-dir' as users-dir;
@use './projects/projects-dir' as projects-dir;
-@use './global-game-jam/global-game-jam-page' as ggj;
+@use './scarlet-showcase/scarlet-showcase-page' as ggj;
@mixin theme($theme) {
- @include blog-dir.theme($theme);
- @include home.theme($theme);
- @include login.theme($theme);
- @include sgj.theme($theme);
- @include signup.theme($theme);
- @include users-dir.theme($theme);
- @include projects-dir.theme($theme);
- @include ggj.theme($theme);
-}
\ No newline at end of file
+ @include blog-dir.theme($theme);
+ @include home.theme($theme);
+ @include login.theme($theme);
+ @include sgj.theme($theme);
+ @include signup.theme($theme);
+ @include users-dir.theme($theme);
+ @include projects-dir.theme($theme);
+ @include ggj.theme($theme);
+}
diff --git a/src/app/pages/global-game-jam/_global-game-jam-page.scss b/src/app/pages/global-game-jam/_global-game-jam-page.scss
deleted file mode 100644
index 40644fa..0000000
--- a/src/app/pages/global-game-jam/_global-game-jam-page.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@use './global-game-jam/global-game-jam-page.component-theme' as ggj;
-
-@mixin theme($theme) {
- @include ggj.theme($theme);
-}
\ No newline at end of file
diff --git a/src/app/pages/global-game-jam/global-game-jam/_global-game-jam-page.component-theme.scss b/src/app/pages/global-game-jam/global-game-jam/_global-game-jam-page.component-theme.scss
deleted file mode 100644
index 1c6b2ae..0000000
--- a/src/app/pages/global-game-jam/global-game-jam/_global-game-jam-page.component-theme.scss
+++ /dev/null
@@ -1,26 +0,0 @@
-@use 'sass:map';
-@use 'sass:color';
-@use '@angular/material' as mat;
-
-@mixin color($config) {
- $primary: map.get($config, primary);
-
- .app-global-game-jam.text {
- color: mat.get-color-from-palette($primary, 500-contrast)
- }
-}
-
-@mixin typography($config) {
-}
-
-@mixin theme($theme) {
- $color-config: mat.get-color-config($theme);
- @if $color-config != null {
- @include color($color-config);
- }
-
- $typography-config: mat.get-typography-config($theme);
- @if $typography-config != null {
- @include typography($typography-config);
- }
-}
\ No newline at end of file
diff --git a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.css b/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.css
deleted file mode 100644
index 54cf2fe..0000000
--- a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.flipdown {
- display: block;
- padding-bottom: 3em;
- width: 100%;
- height: auto;
-}
-
-.logo-container {
- max-width: 40%;
- margin-left: 5em;
- flex-grow: 1;
-}
-
-.logo-container.mobile {
- margin-left: 0;
-}
-
-.split-section {
- display: flex;
- height: 100%;
- width: 100%;
-}
-
-.logo-painted {
- max-width: 100%;
- filter: drop-shadow(0 0 1rem black);
-}
-
-.logo-painted.desktop {
- float: right;
-}
\ No newline at end of file
diff --git a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.html b/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.html
deleted file mode 100644
index d2e724d..0000000
--- a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.html
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
Global Game Jam
-
{{getSemesterString()}}
-
-
-
- Sign Up
-
-
- Site
-
-
Discord
-
-
-
-
-
-
-
-
-
-
-
-
-
- First in-person meetup of our Global Game Jam site. This is the time to meet other people participating in the jam and form groups to make a game together. The theme that all games must adhere to will be revealed at this event.
-
- Food will be served.
-
-
-
-
-
- This is time for you to work on your game. COGS e-board members will be available to help with any game development problems or questions you may have.
-
-
-
-
-
- This is the final day to work on your game and polish it up for submission. At the end, you'll present your games infront of everyone.
-
- Food will be served.
-
-
-
-
-
-
-
-
- Global Game Jam is an annual game jam that happens across the world. Particpants are given 48 hours to develop a video game based around a theme that is unveiled at the beginning of the event. COGS hosts a site for Global Game Jam which lets Rutgers students attend.
-
-
- Your team owns 100% of the game you make during jam. Feel free to turn your game jam games into a full release if you think the game has potential.
-
-
-
diff --git a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.spec.ts b/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.spec.ts
deleted file mode 100644
index f7a69a0..0000000
--- a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.spec.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { GlobalGameJamPageComponent } from './global-game-jam-page.component';
-
-describe('GlobalGameJamComponent', () => {
- let component: GlobalGameJamPageComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async () => {
- await TestBed.configureTestingModule({
- declarations: [GlobalGameJamPageComponent],
- }).compileComponents();
- });
-
- beforeEach(() => {
- fixture = TestBed.createComponent(GlobalGameJamPageComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/src/app/pages/home/home/home-page.component.html b/src/app/pages/home/home/home-page.component.html
index 56356f6..e538880 100644
--- a/src/app/pages/home/home/home-page.component.html
+++ b/src/app/pages/home/home/home-page.component.html
@@ -1,5 +1,5 @@
-
+
-
Mailing List
-
Discord
+
Mailing
+ List
+
Discord
@@ -43,16 +41,14 @@ Events
Let's meet up!
- We meet every Tuesdays at 7-9pm and every Sunday from 4-6pm at the CoRE 301, a room on the 3rd floor of the CoRE building. Please use the map on the
+ We meet every Tuesdays at 7-9pm and every Sunday from 4-6pm at the CoRE 301, a room on the 3rd floor of the CoRE
+ building. Please use the map on the
right if you need help getting there!
+ style="border: 0; width: 100%; height: 300px" allowfullscreen="" loading="lazy">
@@ -91,9 +87,9 @@ Let's meet up!
- Please email us at rucogs@gmail.com
+ Please email us at rutgerscogs@gmail.com
Alternatively, reach out to one of the e-board members on our Discord server.
-
+
\ No newline at end of file
diff --git a/src/app/pages/pages.module.ts b/src/app/pages/pages.module.ts
index 298edac..cb4b9da 100644
--- a/src/app/pages/pages.module.ts
+++ b/src/app/pages/pages.module.ts
@@ -26,12 +26,13 @@ const routes: Route[] = [
import('./scarlet-game-jam/scarlet-game-jam-page.module').then((m) => m.ScarletGameJamPageModule),
},
{
- path: 'ggj',
- redirectTo: 'global-game-jam',
+ path: 'ss',
+ redirectTo: 'scarlet-showcase',
},
{
- path: 'global-game-jam',
- loadChildren: () => import('./global-game-jam/global-game-jam-page.module').then((m) => m.GlobalGameJamPageModule),
+ path: 'scarlet-showcase',
+ loadChildren: () =>
+ import('./scarlet-showcase/scarlet-showcase-page.module').then((m) => m.ScarletShowcasePageModule),
},
{ path: 'blog', loadChildren: () => import('./blog/blog-dir.module').then((m) => m.BlogDirModule) },
{ path: 'login', loadChildren: () => import('./login/login-page.module').then((m) => m.LoginPageModule) },
diff --git a/src/app/pages/scarlet-showcase/_scarlet-showcase-page.scss b/src/app/pages/scarlet-showcase/_scarlet-showcase-page.scss
new file mode 100644
index 0000000..dbb7fbe
--- /dev/null
+++ b/src/app/pages/scarlet-showcase/_scarlet-showcase-page.scss
@@ -0,0 +1,5 @@
+@use './scarlet-showcase/scarlet-showcase-page.component-theme' as ggj;
+
+@mixin theme($theme) {
+ @include ggj.theme($theme);
+}
diff --git a/src/app/pages/global-game-jam/global-game-jam-page.module.ts b/src/app/pages/scarlet-showcase/scarlet-showcase-page.module.ts
similarity index 63%
rename from src/app/pages/global-game-jam/global-game-jam-page.module.ts
rename to src/app/pages/scarlet-showcase/scarlet-showcase-page.module.ts
index eb51862..1d5a96d 100644
--- a/src/app/pages/global-game-jam/global-game-jam-page.module.ts
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase-page.module.ts
@@ -7,18 +7,18 @@ import { CardsModule } from '@src/app/modules/cards/cards.module';
import { CoreModule } from '@src/app/modules/_core/core.module';
import { SEOUpdateData } from '@src/app/services/seo.service';
import { IconModule } from '@visurel/iconify-angular';
-import { GlobalGameJamPageComponent } from './global-game-jam/global-game-jam-page.component';
+import { ScarletShowcasePageComponent } from './scarlet-showcase/scarlet-showcase-page.component';
-export { GlobalGameJamPageComponent };
+export { ScarletShowcasePageComponent };
const ROUTES: Route[] = [
{
path: '',
- component: GlobalGameJamPageComponent,
+ component: ScarletShowcasePageComponent,
data: {
- titleAll: 'Global Game Jam',
+ titleAll: 'Scarlet Showcase',
description:
- 'Come make a game with friends in a week. Programmers, artists, and musicians are welcomed, and no experience is required! Global Game Jam is hosted by the Creation of Games Society at Rutgers, and is a week long event.',
+ 'Come checkout creative works made by COGS, RUCVGM, VANCE, Animation Club, and Digital Art Club! Participate in fun activities, win prizes, and buy merch.',
twitterCard: 'summary_large_image',
ogImage: 'assets/images/sgj-summary-banner-f2022.png',
} as SEOUpdateData,
@@ -26,7 +26,7 @@ const ROUTES: Route[] = [
];
@NgModule({
- declarations: [GlobalGameJamPageComponent],
+ declarations: [ScarletShowcasePageComponent],
imports: [
RouterModule.forChild(ROUTES),
CommonModule,
@@ -37,4 +37,4 @@ const ROUTES: Route[] = [
IconModule,
],
})
-export class GlobalGameJamPageModule {}
+export class ScarletShowcasePageModule {}
diff --git a/src/app/pages/scarlet-showcase/scarlet-showcase/_scarlet-showcase-page.component-theme.scss b/src/app/pages/scarlet-showcase/scarlet-showcase/_scarlet-showcase-page.component-theme.scss
new file mode 100644
index 0000000..65fec67
--- /dev/null
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase/_scarlet-showcase-page.component-theme.scss
@@ -0,0 +1,64 @@
+@use 'sass:map';
+@use 'sass:color';
+@use '@angular/material' as mat;
+@use 'styles/variables' as variables;
+
+@mixin color($config) {
+ $primary: map.get($config, primary);
+
+ .app-scarlet-showcase.text {
+ color: mat.get-color-from-palette($primary, 500-contrast);
+ }
+
+ .logo-container {
+ max-height: 50em;
+ flex-grow: 1;
+ margin-top: -7em;
+ }
+
+ @media screen and (max-width: variables.$mobile-width) {
+ .logo-container {
+ margin-top: -3em;
+ }
+ }
+
+ .theme {
+ ul,
+ div,
+ ol,
+ li,
+ p {
+ font-family: 'Now';
+ font-weight: 400;
+ font-size: 1em;
+ color: white;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ font-family: 'Steelfish';
+ font-size: 3em;
+ text-transform: uppercase;
+ color: white;
+ }
+ }
+}
+
+@mixin typography($config) {
+}
+
+@mixin theme($theme) {
+ $color-config: mat.get-color-config($theme);
+ @if $color-config != null {
+ @include color($color-config);
+ }
+
+ $typography-config: mat.get-typography-config($theme);
+ @if $typography-config != null {
+ @include typography($typography-config);
+ }
+}
diff --git a/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.css b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.css
new file mode 100644
index 0000000..24a418c
--- /dev/null
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.css
@@ -0,0 +1,162 @@
+.flipdown {
+ display: block;
+ width: 100%;
+ height: auto;
+}
+
+.logo-painted {
+ max-width: 100%;
+ max-height: 60vh;
+ filter: drop-shadow(0 0 1rem black);
+ float: right;
+}
+
+/* Uni Sans */
+@font-face {
+ font-family: 'Uni Sans';
+ src: url('/assets/fonts/uni-sans/Uni Sans Thin.otf') format('opentype');
+ font-weight: 100;
+}
+
+@font-face {
+ font-family: 'Uni Sans';
+ src: url('/assets/fonts/uni-sans/Uni Sans Thin Italic.otf') format('opentype');
+ font-weight: 100;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Uni Sans';
+ src: url('/assets/fonts/uni-sans/Uni Sans Heavy.otf') format('opentype');
+ font-weight: 500;
+}
+
+@font-face {
+ font-family: 'Uni Sans';
+ src: url('/assets/fonts/uni-sans/Uni Sans Heavy Italic.otf') format('opentype');
+ font-weight: 500;
+ font-style: italic;
+}
+
+/* Steelfish */
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish rg.otf') format('opentype');
+ font-weight: 500;
+}
+
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish rg it.otf') format('opentype');
+ font-weight: 500;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish bd.otf') format('opentype');
+ font-weight: 700;
+}
+
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish bd it.otf') format('opentype');
+ font-weight: 700;
+ font-style: italic;
+}
+
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish eb.otf') format('opentype');
+ font-weight: 800;
+}
+
+@font-face {
+ font-family: 'Steelfish';
+ src: url('/assets/fonts/steelfish/steelfish eb it.otf') format('opentype');
+ font-weight: 800;
+ font-style: italic;
+}
+
+/* Now */
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Thin.otf') format('opentype');
+ font-weight: 100;
+}
+
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Light.otf') format('opentype');
+ font-weight: 300;
+}
+
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Regular.otf') format('opentype');
+ font-weight: 400;
+}
+
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Medium.otf') format('opentype');
+ font-weight: 500;
+}
+
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Bold.otf') format('opentype');
+ font-weight: 700;
+}
+
+@font-face {
+ font-family: 'Now';
+ src: url('/assets/fonts/now/Now-Black.otf') format('opentype');
+ font-weight: 900;
+}
+
+.club-scroll {
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ overflow: hidden;
+}
+
+.club-scroll .marquee {
+ white-space: nowrap;
+ animation: marquee 16s linear infinite;
+ max-width: none;
+
+ display: flex;
+ flex-direction: row;
+ gap: 1em;
+ padding-right: 1em;
+ align-items: center;
+}
+
+.club-scroll.reverse .marquee {
+ animation: marquee 16s linear infinite reverse;
+}
+
+.club-scroll .marquee h1 {
+ font-family: 'Now';
+ font-size: 2.5em;
+ margin: 0;
+ color: #828282;
+}
+
+.club-scroll .marquee p {
+ font-weight: 300;
+ font-size: 1.5em;
+ margin: 0;
+ color: #828282;
+}
+
+@keyframes marquee {
+ 0% {
+ transform: translate(0, 0);
+ }
+ 100% {
+ transform: translate(-100%, 0);
+ }
+}
diff --git a/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.html b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.html
new file mode 100644
index 0000000..128a50f
--- /dev/null
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.html
@@ -0,0 +1,289 @@
+
+
+
+
+
Scarlet Showcase
+
+
+
With high hopes we race toward the finish line
+
+
+
{{getSemesterString()}}
+
+
+
+
RUSA Allocations Board, paid for by student fees.
+ Event sponsored by Creation of Games Society, a
+ Rutgers Univerrsity Student Organization
+
+
+
+
+
+
+
+
+
+
+
What is Scarlet Showcase?
+
Scarlet Showcase is a showcase of the creative-work from creative-oriented clubs at Rutgers! Creation of
+ Games
+ Society (COGS), Animation Club (AC), Digital Art Club (DAC), Voice Acting Network and Collective of
+ Entertainers
+ (VANCE), and Rutgers
+ University Club for Video Game Music (RUCVGM), are coming together to showcase member projects and run fun
+ activities!.
Come try
+ out
+ video
+ games from COGS, listen to music made by RUCVGM, voice act in a mini recording booth ran by VANCE, see art
+ made
+ by Digital Art Club members, and view the rough-cut of Animation Club's upcoming animated short-film! See the
+ Itinerary below for a full list of activities.
+
+
+
+
Dec 8th, 5 - 8 PM Livingston Hall
+
+ Scarlet Showcase will be hosted inside Livingston Hall, which is in the Livingston Student
+ Center. The event will run from 5 pm to 8 pm. A Google Map view of the location is shown for your
+ convenience.
+
+
RSVP for the event on this event's GetInvolved page, and join the COGS discord for more
+ information!
+
+
+
📃 Event RSVP
+
Discord
+
+
+
+
+
+
+
Itinerary
+
+
+ 5:00 PM
+
+
Showcase + Activities
+
In the first part of the event, clubs will showcase their projects and host various activities. If you
+ participate in 5+ activities, you're eligible for a secret raffle prize! Here's
+ a list of all the activities and showcases:
+
+
+ COGS
+
+
+ -
+ Demoing COGS member semesterly video game projects
+
+ -
+ COGS speedrun competition
+
+ -
+ A speedrun competition will be held for a COGS-made video game. Try to complete the game as fast
+ as possible and place in the top 3 on the leaderboard!
+
+ -
+ Top 3 fastest times will win free stickers and candy.
+
+ -
+ 1st place will win an official 7 inch Among Us plushie
+
+
+
+ -
+ Merch
+
+ -
+ Buy video game themed merchnadise to help support COGS!
+
+
+
+
+
+
+
+ RUCVGM
+
+
+ -
+ Showcasing member performances and projects
+
+ -
+ Guess the video game music quiz
+
+
+
+
+
+ VANCE
+
+
+ -
+ Showcase of VANCE projects
+
+ -
+ Live script reading and dubbing
+
+ - Spin a giant spinner to select a random short voice-acting script, and deliver your best take
+ into the mic!
+
+
+ -
+ Technical introduction to voice acting equipment and software
+
+
+
+
+
+ Animation Club
+
+
+ -
+ Premiere of a rough cut/trailer for their annual animated short-film
+
+ -
+ Animation activity
+
+ Learn how to use animation software and make a basic animation!
+
+
+ -
+ Dollar Doodles
+
+ -
+ Comission Animation Club members to draw a sketch of anything for one dollar!
+
+
+
+
+
+
+
+ Digital Art Club
+
+
+ -
+ Showcase of member artworks
+
+ -
+ Live digital art software demo
+
+ Learn how to use digital art software and digital art tablets!
+
+
+ -
+ Merch
+
+ Buy merchnadise from Digital Art Club artists!
+
+
+
+
+
+
+
+ 7:00 PM
+
+
Awards Ceremony
+
A formal awards ceremony will be held where clubs will give out awards to their members in various
+ categories. Two awards from each club will be presented as a physical trophy. The award trophies are
+ generously
+ provided
+ by RUMakers.
+ Attendees
+ can vote on a few
+ community awards, so be sure to vote on your
+ favorite club projects!
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.spec.ts b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.spec.ts
new file mode 100644
index 0000000..fba2a90
--- /dev/null
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ScarletShowcasePageComponent } from './scarlet-showcase-page.component';
+
+describe('ScarletShowcaseComponent', () => {
+ let component: ScarletShowcasePageComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ScarletShowcasePageComponent],
+ }).compileComponents();
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(ScarletShowcasePageComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.ts b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.ts
similarity index 53%
rename from src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.ts
rename to src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.ts
index 9f0459d..8f6bfa1 100644
--- a/src/app/pages/global-game-jam/global-game-jam/global-game-jam-page.component.ts
+++ b/src/app/pages/scarlet-showcase/scarlet-showcase/scarlet-showcase-page.component.ts
@@ -5,29 +5,27 @@ import { SettingsService } from '@src/_settings';
declare var FlipDown: any;
@Component({
- selector: 'app-global-game-jam-page',
- templateUrl: './global-game-jam-page.component.html',
- styleUrls: ['./global-game-jam-page.component.css'],
+ selector: 'app-scarlet-showcase-page',
+ templateUrl: './scarlet-showcase-page.component.html',
+ styleUrls: ['./scarlet-showcase-page.component.css'],
host: {
class: 'page',
},
})
-export class GlobalGameJamPageComponent implements AfterViewInit {
- startDate: string = 'Feb 3 5:00 pm';
+export class ScarletShowcasePageComponent implements AfterViewInit {
+ startDate: string = 'Dec 8 5:00 pm';
eventActive: boolean = false;
- signupLink: string = 'https://docs.google.com/forms/d/e/1FAIpQLSdKO4CJxCXNtefgiYBx07Fq03feDFc897z6lLGrEi7wttPRLA/viewform';
- siteLink: string = 'https://globalgamejam.org/2023/jam-sites/rutgers-new-brunswick-creation-games-society';
+ eventPage: string = 'https://rutgers.campuslabs.com/engage/event/10744395';
constructor(public breakpointManager: BreakpointManagerService, public settings: SettingsService) {}
getSemesterString = getSemesterString;
-
+
ngAfterViewInit(): void {
if (!this.eventActive) {
- var finalDateSeconds =
- new Date(this.startDate + ', ' + new Date().getFullYear() + ' EST').getTime() / 1000;
+ var finalDateSeconds = new Date(this.startDate + ', ' + new Date().getFullYear() + ' EST').getTime() / 1000;
var flipdown = new FlipDown(finalDateSeconds, 'sgj-countdown', {
theme: 'dark',
}).start();
diff --git a/src/app/services/breakpoint-manager.service.ts b/src/app/services/breakpoint-manager.service.ts
index 0804308..ef7b5ec 100644
--- a/src/app/services/breakpoint-manager.service.ts
+++ b/src/app/services/breakpoint-manager.service.ts
@@ -15,6 +15,7 @@ export class BreakpointManagerService implements OnDestroy {
return BreakpointsData[BreakpointsData.length - 1].name;
}
+ onBreakpointChanged = new Subject();
private breakpointsMatched: boolean[] = [];
protected onDestroy$ = new Subject();
@@ -25,6 +26,7 @@ export class BreakpointManagerService implements OnDestroy {
.pipe(takeUntil(this.onDestroy$))
.subscribe((state: BreakpointState) => {
this.breakpointsMatched[i] = state.matches;
+ this.onBreakpointChanged.next();
});
}
// Last element is the default and will always be matched.
diff --git a/src/assets/fonts/now/Now-Black.otf b/src/assets/fonts/now/Now-Black.otf
new file mode 100644
index 0000000000000000000000000000000000000000..996babae7fcc62d6afc2aa2ecb0e703d8e9b41ab
GIT binary patch
literal 38144
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
literal 0
HcmV?d00001
diff --git a/src/assets/fonts/now/Now-Bold.otf b/src/assets/fonts/now/Now-Bold.otf
new file mode 100644
index 0000000000000000000000000000000000000000..9cb50042dcaa67e9c86405716def2347ecd1ac05
GIT binary patch
literal 37776
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