diff --git a/apps/info/public/Content/Amey.JPG b/apps/info/public/Content/Amey.JPG new file mode 100644 index 00000000..dbf496bd Binary files /dev/null and b/apps/info/public/Content/Amey.JPG differ diff --git a/apps/info/public/Content/Anushree.JPG b/apps/info/public/Content/Anushree.JPG new file mode 100644 index 00000000..929552a4 Binary files /dev/null and b/apps/info/public/Content/Anushree.JPG differ diff --git a/apps/info/public/Content/Apoorva.JPG b/apps/info/public/Content/Apoorva.JPG new file mode 100644 index 00000000..e9af37a3 Binary files /dev/null and b/apps/info/public/Content/Apoorva.JPG differ diff --git a/apps/info/public/Content/Carol.JPG b/apps/info/public/Content/Carol.JPG new file mode 100644 index 00000000..ed2a548f Binary files /dev/null and b/apps/info/public/Content/Carol.JPG differ diff --git a/apps/info/public/Content/Content Funny.JPG b/apps/info/public/Content/Content Funny.JPG new file mode 100644 index 00000000..e1543906 Binary files /dev/null and b/apps/info/public/Content/Content Funny.JPG differ diff --git a/apps/info/public/Content/Full.JPG b/apps/info/public/Content/Full.JPG new file mode 100644 index 00000000..3b419d41 Binary files /dev/null and b/apps/info/public/Content/Full.JPG differ diff --git a/apps/info/public/Content/Lucy 2.JPG b/apps/info/public/Content/Lucy 2.JPG new file mode 100644 index 00000000..7c3dfc5d Binary files /dev/null and b/apps/info/public/Content/Lucy 2.JPG differ diff --git a/apps/info/public/Content/Lucy.JPG b/apps/info/public/Content/Lucy.JPG new file mode 100644 index 00000000..e1015374 Binary files /dev/null and b/apps/info/public/Content/Lucy.JPG differ diff --git a/apps/info/public/Content/Maya.JPG b/apps/info/public/Content/Maya.JPG new file mode 100644 index 00000000..35f53329 Binary files /dev/null and b/apps/info/public/Content/Maya.JPG differ diff --git a/apps/info/public/Content/Rini.JPG b/apps/info/public/Content/Rini.JPG new file mode 100644 index 00000000..1677f267 Binary files /dev/null and b/apps/info/public/Content/Rini.JPG differ diff --git a/apps/info/public/Content/Rohan K.JPG b/apps/info/public/Content/Rohan K.JPG new file mode 100644 index 00000000..655a115f Binary files /dev/null and b/apps/info/public/Content/Rohan K.JPG differ diff --git a/apps/info/public/Content/Rohan N.JPG b/apps/info/public/Content/Rohan N.JPG new file mode 100644 index 00000000..3d315fa3 Binary files /dev/null and b/apps/info/public/Content/Rohan N.JPG differ diff --git a/apps/info/public/Content/Samarth.JPG b/apps/info/public/Content/Samarth.JPG new file mode 100644 index 00000000..f7278c66 Binary files /dev/null and b/apps/info/public/Content/Samarth.JPG differ diff --git a/apps/info/public/Corporate/Adit.JPG b/apps/info/public/Corporate/Adit.JPG new file mode 100644 index 00000000..89d038cc Binary files /dev/null and b/apps/info/public/Corporate/Adit.JPG differ diff --git a/apps/info/public/Corporate/Corporate Funny.JPG b/apps/info/public/Corporate/Corporate Funny.JPG new file mode 100644 index 00000000..e6f7f85e Binary files /dev/null and b/apps/info/public/Corporate/Corporate Funny.JPG differ diff --git a/apps/info/public/Corporate/Full.JPG b/apps/info/public/Corporate/Full.JPG new file mode 100644 index 00000000..3682c26d Binary files /dev/null and b/apps/info/public/Corporate/Full.JPG differ diff --git a/apps/info/public/Corporate/Kaavya.JPG b/apps/info/public/Corporate/Kaavya.JPG new file mode 100644 index 00000000..8a10ed6f Binary files /dev/null and b/apps/info/public/Corporate/Kaavya.JPG differ diff --git a/apps/info/public/Corporate/Sarah.JPG b/apps/info/public/Corporate/Sarah.JPG new file mode 100644 index 00000000..9d568cc4 Binary files /dev/null and b/apps/info/public/Corporate/Sarah.JPG differ diff --git a/apps/info/public/Corporate/Shahanaa.JPG b/apps/info/public/Corporate/Shahanaa.JPG new file mode 100644 index 00000000..b3fd1bbc Binary files /dev/null and b/apps/info/public/Corporate/Shahanaa.JPG differ diff --git a/apps/info/public/Corporate/Shreya G.JPG b/apps/info/public/Corporate/Shreya G.JPG new file mode 100644 index 00000000..1fc0dd3f Binary files /dev/null and b/apps/info/public/Corporate/Shreya G.JPG differ diff --git a/apps/info/public/Corporate/Shreya J.JPG b/apps/info/public/Corporate/Shreya J.JPG new file mode 100644 index 00000000..65e06ad2 Binary files /dev/null and b/apps/info/public/Corporate/Shreya J.JPG differ diff --git a/apps/info/public/DIRECTORS.JPG b/apps/info/public/DIRECTORS.JPG new file mode 100644 index 00000000..dabe5723 Binary files /dev/null and b/apps/info/public/DIRECTORS.JPG differ diff --git a/apps/info/public/Design/Aashna.JPG b/apps/info/public/Design/Aashna.JPG new file mode 100644 index 00000000..0e8f1d4f Binary files /dev/null and b/apps/info/public/Design/Aashna.JPG differ diff --git a/apps/info/public/Design/Cindy 2.JPG b/apps/info/public/Design/Cindy 2.JPG new file mode 100644 index 00000000..446f5462 Binary files /dev/null and b/apps/info/public/Design/Cindy 2.JPG differ diff --git a/apps/info/public/Design/Cindy.JPG b/apps/info/public/Design/Cindy.JPG new file mode 100644 index 00000000..73cdf15d Binary files /dev/null and b/apps/info/public/Design/Cindy.JPG differ diff --git a/apps/info/public/Design/Design Funny 2.JPG b/apps/info/public/Design/Design Funny 2.JPG new file mode 100644 index 00000000..4444775e Binary files /dev/null and b/apps/info/public/Design/Design Funny 2.JPG differ diff --git a/apps/info/public/Design/Design Funny.JPG b/apps/info/public/Design/Design Funny.JPG new file mode 100644 index 00000000..a6fe1a0d Binary files /dev/null and b/apps/info/public/Design/Design Funny.JPG differ diff --git a/apps/info/public/Design/Full.JPG b/apps/info/public/Design/Full.JPG new file mode 100644 index 00000000..15ec6d05 Binary files /dev/null and b/apps/info/public/Design/Full.JPG differ diff --git a/apps/info/public/Design/Hua.JPG b/apps/info/public/Design/Hua.JPG new file mode 100644 index 00000000..415ce30c Binary files /dev/null and b/apps/info/public/Design/Hua.JPG differ diff --git a/apps/info/public/Design/Leqi.JPG b/apps/info/public/Design/Leqi.JPG new file mode 100644 index 00000000..df7fccbb Binary files /dev/null and b/apps/info/public/Design/Leqi.JPG differ diff --git a/apps/info/public/Design/Lily.JPG b/apps/info/public/Design/Lily.JPG new file mode 100644 index 00000000..868f0a7e Binary files /dev/null and b/apps/info/public/Design/Lily.JPG differ diff --git a/apps/info/public/Design/Pari.JPG b/apps/info/public/Design/Pari.JPG new file mode 100644 index 00000000..5cf08351 Binary files /dev/null and b/apps/info/public/Design/Pari.JPG differ diff --git a/apps/info/public/Design/Ritsika 2.JPG b/apps/info/public/Design/Ritsika 2.JPG new file mode 100644 index 00000000..943b1a1a Binary files /dev/null and b/apps/info/public/Design/Ritsika 2.JPG differ diff --git a/apps/info/public/Design/Ritsika.JPG b/apps/info/public/Design/Ritsika.JPG new file mode 100644 index 00000000..e4bd534f Binary files /dev/null and b/apps/info/public/Design/Ritsika.JPG differ diff --git a/apps/info/public/Design/Sada.JPG b/apps/info/public/Design/Sada.JPG new file mode 100644 index 00000000..5100bdcd Binary files /dev/null and b/apps/info/public/Design/Sada.JPG differ diff --git a/apps/info/public/Dev/Aditya.JPG b/apps/info/public/Dev/Aditya.JPG new file mode 100644 index 00000000..eb62a385 Binary files /dev/null and b/apps/info/public/Dev/Aditya.JPG differ diff --git a/apps/info/public/Dev/Aryan.JPG b/apps/info/public/Dev/Aryan.JPG new file mode 100644 index 00000000..06158166 Binary files /dev/null and b/apps/info/public/Dev/Aryan.JPG differ diff --git a/apps/info/public/Dev/Dev.jpeg b/apps/info/public/Dev/Dev.jpeg new file mode 100644 index 00000000..615f36af Binary files /dev/null and b/apps/info/public/Dev/Dev.jpeg differ diff --git a/apps/info/public/Dev/Full.JPG b/apps/info/public/Dev/Full.JPG new file mode 100644 index 00000000..42431148 Binary files /dev/null and b/apps/info/public/Dev/Full.JPG differ diff --git a/apps/info/public/Dev/Jacob.JPG b/apps/info/public/Dev/Jacob.JPG new file mode 100644 index 00000000..499b38bd Binary files /dev/null and b/apps/info/public/Dev/Jacob.JPG differ diff --git a/apps/info/public/Dev/Miguel.JPG b/apps/info/public/Dev/Miguel.JPG new file mode 100644 index 00000000..bc3961c8 Binary files /dev/null and b/apps/info/public/Dev/Miguel.JPG differ diff --git a/apps/info/public/Dev/Nathan.JPG b/apps/info/public/Dev/Nathan.JPG new file mode 100644 index 00000000..3f8a4277 Binary files /dev/null and b/apps/info/public/Dev/Nathan.JPG differ diff --git a/apps/info/public/Dev/Quinten 2.JPG b/apps/info/public/Dev/Quinten 2.JPG new file mode 100644 index 00000000..42ab31b2 Binary files /dev/null and b/apps/info/public/Dev/Quinten 2.JPG differ diff --git a/apps/info/public/Dev/Ritam.JPG b/apps/info/public/Dev/Ritam.JPG new file mode 100644 index 00000000..bd72d4d7 Binary files /dev/null and b/apps/info/public/Dev/Ritam.JPG differ diff --git a/apps/info/public/Dev/Ronit.JPG b/apps/info/public/Dev/Ronit.JPG new file mode 100644 index 00000000..d13b1448 Binary files /dev/null and b/apps/info/public/Dev/Ronit.JPG differ diff --git a/apps/info/public/Dev/Siri.png b/apps/info/public/Dev/Siri.png new file mode 100644 index 00000000..8a2d1d2b Binary files /dev/null and b/apps/info/public/Dev/Siri.png differ diff --git a/apps/info/public/Dev/Timothy.JPG b/apps/info/public/Dev/Timothy.JPG new file mode 100644 index 00000000..b1363e87 Binary files /dev/null and b/apps/info/public/Dev/Timothy.JPG differ diff --git a/apps/info/public/Dev/Vani.JPG b/apps/info/public/Dev/Vani.JPG new file mode 100644 index 00000000..3427ea23 Binary files /dev/null and b/apps/info/public/Dev/Vani.JPG differ diff --git a/apps/info/public/Directors/Cole.JPG b/apps/info/public/Directors/Cole.JPG new file mode 100644 index 00000000..e76b5e75 Binary files /dev/null and b/apps/info/public/Directors/Cole.JPG differ diff --git a/apps/info/public/Directors/Shreenija.JPG b/apps/info/public/Directors/Shreenija.JPG new file mode 100644 index 00000000..1012274f Binary files /dev/null and b/apps/info/public/Directors/Shreenija.JPG differ diff --git a/apps/info/public/Marketing/Angelina 2.JPG b/apps/info/public/Marketing/Angelina 2.JPG new file mode 100644 index 00000000..64f9e2c3 Binary files /dev/null and b/apps/info/public/Marketing/Angelina 2.JPG differ diff --git a/apps/info/public/Marketing/Angelina.JPG b/apps/info/public/Marketing/Angelina.JPG new file mode 100644 index 00000000..e4ba6eac Binary files /dev/null and b/apps/info/public/Marketing/Angelina.JPG differ diff --git a/apps/info/public/Marketing/Atharva.JPG b/apps/info/public/Marketing/Atharva.JPG new file mode 100644 index 00000000..12d90ce8 Binary files /dev/null and b/apps/info/public/Marketing/Atharva.JPG differ diff --git a/apps/info/public/Marketing/Full.JPG b/apps/info/public/Marketing/Full.JPG new file mode 100644 index 00000000..82ac2456 Binary files /dev/null and b/apps/info/public/Marketing/Full.JPG differ diff --git a/apps/info/public/Marketing/Jenica 2.JPG b/apps/info/public/Marketing/Jenica 2.JPG new file mode 100644 index 00000000..5d59ba6d Binary files /dev/null and b/apps/info/public/Marketing/Jenica 2.JPG differ diff --git a/apps/info/public/Marketing/Jenica.JPG b/apps/info/public/Marketing/Jenica.JPG new file mode 100644 index 00000000..7323f719 Binary files /dev/null and b/apps/info/public/Marketing/Jenica.JPG differ diff --git a/apps/info/public/Marketing/Mahnoor.JPG b/apps/info/public/Marketing/Mahnoor.JPG new file mode 100644 index 00000000..7014a7c9 Binary files /dev/null and b/apps/info/public/Marketing/Mahnoor.JPG differ diff --git a/apps/info/public/Marketing/Marketing Funny.JPG b/apps/info/public/Marketing/Marketing Funny.JPG new file mode 100644 index 00000000..2c366e86 Binary files /dev/null and b/apps/info/public/Marketing/Marketing Funny.JPG differ diff --git a/apps/info/public/Marketing/Savannah 2.JPG b/apps/info/public/Marketing/Savannah 2.JPG new file mode 100644 index 00000000..fcdbd071 Binary files /dev/null and b/apps/info/public/Marketing/Savannah 2.JPG differ diff --git a/apps/info/public/Marketing/Savannah.JPG b/apps/info/public/Marketing/Savannah.JPG new file mode 100644 index 00000000..1b09e57a Binary files /dev/null and b/apps/info/public/Marketing/Savannah.JPG differ diff --git a/apps/info/public/Marketing/Yash.png b/apps/info/public/Marketing/Yash.png new file mode 100644 index 00000000..619f241c Binary files /dev/null and b/apps/info/public/Marketing/Yash.png differ diff --git a/apps/info/public/Ops/Full.JPG b/apps/info/public/Ops/Full.JPG new file mode 100644 index 00000000..146bfa4d Binary files /dev/null and b/apps/info/public/Ops/Full.JPG differ diff --git a/apps/info/public/Ops/Hazel 2.JPG b/apps/info/public/Ops/Hazel 2.JPG new file mode 100644 index 00000000..d6015ccf Binary files /dev/null and b/apps/info/public/Ops/Hazel 2.JPG differ diff --git a/apps/info/public/Ops/Hazel.JPG b/apps/info/public/Ops/Hazel.JPG new file mode 100644 index 00000000..2b8c7f1b Binary files /dev/null and b/apps/info/public/Ops/Hazel.JPG differ diff --git a/apps/info/public/Ops/Madhav 2.JPG b/apps/info/public/Ops/Madhav 2.JPG new file mode 100644 index 00000000..699fb712 Binary files /dev/null and b/apps/info/public/Ops/Madhav 2.JPG differ diff --git a/apps/info/public/Ops/Madhav 3.JPG b/apps/info/public/Ops/Madhav 3.JPG new file mode 100644 index 00000000..7d2d2b9d Binary files /dev/null and b/apps/info/public/Ops/Madhav 3.JPG differ diff --git a/apps/info/public/Ops/Madhav.JPG b/apps/info/public/Ops/Madhav.JPG new file mode 100644 index 00000000..e0194343 Binary files /dev/null and b/apps/info/public/Ops/Madhav.JPG differ diff --git a/apps/info/public/Ops/Ops Funny 1.JPG b/apps/info/public/Ops/Ops Funny 1.JPG new file mode 100644 index 00000000..1d063523 Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 1.JPG differ diff --git a/apps/info/public/Ops/Ops Funny 2.JPG b/apps/info/public/Ops/Ops Funny 2.JPG new file mode 100644 index 00000000..5f2e05f3 Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 2.JPG differ diff --git a/apps/info/public/Ops/Ops Funny 3.JPG b/apps/info/public/Ops/Ops Funny 3.JPG new file mode 100644 index 00000000..b5661c00 Binary files /dev/null and b/apps/info/public/Ops/Ops Funny 3.JPG differ diff --git a/apps/info/public/Ops/Ranjana.JPG b/apps/info/public/Ops/Ranjana.JPG new file mode 100644 index 00000000..d1ec9cf1 Binary files /dev/null and b/apps/info/public/Ops/Ranjana.JPG differ diff --git a/apps/info/public/Ops/Rishit 1.JPG b/apps/info/public/Ops/Rishit 1.JPG new file mode 100644 index 00000000..94d17c0b Binary files /dev/null and b/apps/info/public/Ops/Rishit 1.JPG differ diff --git a/apps/info/public/Ops/Rishit 2.JPG b/apps/info/public/Ops/Rishit 2.JPG new file mode 100644 index 00000000..a40f756a Binary files /dev/null and b/apps/info/public/Ops/Rishit 2.JPG differ diff --git a/apps/info/public/Ops/Rishit 3.JPG b/apps/info/public/Ops/Rishit 3.JPG new file mode 100644 index 00000000..8cafe791 Binary files /dev/null and b/apps/info/public/Ops/Rishit 3.JPG differ diff --git a/apps/info/public/Ops/Vidipta.JPG b/apps/info/public/Ops/Vidipta.JPG new file mode 100644 index 00000000..79c2e690 Binary files /dev/null and b/apps/info/public/Ops/Vidipta.JPG differ diff --git a/apps/info/public/TOP.png b/apps/info/public/TOP.png new file mode 100644 index 00000000..3b07f811 Binary files /dev/null and b/apps/info/public/TOP.png differ diff --git a/apps/info/public/TOP.svg b/apps/info/public/TOP.svg new file mode 100644 index 00000000..f87ce80d --- /dev/null +++ b/apps/info/public/TOP.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/info/public/build_future.svg b/apps/info/public/build_future.svg new file mode 100644 index 00000000..735f22a9 --- /dev/null +++ b/apps/info/public/build_future.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/info/public/card_icon_1.svg b/apps/info/public/card_icon_1.svg new file mode 100644 index 00000000..6beba271 --- /dev/null +++ b/apps/info/public/card_icon_1.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/info/public/card_icon_2.svg b/apps/info/public/card_icon_2.svg new file mode 100644 index 00000000..5f6a2135 --- /dev/null +++ b/apps/info/public/card_icon_2.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/card_icon_3.svg b/apps/info/public/card_icon_3.svg new file mode 100644 index 00000000..9be2fa6a --- /dev/null +++ b/apps/info/public/card_icon_3.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/exhibit_background.png b/apps/info/public/exhibit_background.png new file mode 100644 index 00000000..c677316c Binary files /dev/null and b/apps/info/public/exhibit_background.png differ diff --git a/apps/info/public/exhibit_background.svg b/apps/info/public/exhibit_background.svg new file mode 100644 index 00000000..d72c6c70 --- /dev/null +++ b/apps/info/public/exhibit_background.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/info/public/footer/1.svg b/apps/info/public/footer/1.svg new file mode 100644 index 00000000..16f95adf --- /dev/null +++ b/apps/info/public/footer/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/info/public/footer/2.svg b/apps/info/public/footer/2.svg new file mode 100644 index 00000000..9ef61ab2 --- /dev/null +++ b/apps/info/public/footer/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/info/public/footer/CONTACT.svg b/apps/info/public/footer/CONTACT.svg new file mode 100644 index 00000000..aa4b3763 --- /dev/null +++ b/apps/info/public/footer/CONTACT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/info/public/icon_building.svg b/apps/info/public/icon_building.svg new file mode 100644 index 00000000..126b7dfa --- /dev/null +++ b/apps/info/public/icon_building.svg @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/icon_calendar.svg b/apps/info/public/icon_calendar.svg new file mode 100644 index 00000000..332883d4 --- /dev/null +++ b/apps/info/public/icon_calendar.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/icon_location.svg b/apps/info/public/icon_location.svg new file mode 100644 index 00000000..5496c990 --- /dev/null +++ b/apps/info/public/icon_location.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/icon_person.svg b/apps/info/public/icon_person.svg new file mode 100644 index 00000000..6d3695b9 --- /dev/null +++ b/apps/info/public/icon_person.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/icon_speaker.svg b/apps/info/public/icon_speaker.svg new file mode 100644 index 00000000..3b0bb966 --- /dev/null +++ b/apps/info/public/icon_speaker.svg @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/instagram_logo.png b/apps/info/public/instagram_logo.png new file mode 100644 index 00000000..1ba06941 Binary files /dev/null and b/apps/info/public/instagram_logo.png differ diff --git a/apps/info/public/logo_2018.svg b/apps/info/public/logo_2018.svg new file mode 100644 index 00000000..5f4e7179 --- /dev/null +++ b/apps/info/public/logo_2018.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +RP 2017 logo + diff --git a/apps/info/public/logo_2019.svg b/apps/info/public/logo_2019.svg new file mode 100644 index 00000000..18019b26 --- /dev/null +++ b/apps/info/public/logo_2019.svg @@ -0,0 +1 @@ +Asset 130 \ No newline at end of file diff --git a/apps/info/public/logo_2020.svg b/apps/info/public/logo_2020.svg new file mode 100644 index 00000000..659fa97c --- /dev/null +++ b/apps/info/public/logo_2020.svg @@ -0,0 +1 @@ +Asset 130 \ No newline at end of file diff --git a/apps/info/public/logo_2021.svg b/apps/info/public/logo_2021.svg new file mode 100644 index 00000000..d7d5f090 --- /dev/null +++ b/apps/info/public/logo_2021.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/info/public/logo_2022.svg b/apps/info/public/logo_2022.svg new file mode 100644 index 00000000..d54cd07e --- /dev/null +++ b/apps/info/public/logo_2022.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/info/public/logo_2023.svg b/apps/info/public/logo_2023.svg new file mode 100644 index 00000000..5fd6df68 --- /dev/null +++ b/apps/info/public/logo_2023.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/info/public/logo_2024.svg b/apps/info/public/logo_2024.svg new file mode 100644 index 00000000..2236be55 --- /dev/null +++ b/apps/info/public/logo_2024.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/info/public/logo_2025.svg b/apps/info/public/logo_2025.svg new file mode 100644 index 00000000..c9ebca2f --- /dev/null +++ b/apps/info/public/logo_2025.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/info/public/rp2024shine_logo.png b/apps/info/public/rp2024shine_logo.png new file mode 100644 index 00000000..5287b43a Binary files /dev/null and b/apps/info/public/rp2024shine_logo.png differ diff --git a/apps/info/public/site.mov b/apps/info/public/site.mov new file mode 100644 index 00000000..8fd97955 Binary files /dev/null and b/apps/info/public/site.mov differ diff --git a/apps/info/public/site.png b/apps/info/public/site.png new file mode 100644 index 00000000..49037f1b Binary files /dev/null and b/apps/info/public/site.png differ diff --git a/apps/info/public/socials/email_red.svg b/apps/info/public/socials/email_red.svg new file mode 100644 index 00000000..f9cfade2 --- /dev/null +++ b/apps/info/public/socials/email_red.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/socials/facebook_red.svg b/apps/info/public/socials/facebook_red.svg new file mode 100644 index 00000000..582b0596 --- /dev/null +++ b/apps/info/public/socials/facebook_red.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/info/public/socials/github_red.svg b/apps/info/public/socials/github_red.svg new file mode 100644 index 00000000..6faf309e --- /dev/null +++ b/apps/info/public/socials/github_red.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/socials/instagram_red.svg b/apps/info/public/socials/instagram_red.svg new file mode 100644 index 00000000..55f8be5f --- /dev/null +++ b/apps/info/public/socials/instagram_red.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/socials/linkedin_red.svg b/apps/info/public/socials/linkedin_red.svg new file mode 100644 index 00000000..7c239a58 --- /dev/null +++ b/apps/info/public/socials/linkedin_red.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/info/public/socials/tiktok_red.svg b/apps/info/public/socials/tiktok_red.svg new file mode 100644 index 00000000..07c0a53a --- /dev/null +++ b/apps/info/public/socials/tiktok_red.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/info/public/spotlight.svg b/apps/info/public/spotlight.svg new file mode 100644 index 00000000..83e62ca2 --- /dev/null +++ b/apps/info/public/spotlight.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/info/public/team_bg.png b/apps/info/public/team_bg.png new file mode 100644 index 00000000..3f41fde6 Binary files /dev/null and b/apps/info/public/team_bg.png differ diff --git a/apps/info/public/vite.svg b/apps/info/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/apps/info/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/info/src/App.tsx b/apps/info/src/App.tsx index f22e5c70..f514985e 100644 --- a/apps/info/src/App.tsx +++ b/apps/info/src/App.tsx @@ -1,9 +1,10 @@ // src/App.tsx import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import { Home } from "./routes/Home"; -import { Archive } from "./routes/Archive"; -import { FAQ } from "./routes/FAQ"; +// import { Archive } from "./routes/Archive"; +// import { FAQ } from "./routes/FAQ"; import { Navbar } from "./components/Navbar"; +import TeamPage from "./routes/Team"; function App() { return ( @@ -11,8 +12,9 @@ function App() { } /> - } /> - } /> + {/* } /> */} + {/* } /> */} + } /> ); diff --git a/apps/info/src/assets/react.svg b/apps/info/src/assets/react.svg deleted file mode 100644 index 6c87de9b..00000000 --- a/apps/info/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/info/src/components/AnimatedLogo.tsx b/apps/info/src/components/AnimatedLogo.tsx new file mode 100644 index 00000000..0106991d --- /dev/null +++ b/apps/info/src/components/AnimatedLogo.tsx @@ -0,0 +1,182 @@ +import { motion } from "framer-motion"; +import { useCallback, useEffect, useRef, useState } from "react"; + +export const AnimatedLogoConstant = () => { + const changeImageFnRef = useRef<() => void>(() => {}); + const [rotation, setRotation] = useState(0); + const [topOpacity, setTopOpacity] = useState(1); + const [topCurrentImage, setTopCurrentImage] = useState(0); + const [bottomCurrentImage, setBottomCurrentImage] = useState(-1); + const intervalRef = useRef(null); + + const images = [ + "logo_2025.svg", + "logo_2024.svg", + "logo_2023.svg", + "logo_2022.svg", + "logo_2021.svg", + "logo_2020.svg", + "logo_2019.svg", + "logo_2018.svg" + ]; + + // this updates every render so the ref always has a fresh function + changeImageFnRef.current = () => { + // switch to bottom + if (topOpacity) { + setRotation((prev) => prev + 360); + setBottomCurrentImage((prev) => (prev + 2) % images.length); // bottom switches by 2 + setTopOpacity((prev) => (prev + 1) % 2); // top fades out + } + // switch to top + else { + setRotation((prev) => prev + 360); + setTopCurrentImage((prev) => (prev + 2) % images.length); // top switches by 2 + setTopOpacity((prev) => (prev + 1) % 2); // top fades in + } + }; + + const stopRotation = () => { + if (intervalRef.current) { + clearInterval(intervalRef.current); + } + }; + + const startRotation = useCallback(() => { + // if the browser 'focus' event fires twice, just + // stop the extra trigger here + stopRotation(); + intervalRef.current = window.setInterval(() => { + changeImageFnRef.current(); + }, 6000); + }, []); + + useEffect(() => { + console.log("setting window listeners..."); + startRotation(); + window.addEventListener("blur", stopRotation); + window.addEventListener("focus", startRotation); + + return () => { + stopRotation(); + window.removeEventListener("blur", stopRotation); + window.removeEventListener("focus", startRotation); + }; + }, [startRotation]); // happy linter... (and just in case) + + return ( + <> + + + + ); +}; + +export const AnimatedLogoHover = () => { + const [isHovered, setIsHovered] = useState(false); + const changeImageFnRef = useRef<() => void>(() => {}); + const [rotation, setRotation] = useState(0); + const [topOpacity, setTopOpacity] = useState(1); + const [topCurrentImage, setTopCurrentImage] = useState(0); + const [bottomCurrentImage, setBottomCurrentImage] = useState(-1); + const intervalRef = useRef(null); + + const images = [ + "logo_info.svg", + "logo_2025.svg", + "logo_2024.svg", + "logo_2023.svg", + "logo_2022.svg", + "logo_2021.svg", + "logo_2020.svg", + "logo_2019.svg", + "logo_2018.svg" + ]; + + // this updates every render so the ref always has a fresh function + changeImageFnRef.current = () => { + // switch to bottom + if (topOpacity) { + setRotation((prev) => prev + 360); + setBottomCurrentImage((prev) => (prev + 2) % images.length); // bottom switches by 2 + setTopOpacity((prev) => (prev + 1) % 2); // top fades out + } + // switch to top + else { + setRotation((prev) => prev + 360); + setTopCurrentImage((prev) => (prev + 2) % images.length); // top switches by 2 + setTopOpacity((prev) => (prev + 1) % 2); // top fades in + } + }; + + // runs on hover on/off - either enabling or disabling the rotation interval + useEffect(() => { + if (isHovered) { + changeImageFnRef.current(); + intervalRef.current = window.setInterval(() => { + changeImageFnRef.current(); + }, 2000); + } else { + if (intervalRef.current) { + clearInterval(intervalRef.current); + } + } + // every time isHovered becomes false, useEffect runs here, + // hitting the else statement and killing the active interval. + + return () => { + if (intervalRef.current) { + clearInterval(intervalRef.current); + } + }; + }, [isHovered]); + + return ( + <> + setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)} + animate={{ rotate: rotation, opacity: topOpacity }} + transition={{ duration: 0.5, ease: "easeInOut" }} + width="100%" + height="100%" + style={{ + zIndex: 2, + position: "absolute" + }} + src={images[topCurrentImage]} + /> + + + ); +}; diff --git a/apps/info/src/components/AnimatedPillar.tsx b/apps/info/src/components/AnimatedPillar.tsx new file mode 100644 index 00000000..9b8b1010 --- /dev/null +++ b/apps/info/src/components/AnimatedPillar.tsx @@ -0,0 +1,88 @@ +import { Box } from "@chakra-ui/react"; +import { motion, useInView } from "framer-motion"; +import { useRef } from "react"; + +const MotionBox = motion(Box); + +type AnimatedCounterProps = { + // icon?: string; + baseHeight: number; + heightDelta: number; + time: number; + children: React.ReactNode; +}; + +const AnimatedPillar: React.FC = ({ + baseHeight, + heightDelta, + time, + children +}) => { + const viewMarkerRef = useRef(null); + const isInView = useInView(viewMarkerRef); + + return ( + + + {/* pillar */} + + {children} + + + + + + + + + ); +}; + +export default AnimatedPillar; diff --git a/apps/info/src/components/AnimatedPillarsSection.tsx b/apps/info/src/components/AnimatedPillarsSection.tsx new file mode 100644 index 00000000..1aeb4103 --- /dev/null +++ b/apps/info/src/components/AnimatedPillarsSection.tsx @@ -0,0 +1,146 @@ +import { Box, VStack, Image, Flex, Container } from "@chakra-ui/react"; +import { motion, useScroll, useTransform } from "framer-motion"; +import { createPortal } from "react-dom"; +import { useRef } from "react"; +import AnimatedPillar from "./AnimatedPillar"; + +interface AnimatedPillarsSectionProps { + icons: string[]; +} + +const MotionBox = motion(Box); +const MotionContainer = motion(Container); +const spotlightHeight = "975px"; + +export const AnimatedPillarsSection: React.FC = ({ + icons +}) => { + const containerRef = useRef(null); + + const { scrollY } = useScroll(); + + const offset = 2000; // Increased from 950 to account for Header + ExhibitSection height + + const shadowOpacity = useTransform( + scrollY, + [-350 + offset, -60 + offset, 350 + offset, 650 + offset], + [0, 0.35, 0.35, 0] + ); + + const heightDiff = useTransform( + scrollY, + [-250 + offset, 700 + offset], + [200, -750] + ); + + const translateY = useTransform(heightDiff, (h) => `translateY(${h}px)`); + + return ( + + {/* portal */} + {createPortal( + + + + + {Array.from({ length: 5 }).map((_, index) => ( + + + + ))} + + + + , + document.body + )} + + {/* pillars */} + + {icons.map((icon, index) => { + const baseHeights = [-55, 25, -5, 45, -35]; + return ( + + + + + + ); + })} + + + ); +}; diff --git a/apps/info/src/components/Carousel.tsx b/apps/info/src/components/Carousel.tsx index 7ae950ad..04c41922 100644 --- a/apps/info/src/components/Carousel.tsx +++ b/apps/info/src/components/Carousel.tsx @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import { Box, Heading, Flex, Image, Text, Button } from "@chakra-ui/react"; +import { Box, Flex, Image, Text, Button } from "@chakra-ui/react"; interface CarouselItem { title: string; @@ -8,9 +8,13 @@ interface CarouselItem { interface CircularCarouselProps { items: CarouselItem[]; + centerItem?: CarouselItem; } -const CircularCarousel: React.FC = ({ items }) => { +const CircularCarousel: React.FC = ({ + items, + centerItem +}) => { const [activeIndex, setActiveIndex] = useState(0); const [isAnimating, setIsAnimating] = useState(false); @@ -67,20 +71,21 @@ const CircularCarousel: React.FC = ({ items }) => { setTimeout(() => setIsAnimating(false), 500); }; - const getItemStyle = (index: number) => { + const getItemStyle = (index: number, isMobile: boolean = false) => { const totalItems = items.length; const angleDegree = 360 / totalItems; const baseAngle = angleDegree * (index - activeIndex); const radians = (baseAngle * Math.PI) / 180; - const horizontalRadius = 300; - const verticalRadius = 180; + // Use fixed values that work well for the responsive design + const horizontalRadius = isMobile ? 180 : 300; + const verticalRadius = isMobile ? 120 : 180; const x = horizontalRadius * Math.sin(radians); const y = verticalRadius * Math.cos(radians); const zIndex = Math.round(50 - y / 10); - const scale = 0.8 + ((y + verticalRadius) / (verticalRadius * 2)) * 0.3; + const scale = 0.7 + ((y + verticalRadius) / (verticalRadius * 2)) * 0.25; const isFrontItem = index === activeIndex; return { @@ -99,84 +104,187 @@ const CircularCarousel: React.FC = ({ items }) => { align="center" position="relative" w="100%" - h="700px" - pt={8} + h={{ base: "600px", md: "700px" }} + pt={{ base: 4, md: 8 }} > - - Meet the Team - - + + {/* Responsive dashed border */} - {items.map((item, index) => ( + {/* Center Image */} + {centerItem && ( handleItemClick(index)} + boxShadow="0 8px 25px rgba(0,0,0,0.3)" + zIndex={100} + border="3px solid white" > {item.title} - {item.title} + {centerItem.title} - ))} + )} + + {/* Mobile Carousel Items */} + + {items.map((item, index) => ( + handleItemClick(index)} + > + {item.title} + + {item.title} + + + ))} + + + {/* Desktop Carousel Items */} + + {items.map((item, index) => ( + handleItemClick(index)} + > + {item.title} + + {item.title} + + + ))} + - + {/* Navigation Buttons */} + + + + {/* Question Panels */} + + {open && ( + + {faqData.map((faq, index) => ( + + + + + + ))} + + )} + + + ); + } + + // Desktop layout: horizontal folding return ( @@ -68,13 +249,14 @@ const FoldableFAQ: React.FC = () => { align="center" sx={{ perspective: "2400px" }} width="100%" - height={`${PANEL_H}px`} + height="100%" position="relative" > { const side: "left" | "right" | "center" = i < 0 ? "left" : i > 0 ? "right" : "center"; + const faqIndex = + i === -2 ? 0 : i === -1 ? 1 : i === 1 ? 2 : i === 2 ? 3 : 0; + const faq = faqData[faqIndex]; + return ( {(isCentre || open) && ( @@ -102,59 +288,54 @@ const FoldableFAQ: React.FC = () => { height: PANEL_H, position: "absolute", left: leftOf(i + 2), + top: 0, background: isCentre ? bg : altBg, borderRadius: 10, border: `1px solid ${borderColor}`, boxShadow: `0px 5px 15px ${shadow}`, display: "flex", flexDirection: "column", - justifyContent: "center", + justifyContent: isCentre ? "center" : "flex-start", alignItems: "center", - padding: 30, + padding: 40, transformOrigin: i < 0 ? "right center" : "left center", zIndex: 10 - Math.abs(i) }} > {isCentre ? ( <> - + FAQ ) : ( - <> - - - + )} )} diff --git a/apps/info/src/components/Footer.tsx b/apps/info/src/components/Footer.tsx new file mode 100644 index 00000000..cabad123 --- /dev/null +++ b/apps/info/src/components/Footer.tsx @@ -0,0 +1,250 @@ +import { Box, Flex, Image, Text, Link, Icon } from "@chakra-ui/react"; +import { + FaLinkedin, + FaInstagram, + FaGithub, + FaFacebook, + FaEnvelope, + FaTiktok +} from "react-icons/fa"; + +const socialLinks = [ + { + name: "LinkedIn", + url: "https://linkedin.com/company/reflections-projections-uiuc", + icon: FaLinkedin + }, + { + name: "Instagram", + url: "https://instagram.com/uiuc_rp/", + icon: FaInstagram + }, + { + name: "TikTok", + url: "https://www.tiktok.com/@uiuc_rp", + icon: FaTiktok + }, + { + name: "Facebook", + url: "https://facebook.com/acmrp/", + icon: FaFacebook + }, + { + name: "GitHub", + url: "https://github.com/ReflectionsProjections", + icon: FaGithub + }, + { + name: "Email", + url: "mailto:contact@reflectionsprojections.org", + icon: FaEnvelope + } +]; + +export const Footer = () => { + return ( + + + + + + + {socialLinks.map((social) => ( + + + + + + ))} + + + + + {socialLinks.map((social) => ( + + + + + + ))} + + + + + + + {socialLinks.slice(0, 3).map((social) => ( + + + + + + ))} + + + {socialLinks.slice(3, 6).map((social) => ( + + + + + + ))} + + + + + + + + + + + + + + visit reflectionsprojections.org + + + + + + + ); +}; diff --git a/apps/info/src/components/Home/ExhibitSection.tsx b/apps/info/src/components/Home/ExhibitSection.tsx new file mode 100644 index 00000000..c53ca703 --- /dev/null +++ b/apps/info/src/components/Home/ExhibitSection.tsx @@ -0,0 +1,114 @@ +import { Box, Image, Link, Text, useBreakpointValue } from "@chakra-ui/react"; + +export const ExhibitSection = () => { + //const titleFontSize = useBreakpointValue({ base: "2xl", md: "3xl", lg: "4xl" }); + const subtitleFontSize = useBreakpointValue({ base: "xl", md: "2xl" }); + + return ( +
+ + + + + {/* EXHIBIT A */} + RP 2025 + + + Check out our website! + + + + + + {/* + RP 2025 + */} + {/* */} + + + + + + + {/* on click: + - set scroll + - expand section height to 100vh ? + - rapidly drop perspective + - zoom into video -- we probably want a state boolean for this + */} + + + + + + + +
+ ); +}; diff --git a/apps/info/src/components/Home/Header.tsx b/apps/info/src/components/Home/Header.tsx new file mode 100644 index 00000000..45433713 --- /dev/null +++ b/apps/info/src/components/Home/Header.tsx @@ -0,0 +1,171 @@ +import { Box, Flex, Heading, useBreakpointValue } from "@chakra-ui/react"; +import { motion, useScroll, useTransform } from "framer-motion"; +import { useEffect, useState } from "react"; + +const MotionBox = motion(Box); +const MotionFlex = motion(Flex); +const MotionHeading = motion(Heading); + +export const Header = () => { + const { scrollY } = useScroll(); + const [mounted, setMounted] = useState(false); + + // Use responsive font sizes based on screen size + const headingSize = useBreakpointValue({ + base: "md", + sm: "xl", + md: "2xl", + lg: "3xl" + }); + + // Scroll-based animations + const headerY = useTransform(scrollY, [0, 300], [0, -50]); + const headerOpacity = useTransform(scrollY, [0, 200, 400], [1, 0.8, 0.3]); + const dividerScale = useTransform(scrollY, [0, 200], [1, 0.5]); + + useEffect(() => { + setMounted(true); + }, []); + + if (!mounted) { + return ( +
+ + + + REFLECTIONS + + + + PROJECTIONS + + + +
+ ); + } + + return ( +
+ + + + REFLECTIONS + + + + + + PROJECTIONS + + + +
+ ); +}; diff --git a/apps/info/src/components/Home/SponsorSection.tsx b/apps/info/src/components/Home/SponsorSection.tsx new file mode 100644 index 00000000..f5a7e134 --- /dev/null +++ b/apps/info/src/components/Home/SponsorSection.tsx @@ -0,0 +1,246 @@ +import { + Box, + Flex, + Heading, + Text, + Container, + VStack, + Button, + Image +} from "@chakra-ui/react"; + +export const SponsorSection = () => { + return ( + + + + + Interested in Sponsoring? + + + + + Partnering with us offers unique visibility and engagement with our + audience. Elevate your brand while supporting our mission. + + + + {/* Desktop layout: three disjoint stacks (rotated left, straight middle, rotated right) */} + + {/* LEFT GROUP: rotated +15deg (mirror/inward tilt) */} + + {/* OUTER BACKDROP */} + + {/* INNER BACKDROP */} + + {/* CARD */} + + + + + Gain Access to Targeted Marketing Channels + + + Reach your ideal customers with our platform. + + + + + + + + {/* MIDDLE GROUP: straight/flat backdrops + card 2 */} + + {/* OUTER BACKDROP */} + + {/* INNER BACKDROP */} + + {/* CARD */} + + + + + Enhance Brand Recognition and Loyalty + + + Build lasting relationships with our UIUC community. + + + + + + + + {/* RIGHT GROUP: existing rotated -15deg card */} + + {/* OUTER BACKDROP */} + + {/* INNER BACKDROP */} + + {/* CARD */} + + + + + Receive Comprehensive Support and Resources + + + Access tools and guidance to maximize your impact. + + + + + + + + + {/* Mobile layout: keep original stacked three cards within one backdrop */} + + + {/* OUTER BACKDROP (lighter) */} + + {/* INNER BACKDROP (even lighter) */} + + {/* CARD STACK */} + + + + + + Gain Access to Targeted Marketing Channels + + + Reach your ideal customers with our platform. + + + + + + + + + Enhance Brand Recognition and Loyalty + + + Build lasting relationships with our UIUC community. + + + + + + + + + Receive Comprehensive Support and Resources + + + Access tools and guidance to maximize your impact. + + + + + + + + + + + + + ); +}; diff --git a/apps/info/src/components/Home/Stats.tsx b/apps/info/src/components/Home/Stats.tsx new file mode 100644 index 00000000..928638e4 --- /dev/null +++ b/apps/info/src/components/Home/Stats.tsx @@ -0,0 +1,154 @@ +import { Box, Flex, Heading, Text, Container, VStack } from "@chakra-ui/react"; +import AnimatedCounter from "@/components/AnimatedCounter"; +import { AnimatedPillarsSection } from "@/components/AnimatedPillarsSection"; + +export const Stats = () => { + return ( + <> + {/* Full-width background section */} + + + + + + + + + build your future now + + + Reflections | Projections is the Midwest's largest{" "} + student-run conference. Meet industry and academic leaders, + learn new skills, and connect with other students! + + + + + + + + + +
+ + + The Midwest's Largest Student-Run +
+ Tech Conference +
+
+ + + + + + attendees + + + + + + years + + + + + + companies + + + + + + speakers + + + + + + events + + + +
+
+
+ + ); +}; diff --git a/apps/info/src/components/Home/TeamSection.tsx b/apps/info/src/components/Home/TeamSection.tsx new file mode 100644 index 00000000..22270083 --- /dev/null +++ b/apps/info/src/components/Home/TeamSection.tsx @@ -0,0 +1,55 @@ +import { Box, Flex, Heading, Container, Button } from "@chakra-ui/react"; +import CircularCarousel from "../Carousel"; +import { NavLink } from "react-router-dom"; + +export const TeamSection = () => { + const teamCards: { title: string; image: string }[] = [ + { title: "Ops", image: "/Ops/Full.JPG" }, + { title: "Design", image: "/Design/Full.JPG" }, + { title: "Marketing", image: "Marketing/Full.JPG" }, + { title: "Content", image: "/Content/Full.JPG" }, + { title: "Corporate", image: "/Corporate/Full.JPG" }, + { + title: "Dev", + image: "/Dev/Full.JPG" + } + ]; + + return ( + + + + + Meet the Team + + + + + + + + + + + + ); +}; diff --git a/apps/info/src/components/HoverIconLink.tsx b/apps/info/src/components/HoverIconLink.tsx new file mode 100644 index 00000000..deb48184 --- /dev/null +++ b/apps/info/src/components/HoverIconLink.tsx @@ -0,0 +1,103 @@ +import { Box, Image, Link } from "@chakra-ui/react"; +import { motion } from "framer-motion"; +import React from "react"; + +interface HoverIconLinkProps { + link: string; + src: string; + title?: string; +} + +export const HoverIconLink: React.FC = ({ + link, + src, + title +}) => { + // const [isHovered, setIsHovered] = useState(false); + // const animation = useAnimation(); + + // useEffect(() => { + // console.log("animate START") + + // console.log("animate STOP") + + // }, [isHovered, animation]) + + return ( + + + + + setIsHovered(true)} + // onMouseLeave={() => setIsHovered(false)} + style={{ + width: "60px", + height: "60px", + zIndex: "2", + position: "absolute", + top: "0px", + justifyContent: "center", + alignItems: "center", + display: "flex", + transformStyle: "preserve-3d" + }} + > + + + + + + ); +}; diff --git a/apps/info/src/components/Navbar.tsx b/apps/info/src/components/Navbar.tsx index 0f4b3970..e2ca3124 100644 --- a/apps/info/src/components/Navbar.tsx +++ b/apps/info/src/components/Navbar.tsx @@ -1,24 +1,213 @@ -// src/components/Navbar.tsx -import { Box, Flex, HStack, Link, Text } from "@chakra-ui/react"; +import { + Box, + HStack, + Link, + VStack, + useDisclosure, + useBreakpointValue +} from "@chakra-ui/react"; import { NavLink } from "react-router-dom"; +import { AnimatedLogoHover } from "./AnimatedLogo"; +import { motion } from "framer-motion"; +import { useEffect } from "react"; + +const MotionBox = motion(Box); export const Navbar = () => { + const { isOpen, onOpen, onClose } = useDisclosure(); + const isMobile = useBreakpointValue({ base: true, md: false }); + + useEffect(() => { + if (isOpen) { + document.body.style.overflow = "hidden"; + } else { + document.body.style.overflow = ""; + } + + return () => { + document.body.style.overflow = ""; + }; + }, [isOpen]); + + useEffect(() => { + if (!isMobile) { + onClose(); + } + }, [isMobile, onClose]); + + const handleLinkClick = () => { + // Restore body overflow and close menu when clicking a link + document.body.style.overflow = ""; + onClose(); + }; + + const handleToggle = () => (isOpen ? onClose() : onOpen()); + return ( - - - Info.RP - - - Home - - - Archive - - - FAQ - - - + + + + + { + window.scrollTo({ top: 0, behavior: "smooth" }); + }} + > + + + + {/* Desktop Navigation */} + {!isMobile && ( + <> + + + ABOUT + + + TEAM + + + + JOIN US! + + + )} + + {/* Animated Hamburger Menu */} + {isMobile && ( + + {[1, 2, 3].map((i) => ( + + ))} + + )} + + + {/* Mobile Menu Content */} + {isMobile && isOpen && ( + + + ABOUT + + + TEAM + + + JOIN US! + + + )} + + ); }; diff --git a/apps/info/src/customTheme.ts b/apps/info/src/customTheme.ts index a59d0608..7b0e90a9 100644 --- a/apps/info/src/customTheme.ts +++ b/apps/info/src/customTheme.ts @@ -9,6 +9,23 @@ export const customTheme = extendTheme({ config, fonts: { heading: "'Anonymous Pro', monospace", - body: "'Anonymous Pro', monospace" + body: "'Anonymous Pro', monospace", + menu: "'Raleway', monospace" + }, + textStyles: { + menu: { + fontFamily: "menu", + fontSize: "18px", + textColor: "black", + fontWeight: "700", + textUnderlineOffset: "5px" + }, + textBlock: { + fontFamily: "menu", + fontSize: "65px", + textColor: "black", + fontWeight: "700", + textUnderlineOffset: "5px" + } } }); diff --git a/apps/info/src/pages/Home/ExhibitSection.tsx b/apps/info/src/pages/Home/ExhibitSection.tsx deleted file mode 100644 index c091085c..00000000 --- a/apps/info/src/pages/Home/ExhibitSection.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { Box, Text, useBreakpointValue } from "@chakra-ui/react"; - -export const ExhibitSection = () => { - const titleFontSize = useBreakpointValue({ - base: "2xl", - md: "3xl", - lg: "4xl" - }); - const subtitleFontSize = useBreakpointValue({ base: "xl", md: "2xl" }); - - return ( -
- - - - Exhibit A - - - RP 2025 Site - - - - - - - RP 2025 - - - - - - - - - - - -
- ); -}; diff --git a/apps/info/src/pages/Home/Header.tsx b/apps/info/src/pages/Home/Header.tsx deleted file mode 100644 index a6dafc49..00000000 --- a/apps/info/src/pages/Home/Header.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { Box, Flex, Heading, Text, useBreakpointValue } from "@chakra-ui/react"; - -export const Header = () => { - // Use responsive font sizes based on screen size - const headingSize = useBreakpointValue({ - base: "lg", - sm: "xl", - md: "2xl", - lg: "3xl" - }); - - return ( -
- - - Carousel? - - - - - - - REFLECTIONS - - - - - - PROJECTIONS - - - -
- ); -}; diff --git a/apps/info/src/pages/Home/Stats.tsx b/apps/info/src/pages/Home/Stats.tsx deleted file mode 100644 index 6b1d8813..00000000 --- a/apps/info/src/pages/Home/Stats.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { - Box, - Flex, - Heading, - Text, - Container, - VStack, - Icon, - Divider -} from "@chakra-ui/react"; -import { - FaUser, - FaCalendar, - FaBuilding, - FaMicrophone, - FaMapMarkerAlt -} from "react-icons/fa"; -import AnimatedCounter from "../../components/AnimatedCounter"; - -const Stats = () => { - const iconColor = "#d84949"; - - return ( - - - - - - - - - - build your future now - - - RP is a week-long ipsum dolor sit amet, consectetur adipiscing - elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco - laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure - dolor in reprehenderit in voluptate velit esse cillum dolore eu - fugiat nulla pariatur. Excepteur sint occaecat cupidatat non - proident, sunt in culpa qui officia deserunt mollit anim id est - laborum. - - - - - - - Midwest's Largest Student-Run -
- Tech Conference -
-
- - - - - - - attendees - - - - - - - years - - - - - - - companies - - - - - - - speakers - - - - - - - events - - - - - - - - - - - - - - -
-
- ); -}; - -export default Stats; diff --git a/apps/info/src/routes/Archive.tsx b/apps/info/src/routes/Archive.tsx index befb7992..89b228b4 100644 --- a/apps/info/src/routes/Archive.tsx +++ b/apps/info/src/routes/Archive.tsx @@ -53,94 +53,140 @@ export const Archive = () => {
+ - + - + + + - - HALL OF{" "} - - - Previous -
- Speakers{" "} -
-
- - - - - - - - - - - - -
+ + + HALL OF{" "} + + + Previous
Speakers{" "} +
+
+ + + + + + + + + + + + + +
+
@@ -171,6 +217,7 @@ export const Archive = () => {
); }; + const YearContent: React.FC<{ year: number; }> = ({ year }) => { @@ -304,7 +351,7 @@ const SpeakerOval: React.FC<{ - - + boxShadow="0 4px 16px rgba(0,0,0,0.1)" + /> + + {speakerName} - + {companyName} diff --git a/apps/info/src/routes/FAQ.tsx b/apps/info/src/routes/FAQ.tsx index 7792e661..8ad033fd 100644 --- a/apps/info/src/routes/FAQ.tsx +++ b/apps/info/src/routes/FAQ.tsx @@ -1,7 +1,7 @@ import { Box } from "@chakra-ui/react"; import FoldableFAQ from "../components/Foldable"; export const FAQ = () => ( - + ); diff --git a/apps/info/src/routes/Home.tsx b/apps/info/src/routes/Home.tsx index 5e08c035..08f64072 100644 --- a/apps/info/src/routes/Home.tsx +++ b/apps/info/src/routes/Home.tsx @@ -1,14 +1,49 @@ // src/routes/Home.tsx -import { ExhibitSection } from "../pages/Home/ExhibitSection"; -import { Header } from "../pages/Home/Header"; -import Stats from "../pages/Home/Stats"; +import { ExhibitSection } from "@/components/Home/ExhibitSection"; +import { Footer } from "@/components/Footer"; +import { Header } from "@/components/Home/Header"; +import { SponsorSection } from "@/components/Home/SponsorSection"; +import { Stats } from "@/components/Home/Stats"; +import { TeamSection } from "@/components/Home/TeamSection"; + +import { Box, Divider } from "@chakra-ui/react"; +import { useEffect } from "react"; +import { useLocation } from "react-router-dom"; export const Home = () => { + const { hash } = useLocation(); + + useEffect(() => { + const section = document.getElementById(hash.slice(1)); + if (section) { + section.scrollIntoView({ + behavior: "smooth", + block: "start" + }); + } + }, [hash]); + return ( <> -
- - + +
+ + + + + + + + + + + {" "} + + + + +