# React Feladat: Téma Váltó Alkalmazás
**Bejelentkezés szintje:** Alapszintű
**Becsült időtartam:** 45 perc
**Megkövetelt technológiák:** React, React Router, Context API, Tailwind CSS
---
## 📋 Feladat Leírása
Készítsd el egy egyszerű **Téma Váltó (Theme Switcher)** alkalmazást React-ben, amely lehetővé teszi a felhasználónak, hogy váltson a világos és sötét mód között. Az alkalmazásnak tartalmaznia kell egy felső navigációs sávot, többoldali routing-ot és globális állapotkezelést Context API-val.
---
## 🎯 Elvégzendő Feladatok
### 1. Projekt Beállítás (5 perc)
- [ ] Proj már létezik vagy új Vite + React projekt létrehozása
- [ ] Tailwind CSS telepítése és konfigurálása
- [ ] React Router (v6) telepítése és beállítása
### 2. Context API Beállítása (8 perc)
- [ ] Hozz létre egy `ThemeContext.jsx` fájlt
- [ ] Domb le az alábbi értékeket a context-ben:
- `theme` (light / dark)
- `toggleTheme()` függvény
- [ ] Wrapped az App komponenst a `ThemeProvider`-rel
### 3. Navigáció Komponens (10 perc)
- [ ] Hozz létre egy `Navbar.jsx` komponenst
- [ ] Tartalmazzon:
- Logo/alkalmazásnév
- 2-3 db navigációs linkek (Home, About, Contact)
- **Téma váltó gomb** (☀️ / 🌙 ikon vagy szöveg)
- [ ] Styling Tailwind-vel (responsive, reszponzív dizájn)
- [ ] A navbar viselkedje a theme alapján az osztályokat
### 4. Routing Beállítása (7 perc)
- [ ] Konfigurálj 3 oldalt:
- **Home** (`/`) - Üdvözlő oldal
- **About** (`/about`) - Rövid bemutatkozás
- **Contact** (`/contact`) - Dummy kontakt form
- [ ] Hozz létre komponenseket az egyes oldalakhoz
### 5. Home Oldal Implementálása (10 perc)
- [ ] Beágyazz egy hőséges fejléc ("Welcome to Theme Switcher")
- [ ] Tartalmazz szövegeket és egyCall-to-Action gombot
- [ ] Styling Tailwind-vel (gradient, árnyékok, responsivitás)
- [ ] Gondoskodj arról, hogy az aktuális téma alapján megíródnak az osztályok
### 6. Egyéb Oldalak (5 perc)
- [ ] **About oldal:** Rövid szöveg az alkalmazásról
- [ ] **Contact oldal:** Dummy form vagy kontakt információ
- [ ] Mindkét oldal legyen tema-aware
---
## 📁 Kötelező Fájlok Szerkezete
```
src/
├── context/
│ └── ThemeContext.jsx
├── components/
│ ├── Navbar.jsx
│ ├── Home.jsx
│ ├── About.jsx
│ └── Contact.jsx
├── App.jsx
├── App.css (üres vagy minimal)
└── index.css (Tailwind imports)
```
---
## 🎨 Minimális Tailwind Stílus Követelmények
- [ ] Light mode: fehér háttér, sötét szöveg
- [ ] Dark mode: sötét háttér (pl. slate-900), világos szöveg
- [ ] Navbar: sticky felső sáv, logó, linkek, theme toggle gomb
- [ ] Home oldal: nagy fejléc, hero szekció, CTA gomb
- [ ] Responsive: mobile, tablet, desktop nézetekben működjön
---
## 💾 Context API Struktura
```javascript
// ThemeContext.jsx
export const ThemeContext = createContext();
export const ThemeProvider = ({ children }) => {
const [theme, setTheme] = useState('light');
const toggleTheme = () => {
setTheme(prev => prev === 'light' ? 'dark' : 'light');
};
return (
Ezt az alkalmazást a React, Router és Context API segítségével készítettük.