diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 472e430..51d3d71 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"react": "^19.2.6",
"react-dom": "^19.2.6",
- "react-router-dom": "^7.15.0"
+ "react-router-dom": "^7.15.1"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
diff --git a/frontend/package.json b/frontend/package.json
index ddc12dc..f27921c 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -15,7 +15,7 @@
"dependencies": {
"react": "^19.2.6",
"react-dom": "^19.2.6",
- "react-router-dom": "^7.15.0"
+ "react-router-dom": "^7.15.1"
},
"devDependencies": {
"@eslint/js": "^10.0.1",
diff --git a/frontend/src/assets/timer.png b/frontend/src/assets/timer.png
new file mode 100644
index 0000000..01b2e71
Binary files /dev/null and b/frontend/src/assets/timer.png differ
diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx
index d53eb22..40dbbd1 100644
--- a/frontend/src/main.tsx
+++ b/frontend/src/main.tsx
@@ -3,11 +3,13 @@ import ReactDOM from 'react-dom/client'
import { BrowserRouter } from 'react-router-dom'
import App from './App'
import './styles/global.css'
+import Searching from './pages/queuePages/searching'
+import Found from './pages/queuePages/found'
ReactDOM.createRoot(document.getElementById('root')!).render(
-
+
- ,
+
)
\ No newline at end of file
diff --git a/frontend/src/pages/queuePages/found.css b/frontend/src/pages/queuePages/found.css
new file mode 100644
index 0000000..4bde8e3
--- /dev/null
+++ b/frontend/src/pages/queuePages/found.css
@@ -0,0 +1,307 @@
+@import url('https://fonts.googleapis.com/css2?family=Baloo+Bhai+2:wght@400;600;700;800&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Gloock&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap');
+
+.page-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-height: 100vh;
+ min-width: 100vw;
+ color: #F8FAFC;
+
+}
+
+.searching-section {
+ width: min(90%, 1000px);
+ height: auto;
+ min-height: 900px;
+ border: 5px solid #A78BFA;
+ border-radius: 30px;
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+
+ /*for circle and timer and writing stuff to be centered, maybe adjust? */
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 20px;
+ padding: 40px 20px;
+ transition: all 0.3s ease;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
+}
+
+.row-circles {
+ display: flex;
+ flex-direction: row;
+ gap: 50px; /*i dont know exact measurement of distance between circles, please correct if necessary*/
+ align-items: center;
+}
+
+.row-elo {
+ display: flex;
+ flex-direction: row;
+ gap: 275px;
+ align-items: center;
+ margin-bottom: 30px;
+}
+
+.row-info {
+ display: flex;
+ flex-direction: row;
+ gap: 140px;
+ align-items: center;
+ margin-bottom: 30px;
+ margin-top: 20px;
+}
+
+.big-row-info {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 10px;
+}
+
+.row-button {
+ display: flex;
+ flex-direction: row;
+ gap: 100px;
+ align-items: center;
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+
+.purple-circle {
+ width: 300px;
+ height: 300px;
+ border-radius: 50%;
+ background: linear-gradient(180deg, #A78BFA,#737373);
+ border: 10px solid #A78BFA;
+ margin: 0 auto 30px auto;
+ position: relative;
+ animation: pulse 2s infinite;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 20px 20px;
+}
+
+.blue-circle {
+ width: 300px;
+ height: 300px;
+ border-radius: 50%;
+ background: linear-gradient(180deg, #3B82F6,#737373);
+ border: 10px solid #3B82F6;
+ margin: 0 auto 30px auto;
+ position: relative;
+ animation: pulse 2s infinite;
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 20px 20px;
+}
+
+@keyframes pulse {
+ 0% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ 50% {
+ transform: scale(1.05);
+ opacity: 0.9;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+.timer-section {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10px;
+ margin-bottom: 30px;
+}
+
+.timer-icon {
+ width: 80px;
+ height: 80px;
+ background-image: url('../../assets/timer.png');
+ background-size: cover;
+ background-position: center;
+}
+
+.timer-text {
+ font-size: 80px;
+ font-family: "Gloock", serif;
+ font-weight: 400;
+ font-style: normal;
+ color: #0F172A;
+}
+
+.searching-text {
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 48px;
+ color: #0F172A;
+ margin-bottom: 10px;
+ font-weight: 700;
+ font-style: bold;
+}
+
+.vs-text {
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 64px;
+ color: #0F172A;
+ margin-bottom: 10px;
+ font-weight: 700;
+ font-style: bold;
+}
+
+.under-searching-text {
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ margin-bottom: 30px;
+}
+
+
+.elo-button {
+ background: #D9D9D9;
+ width: 200px;
+ height: 42px;
+ border: 1px solid #0F172A;
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+
+.elo-button-text{
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ justify-content: center;
+ align-items: center;
+}
+
+.info-button {
+ background: #D9D9D9;
+ width: 907px;
+ height: 161px;
+ border: 1px solid #0F172A;
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.info-button-text-grey{
+ font-family: "Baskervville", serif;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 400;
+ color: #64748B;
+ justify-content: center;
+ align-items: center;
+}
+
+.info-button-text-black{
+ font-family: "Baskervville", serif;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ justify-content: center;
+ align-items: center;
+}
+
+.match-details-grid {
+ border-radius: 8px;
+ padding: 20px;
+ margin: 20px 0;
+ width: 100%;
+}
+
+.grid-row {
+ display: grid;
+ grid-template-columns: 150px 0.5fr 150px 0.5fr;
+ gap: 100px;
+ margin-bottom: 15px;
+ margin-top: 15px;
+ align-items: center;
+}
+
+.grid-row:last-child {
+ margin-bottom: 0;
+}
+
+/* below is for it to work on mobile but i will clean it up when we get there*/
+@media (max-width: 600px) {
+ .grid-row {
+ grid-template-columns: 1fr;
+ gap: 5px;
+ margin-bottom: 20px;
+ }
+
+ .grid-label {
+ margin-top: 10px;
+ }
+}
+
+.cancel-button {
+ background: #EF4444;
+ width: 323px;
+ height: 72px;
+ border: 1px solid #0F172A;
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ padding: 10px 30px;
+ border-radius: 30px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
+
+}
+
+.cancel-button:hover {
+ background: rgba(180, 23, 23, 0.842);
+ transform: scale(1.1);
+}
+
+.approve-button {
+ background: #22C55E;
+ width: 323px;
+ height: 72px;
+ border: 1px solid #0F172A;
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ padding: 10px 30px;
+ border-radius: 30px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
+
+}
+
+.approve-button:hover {
+ background: rgba(15, 95, 46, 0.842);
+ transform: scale(1.1);
+}
+
+
diff --git a/frontend/src/pages/queuePages/found.tsx b/frontend/src/pages/queuePages/found.tsx
new file mode 100644
index 0000000..da9fa9d
--- /dev/null
+++ b/frontend/src/pages/queuePages/found.tsx
@@ -0,0 +1,56 @@
+import './found.css';
+
+const Found = () => {
+ return (
+
+
+
Opponent Found!
+
+
+
+
+
+
+
+
Match Type
+
Ranked
+
Time Limit
+
15 minutes
+
+
+
Difficulty
+
Medium
+
Number of Questions
+
5
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default Found;
\ No newline at end of file
diff --git a/frontend/src/pages/queuePages/searching.css b/frontend/src/pages/queuePages/searching.css
new file mode 100644
index 0000000..d8cb864
--- /dev/null
+++ b/frontend/src/pages/queuePages/searching.css
@@ -0,0 +1,132 @@
+@import url('https://fonts.googleapis.com/css2?family=Baloo+Bhai+2:wght@400;600;700;800&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Gloock&display=swap');
+
+.page-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-height: 100vh;
+ min-width: 100vw;
+ color: #F8FAFC;
+
+}
+
+.searching-section {
+ width: min(90%, 900px);
+ height: auto;
+ min-height: 600px;
+ border: 5px solid #A78BFA;
+ border-radius: 30px;
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+
+ /*for circle and timer and writing stuff to be centered, maybe adjust? */
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 20px;
+ padding: 40px 20px;
+ transition: all 0.3s ease;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
+}
+
+
+.purple-circle {
+ width: 300px;
+ height: 300px;
+ border-radius: 50%;
+ background: linear-gradient(180deg, #A78BFA,#737373);
+ border: 10px solid #A78BFA;
+ margin: 0 auto 30px auto;
+ position: relative;
+ animation: pulse 2s infinite;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ gap: 20px;
+ padding: 40px 20px;
+}
+
+@keyframes pulse {
+ 0% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ 50% {
+ transform: scale(1.05);
+ opacity: 0.9;
+ }
+ 100% {
+ transform: scale(1);
+ opacity: 1;
+ }
+}
+
+.timer-section {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10px;
+ margin-bottom: 30px;
+}
+
+.timer-icon {
+ width: 80px;
+ height: 80px;
+ background-image: url('../../assets/timer.png');
+ background-size: cover;
+ background-position: center;
+}
+
+.timer-text {
+ font-size: 80px;
+ font-family: "Gloock", serif;
+ font-weight: 400;
+ font-style: normal;
+ color: #0F172A;
+}
+
+.searching-text {
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 48px;
+ color: #0F172A;
+ margin-bottom: 10px;
+ font-weight: 700;
+ font-style: bold;
+}
+
+.under-searching-text {
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ margin-bottom: 30px;
+}
+
+.cancel-button {
+ background: #EF4444;
+ width: 323px;
+ height: 69px;
+ border: 1px solid #0F172A;
+ font-family: 'Baloo Bhai 2', cursive;
+ font-size: 32px;
+ font-style: normal;
+ font-weight: 400;
+ color: #0F172A;
+ padding: 10px 30px;
+ border-radius: 30px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
+
+}
+
+.cancel-button:hover {
+ background: rgba(180, 23, 23, 0.842);
+ transform: scale(1.1);
+}
+
+
diff --git a/frontend/src/pages/queuePages/searching.tsx b/frontend/src/pages/queuePages/searching.tsx
new file mode 100644
index 0000000..fec8925
--- /dev/null
+++ b/frontend/src/pages/queuePages/searching.tsx
@@ -0,0 +1,31 @@
+import './searching.css';
+
+
+
+//create in searching page, when found immediately go to found, that is what can be in interface for searching
+
+
+const Searching = () => {
+ return (
+
+
+
+
+
+
+
Searching for Opponent...
+
Finding a player with similar Elo
+
+
+
+
+
+ );
+};
+
+export default Searching;
\ No newline at end of file