Compare commits
No commits in common. "main" and "nextjs" have entirely different histories.
3
.eslintrc.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "next/core-web-vitals"
|
||||||
|
}
|
@ -1,11 +0,0 @@
|
|||||||
- name: Build and deploy the website
|
|
||||||
uses: nekiro/ssh-job@main
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.HOST }}
|
|
||||||
password: ${{ secrets.PASSWORD }}
|
|
||||||
user: ${{ secrets.USER }}
|
|
||||||
command: |
|
|
||||||
cd /var/www/ITR-Website
|
|
||||||
git pull
|
|
||||||
npm run build
|
|
||||||
service nginx restart
|
|
37
.gitignore
vendored
@ -1 +1,36 @@
|
|||||||
node_modules
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
.yarn/install-state.gz
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# next.js
|
||||||
|
/.next/
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env*.local
|
||||||
|
|
||||||
|
# vercel
|
||||||
|
.vercel
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
*.tsbuildinfo
|
||||||
|
next-env.d.ts
|
||||||
|
36
README.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
First, run the development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run dev
|
||||||
|
# or
|
||||||
|
yarn dev
|
||||||
|
# or
|
||||||
|
pnpm dev
|
||||||
|
# or
|
||||||
|
bun dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||||
|
|
||||||
|
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||||
|
|
||||||
|
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
||||||
|
|
||||||
|
## Learn More
|
||||||
|
|
||||||
|
To learn more about Next.js, take a look at the following resources:
|
||||||
|
|
||||||
|
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||||
|
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||||
|
|
||||||
|
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
||||||
|
|
||||||
|
## Deploy on Vercel
|
||||||
|
|
||||||
|
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||||
|
|
||||||
|
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"files": {
|
|
||||||
"main.css": "/static/css/main.9f3cb76e.css",
|
|
||||||
"main.js": "/static/js/main.be418809.js",
|
|
||||||
"static/js/787.d8522671.chunk.js": "/static/js/787.d8522671.chunk.js",
|
|
||||||
"static/media/video.mp4": "/static/media/video.5e8658c8eba15fe43d62.mp4",
|
|
||||||
"static/media/fenrir.png": "/static/media/fenrir.c36a65b36a574bef476e.png",
|
|
||||||
"static/media/xperror.png": "/static/media/xperror.cf90407f62ede1a194db.png",
|
|
||||||
"static/media/error.jpg": "/static/media/error.627d84472392a479d18d.jpg",
|
|
||||||
"static/media/LeagueSpartan-ExtraBold.ttf": "/static/media/LeagueSpartan-ExtraBold.313960b9ece03f269643.ttf",
|
|
||||||
"static/media/LeagueSpartan-Medium.ttf": "/static/media/LeagueSpartan-Medium.e855e0cd01fed78be96f.ttf",
|
|
||||||
"static/media/github.svg": "/static/media/github.3367ea62e04dfe3c6fad6a88f90ee1ec.svg",
|
|
||||||
"static/media/facebook.svg": "/static/media/facebook.c524426ad554fc45940d657e219663c9.svg",
|
|
||||||
"static/media/discord.svg": "/static/media/discord.cec9e1a200bfbe88c1d3a787b0ede95f.svg",
|
|
||||||
"static/media/instagram.svg": "/static/media/instagram.eca0902ae08f6ebdf1f23da142658f92.svg",
|
|
||||||
"static/media/twitter.svg": "/static/media/twitter.0ad7f5518b1249fb5ec229971e13807f.svg",
|
|
||||||
"index.html": "/index.html",
|
|
||||||
"main.9f3cb76e.css.map": "/static/css/main.9f3cb76e.css.map",
|
|
||||||
"main.be418809.js.map": "/static/js/main.be418809.js.map",
|
|
||||||
"787.d8522671.chunk.js.map": "/static/js/787.d8522671.chunk.js.map"
|
|
||||||
},
|
|
||||||
"entrypoints": [
|
|
||||||
"static/css/main.9f3cb76e.css",
|
|
||||||
"static/js/main.be418809.js"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>ITR - Home</title><script defer="defer" src="/static/js/main.be418809.js"></script><link href="/static/css/main.9f3cb76e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
|
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"short_name": "ITR",
|
|
||||||
"name": "ITR - Home",
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "standalone",
|
|
||||||
"theme_color": "#000000",
|
|
||||||
"background_color": "#ffffff"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
# https://www.robotstxt.org/robotstxt.html
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
@ -1,2 +0,0 @@
|
|||||||
"use strict";(self.webpackChunkitr=self.webpackChunkitr||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=e.startTime,r.entries.push(e),n(!0)))},o=window.performance&&performance.getEntriesByName&&performance.getEntriesByName("first-contentful-paint")[0],f=o?null:c("paint",a);(o||f)&&(n=m(e,r,t),o&&a(o),s((function(i){r=u("FCP"),n=m(e,r,t),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,n(!0)}))}))})))},h=!1,T=-1,y=function(e,t){h||(g((function(e){T=e.value})),h=!0);var n,i=function(t){T>-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r<a-w){var e={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+r};o.forEach((function(t){t(e)})),o=[]}},b=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTime<a.firstHiddenTime&&(v.value=e.processingStart-e.startTime,v.entries.push(e),n(!0))},d=c("first-input",p);n=m(e,v,t),d&&f((function(){d.takeRecords().map(p),d.disconnect()}),!0),d&&s((function(){var a;v=u("FID"),n=m(e,v,t),o=[],r=-1,i=null,F(addEventListener),a=p,o.push(a),S()}))},k={},P=function(e,t){var n,i=l(),r=u("LCP"),a=function(e){var t=e.startTime;t<i.firstHiddenTime&&(r.value=t,r.entries.push(e),n())},o=c("largest-contentful-paint",a);if(o){n=m(e,r,t);var v=function(){k[r.id]||(o.takeRecords().map(a),o.disconnect(),k[r.id]=!0,n(!0))};["keydown","click"].forEach((function(e){addEventListener(e,v,{once:!0,capture:!0})})),f(v,!0),s((function(i){r=u("LCP"),n=m(e,r,t),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,k[r.id]=!0,n(!0)}))}))}))}},D=function(e){var t,n=u("TTFB");t=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0||n.value>performance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]);
|
|
||||||
//# sourceMappingURL=787.d8522671.chunk.js.map
|
|
@ -1,74 +0,0 @@
|
|||||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @license React
|
|
||||||
* react-dom.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @license React
|
|
||||||
* react-jsx-runtime.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @license React
|
|
||||||
* react.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @license React
|
|
||||||
* scheduler.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @remix-run/router v1.3.2
|
|
||||||
*
|
|
||||||
* Copyright (c) Remix Software Inc.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE.md file in the root directory of this source tree.
|
|
||||||
*
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* React Router DOM v6.8.1
|
|
||||||
*
|
|
||||||
* Copyright (c) Remix Software Inc.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE.md file in the root directory of this source tree.
|
|
||||||
*
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* React Router v6.8.1
|
|
||||||
*
|
|
||||||
* Copyright (c) Remix Software Inc.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE.md file in the root directory of this source tree.
|
|
||||||
*
|
|
||||||
* @license MIT
|
|
||||||
*/
|
|
@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
|
|
||||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path
|
|
||||||
d="M3000 6195 c-309 -68 -597 -158 -877 -275 l-152 -63 -42 -66 c-366
|
|
||||||
-568 -599 -1105 -728 -1681 -79 -351 -109 -599 -118 -962 -6 -252 10 -612 28
|
|
||||||
-634 16 -20 267 -187 403 -269 193 -116 468 -252 674 -334 215 -85 393 -144
|
|
||||||
401 -133 92 127 297 460 304 495 1 4 -34 23 -78 41 -197 81 -406 190 -404 210
|
|
||||||
0 6 27 30 59 54 l59 43 42 -22 c54 -27 269 -109 391 -148 585 -187 1258 -211
|
|
||||||
1855 -66 172 42 362 105 542 179 l133 55 57 -45 c31 -26 57 -49 59 -53 3 -10
|
|
||||||
-268 -148 -394 -201 l-102 -42 66 -117 c68 -122 223 -361 245 -379 10 -8 43
|
|
||||||
-1 127 27 306 103 684 275 935 426 97 59 361 232 407 268 28 22 41 256 35 616
|
|
||||||
-5 318 -17 458 -62 726 -110 658 -364 1301 -747 1891 l-78 121 -137 58 c-311
|
|
||||||
131 -606 221 -947 291 -113 23 -119 23 -132 7 -7 -10 -44 -82 -81 -161 -58
|
|
||||||
-122 -71 -142 -88 -138 -186 44 -849 57 -1130 23 -82 -10 -158 -19 -168 -20
|
|
||||||
-14 -2 -36 33 -96 153 -42 85 -84 156 -92 157 -7 1 -84 -14 -169 -32z m155
|
|
||||||
-1839 c180 -48 338 -216 390 -417 81 -307 -103 -662 -380 -734 -128 -33 -284
|
|
||||||
-11 -385 53 -192 122 -306 375 -271 601 29 193 113 333 260 434 102 70 262 96
|
|
||||||
386 63z m1968 -6 c163 -51 297 -191 359 -375 19 -59 23 -89 22 -195 0 -107 -4
|
|
||||||
-136 -27 -205 -61 -184 -203 -327 -370 -371 -66 -18 -187 -18 -253 0 -179 47
|
|
||||||
-331 215 -384 422 -63 246 35 522 235 659 120 83 280 108 418 65z" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 57 KiB |
@ -1,30 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
|
|
||||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path
|
|
||||||
d="M1077 7210 c-117 -20 -224 -107 -269 -218 l-23 -57 0 -2935 0 -2935
|
|
||||||
24 -60 c33 -81 115 -163 196 -196 l60 -24 1573 -3 1572 -2 0 1242 0 1243 -420
|
|
||||||
-3 -420 -2 0 500 0 500 419 -2 419 -3 5 460 c5 495 9 537 63 715 15 47 27 90
|
|
||||||
28 95 1 6 10 24 19 41 9 17 13 34 10 38 -4 3 -1 6 6 6 7 0 9 5 6 10 -3 6 -1
|
|
||||||
10 5 10 6 0 8 5 5 10 -3 6 -1 10 5 10 6 0 8 5 5 10 -3 6 -1 10 6 10 7 0 10 3
|
|
||||||
6 6 -3 3 3 15 13 27 11 11 17 23 15 27 -3 5 2 11 11 14 8 3 13 10 10 15 -3 5
|
|
||||||
1 12 10 15 9 4 14 9 11 12 -3 3 6 17 21 31 15 13 22 22 15 19 -6 -4 25 30 70
|
|
||||||
76 45 45 86 82 90 82 5 1 14 9 21 18 7 10 16 15 19 11 4 -3 9 2 13 11 3 9 12
|
|
||||||
16 20 16 8 0 14 5 14 10 0 6 7 10 15 10 8 0 15 5 15 11 0 5 4 7 10 4 6 -3 10
|
|
||||||
-1 10 4 0 6 3 10 8 9 4 -1 27 9 52 22 25 13 50 25 55 26 6 1 42 14 80 29 39
|
|
||||||
15 77 28 85 30 8 2 51 10 95 20 149 31 293 37 575 25 146 -6 308 -15 360 -20
|
|
||||||
52 -5 105 -10 118 -10 l22 0 0 -444 0 -444 -342 -4 c-322 -4 -347 -6 -410 -26
|
|
||||||
-37 -13 -74 -29 -82 -38 -8 -8 -18 -14 -21 -14 -3 0 -22 -15 -42 -35 -20 -19
|
|
||||||
-32 -35 -28 -35 5 0 0 -7 -11 -15 -10 -8 -14 -15 -9 -15 6 0 4 -4 -2 -8 -7 -4
|
|
||||||
-14 -17 -16 -27 -1 -11 -5 -25 -9 -30 -18 -30 -28 -201 -28 -498 l0 -332 480
|
|
||||||
3 480 2 0 -24 c0 -13 -27 -232 -60 -487 -33 -255 -60 -470 -60 -477 0 -10 -85
|
|
||||||
-12 -420 -10 l-420 3 0 -1243 0 -1243 853 3 852 3 60 24 c81 33 163 115 196
|
|
||||||
196 l24 60 0 2935 0 2935 -24 60 c-33 81 -115 163 -196 196 l-60 24 -2905 1
|
|
||||||
c-1598 1 -2927 -2 -2953 -6z" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 977 KiB |
@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
|
|
||||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path
|
|
||||||
d="M3692 7010 c-498 -52 -992 -234 -1407 -519 -326 -223 -654 -569 -860
|
|
||||||
-905 -212 -347 -342 -700 -416 -1136 -21 -121 -23 -168 -24 -450 0 -333 10
|
|
||||||
-434 66 -680 204 -883 813 -1644 1634 -2040 207 -100 346 -150 414 -150 77 0
|
|
||||||
106 12 131 52 19 31 20 51 20 317 l0 284 -47 -7 c-289 -41 -487 -21 -653 65
|
|
||||||
-78 40 -105 60 -172 125 -71 70 -115 135 -158 234 -78 179 -186 329 -293 405
|
|
||||||
-34 25 -79 57 -100 72 -108 78 -78 144 66 144 168 0 349 -112 468 -289 107
|
|
||||||
-161 173 -228 275 -280 145 -74 343 -73 552 1 51 18 64 27 68 47 33 161 75
|
|
||||||
255 145 328 23 23 39 45 36 48 -2 3 -36 10 -73 15 -207 29 -445 98 -595 173
|
|
||||||
-381 191 -590 499 -666 982 -24 156 -24 460 0 572 46 210 127 380 258 543 l21
|
|
||||||
27 -20 58 c-35 99 -45 186 -39 343 5 145 30 278 72 378 l15 36 108 -5 c84 -4
|
|
||||||
128 -12 202 -37 116 -39 329 -142 430 -210 41 -28 84 -51 95 -51 11 0 58 9
|
|
||||||
105 21 228 54 562 83 806 68 169 -10 377 -38 504 -68 47 -12 93 -21 103 -21
|
|
||||||
10 0 62 27 116 60 125 77 323 171 431 205 59 19 116 28 187 32 l103 6 15 -36
|
|
||||||
c42 -100 67 -233 72 -378 6 -155 -3 -232 -37 -338 l-21 -62 64 -80 c103 -128
|
|
||||||
175 -290 214 -476 25 -121 24 -442 -1 -598 -54 -340 -167 -577 -360 -763 -139
|
|
||||||
-134 -289 -220 -503 -290 -107 -36 -314 -82 -437 -97 l-48 -7 20 -21 c35 -39
|
|
||||||
90 -133 116 -198 57 -142 59 -173 65 -724 6 -554 5 -539 64 -575 59 -37 89
|
|
||||||
-31 352 70 152 59 422 212 605 344 256 184 523 460 712 736 454 662 625 1520
|
|
||||||
463 2329 -25 124 -30 143 -75 291 -192 628 -628 1209 -1188 1583 -373 249
|
|
||||||
-767 401 -1232 478 -100 17 -182 21 -405 24 -154 2 -317 0 -363 -5z" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1,30 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
|
|
||||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path
|
|
||||||
d="M2465 7213 c-778 -51 -1420 -574 -1619 -1317 -64 -238 -61 -152 -61
|
|
||||||
-1896 0 -1744 -3 -1658 61 -1896 165 -616 641 -1093 1255 -1257 242 -65 153
|
|
||||||
-62 1899 -62 1746 0 1657 -3 1899 62 613 164 1090 641 1254 1254 65 242 62
|
|
||||||
153 62 1899 0 1746 3 1657 -62 1899 -162 606 -634 1083 -1239 1251 -43 12
|
|
||||||
-131 31 -194 43 -113 21 -136 21 -1660 22 -850 1 -1567 0 -1595 -2z m3172
|
|
||||||
-578 c327 -53 627 -246 808 -519 104 -158 161 -303 190 -479 22 -138 22 -3136
|
|
||||||
0 -3274 -83 -510 -488 -915 -998 -998 -138 -22 -3136 -22 -3274 0 -510 83
|
|
||||||
-915 488 -998 998 -22 138 -22 3136 0 3274 82 506 486 913 989 997 126 22
|
|
||||||
3152 22 3283 1z" />
|
|
||||||
<path
|
|
||||||
d="M5620 6121 c-259 -70 -377 -353 -250 -600 74 -146 285 -239 448 -197
|
|
||||||
199 51 322 204 322 401 0 193 -124 350 -317 400 -73 19 -122 18 -203 -4z" />
|
|
||||||
<path
|
|
||||||
d="M3890 5649 c-644 -44 -1193 -449 -1434 -1057 -96 -242 -133 -583 -91
|
|
||||||
-837 61 -365 203 -650 454 -908 421 -433 1028 -598 1618 -441 555 148 1009
|
|
||||||
602 1157 1157 78 293 78 581 0 874 -121 454 -456 854 -884 1055 -259 122 -543
|
|
||||||
176 -820 157z m295 -575 c226 -39 424 -142 586 -304 425 -425 425 -1115 -1
|
|
||||||
-1540 -295 -296 -733 -396 -1129 -259 -566 196 -867 819 -670 1388 173 501
|
|
||||||
692 806 1214 715z" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1,27 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="100%" height="100%" viewBox="0 0 800.000000 800.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
|
|
||||||
<g transform="translate(0.000000,800.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path
|
|
||||||
d="M5170 6790 c-323 -40 -610 -179 -835 -405 -337 -337 -471 -780 -389
|
|
||||||
-1277 l7 -37 -69 5 c-924 74 -1737 421 -2416 1030 -113 101 -279 274 -374 388
|
|
||||||
l-41 49 -45 -94 c-96 -197 -138 -386 -138 -614 0 -352 114 -659 345 -928 60
|
|
||||||
-70 220 -212 252 -224 30 -12 9 -20 -40 -16 -160 13 -339 61 -485 129 l-94 44
|
|
||||||
7 -93 c10 -138 32 -250 70 -364 72 -215 177 -385 340 -549 176 -177 375 -295
|
|
||||||
608 -361 54 -15 92 -30 85 -34 -7 -4 -56 -14 -108 -24 -106 -20 -347 -23 -440
|
|
||||||
-7 -30 6 -57 8 -58 7 -7 -6 36 -112 79 -197 150 -298 412 -542 720 -667 150
|
|
||||||
-61 308 -97 442 -102 31 -1 57 -5 57 -9 0 -9 -136 -106 -245 -175 -127 -80
|
|
||||||
-360 -194 -511 -250 -165 -60 -393 -118 -570 -145 -171 -26 -469 -36 -619 -22
|
|
||||||
-60 6 -111 9 -113 8 -7 -7 233 -142 383 -216 592 -290 1231 -427 1895 -406
|
|
||||||
1013 31 1890 386 2595 1050 616 580 1054 1399 1209 2261 40 220 57 402 62 645
|
|
||||||
l4 225 90 71 c203 161 374 338 531 550 38 51 69 95 69 97 0 3 -35 -10 -78 -28
|
|
||||||
-105 -44 -282 -101 -408 -131 -111 -26 -294 -57 -300 -51 -2 2 29 26 69 53
|
|
||||||
148 100 326 294 413 451 39 69 114 236 114 253 0 5 -55 -20 -123 -55 -212
|
|
||||||
-111 -558 -236 -720 -260 l-47 -7 -73 69 c-180 171 -434 298 -696 347 -104 20
|
|
||||||
-312 28 -411 16z" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 125 KiB |
4
next.config.mjs
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/** @type {import('next').NextConfig} */
|
||||||
|
const nextConfig = {};
|
||||||
|
|
||||||
|
export default nextConfig;
|
43490
package-lock.json
generated
66
package.json
@ -1,53 +1,29 @@
|
|||||||
{
|
{
|
||||||
"name": "itr",
|
"name": "itrweb",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
|
||||||
"@testing-library/jest-dom": "^5.16.5",
|
|
||||||
"@testing-library/react": "^13.4.0",
|
|
||||||
"@testing-library/user-event": "^13.5.0",
|
|
||||||
"ahooks": "^3.7.8",
|
|
||||||
"animate.css": "^4.1.1",
|
|
||||||
"antd": "^5.9.2",
|
|
||||||
"axios": "^1.3.2",
|
|
||||||
"hamburger-react": "^2.5.0",
|
|
||||||
"nodemon": "^2.0.20",
|
|
||||||
"nth-check": "^2.1.1",
|
|
||||||
"react": "^18.2.0",
|
|
||||||
"react-animation-on-scroll": "^5.1.0",
|
|
||||||
"react-dom": "^18.2.0",
|
|
||||||
"react-router-dom": "^6.8.1",
|
|
||||||
"react-scripts": "^5.0.1",
|
|
||||||
"react-scroll": "^1.8.9",
|
|
||||||
"react-spring": "^9.6.1",
|
|
||||||
"react-toastify": "^9.1.1",
|
|
||||||
"sass": "^1.58.0",
|
|
||||||
"unstated-next": "^1.1.0",
|
|
||||||
"uuid": "^9.0.0",
|
|
||||||
"web-vitals": "^2.1.4"
|
|
||||||
},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "react-scripts start",
|
"dev": "next dev",
|
||||||
"build": "react-scripts build",
|
"build": "next build",
|
||||||
"test": "react-scripts test",
|
"start": "next start",
|
||||||
"eject": "react-scripts eject"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"dependencies": {
|
||||||
"extends": [
|
"animate.css": "^4.1.1",
|
||||||
"react-app",
|
"axios": "^1.7.2",
|
||||||
"react-app/jest"
|
"next": "14.2.3",
|
||||||
]
|
"react": "^18",
|
||||||
|
"react-dom": "^18",
|
||||||
|
"react-modal": "^3.16.1",
|
||||||
|
"sass": "^1.77.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"devDependencies": {
|
||||||
"production": [
|
"@types/node": "^20",
|
||||||
">0.2%",
|
"@types/react": "^18",
|
||||||
"not dead",
|
"@types/react-dom": "^18",
|
||||||
"not op_mini all"
|
"@types/react-modal": "^3.16.3",
|
||||||
],
|
"eslint": "^8",
|
||||||
"development": [
|
"eslint-config-next": "14.2.3",
|
||||||
"last 1 chrome version",
|
"typescript": "^5"
|
||||||
"last 1 firefox version",
|
|
||||||
"last 1 safari version"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
@ -1,42 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
<meta name="theme-color" content="#000000" />
|
|
||||||
<meta
|
|
||||||
name="Illinois Tech Robotics"
|
|
||||||
content="Welcome to the Illinois Tech Robotics Club! We are a student-run organization that promotes the field of robotics through hands-on projects, competitions and events. Open to students of all majors and skill levels, we meet every week at 6:30pm CST to work on exciting robotics projects."
|
|
||||||
/>
|
|
||||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
|
||||||
<!--
|
|
||||||
manifest.json provides metadata used when your web app is installed on a
|
|
||||||
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
|
||||||
-->
|
|
||||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
|
||||||
<!--
|
|
||||||
Notice the use of %PUBLIC_URL% in the tags above.
|
|
||||||
It will be replaced with the URL of the `public` folder during the build.
|
|
||||||
Only files inside the `public` folder can be referenced from the HTML.
|
|
||||||
|
|
||||||
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
|
||||||
work correctly both with client-side routing and a non-root public URL.
|
|
||||||
Learn how to configure a non-root public URL by running `npm run build`.
|
|
||||||
-->
|
|
||||||
<title>ITR - Home</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
||||||
<div id="root"></div>
|
|
||||||
<!--
|
|
||||||
This HTML file is a template.
|
|
||||||
If you open it directly in the browser, you will see an empty page.
|
|
||||||
|
|
||||||
You can add webfonts, meta tags, or analytics to this file.
|
|
||||||
The build step will place the bundled scripts into the <body> tag.
|
|
||||||
|
|
||||||
To begin the development, run `npm start` or `yarn start`.
|
|
||||||
To create a production bundle, use `npm run build` or `yarn build`.
|
|
||||||
-->
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"short_name": "ITR",
|
|
||||||
"name": "ITR React App",
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "standalone",
|
|
||||||
"theme_color": "#000000",
|
|
||||||
"background_color": "#ffffff"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
# https://www.robotstxt.org/robotstxt.html
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
24
src/app/global.scss
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
* {
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
width: 100vw;
|
||||||
|
height: auto;
|
||||||
|
min-height: 100vh;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
background-color: #232323;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
24
src/app/layout.tsx
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import Navbar from "@/components/Navbar";
|
||||||
|
import Footer from "@/components/Footer";
|
||||||
|
import "@/app/global.scss";
|
||||||
|
|
||||||
|
export default function Layout({ children }: { children: React.ReactNode }) {
|
||||||
|
return (
|
||||||
|
<div className="container">
|
||||||
|
<Navbar />
|
||||||
|
<main
|
||||||
|
style={{
|
||||||
|
backgroundColor: "red",
|
||||||
|
width: "100%",
|
||||||
|
height: "auto",
|
||||||
|
position: "relative",
|
||||||
|
marginTop: "70px",
|
||||||
|
animation: "fade 0.9s ease-in"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</main>
|
||||||
|
<Footer></Footer>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
@ -1,108 +0,0 @@
|
|||||||
import pic0 from "../pics/gallery/IMG_0796.jpg";
|
|
||||||
import pic1 from "../pics/gallery/IMG_6390.jpg";
|
|
||||||
import pic2 from "../pics/gallery/IMG_6392.jpg";
|
|
||||||
import pic3 from "../pics/gallery/IMG_6393.jpg";
|
|
||||||
import pic4 from "../pics/gallery/IMG_8547.jpg";
|
|
||||||
import pic5 from "../pics/gallery/IMG_8548.jpg";
|
|
||||||
import pic6 from "../pics/gallery/IMG_8549.jpg";
|
|
||||||
import pic7 from "../pics/gallery/JSDC2011.jpg";
|
|
||||||
import pic8 from "../pics/gallery/JSDC2012.jpg";
|
|
||||||
import pic9 from "../pics/gallery/dsc_0001.jpg";
|
|
||||||
import pic10 from "../pics/gallery/dsc_0003.jpg";
|
|
||||||
import pic11 from "../pics/gallery/dsc_0235.jpg";
|
|
||||||
import pic12 from "../pics/gallery/dsc_0238.jpg";
|
|
||||||
import pic13 from "../pics/gallery/dsc_0243.jpg";
|
|
||||||
import pic14 from "../pics/gallery/jsdc2015_001.jpg";
|
|
||||||
import pic15 from "../pics/gallery/jsdc2015_002.jpg";
|
|
||||||
import pic16 from "../pics/gallery/jsdc2015_003.jpg";
|
|
||||||
|
|
||||||
const gallery = {
|
|
||||||
pic: [
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic0,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic2,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic3,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic4,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic5,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic6,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic7,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic8,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic9,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic10,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic11,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic12,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic13,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic14,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic15,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic16,
|
|
||||||
}
|
|
||||||
],
|
|
||||||
};
|
|
||||||
export default gallery;
|
|
@ -1,80 +0,0 @@
|
|||||||
import fenrir from "../pics/fenrir.jpg";
|
|
||||||
import roslund from "../pics/roslund.jpg";
|
|
||||||
import goliath from "../pics/goliath.jpg";
|
|
||||||
import icarus from "../pics/icarus.jpg";
|
|
||||||
import mach2 from "../pics/mach2.jpg";
|
|
||||||
import osiris from "../pics/osiris.jpg";
|
|
||||||
|
|
||||||
import Modulus from "../pics/modulus.jpg";
|
|
||||||
import Roomba from "../pics/roomba.jpg";
|
|
||||||
import MRK from "../pics/fancypants.jpg";
|
|
||||||
import Mongol from "../pics/mongol.jpg";
|
|
||||||
import ma from "../pics/matchlock.jpg";
|
|
||||||
|
|
||||||
const projects = {
|
|
||||||
active: [
|
|
||||||
{
|
|
||||||
title: "⏩ Goliath",
|
|
||||||
content: `Golaith is designed to effectively compete in the annual MRDC. Goliath is based on a relatively simple drive base consisting of a basic square steel frame, 2 large drive wheels powered by 3HP Ampflow Magmotors and two steel ball casters. The simplicity of this design makes Goliath a very durable and reliable robot that is able to easily withstand encounters with other robots and course obstacles. In addition, this robot was designed such that the center of mass is low to the ground and as close as possible to the drive wheels which, when coupled with its powerful drivetrain, allows it to easily climb and descend relatively steep inclines as well as move very slowly and precisely when necessary. Overall, these design features enable Goliath to reliably perform many competition tasks with minimal impact from any obstacles encountered along the way.`,
|
|
||||||
img: goliath,
|
|
||||||
sub: "💪"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "⏩ Modulus",
|
|
||||||
content: `Modulus uses a crab drive propulsion system and is primarily based off the FIRST robotics kit. A crab drive system consists of a 4 wheel base where each wheel can rotate independently without turning the entire body. This can be very useful for competitions where mobility is important such as MRDC.`,
|
|
||||||
img: Modulus,
|
|
||||||
sub: "🧠"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "⏩ Roslund",
|
|
||||||
content: `Roslund is a simple frame robot with mechanum drive. Mechanum wheels have rollers at a 45° angle to the wheel plane, which allows the robot to have omnidirectional movement. Roslund was the winner of MRDC in 2010 and 2011. Roslund was also awarded the best design award by Grant Imahara (from the Mythbusters) a couple years back.`,
|
|
||||||
img: roslund,
|
|
||||||
sub: "✨"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
inactive: [
|
|
||||||
{
|
|
||||||
title: "⏩ Fenrir",
|
|
||||||
content: `Fenrir is a two-wheeled gravity-drive robot. Fenrir's unique design makes it a very fast and agile robot, but also an interesting challenge to control. You can find the current controller code at our github repo: https://github.com/illinoistechrobotics/fenrir.`,
|
|
||||||
img: fenrir,
|
|
||||||
sub: "🔜"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "⏩ C-Force",
|
|
||||||
content: `C-Force is our award winning pumpkin launcher which uses centripetal force to launch pumpkins. A 5HP, 3 phase industrial motor and variable frequency drive is used to spin up the launching arm to approximately 200 RPM and then a second custom designed control system releases the pumpkin on command from a laptop connected via WiFi. There is an optical sensor on the launcher providing input to the controller to signal when the arm is at the proper angle to release the pumpkin. This allows the launcher to consistently throw the pumpkin at the ideal launch angle to acheive the maximum possible distance.`,
|
|
||||||
img: mach2,
|
|
||||||
sub: "🔜"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "⏩ Icarus",
|
|
||||||
content: `Icarus is a quadcopter (a four-rotor helicopter) that is able to lift more weight and is more agile than a standard helicopter. But these benefits come at a cost of stability and require many electronic sensors to maintain stable flight. We are currently working on an RC car to tether to Icarus toact as a manipulator. This way it can pull Icarus close to balls without blowing them away and pick them up. The manipulator will be used during competitions such as MRDC.`,
|
|
||||||
img: icarus,
|
|
||||||
sub: "🪁"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "⏩ Osiris",
|
|
||||||
content: `A full body spinner prototype design with a hexagonal pyramid shell. Used MPU-6050 Gyroscope/Accelerameter package, Yumo/Omron rotary encoders, and I2C communication between Arduino Unos for PID and translational drift control. Required a soldered interface board between Open Source Motor Controller (OSMC) and Arduino Mega consisting of a L7805 voltage regulator, line driver, and optocoupler packages to provide current and signal isolation. Each of 3 Ampflow magmotors has a peak of 4.6 horsepower and draws 150 Amps at full load. Future improvements include fabricating metal body and shell, and integrating the OSMC interface board into a PCB with motor controller components that can operate at 48 V.`,
|
|
||||||
img: osiris,
|
|
||||||
sub: "🤖"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '⏩ Roombotics',
|
|
||||||
content: `Our club received a donation of 30 Roombas. We have decided to build a robotic swarm using them. This swarm will be able to communicate with each other to work together to fulfill a task. Possible tasks that we have thought of include mapping, search and rescue, and playing sports. We are currently using Arduinos to control the Roombas through their on-board commands.`,
|
|
||||||
img: Roomba,
|
|
||||||
sub: "🧼"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '⏩ Fancy Pants',
|
|
||||||
content: `Fancy Pants is a lower extremity exoskeleton and is one of the older projects at ITR. It is currently undergoing a significant redesign with the goals of increasing precision, comfort and safety. Although this exo needs a lot of work before it will be hurling someone 15 feet into the air safely, it has potential for greatness.`,
|
|
||||||
img: MRK,
|
|
||||||
sub: "🦾"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '⏩ Mongol',
|
|
||||||
content: `Mongol is designed to compete in Mech-Warfare. In Mech-Warfare, all robots must walk on 2 or 4 legs as a means of propulsion. Each robot is also equipped with airsoft cannons and impact sensor plates. Each robot is given a certain number of 'hits' and is pitted against competitors in model cityscape to where the object of the competition is to reduce each opponents hits to zero before falling to zero themselves. Meanwhile, though able to be remote controlled, each robot's pilot cannot view the robot directly and must control the robot with visual information coming only from a wireless camera on the robot itself. Mongol was designed entirely in SolidWorks. For more information about Mech-Warfare visit mech-warfare.com`,
|
|
||||||
img: Mongol,
|
|
||||||
sub: "🖐️"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
};
|
|
||||||
export default projects;
|
|
Before Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 278 KiB |
Before Width: | Height: | Size: 977 KiB |
Before Width: | Height: | Size: 440 KiB |
Before Width: | Height: | Size: 637 KiB |
Before Width: | Height: | Size: 444 KiB |
Before Width: | Height: | Size: 537 KiB |
Before Width: | Height: | Size: 581 KiB |
Before Width: | Height: | Size: 542 KiB |
Before Width: | Height: | Size: 554 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 913 KiB |
Before Width: | Height: | Size: 898 KiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 1.4 MiB |
Before Width: | Height: | Size: 1022 KiB |
Before Width: | Height: | Size: 1.4 MiB |
@ -1,26 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
|
|
||||||
let res = "";
|
|
||||||
let json = `const gallery = {
|
|
||||||
pic: [`;
|
|
||||||
|
|
||||||
let jsonEnd = `
|
|
||||||
],
|
|
||||||
};`;
|
|
||||||
fs.readdir("./", (err, files) => {
|
|
||||||
files.forEach((file, index) => {
|
|
||||||
if (file === "readimg.js") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.log(file);
|
|
||||||
res += `import pic${index} from "../pics/gallery/${file}";\n`;
|
|
||||||
json += `{
|
|
||||||
title: "",
|
|
||||||
content: "",
|
|
||||||
img: pic${index}
|
|
||||||
},`;
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(res);
|
|
||||||
console.log(json + jsonEnd);
|
|
||||||
});
|
|
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 173 KiB |
Before Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 220 KiB |
Before Width: | Height: | Size: 2.6 MiB |
Before Width: | Height: | Size: 75 KiB |
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 125 KiB |
@ -1,158 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.about {
|
|
||||||
background-color: #232323;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100vh;
|
|
||||||
height: auto;
|
|
||||||
opacity: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
display: flex;
|
|
||||||
-webkit-animation: fade 0.9s ease-in;
|
|
||||||
-moz-animation: fade 0.9s ease-in;
|
|
||||||
-ms-animation: fade 0.9s ease-in;
|
|
||||||
-o-animation: fade 0.9s ease-in;
|
|
||||||
animation: fade 0.9s ease-in;
|
|
||||||
background: linear-gradient(#3b3b3b, #1a1a1a);
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content {
|
|
||||||
position: relative;
|
|
||||||
margin-top: 70px;
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__main {
|
|
||||||
width: 100vw;
|
|
||||||
height: auto;
|
|
||||||
margin-top: 5vh;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__main__container {
|
|
||||||
padding: 10px 10px 20px 10px;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: rgb(66, 66, 66);
|
|
||||||
width: 80vw;
|
|
||||||
height: auto;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
transition: 0.3s;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__main__container h1,
|
|
||||||
.about__content__blocks_block h1 {
|
|
||||||
color: white;
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 40px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: "itrFont";
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__main__container span,
|
|
||||||
.about__content__blocks_block span {
|
|
||||||
color: rgb(238, 238, 238);
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 20px;
|
|
||||||
font-family: "itrFontMedium";
|
|
||||||
padding: 10px;
|
|
||||||
line-height: 32px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block span {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks {
|
|
||||||
margin-top: 6vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
margin-right: calc(-1 * (100vw - 100%));
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block {
|
|
||||||
position: relative;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: rgb(66, 66, 66);
|
|
||||||
width: 25vw;
|
|
||||||
margin-left: 3vw;
|
|
||||||
margin-right: 3vw;
|
|
||||||
min-height: 38vh;
|
|
||||||
height: auto;
|
|
||||||
padding: 10px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
transition: 0.3s;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block p {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
color: rgb(136, 136, 136);
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 20px;
|
|
||||||
font-family: "itrFontMedium";
|
|
||||||
padding: 10px;
|
|
||||||
line-height: 32px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block:hover,
|
|
||||||
.about__content__main__container:hover {
|
|
||||||
background-color: #666666;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 1550px) {
|
|
||||||
.about__content__blocks {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block {
|
|
||||||
margin-bottom: 6vh;
|
|
||||||
width: 80vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block h1 {
|
|
||||||
font-size: 35px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
.about__content__main__container {
|
|
||||||
width: 90vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__blocks_block {
|
|
||||||
width: 90vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.about__content__main__container span,
|
|
||||||
.about__content__blocks_block span {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
* {
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
height: 100%;
|
|
||||||
background-color: #232323;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.awards {
|
|
||||||
position: relative;
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
background-color: rgb(54, 54, 54);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.awards__content {
|
|
||||||
background-color: red;
|
|
||||||
width: 80%;
|
|
||||||
height: auto;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.awards__content__title {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 300%;
|
|
||||||
color: rgb(255, 255, 255);
|
|
||||||
font-family: "itrFont";
|
|
||||||
margin-bottom: 1%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.awards__content__list_item {
|
|
||||||
border-top: 1px solid black;
|
|
||||||
border-bottom: 1px solid black;
|
|
||||||
width: 100%;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
@ -1,78 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble {
|
|
||||||
color: rgb(255, 255, 255);
|
|
||||||
font-family: "itrFontMedium";
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
position: relative;
|
|
||||||
margin: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main h1 {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 300%;
|
|
||||||
border-left: 5px solid rgb(255, 142, 142);
|
|
||||||
padding-left: 15px;
|
|
||||||
border-top-left-radius: 10px;
|
|
||||||
margin-bottom: -5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main h2 {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 400%;
|
|
||||||
border-left: 5px solid rgb(255, 142, 142);
|
|
||||||
padding-left: 15px;
|
|
||||||
border-bottom-left-radius: 10px;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main div {
|
|
||||||
height: auto;
|
|
||||||
display: flex;
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 150%;
|
|
||||||
color: #d6d6d6;
|
|
||||||
background-color: rgb(59, 59, 59);
|
|
||||||
border-radius: 10px;
|
|
||||||
line-height: 35px;
|
|
||||||
padding: 15px;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main a {
|
|
||||||
color: rgb(141, 238, 255);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
// Phones
|
|
||||||
.bubble_main {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main h1 {
|
|
||||||
font-size: 150%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main h2 {
|
|
||||||
font-size: 250%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bubble_main div {
|
|
||||||
font-size: 100%;
|
|
||||||
line-height: 25px;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile {
|
|
||||||
position: fixed!important;
|
|
||||||
padding: 20px!important;
|
|
||||||
padding: 20px!important;
|
|
||||||
background-color: rgb(35, 35, 35)!important;
|
|
||||||
z-index: 999!important;
|
|
||||||
width: 100%!important;
|
|
||||||
box-sizing: border-box;
|
|
||||||
height: 100vh!important;
|
|
||||||
justify-content: start!important;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
.c {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: linear-gradient(#353535, #232323);
|
|
||||||
z-index: 10000000;
|
|
||||||
overflow: hidden;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
// animation: slide .6s ease;
|
|
||||||
// animation-iteration-count: 1;
|
|
||||||
}
|
|
||||||
.home__content__info {
|
|
||||||
.c {
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
width: 100%;
|
|
||||||
margin-top: 45px;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
// margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd__link {
|
|
||||||
color: white;
|
|
||||||
font-size: 24px;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd__link_label {
|
|
||||||
position: relative;
|
|
||||||
width: 90%;
|
|
||||||
cursor: pointer;
|
|
||||||
line-height: 33px;
|
|
||||||
height: 33px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd__link_arrow {
|
|
||||||
text-align: center;
|
|
||||||
color: white;
|
|
||||||
// padding-top: 7px;
|
|
||||||
height: 33px;
|
|
||||||
line-height: 33px;
|
|
||||||
width: 10%;
|
|
||||||
font-size: 30px;
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: 0%;
|
|
||||||
transition: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd__link_arrow:hover:focus {
|
|
||||||
opacity: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dd__link_label:hover + .dd__link_arrow {
|
|
||||||
opacity: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
margin-top: 10px;
|
|
||||||
display: inline-block;
|
|
||||||
flex-direction: row;
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header__text {
|
|
||||||
color: white;
|
|
||||||
font-size: 50px;
|
|
||||||
font-family: "itrFont";
|
|
||||||
}
|
|
||||||
|
|
||||||
.header__x {
|
|
||||||
color: white;
|
|
||||||
font-size: 25px;
|
|
||||||
font-family: "itrFont";
|
|
||||||
border: none;
|
|
||||||
float: right;
|
|
||||||
margin-top: 13px;
|
|
||||||
margin-right: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.slideIn{
|
|
||||||
animation: slideIn .6s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slideOut{
|
|
||||||
animation: slideOut .6s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
|
||||||
margin-top: -100vh;
|
|
||||||
opacity: 0%;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
margin-top: 0vh;
|
|
||||||
opacity: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes slideOut {
|
|
||||||
0% {
|
|
||||||
margin-top: 0vh;
|
|
||||||
opacity: 100%;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
margin-top: -100vh;
|
|
||||||
opacity: 0%;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
.c {
|
|
||||||
opacity: 100%;
|
|
||||||
-webkit-animation: fade 0.9s ease-in;
|
|
||||||
-moz-animation: fade 0.9s ease-in;
|
|
||||||
-ms-animation: fade 0.9s ease-in;
|
|
||||||
-o-animation: fade 0.9s ease-in;
|
|
||||||
animation: fade 0.9s ease-in;
|
|
||||||
background: linear-gradient(#3b3b3b, #1a1a1a);
|
|
||||||
position: relative;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
width: 100vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.error {
|
|
||||||
background-color: #3d3d3d;
|
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
display: flex;
|
|
||||||
height: calc(100vh - 101px);
|
|
||||||
position: relative;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.error__photo { margin: 0px;
|
|
||||||
width: 100%;
|
|
||||||
min-width: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e {
|
|
||||||
margin: 0px;
|
|
||||||
position: absolute;
|
|
||||||
width: 100vw;
|
|
||||||
max-width: 500px;
|
|
||||||
aspect-ratio: 16/9;
|
|
||||||
border-radius: 30px;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
margin: auto
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__background {
|
|
||||||
margin: 0px;
|
|
||||||
position: relative;
|
|
||||||
width: 100vw;
|
|
||||||
max-width: 500px;
|
|
||||||
aspect-ratio: 16/9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__container {
|
|
||||||
margin: 0px;
|
|
||||||
width: 100px;
|
|
||||||
height: 100px;
|
|
||||||
position: absolute;
|
|
||||||
border-radius: 20px;
|
|
||||||
top: 0;
|
|
||||||
width: 100vw;
|
|
||||||
max-width: 500px;
|
|
||||||
aspect-ratio: 16/9;
|
|
||||||
height: auto;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__container__titleCon {
|
|
||||||
width: 100%;
|
|
||||||
height: 15%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__container__messageCon {
|
|
||||||
width: 100%;
|
|
||||||
height: 77%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__container__titleCon__title {
|
|
||||||
font-family: "Tahoma";
|
|
||||||
margin-top: 1%;
|
|
||||||
margin-left: 12%;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.e__container__messageCon__message {
|
|
||||||
font-family: "Tahoma";
|
|
||||||
margin-top: 1%;
|
|
||||||
margin-left: 12%;
|
|
||||||
font-size: 1.3rem;
|
|
||||||
color: black;
|
|
||||||
margin-left: 24%;
|
|
||||||
margin-top: 10%;
|
|
||||||
margin-right: 20px;
|
|
||||||
line-height: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,121 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
background-color: #232323;
|
|
||||||
width: 100%;
|
|
||||||
height: 100px;
|
|
||||||
border-top: 1px solid rgb(46, 46, 46);
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links {
|
|
||||||
width: 80vw;
|
|
||||||
height: 50px;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
width: 80vw;
|
|
||||||
height: 50px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul_li {
|
|
||||||
padding: 0px;
|
|
||||||
margin: 20px;
|
|
||||||
height: 50px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul_li_a {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul_li_svg {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
filter: invert(100%) sepia(10%) saturate(1000%) hue-rotate(10deg)
|
|
||||||
brightness(100%) contrast(100%);
|
|
||||||
opacity: 30%;
|
|
||||||
transition: 0.3s;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul_li_svg:hover {
|
|
||||||
opacity: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__toes {
|
|
||||||
display: flex;
|
|
||||||
width: 80vw;
|
|
||||||
height: 30px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__toes__links {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__toes__links_link {
|
|
||||||
text-align: center;
|
|
||||||
width: 100px;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
display: flex;
|
|
||||||
height: 30px;
|
|
||||||
padding: 0px;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
// Phones
|
|
||||||
.footer__links_ul_li_svg {
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__links_ul_li {
|
|
||||||
margin: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__toes__links_link_a {
|
|
||||||
font-size: 17px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer__toes__links_link {
|
|
||||||
width: 80px;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.gallery {
|
|
||||||
background-color: #232323;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100vh;
|
|
||||||
height: auto;
|
|
||||||
opacity: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
display: flex;
|
|
||||||
-webkit-animation: fade 0.9s ease-in;
|
|
||||||
-moz-animation: fade 0.9s ease-in;
|
|
||||||
-ms-animation: fade 0.9s ease-in;
|
|
||||||
-o-animation: fade 0.9s ease-in;
|
|
||||||
animation: fade 0.9s ease-in;
|
|
||||||
background: linear-gradient(#3b3b3b, #1a1a1a);
|
|
||||||
}
|
|
||||||
|
|
||||||
.gallery_wrap {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
padding: 24px;
|
|
||||||
margin-left: 20px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
.gallery__title {
|
|
||||||
margin: 20px 0 20px 20px;
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
@ -1,108 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.home {
|
|
||||||
width: 100%;
|
|
||||||
opacity: 100%;
|
|
||||||
-webkit-animation: fade 0.9s ease-in;
|
|
||||||
-moz-animation: fade 0.9s ease-in;
|
|
||||||
-ms-animation: fade 0.9s ease-in;
|
|
||||||
-o-animation: fade 0.9s ease-in;
|
|
||||||
animation: fade 0.9s ease-in;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home__content__panel {
|
|
||||||
background-color: transparent;
|
|
||||||
width: 100%;
|
|
||||||
height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home__content__panel__video {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home__content__panel__title {
|
|
||||||
position: absolute;
|
|
||||||
color: white;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 70px;
|
|
||||||
font-family: "itrFont";
|
|
||||||
animation: textSlide 1s ease;
|
|
||||||
animation-iteration-count: 1;
|
|
||||||
opacity: 100%;
|
|
||||||
width: 100%;
|
|
||||||
letter-spacing: 2px;
|
|
||||||
filter: drop-shadow(0 0 0.75rem rgb(77, 77, 77));
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home__content__info {
|
|
||||||
height: auto;
|
|
||||||
width: 100%;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
background: linear-gradient(#353535, #232323);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.c {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
width: 90%;
|
|
||||||
padding: 50px;
|
|
||||||
height: auto;
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
|
||||||
opacity: 100%;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
background: transparent;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 999;
|
|
||||||
background-color: #232323;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
// Phones
|
|
||||||
.home__content__panel__title {
|
|
||||||
font-size: 45px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Animations
|
|
||||||
|
|
||||||
@keyframes textSlide {
|
|
||||||
0% {
|
|
||||||
margin-top: 50vw;
|
|
||||||
}
|
|
||||||
0% {
|
|
||||||
opacity: 0%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,212 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
height: 70px;
|
|
||||||
background-color: transparent;
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
overflow-y: hidden;
|
|
||||||
transition: 0.5s;
|
|
||||||
z-index: 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar__logotext {
|
|
||||||
color: white;
|
|
||||||
font-size: 50px;
|
|
||||||
font-family: "itrFont";
|
|
||||||
margin-top: 6px;
|
|
||||||
margin-left: 50px;
|
|
||||||
transition: 0.5s;
|
|
||||||
background: linear-gradient(
|
|
||||||
to right,
|
|
||||||
#ff0000,
|
|
||||||
#ff7300,
|
|
||||||
#fffb00,
|
|
||||||
#48ff00,
|
|
||||||
#00ffd5,
|
|
||||||
#002bff,
|
|
||||||
#7a00ff,
|
|
||||||
#ff00c8,
|
|
||||||
#ff0000
|
|
||||||
);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
background-clip: text;
|
|
||||||
animation: navbar__logotext 6s ease-in-out infinite;
|
|
||||||
background-size: 400% 100%;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#logo {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar__logotext:hover {
|
|
||||||
color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes navbar__logotext {
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
background-position: 100% 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
li a {
|
|
||||||
color: rgb(216, 216, 216);
|
|
||||||
text-decoration: none;
|
|
||||||
font-family: "itrFontMedium";
|
|
||||||
font-size: 20px;
|
|
||||||
margin-left: 3px;
|
|
||||||
margin-right: 3px;
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 20px;
|
|
||||||
padding-top: 5px;
|
|
||||||
padding-bottom: 5px;
|
|
||||||
transition: 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
li a:hover {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav__placeholder {
|
|
||||||
padding: 10px;
|
|
||||||
width: 70px;
|
|
||||||
height: 20px;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
background: transparent;
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-right: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav__login {
|
|
||||||
padding: 10px;
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: 20px;
|
|
||||||
text-align: center;
|
|
||||||
font-family: "itrFontMedium";
|
|
||||||
width: 70px;
|
|
||||||
height: 20px;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
color: #ffffff;
|
|
||||||
background: #111;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin-right: 50px;
|
|
||||||
}
|
|
||||||
.nav__login::before {
|
|
||||||
content: "";
|
|
||||||
background: linear-gradient(
|
|
||||||
to right,
|
|
||||||
#ff0000,
|
|
||||||
#ff7300,
|
|
||||||
#fffb00,
|
|
||||||
#48ff00,
|
|
||||||
#00ffd5,
|
|
||||||
#002bff,
|
|
||||||
#7a00ff,
|
|
||||||
#ff00c8,
|
|
||||||
#ff0000
|
|
||||||
);
|
|
||||||
position: absolute;
|
|
||||||
top: -2px;
|
|
||||||
left: -2px;
|
|
||||||
background-size: 400%;
|
|
||||||
z-index: -1;
|
|
||||||
width: calc(100% + 4px);
|
|
||||||
height: calc(100% + 4px);
|
|
||||||
animation: glow 30s linear infinite;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.3s ease-in-out;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
@keyframes glow {
|
|
||||||
0% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position: 400% 0;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.nav__login:active {
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.nav__login:active:after {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.nav__login:hover:before {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar__hamburger {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hamburger-react {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 912px) {
|
|
||||||
// Tablets
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 650px) {
|
|
||||||
// Phones
|
|
||||||
.navbar__logotext {
|
|
||||||
margin-top: 6px;
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hamburger-react {
|
|
||||||
color: #fff;
|
|
||||||
display: block;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
.navbar__hamburger {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
margin-right: 20px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar__hamburger_line {
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
width: 30px;
|
|
||||||
height: 3px;
|
|
||||||
margin: 2px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,174 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: itrFont;
|
|
||||||
src: url(../font/LeagueSpartan-ExtraBold.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
src: url(../font/LeagueSpartan-Medium.ttf);
|
|
||||||
}
|
|
||||||
|
|
||||||
.project {
|
|
||||||
background-color: #232323;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100vh;
|
|
||||||
height: auto;
|
|
||||||
opacity: 100%;
|
|
||||||
overflow-x: hidden;
|
|
||||||
display: flex;
|
|
||||||
-webkit-animation: fade 0.9s ease-in;
|
|
||||||
-moz-animation: fade 0.9s ease-in;
|
|
||||||
-ms-animation: fade 0.9s ease-in;
|
|
||||||
-o-animation: fade 0.9s ease-in;
|
|
||||||
animation: fade 0.9s ease-in;
|
|
||||||
background: linear-gradient(#3b3b3b, #1a1a1a);
|
|
||||||
}
|
|
||||||
|
|
||||||
.projects_wrap {
|
|
||||||
flex-wrap: wrap;
|
|
||||||
padding: 24px;
|
|
||||||
margin-left: 20px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: start;
|
|
||||||
}
|
|
||||||
.projects__title {
|
|
||||||
margin: 20px 0 20px 20px;
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.project__content {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__main {
|
|
||||||
width: 100vw;
|
|
||||||
height: auto;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
padding-top: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__main__container {
|
|
||||||
padding: 20px;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: rgb(66, 66, 66);
|
|
||||||
box-sizing: border-box;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
transition: 0.3s;
|
|
||||||
cursor: default;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.project_item_content {
|
|
||||||
flex-grow: 1;
|
|
||||||
overflow: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project_item_content_image {
|
|
||||||
border-radius: 10px;
|
|
||||||
transition: .1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project_item_content_image:hover {
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__main__container h1,
|
|
||||||
.project__content__blocks_block h1 {
|
|
||||||
color: white;
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 40px;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: "itrFont";
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__main__container span,
|
|
||||||
.project__content__blocks_block span {
|
|
||||||
color: rgb(238, 238, 238);
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 18px;
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
padding: 10px;
|
|
||||||
line-height: 20px;
|
|
||||||
border-radius: 10px;
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
width: 100%;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block span {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks {
|
|
||||||
margin-top: 6vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: auto;
|
|
||||||
margin-right: calc(-1 * (100vw - 100%));
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block {
|
|
||||||
position: relative;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: rgb(66, 66, 66);
|
|
||||||
width: 25vw;
|
|
||||||
margin-left: 3vw;
|
|
||||||
margin-right: 3vw;
|
|
||||||
min-height: 38vh;
|
|
||||||
height: auto;
|
|
||||||
padding: 10px;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
transition: 0.3s;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block p {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
color: rgb(136, 136, 136);
|
|
||||||
opacity: 100%;
|
|
||||||
font-size: 20px;
|
|
||||||
font-family: itrFontMedium;
|
|
||||||
padding: 10px;
|
|
||||||
line-height: 32px;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block:hover,
|
|
||||||
.project__content__main__container:hover {
|
|
||||||
background-color: #666666;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 1550px) {
|
|
||||||
.project__content__blocks {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block {
|
|
||||||
margin-bottom: 6vh;
|
|
||||||
width: 80vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.project__content__blocks_block h1 {
|
|
||||||
font-size: 35px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
.waterfallContainer {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: space-evenly;
|
|
||||||
.waterfallItem {
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,110 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import { AnimationOnScroll } from "react-animation-on-scroll";
|
|
||||||
import "../assets/stylesheets/about.scss";
|
|
||||||
|
|
||||||
export default class About extends Component {
|
|
||||||
componentDidMount() {
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
click() {}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div className="about">
|
|
||||||
<div className="about__content">
|
|
||||||
<div className="about__content__main">
|
|
||||||
<AnimationOnScroll
|
|
||||||
animateIn="animate__fadeInDown"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1}
|
|
||||||
delay={0}
|
|
||||||
>
|
|
||||||
<div className="about__content__main__container">
|
|
||||||
<h1>About Us 📌</h1>
|
|
||||||
<span>
|
|
||||||
The Illinois Tech Robotics Club at IIT is a student-run
|
|
||||||
organization dedicated to promoting the development and
|
|
||||||
application of robotics technology. We aim to provide a
|
|
||||||
platform for students to learn, design, build, and compete
|
|
||||||
with robots. Our members come from a variety of disciplines
|
|
||||||
and backgrounds, including computer science, electrical
|
|
||||||
engineering, mechanical engineering, and beyond. We host
|
|
||||||
regular meetings, workshops, and events to encourage hands-on
|
|
||||||
experience and collaboration among members. Our club also
|
|
||||||
participates in various national and international robotics
|
|
||||||
competitions, providing opportunities for members to showcase
|
|
||||||
their skills and put their knowledge to the test. Whether you
|
|
||||||
are a seasoned robotics enthusiast or just starting out, the
|
|
||||||
Illinois Tech Robotics Club is a welcoming community for
|
|
||||||
anyone interested in the field. Join us in exploring the
|
|
||||||
exciting world of robotics and pushing the boundaries of what
|
|
||||||
is possible.
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="about__content__blocks">
|
|
||||||
<AnimationOnScroll
|
|
||||||
animateIn="animate__fadeInUp"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1}
|
|
||||||
delay={500}
|
|
||||||
>
|
|
||||||
<div className="about__content__blocks_block">
|
|
||||||
<h1>Awards 🏆</h1>
|
|
||||||
<span>
|
|
||||||
Illinois Tech Robotics has received numerous awards for our
|
|
||||||
contributions to the field of robotics. Our team has been
|
|
||||||
recognized at local competitions for our commitment to
|
|
||||||
innovation and excellence. We take pride in our recognition
|
|
||||||
and continue to push the boundaries of robotics technology.
|
|
||||||
</span>
|
|
||||||
<p>(Click for more info)</p>
|
|
||||||
</div>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
<AnimationOnScroll
|
|
||||||
animateIn="animate__fadeInUp"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1.2}
|
|
||||||
delay={500}
|
|
||||||
>
|
|
||||||
<div className="about__content__blocks_block">
|
|
||||||
<h1>Officers 👩💼</h1>
|
|
||||||
<span>
|
|
||||||
Illinois Tech Robotics is led by a team of student officers
|
|
||||||
committed to advancing robotics. Our diverse officers bring
|
|
||||||
unique skills and perspectives, leading events and projects.
|
|
||||||
We are proud to have a talented and passionate group guiding
|
|
||||||
us forward.
|
|
||||||
</span>
|
|
||||||
<p>(Click for more info)</p>
|
|
||||||
</div>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
<AnimationOnScroll
|
|
||||||
animateIn="animate__fadeInUp"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1.4}
|
|
||||||
delay={500}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="about__content__blocks_block"
|
|
||||||
onClick={this.click}
|
|
||||||
>
|
|
||||||
<h1>Constitution 📜</h1>
|
|
||||||
<span>
|
|
||||||
Illinois Tech Robotics operates under a Constitution outlining
|
|
||||||
our purpose, rules, and processes. It outlines
|
|
||||||
responsibilities, decision-making, and governance to maintain
|
|
||||||
fairness, transparency, and accountability within our team.
|
|
||||||
</span>
|
|
||||||
<p>(Click for more info)</p>
|
|
||||||
</div>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
import { useContainer } from "unstated-next";
|
|
||||||
import DropdownContainer from "../components/DropdownContainer";
|
|
||||||
import GlobalStore from "../store/global";
|
|
||||||
import NavBar from "../components/NavBar";
|
|
||||||
import Footer from "../components/Footer";
|
|
||||||
import { useLocation } from "react-router-dom";
|
|
||||||
import { useEffect } from "react";
|
|
||||||
|
|
||||||
const AppOuter = ({ children }) => {
|
|
||||||
const { isHamburger, setIsHamburger } = useContainer(GlobalStore);
|
|
||||||
const location = useLocation();
|
|
||||||
useEffect(() => {
|
|
||||||
setIsHamburger(false);
|
|
||||||
}, [location.pathname]);
|
|
||||||
return (
|
|
||||||
<div className="container">
|
|
||||||
{isHamburger ? (
|
|
||||||
<DropdownContainer hamburgerToggle={setIsHamburger} />
|
|
||||||
) : null}
|
|
||||||
<div style={{ marginTop: 70 }}>{children}</div>
|
|
||||||
<NavBar hamburgerToggle={setIsHamburger}></NavBar>
|
|
||||||
<Footer></Footer>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default AppOuter;
|
|
@ -1,21 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import "../assets/stylesheets/awards.scss";
|
|
||||||
|
|
||||||
export default class Awards extends Component {
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div className="awards">
|
|
||||||
<div className="awards__content">
|
|
||||||
<h1 className="awards__content__title">Awards & Recognition 🏆</h1>
|
|
||||||
<ol className="awards__content__list">
|
|
||||||
<i>
|
|
||||||
<div className="awards__content__list_item">
|
|
||||||
<h2>2019</h2>
|
|
||||||
</div>
|
|
||||||
</i>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import "../assets/stylesheets/bubble.scss";
|
|
||||||
import { AnimationOnScroll } from "react-animation-on-scroll";
|
|
||||||
|
|
||||||
export default class Bubble extends Component {
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div
|
|
||||||
// style={{
|
|
||||||
// marginLeft: `${this.props.left}`,
|
|
||||||
// paddingTop: `${this.props.top}`,
|
|
||||||
// }}
|
|
||||||
>
|
|
||||||
<div className="bubble">
|
|
||||||
<AnimationOnScroll
|
|
||||||
className="bubble_main"
|
|
||||||
animateIn="animate__fadeInUp"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1}
|
|
||||||
delay={0}
|
|
||||||
>
|
|
||||||
<h1>{this.props.h1}</h1>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
<AnimationOnScroll
|
|
||||||
className="bubble_main"
|
|
||||||
animateIn="animate__fadeInUp"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={1.2}
|
|
||||||
delay={0}
|
|
||||||
>
|
|
||||||
<h2>{this.props.h2}</h2>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
<AnimationOnScroll
|
|
||||||
className="bubble_main"
|
|
||||||
animateIn="animate__fadeIn"
|
|
||||||
animateOnce="true"
|
|
||||||
duration={3}
|
|
||||||
delay={500}
|
|
||||||
>
|
|
||||||
<div>{this.props.children}</div>
|
|
||||||
</AnimationOnScroll>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
import React, { useEffect, useRef } from "react";
|
|
||||||
import { NavLink } from "react-router-dom";
|
|
||||||
import "../assets/stylesheets/dropdown.scss";
|
|
||||||
import { useSize } from "ahooks";
|
|
||||||
import { useContainer } from "unstated-next";
|
|
||||||
import GlobalStore from "../store/global";
|
|
||||||
|
|
||||||
const DropdownContainer = () => {
|
|
||||||
const container = useRef();
|
|
||||||
const { isMobile, toggleMenu } = useContainer(GlobalStore);
|
|
||||||
const toggleHamburger = () => {
|
|
||||||
container.current.className = "slideOut c";
|
|
||||||
setTimeout(() => {
|
|
||||||
toggleMenu();
|
|
||||||
}, 500);
|
|
||||||
};
|
|
||||||
return (
|
|
||||||
<nav ref={container} className={`dropdown c slideIn ${isMobile ? 'mobile' : ''}`}>
|
|
||||||
{!isMobile && (
|
|
||||||
<div className="header">
|
|
||||||
<label className="header__text">ITR</label>
|
|
||||||
<button className="header__x" onClick={() => toggleHamburger()}>X</button>
|
|
||||||
</div>)}
|
|
||||||
<div className="dd">
|
|
||||||
<li>
|
|
||||||
<NavLink className="dd__link" to="/">
|
|
||||||
<label className="dd__link_label">Home</label>
|
|
||||||
<label className="dd__link_arrow">{">"}</label>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink className="dd__link" to="/about">
|
|
||||||
<label className="dd__link_label">About</label>
|
|
||||||
<label className="dd__link_arrow">{">"}</label>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink className="dd__link" to="/projects">
|
|
||||||
<label className="dd__link_label">Projects</label>
|
|
||||||
<label className="dd__link_arrow">{">"}</label>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink className="dd__link" to="/gallery">
|
|
||||||
<label className="dd__link_label">Gallery</label>
|
|
||||||
<label className="dd__link_arrow">{">"}</label>
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DropdownContainer;
|
|
@ -1,40 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import "../assets/stylesheets/error.scss";
|
|
||||||
|
|
||||||
export default class Error extends Component {
|
|
||||||
status = this.props.err.item.status;
|
|
||||||
statusText = this.props.err.item.statusText;
|
|
||||||
message = this.props.err.item.message;
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div className="c">
|
|
||||||
<div className="error">
|
|
||||||
<img
|
|
||||||
className="error__photo"
|
|
||||||
src={require("../assets/pics/error.jpg")}
|
|
||||||
alt="background"
|
|
||||||
></img>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="e">
|
|
||||||
<img
|
|
||||||
className="e__background"
|
|
||||||
src={require("../assets/pics/xperror.png")}
|
|
||||||
alt="background"
|
|
||||||
></img>
|
|
||||||
<div className="e__container">
|
|
||||||
<div className="e__container__titleCon">
|
|
||||||
<h1 className="e__container__titleCon__title">
|
|
||||||
{this.status}: {this.statusText}
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
<div className="e__container__messageCon">
|
|
||||||
<p className="e__container__messageCon__message">If you believe this is unintentional, please contact a site developer!</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,87 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import "../assets/stylesheets/footer.scss";
|
|
||||||
import { ReactComponent as DiscordSVG } from "../assets/svg/discord.svg";
|
|
||||||
import { ReactComponent as TwitterSVG } from "../assets/svg/twitter.svg";
|
|
||||||
import { ReactComponent as FacebookSVG } from "../assets/svg/facebook.svg";
|
|
||||||
import { ReactComponent as InstagramSVG } from "../assets/svg/instagram.svg";
|
|
||||||
import { ReactComponent as GithubSVG } from "../assets/svg/github.svg";
|
|
||||||
|
|
||||||
export default class Footer extends Component {
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div className="footer">
|
|
||||||
<div className="footer__links">
|
|
||||||
<ul className="footer__links_ul">
|
|
||||||
<li className="footer__links_ul_li">
|
|
||||||
<a
|
|
||||||
href="https://discord.gg/GA6mvMEzSu"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
className="footer__links_ul_li_a"
|
|
||||||
>
|
|
||||||
<DiscordSVG className="footer__links_ul_li_svg"></DiscordSVG>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__links_ul_li">
|
|
||||||
<a
|
|
||||||
href="https://twitter.com/ILTech_Robotics"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
className="footer__links_ul_li_a"
|
|
||||||
>
|
|
||||||
<TwitterSVG className="footer__links_ul_li_svg"></TwitterSVG>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__links_ul_li">
|
|
||||||
<a
|
|
||||||
href="https://www.facebook.com/IllinoisTechRobotics/"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
className="footer__links_ul_li_a"
|
|
||||||
>
|
|
||||||
<FacebookSVG className="footer__links_ul_li_svg"></FacebookSVG>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__links_ul_li">
|
|
||||||
<a
|
|
||||||
href="https://www.instagram.com/illinoistechrobotics/"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
className="footer__links_ul_li_a"
|
|
||||||
>
|
|
||||||
<InstagramSVG className="footer__links_ul_li_svg"></InstagramSVG>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__links_ul_li">
|
|
||||||
<a
|
|
||||||
href="https://github.com/illinoistechrobotics"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
className="footer__links_ul_li_a"
|
|
||||||
>
|
|
||||||
<GithubSVG className="footer__links_ul_li_svg"></GithubSVG>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="footer__toes">
|
|
||||||
<ul className="footer__toes__links">
|
|
||||||
<li className="footer__toes__links_link">
|
|
||||||
<a href="http://localhost:3000/about" className="footer__toes__links_link_a">About</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__toes__links_link">
|
|
||||||
<a href="http://localhost:3000/contact" className="footer__toes__links_link_a">Contact</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__toes__links_link">
|
|
||||||
<a href="http://localhost:3000/projects" className="footer__toes__links_link_a">Projects</a>
|
|
||||||
</li>
|
|
||||||
<li className="footer__toes__links_link">
|
|
||||||
<a href="http://localhost:3000/gallery" className="footer__toes__links_link_a">Gallery</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
125
src/components/Footer.tsx
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
import React from "react";
|
||||||
|
import Image from "next/image";
|
||||||
|
import DiscordSVG from "../../public/discord.svg";
|
||||||
|
import TwitterSVG from "../../public/twitter.svg";
|
||||||
|
import FacebookSVG from "../../public/facebook.svg";
|
||||||
|
import InstagramSVG from "../../public/instagram.svg";
|
||||||
|
import GithubSVG from "../../public/github.svg";
|
||||||
|
import "../stylesheets/footer.scss";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
|
const Footer = () => {
|
||||||
|
return (
|
||||||
|
<div className="footer">
|
||||||
|
<div className="footer-links">
|
||||||
|
<ul className="footer-links-ul">
|
||||||
|
<li className="footer-links-ul-li">
|
||||||
|
<a
|
||||||
|
href="https://discord.gg/GA6mvMEzSu"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="footer-links-ul-li-a"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
priority
|
||||||
|
className="footer-links-ul-li-svg"
|
||||||
|
src={DiscordSVG}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li className="footer-links-ul-li">
|
||||||
|
<a
|
||||||
|
href="https://twitter.com/ILTech_Robotics"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="footer-links-ul-li-a"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
priority
|
||||||
|
className="footer-links-ul-li-svg"
|
||||||
|
src={TwitterSVG}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li className="footer-links-ul-li">
|
||||||
|
<a
|
||||||
|
href="https://www.facebook.com/IllinoisTechRobotics/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="footer-links-ul-li-a"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
priority
|
||||||
|
className="footer-links-ul-li-svg"
|
||||||
|
src={FacebookSVG}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li className="footer-links-ul-li">
|
||||||
|
<a
|
||||||
|
href="https://www.instagram.com/illinoistechrobotics/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="footer-links-ul-li-a"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
priority
|
||||||
|
className="footer-links-ul-li-svg"
|
||||||
|
src={InstagramSVG}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li className="footer-links-ul-li">
|
||||||
|
<a
|
||||||
|
href="https://github.com/illinoistechrobotics"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className="footer-links-ul-li-a"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
priority
|
||||||
|
className="footer-links-ul-li-svg"
|
||||||
|
src={GithubSVG}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="footer-toes">
|
||||||
|
<ul className="footer-toes-links">
|
||||||
|
<li className="footer-toes-links-link">
|
||||||
|
<Link href="/about" className="footer-toes-links-link-a">
|
||||||
|
About
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="footer-toes-links-link">
|
||||||
|
<Link href="/contact" className="footer-toes-links-link-a">
|
||||||
|
Contact
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="footer-toes-links-link">
|
||||||
|
<Link href="/projects" className="footer-toes-links-link-a">
|
||||||
|
Projects
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="footer-toes-links-link">
|
||||||
|
<Link href="/gallery" className="footer-toes-links-link-a">
|
||||||
|
Gallery
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<span className="footer-toes-span">
|
||||||
|
© {new Date().getFullYear()} Illinois Tech Robotics
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Footer;
|
@ -1,62 +0,0 @@
|
|||||||
import React, { useEffect, useMemo } from "react";
|
|
||||||
import "../assets/stylesheets/gallery.scss";
|
|
||||||
import { useContainer } from "unstated-next";
|
|
||||||
import GlobalStore from "../store/global";
|
|
||||||
import gallery from "../assets/data/gallery";
|
|
||||||
import WaterfallPosition from "./hooks/waterfall";
|
|
||||||
import { Image } from "antd";
|
|
||||||
|
|
||||||
const Render = ({ onLoad, data, sizeRef }) => {
|
|
||||||
return (
|
|
||||||
<div className="gallery__content">
|
|
||||||
<Image
|
|
||||||
onLoad={() => {
|
|
||||||
setTimeout(() => {
|
|
||||||
onLoad(sizeRef.current.size);
|
|
||||||
}, 100);
|
|
||||||
}}
|
|
||||||
onError={() =>
|
|
||||||
setTimeout(() => {
|
|
||||||
onLoad(sizeRef.current.size);
|
|
||||||
}, 100)
|
|
||||||
}
|
|
||||||
width={"100%"}
|
|
||||||
src={data.img}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const Gallery = () => {
|
|
||||||
useEffect(() => {
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const { bodySize } = useContainer(GlobalStore);
|
|
||||||
const count = useMemo(() => {
|
|
||||||
if (bodySize.width > 850) {
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
if (bodySize.width > 650) {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}, [bodySize]);
|
|
||||||
return (
|
|
||||||
<div className="gallery">
|
|
||||||
<div className="gallery__content">
|
|
||||||
<div className="gallery__content__main">
|
|
||||||
<div>
|
|
||||||
<h1 className="gallery__title">Gallery</h1>
|
|
||||||
<WaterfallPosition
|
|
||||||
columnNumber={count}
|
|
||||||
list={gallery.pic}
|
|
||||||
Render={Render}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
export default Gallery;
|
|
@ -1,83 +0,0 @@
|
|||||||
import React, { Component } from "react";
|
|
||||||
import backgroundVideo from "../assets/videos/video.mp4";
|
|
||||||
import "../assets/stylesheets/home.scss";
|
|
||||||
import Bubble from "./Bubble";
|
|
||||||
import * as Scroll from "react-scroll";
|
|
||||||
import "animate.css";
|
|
||||||
|
|
||||||
export default class Home extends Component {
|
|
||||||
scrollToContent() {
|
|
||||||
var scroll = require("react-scroll");
|
|
||||||
scroll = Scroll.animateScroll;
|
|
||||||
scroll.scrollTo(920);
|
|
||||||
}
|
|
||||||
|
|
||||||
componentDidMount() {
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<div className="home">
|
|
||||||
<div className="home__content">
|
|
||||||
<div className="home__content__panel">
|
|
||||||
<label className="home__content__panel__title">
|
|
||||||
<p>ILLINOIS TECH</p>
|
|
||||||
<p>ROBOTICS</p>
|
|
||||||
</label>
|
|
||||||
{/* <button
|
|
||||||
className="home__content__panel__button"
|
|
||||||
onClick={this.scrollToContent}
|
|
||||||
>
|
|
||||||
⬇️
|
|
||||||
</button> */}
|
|
||||||
<video
|
|
||||||
autoPlay
|
|
||||||
playsInline
|
|
||||||
controls={false}
|
|
||||||
preload="yes"
|
|
||||||
loop
|
|
||||||
muted
|
|
||||||
className="home__content__panel__video"
|
|
||||||
type="video/mp4"
|
|
||||||
src={backgroundVideo}
|
|
||||||
></video>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="home__content__info">
|
|
||||||
<div className="c">
|
|
||||||
<Bubble h1="Join us at our" h2="GBMs 🤝">
|
|
||||||
<span>
|
|
||||||
Welcome to the Illinois Tech Robotics Club! We are a
|
|
||||||
student-run organization that promotes the field of robotics
|
|
||||||
through hands-on projects, competitions and events. Open to
|
|
||||||
students of all majors and skill levels, we meet every week at
|
|
||||||
6:30pm CST to work on exciting robotics projects.
|
|
||||||
</span>
|
|
||||||
</Bubble>
|
|
||||||
<Bubble
|
|
||||||
h1="Directions to the"
|
|
||||||
h2="ITR Lab 🗺️"
|
|
||||||
>
|
|
||||||
<span>
|
|
||||||
1. Enter through the{" "}
|
|
||||||
<a href="https://goo.gl/maps/NJW5LzDDBYoHiD5X6">IIT Tower</a>{" "}
|
|
||||||
located at 10 W 35 St, Chicago, IL.
|
|
||||||
<br />
|
|
||||||
2. Sign in with the front desk, and then take the elevator to
|
|
||||||
the basement.
|
|
||||||
<br />
|
|
||||||
3. Once in the basement, take a right from the elevator and
|
|
||||||
enter the last door on the left.
|
|
||||||
<br />
|
|
||||||
4. Finally, sign in to the Elevate Underground Lab with the
|
|
||||||
CLA on guard!
|
|
||||||
</span>
|
|
||||||
</Bubble>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
import React, { Component, useEffect, useState } from "react";
|
|
||||||
import { NavLink } from "react-router-dom";
|
|
||||||
import "../assets/stylesheets/navbar.scss";
|
|
||||||
import { useContainer } from "unstated-next";
|
|
||||||
import GlobalStore from "../store/global";
|
|
||||||
import Hamburger from "hamburger-react";
|
|
||||||
|
|
||||||
const NavBar = () => {
|
|
||||||
const [navBackground, setNavBackground] = useState({ backgroundColor: "transparent" });
|
|
||||||
const { toggleMenu, isHamburger } = useContainer(GlobalStore);
|
|
||||||
useEffect(() => {
|
|
||||||
document.addEventListener("scroll", (event) => {
|
|
||||||
if (window.scrollY < 10) {
|
|
||||||
setNavBackground({ backgroundColor: "transparent" });
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
setNavBackground({ backgroundColor: "#232323" });
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<nav className="navbar" style={navBackground}>
|
|
||||||
<a id="logo" href="http://localhost:3000">
|
|
||||||
<h2 className="navbar__logotext">ITR</h2>
|
|
||||||
</a>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<NavLink to="/">Home</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink to="/about">About</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink to="/projects">Projects</NavLink>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<NavLink to="/gallery">Gallery</NavLink>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
{/* <NavLink className="nav__login" to="/login">
|
|
||||||
Login
|
|
||||||
</NavLink> */}
|
|
||||||
<div className="nav__placeholder"></div>
|
|
||||||
<Hamburger toggled={isHamburger} toggle={toggleMenu} />
|
|
||||||
{/* <div className="navbar__hamburger">
|
|
||||||
<div className="navbar__hamburger_line"></div>
|
|
||||||
<div className="navbar__hamburger_line"></div>
|
|
||||||
<div className="navbar__hamburger_line"></div>
|
|
||||||
</div> */}
|
|
||||||
</nav>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default NavBar;
|
|
131
src/components/Navbar.tsx
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import React, { useState, useEffect } from "react";
|
||||||
|
import Link from "next/link";
|
||||||
|
import Modal from "react-modal";
|
||||||
|
import "@/stylesheets/navbar.scss";
|
||||||
|
|
||||||
|
const Navbar = () => {
|
||||||
|
const [modal, setModal] = useState(false);
|
||||||
|
const [modalOpacity, setModalOpacity] = useState(0);
|
||||||
|
const [navBackground, setNavBackground] = useState({
|
||||||
|
backgroundColor: "transparent",
|
||||||
|
});
|
||||||
|
useEffect(() => {
|
||||||
|
document.addEventListener("scroll", (event) => {
|
||||||
|
if (window.scrollY < 10) {
|
||||||
|
setNavBackground({ backgroundColor: "transparent" });
|
||||||
|
} else {
|
||||||
|
setNavBackground({ backgroundColor: "#232323" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const modalStyle = {
|
||||||
|
content: {
|
||||||
|
opacity: modalOpacity,
|
||||||
|
transition: "opacity 300ms ease-in-out",
|
||||||
|
top: "50%",
|
||||||
|
left: "50%",
|
||||||
|
right: "auto",
|
||||||
|
bottom: "auto",
|
||||||
|
marginRight: "-50%",
|
||||||
|
width: "100vw",
|
||||||
|
height: "100vh",
|
||||||
|
transform: "translate(-50%, -50%)",
|
||||||
|
overflow: "hidden",
|
||||||
|
display: "flex",
|
||||||
|
flexDirection: "column",
|
||||||
|
justifyContent: "flex-start",
|
||||||
|
alignItems: "center",
|
||||||
|
backgroundColor: "#232323",
|
||||||
|
minWidth: "30%",
|
||||||
|
minHeight: "30%",
|
||||||
|
animation: "slideUp 500ms ease-in-out",
|
||||||
|
border: "none",
|
||||||
|
},
|
||||||
|
overlay: {
|
||||||
|
opacity: modalOpacity,
|
||||||
|
transition: "opacity 300ms ease-in-out",
|
||||||
|
backgroundColor: "rgba(255, 255, 255, 0.15)",
|
||||||
|
backdropFilter: "blur(5px)",
|
||||||
|
zIndex: "1000",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const openModal = () => {
|
||||||
|
setModal(true);
|
||||||
|
setTimeout(() => setModalOpacity(1), 10);
|
||||||
|
};
|
||||||
|
|
||||||
|
const closeModal = () => {
|
||||||
|
setModalOpacity(0);
|
||||||
|
setTimeout(() => setModal(false), 300);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="navbar" style={navBackground}>
|
||||||
|
<Link className="navbar-logo" href="/">
|
||||||
|
ITR
|
||||||
|
</Link>
|
||||||
|
<div className="navbar-links">
|
||||||
|
<Link className="navbar-link" href="/">
|
||||||
|
🏠 Home
|
||||||
|
</Link>
|
||||||
|
<Link className="navbar-link" href="/about">
|
||||||
|
❓ About
|
||||||
|
</Link>
|
||||||
|
<Link className="navbar-link" href="/projects">
|
||||||
|
🤖 Projects
|
||||||
|
</Link>
|
||||||
|
<Link className="navbar-link" href="/gallery">
|
||||||
|
📸 Gallery
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="navbar-hamburger"
|
||||||
|
onClick={() => {
|
||||||
|
openModal();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
≡
|
||||||
|
</div>
|
||||||
|
<Modal
|
||||||
|
isOpen={modal}
|
||||||
|
onRequestClose={() => closeModal()}
|
||||||
|
contentLabel="Menu"
|
||||||
|
style={modalStyle}
|
||||||
|
>
|
||||||
|
<div className="hamburger">
|
||||||
|
<Link className="navbar-logo" href="/">
|
||||||
|
ITR
|
||||||
|
</Link>
|
||||||
|
<div
|
||||||
|
className="navbar-x"
|
||||||
|
onClick={() => {
|
||||||
|
closeModal();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
✕
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="hamburger-links">
|
||||||
|
<Link className="hamburger-link" href="/">
|
||||||
|
🏠 Home
|
||||||
|
</Link>
|
||||||
|
<Link className="hamburger-link" href="/about">
|
||||||
|
❓ About
|
||||||
|
</Link>
|
||||||
|
<Link className="hamburger-link" href="/projects">
|
||||||
|
🤖 Projects
|
||||||
|
</Link>
|
||||||
|
<Link className="hamburger-link" href="/gallery">
|
||||||
|
📸 Gallery
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Navbar;
|