diff --git a/frontend/src/App.js b/frontend/src/App.js
index 6e78e414..e649f242 100644
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -9,6 +9,7 @@ import HomePage from "./components/home/HomePage.js";
import CommunityPage from "./components/community/CommunityPage.js";
import MarketsPage from "./components/markets/MarketsPage.js";
import PortfolioPage from "./components/portfolio/PortfolioPage.js";
+import NotFound from "./components/notfound/NotFound.js";
function App() {
return (
@@ -29,6 +30,7 @@ function App() {
} />
} />
+ } />
diff --git a/frontend/src/assets/notfound-bear.png b/frontend/src/assets/notfound-bear.png
new file mode 100644
index 00000000..e5c44443
Binary files /dev/null and b/frontend/src/assets/notfound-bear.png differ
diff --git a/frontend/src/components/notfound/NotFound.js b/frontend/src/components/notfound/NotFound.js
new file mode 100644
index 00000000..4e21439e
--- /dev/null
+++ b/frontend/src/components/notfound/NotFound.js
@@ -0,0 +1,30 @@
+// src/components/NotFound.js
+import React from "react";
+import { Link } from "react-router-dom";
+import "../../styles/NotFound.css";
+import notfoundbear from "../../assets/notfound-bear.png";
+
+const NotFound = () => {
+ return (
+
+
+
404
+
+
+ Oops! It looks like you are lost. Let the bear help you find your way.
+
+
+
+
+
+ Take me home
+
+
+ );
+};
+
+export default NotFound;
diff --git a/frontend/src/styles/NotFound.css b/frontend/src/styles/NotFound.css
new file mode 100644
index 00000000..a8d33a6a
--- /dev/null
+++ b/frontend/src/styles/NotFound.css
@@ -0,0 +1,80 @@
+.not-found-container {
+ text-align: center;
+ margin-top: 50px;
+ padding: 20px;
+ font-family: 'Roboto', sans-serif;
+}
+
+.error-404 h1 {
+ font-size: 10rem;
+ margin: 0;
+ color: var(--color-error-500);
+}
+
+.error-message {
+ font-size: 1.5rem;
+ color: var(--color-neutral-600);
+ margin-top: -20px;
+ animation: fadeIn 2s ease-in-out;
+}
+
+.notfoundbear {
+ position: relative;
+ margin: 50px auto;
+ width: 100px;
+}
+
+.notfoundbear-img {
+ width: 100%;
+ animation: float 3s ease-in-out infinite;
+}
+
+.back-home {
+ display: inline-block;
+ padding: 10px 20px;
+ margin-top: 20px;
+ color: var(--color-neutral-white);
+ background-color: var(--color-primary-500);
+ border-radius: 5px;
+ text-decoration: none;
+ font-weight: bold;
+ transition: background-color 0.3s ease;
+}
+
+.back-home:hover {
+ background-color: var(--color-primary-600);
+}
+
+@keyframes float {
+ 0% {
+ transform: translateY(0);
+ }
+ 50% {
+ transform: translateY(-20px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+.animated-bounce {
+ animation: bounce 1.5s infinite;
+}
+
+@keyframes bounce {
+ 0%, 100% {
+ transform: translateY(0);
+ }
+ 50% {
+ transform: translateY(-10px);
+ }
+}
+
+@keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}