3.1 KiB
3.1 KiB
Strony 08–11 — Realizacje, Blog, O nas, Kontakt
08 — Realizacje (/realizacje)
Sekcje
- Hero — H1 „Nasze realizacje" + jedno zdanie.
- Filtry kategorii (
ProjectFilters) — przyciski: Wszystkie · Klimatyzacja · Pompy ciepła · Remonty · Hydraulika. Client Component (filtrowanie po stanie). - Siatka realizacji (
ProjectsGrid) — karty zcontent/projects.ts: zdjęcie, tytuł, lokalizacja, tag kategorii. Hover: powiększenie + nakładka z tytułem. - Pasek liczb (
StatsBar) — liczba realizacji, lat, miast. - 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)
- Hero — H1 „Blog i poradniki" + zdanie.
- Filtry kategorii — Klimatyzacja, Pompy ciepła, Remonty, Hydraulika, Porady.
- Wyróżniony artykuł (
FeaturedPost) — duży kafel (post zfeatured: true). - Siatka artykułów (
PostsGrid) — karty: miniatura, kategoria, tytuł, zajawka, data, „Czytaj więcej". - Paginacja — prosta (lub „pokaż więcej").
Wpis (/blog/[slug])
generateStaticParams+generateMetadataz 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
- Hero — H1 „O nas" + zdanie misji.
- Historia firmy (
AboutStory) — tekst + zdjęcie (placeholder). - Pasek statystyk (
StatsBar) — lata, realizacje, klienci, miasta (zcontent/company.ts). - Wartości / jak pracujemy (
ValuesGrid) — 3–4 kafelki. - Certyfikaty i uprawnienia (
CertificatesSection) — logotypy, F-gaz, autoryzacje (placeholdery). - Opinie (
Testimonials). - CTA końcowe (
CtaBanner).
SEO
Metadata: wiersz „O nas". JSON-LD: LocalBusiness (rozszerzony).
11 — Kontakt (/kontakt)
Sekcje
- Nagłówek — H1 „Kontakt" + zachęta.
- 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 wapp/kontakt/actions.ts(na razie bez realnej wysyłki — miejsce na integrację, np. Resend).
- Mapa (
MapEmbed) — Google Maps na całą szerokość (placeholder/iframe). - 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.