Add react-simple-typewriter and integrate in Hero component

- Added `react-simple-typewriter` dependency to project.
- Integrated a typewriter effect in the Hero component for dynamic text.
This commit is contained in:
2025-04-06 19:18:04 +02:00
parent a5454882ed
commit c44c713925
3 changed files with 50 additions and 11 deletions

View File

@@ -1,4 +1,7 @@
"use client";
import Image from "next/image"; import Image from "next/image";
import {Typewriter} from "react-simple-typewriter";
const Hero = () => { const Hero = () => {
return ( return (
@@ -9,7 +12,7 @@ const Hero = () => {
color: "white", color: "white",
}} }}
> >
{/* Background Image with Blur */} {/* Background Image */}
<div className="absolute inset-0 z-0"> <div className="absolute inset-0 z-0">
<Image <Image
src="/images/home_hero.jpg" src="/images/home_hero.jpg"
@@ -19,37 +22,58 @@ const Hero = () => {
className="blur-md scale-105" className="blur-md scale-105"
priority priority
/> />
{/* Dark overlay for better text contrast */}
<div className="absolute inset-0 bg-black/40"/> <div className="absolute inset-0 bg-black/40"/>
</div> </div>
{/* Main content */} {/* Main Content */}
<div className="relative z-10 flex justify-center flex-col w-[90%] sm:w-[80%] h-full mx-auto"> <div className="relative z-10 flex justify-center flex-col w-[90%] sm:w-[80%] h-full mx-auto">
<div className="grid grid-cols-1 lg:grid-cols-2 items-center gap-12"> <div className="grid grid-cols-1 lg:grid-cols-2 items-center gap-12">
{/* Text Content */} {/* Text Content */}
<div> <div>
<h1 <h1
data-aos="fade-up" data-aos="fade-up"
className="text-2xl sm:text-4xl md:text-5xl mt-6 mb-6 font-bold md:leading-[3rem] lg:leading-[3.5rem] text-white" className="text-3xl sm:text-4xl md:text-5xl mt-6 mb-6 font-bold text-white"
> >
Rhein Software Development Rhein-Software Development
</h1> </h1>
<p <p
data-aos="fade-up" data-aos="fade-up"
data-aos-delay="200" data-aos-delay="200"
className="text-white" className="text-lg md:text-xl text-gray-400"
> >
Wir entwickeln performante und zukunftssichere Software für deine Vision. Wir bieten digitale Lösungen für dein Unternehmen.
</p>
<p
data-aos="fade-up"
data-aos-delay="400"
className="mt-4 text-lg md:text-xl font-semibold text-white"
>
<Typewriter
words={["Beratung", "Entwicklung", "Wartung", "Fehlerbehebung"]}
loop={true}
cursor
cursorStyle="_"
typeSpeed={60}
deleteSpeed={40}
delaySpeed={1500} // ⬅️ Delay before it starts typing the FIRST word
/>
</p> </p>
</div> </div>
{/* Floating Image Content */} {/* Floating Image */}
<div <div
data-aos="fade-up" data-aos="fade-up"
data-aos-delay="400" data-aos-delay="400"
className="hidden lg:block animate-float" className="hidden lg:block animate-float"
> >
<Image src="/images/hero.png" alt="hero graphic" width={700} height={700}/> <Image
src="/images/hero.png"
alt="hero graphic"
width={700}
height={700}
/>
</div> </div>
</div> </div>
</div> </div>

16
package-lock.json generated
View File

@@ -13,7 +13,8 @@
"next": "15.1.7", "next": "15.1.7",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^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": { "devDependencies": {
"@eslint/eslintrc": "^3", "@eslint/eslintrc": "^3",
@@ -5530,6 +5531,19 @@
"dev": true, "dev": true,
"license": "MIT" "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": { "node_modules/read-cache": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",

View File

@@ -14,7 +14,8 @@
"next": "15.1.7", "next": "15.1.7",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^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": { "devDependencies": {
"@eslint/eslintrc": "^3", "@eslint/eslintrc": "^3",