diff --git a/package.json b/package.json
index 3801da6..28c8746 100644
--- a/package.json
+++ b/package.json
@@ -1,41 +1,20 @@
{
- "name": "webild-components-2",
- "version": "0.1.0",
- "private": true,
+ "name": "webild-components-2", "version": "0.1.0", "private": true,
"scripts": {
- "dev": "next dev --turbopack",
- "build": "next build --turbopack",
- "start": "next start",
- "lint": "eslint"
+ "dev": "react-scripts start", "build": "react-scripts build", "start": "react-scripts start", "test": "react-scripts test", "eject": "react-scripts eject"
},
"dependencies": {
- "@gsap/react": "^2.1.2",
- "@react-three/drei": "^10.7.7",
- "@react-three/fiber": "^9.4.0",
- "clsx": "^2.1.1",
- "cobe": "^0.6.5",
- "embla-carousel-auto-scroll": "^8.6.0",
- "embla-carousel-react": "^8.6.0",
- "gsap": "^3.13.0",
- "lenis": "^1.3.15",
- "lucide-react": "^0.555.0",
- "motion-number": "^1.0.0",
- "next": "16.0.7",
- "react": "19.2.1",
- "react-dom": "19.2.1",
- "react-fast-marquee": "^1.6.5",
- "tailwind-merge": "^3.4.0",
- "three": "^0.181.2"
+ "@gsap/react": "^2.1.2", "@react-three/drei": "^10.7.7", "@react-three/fiber": "^9.4.0", "clsx": "^2.1.1", "cobe": "^0.6.5", "embla-carousel-auto-scroll": "^8.6.0", "embla-carousel-react": "^8.6.0", "gsap": "^3.13.0", "lenis": "^1.3.15", "lucide-react": "^0.555.0", "motion-number": "^1.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-fast-marquee": "^1.6.5", "react-scripts": "5.0.1", "tailwind-merge": "^3.4.0", "three": "^0.181.2", "web-vitals": "^2.1.4"
},
"devDependencies": {
- "@eslint/eslintrc": "^3",
- "@tailwindcss/postcss": "^4",
- "@types/node": "^20",
- "@types/react": "^19",
- "@types/react-dom": "^19",
- "eslint": "^9",
- "eslint-config-next": "16.0.7",
- "tailwindcss": "^4",
- "typescript": "^5"
+ "@types/node": "^16.18.0", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", "tailwindcss": "^3.4.0", "typescript": "^4.9.5"
+ },
+ "browserslist": {
+ "production": [
+ ">0.2%", "not dead", "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version", "last 1 firefox version", "last 1 safari version"
+ ]
}
-}
+}
\ No newline at end of file
diff --git a/public/images/placeholder.webp b/public/images/placeholder.webp
new file mode 100644
index 0000000..e69de29
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..5eec8fc
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,1237 @@
+
+
+
+
+
+
+
+
+
+
+ React App
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..89c0ad6
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,33 @@
+.App {
+ text-align: center;
+}
+
+.App-logo {
+ height: 40vmin;
+ pointer-events: none;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ .App-logo {
+ animation: App-logo-spin infinite 20s linear;
+ }
+}
+
+.App-header {
+ background-color: #282c34;
+ padding: 20px;
+ color: white;
+}
+
+.App-link {
+ color: #61dafb;
+}
+
+@keyframes App-logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
\ No newline at end of file
diff --git a/src/App.tsx b/src/App.tsx
new file mode 100644
index 0000000..3ff8dac
--- /dev/null
+++ b/src/App.tsx
@@ -0,0 +1,13 @@
+import React from 'react';
+import './App.css';
+import MainPage from './components/MainPage';
+
+function App() {
+ return (
+
+
+
+ );
+}
+
+export default App;
\ No newline at end of file
diff --git a/src/components/MainPage.tsx b/src/components/MainPage.tsx
new file mode 100644
index 0000000..ea9797c
--- /dev/null
+++ b/src/components/MainPage.tsx
@@ -0,0 +1,238 @@
+import React from 'react';
+import { Star } from 'lucide-react';
+
+interface TestimonialCardProps {
+ name?: string;
+ role?: string;
+ company?: string;
+ content?: string;
+ rating?: number;
+ avatar?: string;
+}
+
+const TestimonialCardTwelve: React.FC = ({
+ name = "John Doe", role = "Developer", company = "Tech Corp", content = "Great service and excellent support!", rating = 5,
+ avatar = "/images/placeholder.webp"
+}) => {
+ return (
+
+
+

+
+
{name}
+
{role} at {company}
+
+
+
+ {Array.from({ length: rating }).map((_, i) => (
+
+ ))}
+
+
{content}
+
+ );
+};
+
+const MainPage: React.FC = () => {
+ const testimonials = [
+ {
+ name: "Sarah Johnson", role: "Product Manager", company: "TechStart", content: "Outstanding quality and professional service. Highly recommended!", rating: 5
+ },
+ {
+ name: "Mike Chen", role: "CTO", company: "InnovateCorp", content: "Exceeded our expectations in every way. Great team to work with.", rating: 5
+ },
+ {
+ name: "Emily Davis", role: "Designer", company: "Creative Agency", content: "Fantastic results and smooth collaboration throughout the project.", rating: 5
+ }
+ ];
+
+ const companies = [
+ { name: "Sanofi", logo: "/images/sanofi.b18c1526-1768995250449.png" },
+ { name: "Adidas", logo: "/images/adidas.718f26f2-1768995250458.svg" },
+ { name: "Mercedes", logo: "/images/mercedes.ee8047a9-1768995250815.png" },
+ { name: "GitLab", logo: "/images/gitlab.4f9d2995-1768995250825.png" },
+ { name: "Decathlon", logo: "/images/decathlon.1f3c4744-1768995250828.png" },
+ { name: "Roche", logo: "/images/roche-logo.979d9061-1768995250830.png" },
+ { name: "Autodesk", logo: "/images/autodesk.a7f2b58e-1768995250846.png" },
+ { name: "Capgemini", logo: "/images/capgemini.a1d43b77-1768995250853.svg" },
+ { name: "Red Hat", logo: "/images/red-hat.c5e6e64a-1768995250854.svg" },
+ { name: "IBM", logo: "/images/ibm.b8c76e06-1768995250854.svg" },
+ { name: "BMW", logo: "/images/bmw.0ce4c05c-1768995250854.svg" },
+ { name: "TotalEnergies", logo: "/images/totalenergies.5a993082-1768995250856.svg" }
+ ];
+
+ return (
+
+ {/* Header */}
+
+
+ {/* Hero Section */}
+
+
+
+ Build Amazing Digital Experiences
+
+
+ We create innovative solutions that help businesses thrive in the digital world.
+
+
+
+
+
+ {/* Companies Section */}
+
+
+
Trusted by industry leaders
+
+ {companies.map((company, index) => (
+
+

+
+ ))}
+
+
+
+
+ {/* Services Section */}
+
+
+
+
Our Services
+
+ We offer comprehensive digital solutions to help your business succeed.
+
+
+
+
+

+
Digital Consulting
+
+ Strategic guidance to help you navigate the digital landscape and make informed decisions.
+
+
+
+

+
Web Development
+
+ Custom web applications built with modern technologies and best practices.
+
+
+
+

+
Digital Security
+
+ Comprehensive security solutions to protect your digital assets and data.
+
+
+
+
+
+
+ {/* Testimonials Section */}
+
+
+
+
What Our Clients Say
+
+ Don't just take our word for it - hear from our satisfied customers.
+
+
+
+ {testimonials.map((testimonial, index) => (
+
+ ))}
+
+
+
+
+ {/* Contact Section */}
+
+
+ {/* Footer */}
+
+
+ );
+};
+
+export default MainPage;
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..4bf1c5d
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1,17 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ monospace;
+}
\ No newline at end of file
diff --git a/src/index.tsx b/src/index.tsx
new file mode 100644
index 0000000..23b3422
--- /dev/null
+++ b/src/index.tsx
@@ -0,0 +1,13 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import './index.css';
+import App from './App';
+
+const root = ReactDOM.createRoot(
+ document.getElementById('root') as HTMLElement
+);
+root.render(
+
+
+
+);
\ No newline at end of file
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..92a7d97
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,9 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: [
+ "./src/**/*.{js,jsx,ts,tsx}"],
+ theme: {
+ extend: {},
+ },
+ plugins: [],
+}
\ No newline at end of file