+ {/* Background Image */}
+
+
+ {/* Main Content */}
+
{/* Text Content */}
- Rhein Software Development
+ Rhein-Software Development
-
- Wir entwickeln performante und zukunftssichere Software für deine Vision.
+
+
+ Digitale Lösungen für dein Unternehmen.
+
+
+
+
- {/* Image Content */}
+
+ {/* Floating Image */}
-
+
-
- {/* Farbverlauf zum nächsten Bereich */}
- {/*
*/}
);
};
diff --git a/components/Home/Navbar/MobileNav.tsx b/components/Home/Navbar/MobileNav.tsx
deleted file mode 100644
index 853025d..0000000
--- a/components/Home/Navbar/MobileNav.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import {navLinks} from "@/constant/Constant";
-import Link from "next/link";
-import React from "react";
-import {CgClose} from "react-icons/cg";
-
-type Props = {
- showNav: boolean;
- closeNav: () => void;
-};
-
-const MobileNav = ({closeNav, showNav}: Props) => {
- const navOpen = showNav ? "translate-x-0" : "translate-x-[-100%]";
-
- return (
-
- );
-};
-
-export default MobileNav;
diff --git a/components/Home/Navbar/DesktopNav.tsx b/components/Navbar/DesktopNav.tsx
similarity index 64%
rename from components/Home/Navbar/DesktopNav.tsx
rename to components/Navbar/DesktopNav.tsx
index e7d8cf7..9ed9f06 100644
--- a/components/Home/Navbar/DesktopNav.tsx
+++ b/components/Navbar/DesktopNav.tsx
@@ -1,5 +1,6 @@
"use client";
+import {usePathname} from "next/navigation";
import {navLinks} from "@/constant/Constant";
import Link from "next/link";
import React, {useContext, useEffect, useState} from "react";
@@ -18,6 +19,9 @@ const Nav = ({openNav}: Props) => {
const [buttonSize, setButtonSize] = useState("md:px-6 md:py-2 px-4 py-1 text-sm");
const {theme, toggleTheme} = useContext(ThemeContext);
const colors = themeColors[theme];
+ const pathname = usePathname();
+
+ const navColorClass = theme === "dark" || !navBg ? "text-white" : "text-black";
useEffect(() => {
const handler = () => {
@@ -40,17 +44,17 @@ const Nav = ({openNav}: Props) => {
return (
{/* LOGO */}
-
+
Rhein Software
@@ -58,26 +62,34 @@ const Nav = ({openNav}: Props) => {
{navLinks.map((link) => (
-
{link.label}
+
+ {link.label}
+
))}
{/* Right Side Buttons */}
- {/* Portal Button */}
-
+ {/* Contact Button */}
+
+
+
{/* Theme Toggle Button */}
@@ -85,7 +97,7 @@ const Nav = ({openNav}: Props) => {
{/* Burger Menu (for mobile) */}
@@ -93,4 +105,4 @@ const Nav = ({openNav}: Props) => {
);
};
-export default Nav;
\ No newline at end of file
+export default Nav;
diff --git a/components/Navbar/MobileNav.tsx b/components/Navbar/MobileNav.tsx
new file mode 100644
index 0000000..2d9ed07
--- /dev/null
+++ b/components/Navbar/MobileNav.tsx
@@ -0,0 +1,62 @@
+import { navLinks } from "@/constant/Constant";
+import Link from "next/link";
+import React, { useContext } from "react";
+import { CgClose } from "react-icons/cg";
+import { ThemeContext } from "@/components/provider/ThemeProvider";
+import { themeColors } from "@/components/Helper/ThemeColors";
+
+type Props = {
+ showNav: boolean;
+ closeNav: () => void;
+};
+
+const MobileNav = ({ closeNav, showNav }: Props) => {
+ const navOpen = showNav ? "translate-y-0 opacity-100" : "-translate-y-20 opacity-0 pointer-events-none";
+ const { theme, toggleTheme } = useContext(ThemeContext);
+ const colors = themeColors[theme];
+ return (
+
+ {/* overlay background */}
+
+
+ {/* nav menu */}
+
+
+ {/* Close icon */}
+
+
+ {navLinks.map((link) => (
+
+
+ {link.label}
+
+
+ ))}
+
+ {/* Theme toggle button */}
+
+
+
+
+ );
+};
+
+export default MobileNav;
diff --git a/components/Home/Navbar/Nav.tsx b/components/Navbar/Nav.tsx
similarity index 100%
rename from components/Home/Navbar/Nav.tsx
rename to components/Navbar/Nav.tsx
diff --git a/constant/Constant.ts b/constant/Constant.ts
index 0335c99..64dd8e4 100644
--- a/constant/Constant.ts
+++ b/constant/Constant.ts
@@ -11,7 +11,7 @@ export const navLinks = [
},
{
id: 3,
- url: 'contact',
- label: 'Kontakt',
+ url: '/services',
+ label: 'Leistungen',
}
];
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 46a2158..1023b89 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,7 +13,8 @@
"next": "15.1.7",
"react": "^19.0.0",
"react-dom": "^19.0.0",
- "react-icons": "^5.4.0"
+ "react-icons": "^5.4.0",
+ "react-simple-typewriter": "^5.0.1"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
@@ -5530,6 +5531,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/react-simple-typewriter": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/react-simple-typewriter/-/react-simple-typewriter-5.0.1.tgz",
+ "integrity": "sha512-vA5HkABwJKL/DJ4RshSlY/igdr+FiVY4MLsSQYJX6FZG/f1/VwN4y1i3mPXRyfaswrvI8xii1kOVe1dYtO2Row==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": ">=18.0.0",
+ "react-dom": ">=18.0.0"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
diff --git a/package.json b/package.json
index 91043a7..379afc6 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,8 @@
"next": "15.1.7",
"react": "^19.0.0",
"react-dom": "^19.0.0",
- "react-icons": "^5.4.0"
+ "react-icons": "^5.4.0",
+ "react-simple-typewriter": "^5.0.1"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
diff --git a/public/images/home_hero.jpg b/public/images/home_hero.jpg
new file mode 100644
index 0000000..1f05707
Binary files /dev/null and b/public/images/home_hero.jpg differ