diff --git a/package.json b/package.json new file mode 100644 index 0000000..8505288 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "gamehub", "version": "0.1.0", "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", "@types/node": "^16.18.23", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "lucide-react": "^0.263.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "typescript": "^4.9.5", "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", "not dead", "not op_mini all" + ], + "development": [ + "last 1 chrome version", "last 1 firefox version", "last 1 safari version" + ] + }, + "devDependencies": { + "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "autoprefixer": "^10.4.14", "postcss": "^8.4.24", "tailwindcss": "^3.3.2" + } +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..0b99efa --- /dev/null +++ b/public/index.html @@ -0,0 +1,1237 @@ + + + + + + + + + + + GameHub + + + +
+ + + + + diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..4931613 --- /dev/null +++ b/src/App.css @@ -0,0 +1,3 @@ +.App { + text-align: center; +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..c62ad9b --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import HomePage from './components/HomePage'; +import './App.css'; + +function App() { + return ( +
+ +
+ ); +} + +export default App; diff --git a/src/components/HomePage.tsx b/src/components/HomePage.tsx new file mode 100644 index 0000000..d4af37e --- /dev/null +++ b/src/components/HomePage.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { Play, Users, Trophy, Star } from 'lucide-react'; + +const HomePage = () => { + return ( +
+ {/* Header */} +
+
+
GameHub
+ + +
+
+ + {/* Hero Section */} +
+
+

+ Welcome to GameHub +

+

+ The ultimate gaming platform where players connect, compete, and conquer together. +

+ +
+
+ + {/* Features */} +
+
+

Why Choose GameHub?

+
+
+ +

Global Community

+

Connect with millions of players worldwide

+
+
+ +

Tournaments

+

Compete in epic tournaments and win prizes

+
+
+ +

Premium Experience

+

Enjoy ad-free gaming with exclusive content

+
+
+
+
+ + {/* Footer */} + +
+ ); +}; + +export default HomePage; diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..17df0e7 --- /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; +} diff --git a/src/index.tsx b/src/index.tsx new file mode 100644 index 0000000..88b4f64 --- /dev/null +++ b/src/index.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot( + document.getElementById('root') as HTMLElement +); +root.render( + + + +); + +reportWebVitals(); diff --git a/src/reportWebVitals.ts b/src/reportWebVitals.ts new file mode 100644 index 0000000..49a2a16 --- /dev/null +++ b/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..6b48b48 --- /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: [], +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..70826b2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "es5", "lib": [ + "dom", "dom.iterable", "es6" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": [ + "src" + ] +}