Jak zaprojektować i zbudować stronę, która nie wygląda jak z 2012 roku

Od pomysłu do działającej strony: proces, układ, kolor, typografia, współczesny CSS i dostępność. Na końcu gotowy szablon do skopiowania i lista stron, które warto rozebrać na części.

Zanim otworzysz edytor

Dobra strona zaczyna się od odpowiedzi na kilka pytań, a nie od wyboru koloru. Projekt zrobiony "na czuja" kończy się przeróbkami, a te kosztują najwięcej.

  1. BriefPo co ta strona? Kto na nią wejdzie i co ma tam zrobić: zadzwonić, kupić, zapisać się? Jedno główne działanie, reszta jest dodatkiem.
  2. TreściTeksty i zdjęcia przed layoutem. Projekt pod "Lorem ipsum" rozsypie się, gdy wejdą prawdziwe treści.
  3. Struktura i nawigacjaMapa podstron na kartce. Jeśli menu ma więcej niż 6 pozycji, coś jest do wyrzucenia albo schowania głębiej.
  4. WireframeSzkic układu bez kolorów i zdjęć, tylko prostokąty i podpisy. Tu decydujesz, co jest ważne.
  5. StylPaleta, dwie czcionki, skala odstępów. Zapisz to jako zmienne CSS, nie w głowie.
  6. Kod, test, wdrożenieNajpierw wersja na telefon, potem większe ekrany. Test na prawdziwym telefonie, Lighthouse, dopiero potem hosting.

Układ strony: kliknij i zobacz, co robi każda sekcja

Większość stron firmowych to ten sam szkielet. Różnią się treścią i tym, co dostaje najwięcej uwagi.

Wybierz sekcję, żeby zobaczyć, co w niej umieścić.

Cztery zasady, które ratują większość layoutów

Kolor i typografia

Tekst to 90% strony, więc typografia robi większą robotę niż kolory. Kolorów potrzebujesz mniej, niż myślisz.

Zasada: tło, tekst, jeden akcent

Akcent ma być użyty rzadko (przyciski, linki), inaczej przestaje być akcentem. Szare i neutralne odcienie dobieraj z lekkim przebarwieniem w stronę koloru głównego, wtedy całość się klei.

Usługi, firma, szkołaChłodna biel, granat, kobalt. Spokojnie i wiarygodnie. #16213a #2a56d6
Kawiarnia, rzemiosłoCiepłe ziemie, brąz i zgaszona zieleń. #3b2a20 #b5532f
Technologia, motoryzacjaCiemne tło, jasny tekst, jeden ostry kolor. #101418 #ff5a36

Kontrast to nie kwestia gustu

WCAG wymaga stosunku kontrastu co najmniej 4,5:1 dla zwykłego tekstu i 3:1 dla dużego. Sprawdzaj w narzędziu kontrastu w DevTools albo na stronie WebAIM Contrast Checker. Jasnoszary tekst na białym tle to najczęstszy błąd.

Typografia: dwie czcionki wystarczą

Jedna na nagłówki, druga na tekst, wyraźnie różne (np. bezszeryfowa i szeryfowa). Linia tekstu 45 do 75 znaków, interlinia około 1,5. Rozmiary w rem, a nagłówki płynne przez clamp().

Nagłówek h1clamp(2rem, 5vw, 3rem)
Nagłówek h21.6rem
Tekst podstawowy, który da się czytać dłużej niż minutę.1.0625rem, interlinia 1.65
Drobny tekst, podpisy, przypisy..875rem

Nowoczesny CSS: mniej hacków, więcej gotowców

Większość rzeczy, do których kiedyś trzeba było Bootstrapa czy jQuery, dziś robi sam CSS.

Zmienne w jednym miejscu

:root{
  --ink:#16213a;
  --accent:#2a56d6;
  --space:1.5rem;
}
a{color:var(--accent)}

Zmieniasz paletę w jednym miejscu, nie w 40.

Responsywna siatka bez media queries

.cards{
  display:grid;
  gap:1.5rem;
  grid-template-columns:
    repeat(auto-fit,minmax(16rem,1fr));
}

Karty same układają się w 1, 2, 3 kolumny.

