├── .eslintrc.json ├── src ├── app │ ├── favicon.ico │ ├── public │ │ └── Logo.png │ ├── assest │ │ ├── card2bg.jpg │ │ ├── card3bg.jpg │ │ ├── rcctech.png │ │ ├── footerbg.png │ │ ├── rctechlogo.png │ │ ├── skills │ │ │ ├── cpp.png │ │ │ ├── figma.png │ │ │ ├── java.png │ │ │ ├── react.png │ │ │ ├── express.png │ │ │ ├── github.png │ │ │ ├── mongodb.png │ │ │ ├── node-js.png │ │ │ ├── postman.png │ │ │ ├── tailwind.png │ │ │ ├── vercel.jpg │ │ │ └── javascript.png │ │ ├── xing.svg │ │ ├── youtube.svg │ │ ├── linkedin.svg │ │ ├── card4bg.svg │ │ ├── code.svg │ │ └── instagram.svg │ ├── fonts │ │ ├── GeistVF.woff │ │ └── GeistMonoVF.woff │ ├── utils │ │ └── cn.tsx │ ├── components │ │ ├── theme-provider.tsx │ │ ├── button-mode.tsx │ │ └── Navbar.tsx │ ├── globals.css │ ├── layout.tsx │ ├── not-found.tsx │ ├── page.tsx │ └── projects │ │ └── page.tsx ├── components │ ├── images │ │ ├── ourWork1.png │ │ ├── ourWork2.png │ │ ├── ourWork3.png │ │ └── outWork1-hi.png │ ├── SkillComponent.tsx │ ├── TechzMagzine.tsx │ ├── OurWork.tsx │ ├── ProjectItems.tsx │ ├── Footer.tsx │ ├── Faq.tsx │ └── Club.tsx └── styles.css ├── next.config.mjs ├── postcss.config.mjs ├── .gitignore ├── tsconfig.json ├── .github └── workflows │ ├── greetings.yml │ └── auto-comment-on-close.yml ├── package.json ├── CONTRIBUTING.md ├── tailwind.config.ts ├── DESIGN.md ├── README.md ├── feedback.html └── CODE_OF_CONDUCT.md /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next/core-web-vitals", "next/typescript"] 3 | } 4 | -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/public/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/public/Logo.png -------------------------------------------------------------------------------- /src/app/assest/card2bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/card2bg.jpg -------------------------------------------------------------------------------- /src/app/assest/card3bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/card3bg.jpg -------------------------------------------------------------------------------- /src/app/assest/rcctech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/rcctech.png -------------------------------------------------------------------------------- /src/app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /src/app/assest/footerbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/footerbg.png -------------------------------------------------------------------------------- /src/app/assest/rctechlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/rctechlogo.png -------------------------------------------------------------------------------- /src/app/assest/skills/cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/cpp.png -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /src/app/assest/skills/figma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/figma.png -------------------------------------------------------------------------------- /src/app/assest/skills/java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/java.png -------------------------------------------------------------------------------- /src/app/assest/skills/react.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/react.png -------------------------------------------------------------------------------- /src/app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /src/app/assest/skills/express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/express.png -------------------------------------------------------------------------------- /src/app/assest/skills/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/github.png -------------------------------------------------------------------------------- /src/app/assest/skills/mongodb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/mongodb.png -------------------------------------------------------------------------------- /src/app/assest/skills/node-js.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/node-js.png -------------------------------------------------------------------------------- /src/app/assest/skills/postman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/postman.png -------------------------------------------------------------------------------- /src/app/assest/skills/tailwind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/tailwind.png -------------------------------------------------------------------------------- /src/app/assest/skills/vercel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/vercel.jpg -------------------------------------------------------------------------------- /src/components/images/ourWork1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/components/images/ourWork1.png -------------------------------------------------------------------------------- /src/components/images/ourWork2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/components/images/ourWork2.png -------------------------------------------------------------------------------- /src/components/images/ourWork3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/components/images/ourWork3.png -------------------------------------------------------------------------------- /src/app/assest/skills/javascript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/app/assest/skills/javascript.png -------------------------------------------------------------------------------- /src/components/images/outWork1-hi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RCCTechzClub/TechzRevamp/HEAD/src/components/images/outWork1-hi.png -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /src/app/utils/cn.tsx: -------------------------------------------------------------------------------- 1 | import { ClassValue, clsx } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } -------------------------------------------------------------------------------- /src/app/assest/xing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/app/components/theme-provider.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import { ThemeProvider as NextThemesProvider } from "next-themes" 5 | import { type ThemeProviderProps } from "next-themes/dist/types" 6 | 7 | export function ThemeProvider({ children, ...props }: ThemeProviderProps) { 8 | return {children} 9 | } 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /src/app/assest/youtube.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "ESNext", 10 | "target": "ESNext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./src/*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: Greetings 2 | 3 | on: [pull_request_target, issues] 4 | 5 | jobs: 6 | greeting: 7 | runs-on: ubuntu-latest 8 | permissions: 9 | issues: write 10 | pull-requests: write 11 | steps: 12 | - uses: actions/first-interaction@v1 13 | with: 14 | repo-token: ${{ secrets.GITHUB_TOKEN }} 15 | issue-message: "👋 Thank you for raising an issue! We appreciate your effort in helping us improve. Our TechzRevamp team will review it shortly. Stay tuned!" 16 | pr-message: " 🎉 Thank you for your contribution! Your pull request has been submitted successfully. A maintainer from TechzRevamp team will review it as soon as possible. We appreciate your support in making this project better" 17 | -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Poppins:wght@100..900&display=swap'); 6 | 7 | :root { 8 | --background: #ffffff; 9 | --foreground: #171717; 10 | } 11 | 12 | @media (prefers-color-scheme: dark) { 13 | :root { 14 | --background: #0a0a0a; 15 | --foreground: #ededed; 16 | } 17 | } 18 | 19 | body { 20 | color: var(--foreground); 21 | background: var(--background); 22 | font-family: 'Inter', 'Poppins', Arial, Helvetica, sans-serif; /* Use imported fonts */ 23 | } 24 | 25 | @layer utilities { 26 | .text-balance { 27 | text-wrap: balance; /* Ensure this utility is utilized where needed */ 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/app/assest/linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/app/assest/card4bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.github/workflows/auto-comment-on-close.yml: -------------------------------------------------------------------------------- 1 | name: Comment on Issue Close 2 | 3 | on: 4 | issues: 5 | types: [closed] 6 | 7 | jobs: 8 | greet-on-close: 9 | runs-on: ubuntu-latest 10 | permissions: 11 | issues: write 12 | steps: 13 | - name: Greet User 14 | uses: actions/github-script@v5 15 | with: 16 | github-token: ${{ secrets.GITHUB_TOKEN }} 17 | script: | 18 | const issue = context.payload.issue; 19 | const issueCreator = issue.user.login; 20 | const issueNumber = issue.number; 21 | 22 | const greetingMessage = `Hello @${issueCreator}! Your issue #${issueNumber} has been closed. Thank you for your contribution!🚀`; 23 | 24 | github.rest.issues.createComment({ 25 | owner: context.repo.owner, 26 | repo: context.repo.repo, 27 | issue_number: issueNumber, 28 | body: greetingMessage 29 | }); 30 | 31 | -------------------------------------------------------------------------------- /src/app/components/button-mode.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import * as React from "react"; 4 | import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; 5 | import { faSun, faMoon } from "@fortawesome/free-solid-svg-icons"; 6 | import { useTheme } from "next-themes"; 7 | 8 | export function ModeToggle() { 9 | const { theme, setTheme } = useTheme(); 10 | 11 | const toggleTheme = () => { 12 | if (theme === "light") { 13 | setTheme("dark"); 14 | } else { 15 | setTheme("light"); 16 | } 17 | }; 18 | 19 | return ( 20 | 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "techzrevamp", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@fortawesome/free-solid-svg-icons": "^6.6.0", 13 | "@fortawesome/react-fontawesome": "^0.2.2", 14 | "clsx": "^2.1.1", 15 | "framer-motion": "^11.11.1", 16 | "gsap": "^3.12.5", 17 | "mini-svg-data-uri": "^1.4.4", 18 | "next": "14.2.13", 19 | "next-cloudinary": "^6.14.1", 20 | 21 | "next-themes": "^0.3.0", 22 | 23 | "react": "^18", 24 | "react-dom": "^18", 25 | "tailwind-merge": "^2.5.3" 26 | }, 27 | "devDependencies": { 28 | "@types/node": "^20", 29 | "@types/react": "^18", 30 | "@types/react-dom": "^18", 31 | "daisyui": "^4.12.12", 32 | "eslint": "^8", 33 | "eslint-config-next": "14.2.13", 34 | "postcss": "^8", 35 | "tailwindcss": "^3.4.1", 36 | "typescript": "^5" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/app/assest/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import localFont from "next/font/local"; 3 | import "./globals.css"; 4 | import { ThemeProvider } from "./components/theme-provider"; 5 | 6 | const geistSans = localFont({ 7 | src: "./fonts/GeistVF.woff", 8 | variable: "--font-geist-sans", 9 | weight: "100 900", 10 | }); 11 | const geistMono = localFont({ 12 | src: "./fonts/GeistMonoVF.woff", 13 | variable: "--font-geist-mono", 14 | weight: "100 900", 15 | }); 16 | 17 | export const metadata: Metadata = { 18 | title: "TechzRevamp", 19 | description: "RCCTechz Website", 20 | }; 21 | 22 | export default function RootLayout({ 23 | children, 24 | }: Readonly<{ 25 | children: React.ReactNode; 26 | }>) { 27 | return ( 28 | 29 | 32 | 38 | 39 | {children} 40 | 41 | 42 | 43 | ); 44 | } 45 | -------------------------------------------------------------------------------- /src/app/not-found.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Link from 'next/link'; 3 | 4 | const NotFoundPage: React.FC = () => { 5 | return ( 6 |
7 |

404 - Page Not Found

8 |

9 | Oops! The page you're looking for doesn't exist. 10 |

11 |
12 | 404 error 17 |
18 | 19 | Go back to Homepage 20 | 21 |
22 | ); 23 | }; 24 | 25 | const styles = { 26 | container: { 27 | textAlign: 'center' as const, 28 | padding: '50px', 29 | color: '#ffffff', 30 | backgroundColor: '#0f0f0f', 31 | minHeight: '100vh', 32 | }, 33 | title: { 34 | fontSize: '3rem', 35 | marginBottom: '20px', 36 | color: '#9f9f9f', 37 | }, 38 | description: { 39 | fontSize: '1.5rem', 40 | marginBottom: '30px', 41 | }, 42 | imageContainer: { 43 | display: 'flex', 44 | justifyContent: 'center', 45 | alignItems: 'center', 46 | marginBottom: '20px', 47 | }, 48 | homeLink: { 49 | fontSize: '1.2rem', 50 | color: '#9f9f9f', 51 | textDecoration: 'none', 52 | border: '2px solid #9f9f9f', 53 | padding: '10px 20px', 54 | borderRadius: '5px', 55 | transition: 'background-color 0.3s ease', 56 | }, 57 | }; 58 | 59 | export default NotFoundPage; 60 | -------------------------------------------------------------------------------- /src/components/SkillComponent.tsx: -------------------------------------------------------------------------------- 1 | 'use client' 2 | import React, { useRef } from 'react'; // Ensure correct path 3 | import gsap from 'gsap'; 4 | import Image from 'next/image'; 5 | 6 | function SkillComponent({data}:any) { 7 | const skillComp = useRef(null); 8 | const tooltip = useRef(null); 9 | 10 | const handleMouseOver = (e:any) => { 11 | gsap.to(e.currentTarget, { 12 | scale: 1.1, 13 | duration: 1, 14 | }); 15 | gsap.to(tooltip.current, { 16 | opacity: 1, 17 | duration: 0.2, 18 | }); 19 | }; 20 | 21 | const handleMouseLeave = (e:any) => { 22 | gsap.to(e.currentTarget, { 23 | scale: 1, 24 | duration: 1, 25 | }); 26 | gsap.to(tooltip.current, { 27 | opacity: 0, 28 | duration: 0.2, 29 | }); 30 | }; 31 | 32 | return ( 33 |
40 | Skill 41 |
45 | {data.name} 46 |
47 |
48 | 49 | ); 50 | } 51 | 52 | export default SkillComponent; 53 | -------------------------------------------------------------------------------- /src/app/assest/instagram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to RCCTechz Website Revamp 2 | 3 | Thank you for your interest in contributing to the RCCTechz Website Revamp! We welcome contributions from everyone in the community and aim to create a friendly and inclusive environment. Please take a moment to review this document before you start contributing. 4 | 5 | ## How Can You Contribute? 6 | 7 | There are many ways to contribute to this project, including: 8 | 9 | 1. **Reporting Bugs**: If you find any bugs, please report them by creating an issue. 10 | 2. **Suggesting Features**: If you have ideas to improve the project, feel free to suggest them. 11 | 3. **Improving Documentation**: Enhancing the documentation helps others understand and use the project better. 12 | 4. **Coding**: If you’re familiar with web development, you can contribute by writing code for features, fixing bugs, or refactoring existing code. 13 | 5. **Design**: We welcome any UI/UX improvements or new design ideas for the project. 14 | 15 | ## Getting Started 16 | 17 | To contribute, follow these steps: 18 | 19 | 1. **Fork the Repository**: Click the "Fork" button on the top right to create a copy of this repository on your GitHub account. 20 | 21 | 2. **Clone Your Fork**: 22 | ```bash 23 | git clone https://github.com/RCCTechzClub/TechzRevamp.git 24 | 3. **Create a Branch**: Create a new branch for your changes to keep your contributions organized. 25 | ```bash 26 | git checkout -b feature-name 27 | 4. **Make Changes**: Implement your changes locally. Be sure to run tests if applicable and format your code according to the project’s style. 28 | 5. **Commit and Push**: 29 | ```bash 30 | git add . 31 | git commit -m "Description of changes" 32 | git push origin feature-name 33 | 6. Create a Pull Request: 34 | Go to the repository on GitHub. 35 | Click the "Pull Request" button. 36 | Choose your branch and submit the pull request with a clear title and description of your changes. 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/components/TechzMagzine.tsx: -------------------------------------------------------------------------------- 1 | import Image from "next/image"; 2 | import React from "react"; 3 | import magazing from '@/app/assest/magazing.svg'; 4 | import { useTheme } from "next-themes"; 5 | 6 | const TechzMagazine = () => { 7 | const { theme } = useTheme(); 8 | 9 | const isDarkMode = theme === 'dark'; 10 | return ( 11 |
15 | 16 |
17 | Techz Magazine 25 |
26 | 27 |
28 |

