Files
klimat24/docs/pages/08-11-realizacje-blog-onas-kontakt.md

79 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Strony 08–11 — Realizacje, Blog, O nas, Kontakt
---
## 08 — Realizacje (`/realizacje`)
### Sekcje
1. **Hero** — H1 „Nasze realizacje" + jedno zdanie.
2. **Filtry kategorii** (`ProjectFilters`) — przyciski: Wszystkie · Klimatyzacja · Pompy ciepła ·
Remonty · Hydraulika. Client Component (filtrowanie po stanie).
3. **Siatka realizacji** (`ProjectsGrid`) — karty z `content/projects.ts`: zdjęcie, tytuł,
lokalizacja, tag kategorii. Hover: powiększenie + nakładka z tytułem.
4. **Pasek liczb** (`StatsBar`) — liczba realizacji, lat, miast.
5. **CTA końcowe** (`CtaBanner`) — „Chcesz podobny efekt? Umów konsultację".
### SEO
Metadata: wiersz „Realizacje". JSON-LD: opcjonalnie ItemList.
---
## 09 — Blog (`/blog` + `/blog/[slug]`)
### Lista (`/blog`)
1. **Hero** — H1 „Blog i poradniki" + zdanie.
2. **Filtry kategorii** — Klimatyzacja, Pompy ciepła, Remonty, Hydraulika, Porady.
3. **Wyróżniony artykuł** (`FeaturedPost`) — duży kafel (post z `featured: true`).
4. **Siatka artykułów** (`PostsGrid`) — karty: miniatura, kategoria, tytuł, zajawka, data, „Czytaj więcej".
5. **Paginacja** — prosta (lub „pokaż więcej").
### Wpis (`/blog/[slug]`)
- `generateStaticParams` + `generateMetadata` z danych posta.
- Układ: tytuł (H1), meta (data, autor, kategoria), obraz główny, treść (`prose`),
sekcja „Powiązane artykuły" (3 karty), CTA do usługi powiązanej z tematem.
- JSON-LD: BlogPosting + BreadcrumbList.
### SEO
Metadata: wiersz „Blog" (lista) / dynamiczne (wpis).
---
## 10 — O nas (`/o-nas`)
### Sekcje
1. **Hero** — H1 „O nas" + zdanie misji.
2. **Historia firmy** (`AboutStory`) — tekst + zdjęcie (placeholder).
3. **Pasek statystyk** (`StatsBar`) — lata, realizacje, klienci, miasta (z `content/company.ts`).
4. **Wartości / jak pracujemy** (`ValuesGrid`) — 3–4 kafelki.
5. **Certyfikaty i uprawnienia** (`CertificatesSection`) — logotypy, F-gaz, autoryzacje (placeholdery).
6. **Opinie** (`Testimonials`).
7. **CTA końcowe** (`CtaBanner`).
### SEO
Metadata: wiersz „O nas". JSON-LD: LocalBusiness (rozszerzony).
---
## 11 — Kontakt (`/kontakt`)
### Sekcje
1. **Nagłówek** — H1 „Kontakt" + zachęta.
2. **Dwie kolumny** (`ContactSection`):
- Lewa: dane kontaktowe (telefon, e-mail, adres, godziny, NIP) — duże, klikalne.
- Prawa: **formularz** (`ContactForm`, Client Component) — RHF + Zod:
imię, telefon, e-mail, temat (select: Klimatyzacja / Pompy ciepła / Remonty / Hydraulika /
Serwis AGD / Inne), wiadomość, zgoda RODO (checkbox), przycisk „Wyślij".
Walidacja inline, stany: błąd / wysyłanie / sukces. Obsługa przez Server Action
w `app/kontakt/actions.ts` (na razie bez realnej wysyłki — miejsce na integrację, np. Resend).
3. **Mapa** (`MapEmbed`) — Google Maps na całą szerokość (placeholder/iframe).
4. **Szybki kontakt** — przyciski „Zadzwoń" / „Napisz".
### SEO
Metadata: wiersz „Kontakt". JSON-LD: LocalBusiness.
---
## Uwaga
Formularz: poprawna dostępność (labelki powiązane z polami, komunikaty błędów czytane przez czytniki),
focus na pierwszym błędnym polu, blokada podwójnego wysłania.