Płynny rozmiar tekstu

h1{
  font-size:clamp(2rem,5vw,3.5rem);
}
.wrap{
  width:min(100% - 2.5rem, 62rem);
  margin-inline:auto;
}

Minimum, ideał, maksimum. Zero skoków na breakpointach.

Proporcje i style rodzica

img{
  aspect-ratio:4/3;
  object-fit:cover;
  max-width:100%;
}
.card:has(img){padding:0}

aspect-ratio chroni przed skakaniem strony przy ładowaniu zdjęć.

Mobile first

Piszesz style dla telefonu, a większe ekrany dodajesz przez @media (min-width: 48rem). Kod jest krótszy, a telefon, czyli większość ruchu, dostaje najlżejszą wersję.

Animacje z umiarem

Animuj to, co odpowiada na działanie użytkownika: najechanie, kliknięcie, otwarcie menu. Efekt wjeżdżania każdej sekcji z dołu jest już wszędzie i męczy. Zawsze szanuj ustawienie systemowe: @media (prefers-reduced-motion: reduce).

Dostępność i wydajność

To nie dodatek na końcu. To także SEO, a w wielu przypadkach obowiązek prawny (dotyczy m.in. stron instytucji publicznych i szkół).

Błąd z zadania w starym ćwiczeniu

W przykładzie formularza było jednocześnie label for="email" i aria-label na tym samym polu. To zbędne dublowanie. Widoczny label wystarczy, a ARIA dodaje się dopiero wtedy, gdy zwykły HTML czegoś nie umie. Pierwsza reguła ARIA: jeśli da się to zrobić natywnym elementem, zrób to natywnym elementem.

Szablon startowy

Jeden plik, bez frameworków. Semantyczny HTML, zmienne, siatka bez media queries, link "przejdź do treści", widoczny fokus. Skopiuj, zapisz jako index.html i podmień treści.

Ciekawe przykłady do rozebrania na części

Otwórz stronę, wciśnij F12 i zobacz, jak to jest zrobione. Poniżej co z której warto wynieść.

StronaCzego się uczysz
gov.ukDostępność i prosty język. Nic się tu nie błyszczy, a każdy da radę z niej skorzystać. Ma też publiczny system projektowy.
stripe.comTypografia i hierarchia w stronie produktowej. Zobacz, jak mało kolorów ma pierwszy ekran.
linear.appCiemny motyw zrobiony dyscyplinarnie: kontrasty, odstępy, subtelne obramowania zamiast cieni.
apple.comDuże zdjęcia, mało tekstu, jedna myśl na ekran. Dobre do analizy rytmu przewijania.
developer.mozilla.orgCzytelna strona z treścią. Wzór dla dokumentacji i długich tekstów.
awwwards.com, godly.websiteKolekcje odważnych projektów. Oglądaj jako inspirację i zawsze zadaj pytanie, czy to zadziałałoby u lokalnego warsztatu.

Strony mogą się zmienić od czasu przygotowania tej lekcji, więc traktuj to jako listę miejsc do sprawdzenia, a nie gwarancję tego, co zobaczysz dziś.

Ćwiczenie analizy

Wybierz jedną stronę i odpowiedz na piśmie: kto jest odbiorcą, jaką czcionkę i ile kolorów widać, co jest jedynym głównym przyciskiem, i co byś poprawił.

Zadania dla uczniów

  1. Mini brief. Dla wybranej lokalnej firmy (warsztat, fryzjer, sklep) opisz cel strony, odbiorcę i jedno główne działanie.
  2. Wireframe. Narysuj układ strony głównej na kartce, z podpisami sekcji. Bez kolorów.
  3. Styl. Zdefiniuj paletę (3 do 4 kolorów) i dwie czcionki jako zmienne CSS. Sprawdź kontrast każdej pary tekst/tło.
  4. Kod. Na bazie szablonu zbuduj stronę zgodną z wireframe. Wymagania: mobile first, siatka bez media queries dla ofert, poprawny formularz z etykietami.
  5. Test. Uruchom Lighthouse, zapisz wyniki i popraw przynajmniej dwie rzeczy, które wskazał.