29 | Techz Magazine 30 |

31 | 36 | 39 |
40 |
41 | ); 42 | }; 43 | 44 | export default TechzMagazine; 45 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | 2 | "use client"; 3 | import React from "react"; 4 | 5 | import Navbar from "../app/components/Navbar"; 6 | import '../styles.css'; 7 | import FAQ from "@/components/Faq"; 8 | import Club from "@/components/Club"; 9 | import Footer from "@/components/Footer"; 10 | import TechzMagzine from "@/components/TechzMagzine"; 11 | import OurWork from "@/components/OurWork"; 12 | 13 | import { useTheme } from 'next-themes'; 14 | 15 | export default function Home() { 16 | const { theme } = useTheme(); 17 | 18 | 19 | const Home: React.FC = () => { 20 | const [showScrollBtn, setShowScrollBtn] = useState(false); 21 | 22 | 23 | const isDarkMode = theme === 'dark'; 24 | 25 | const handleScroll = () => { 26 | setShowScrollBtn(window.scrollY > 200); // Show button when scrolled down 200 pixels 27 | }; 28 | 29 | const scrollToTop = () => { 30 | window.scrollTo({ top: 0, behavior: 'smooth' }); // Smooth scroll to top 31 | }; 32 | 33 | useEffect(() => { 34 | window.addEventListener('scroll', handleScroll); // Listen for scroll events 35 | 36 | return () => { 37 | window.removeEventListener('scroll', handleScroll); // Clean up on unmount 38 | }; 39 | }, []); 40 | 41 | return ( 42 | <> 43 | 44 | 45 |
52 |
53 | Welcome to RCCTechz Website Revamp 54 |
55 | 56 | 57 | 58 | 59 |
60 | 61 |