diff --git a/src/App.tsx b/src/App.tsx
index dc2c433..b4c8244 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,23 +1,22 @@
-import { Card, CardContent, Container, ThemeProvider, Typography } from '@mui/material';
+import { ThemeProvider } from '@mui/material';
import { Theme } from './Theme.ts';
+import { BrowserRouter, Route, Routes } from 'react-router';
+import { Content } from './layout/Content.tsx';
+import { Home } from './pages/Home.tsx';
+import { About } from './pages/About.tsx';
function App() {
return (
<>
-
-
-
- ({ color: theme.palette.text.secondary })}
- fontSize={36}
- fontFamily='hammersmith-one'
- >
- Hello, World!
-
-
-
-
+
+
+
+ } />
+ } />
+
+
+
>
);
diff --git a/src/layout/Content.tsx b/src/layout/Content.tsx
new file mode 100644
index 0000000..e75fec8
--- /dev/null
+++ b/src/layout/Content.tsx
@@ -0,0 +1,14 @@
+import { Box } from '@mui/material';
+import React, { type PropsWithChildren, type ReactElement } from 'react';
+import { TopBar } from './TopBar.tsx';
+
+export type ContentProps = PropsWithChildren;
+
+export function Content({ children }: ContentProps): ReactElement {
+ return (
+
+
+ {children}
+
+ );
+}
diff --git a/src/layout/TopBar.tsx b/src/layout/TopBar.tsx
new file mode 100644
index 0000000..1e9b297
--- /dev/null
+++ b/src/layout/TopBar.tsx
@@ -0,0 +1,29 @@
+import React, { type ReactElement } from 'react';
+import { Box, Tab, Tabs } from '@mui/material';
+import { useLocation, useNavigate } from 'react-router';
+
+const ValidTabs = ['home', 'about', 'contact'] as const satisfies string[];
+
+export function TopBar(): ReactElement {
+ const { pathname } = useLocation();
+ const navigate = useNavigate();
+ const selectedTab =
+ ValidTabs.find((tabName) => pathname.toLowerCase().startsWith('/' + tabName)) ??
+ ValidTabs[0];
+
+ return (
+
+ navigate('/' + value)}
+ >
+ {ValidTabs.map((tab) => (
+
+ ))}
+
+
+ );
+}
diff --git a/src/pages/About.tsx b/src/pages/About.tsx
new file mode 100644
index 0000000..bd5b83d
--- /dev/null
+++ b/src/pages/About.tsx
@@ -0,0 +1,5 @@
+import { Fragment, type ReactElement } from 'react';
+
+export function About(): ReactElement {
+ return Hello, About.;
+}
diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx
new file mode 100644
index 0000000..27aa4b5
--- /dev/null
+++ b/src/pages/Home.tsx
@@ -0,0 +1,11 @@
+import React, { type ReactElement } from 'react';
+import { Card, CardContent, CardHeader } from '@mui/material';
+
+export function Home(): ReactElement {
+ return (
+
+
+ Hello, others
+
+ );
+}