Wykorzystanie zmiennych, Grid i Flex

Wykorzystanie zmiennych, Grid i Flex

W tej lekcji nauczysz się, jak praktycznie wykorzystywać zmienne CSS, Flexbox i Grid Layout w realnym projekcie.
To fundamenty nowoczesnego frontendu – łącząc je z podejściem komponentowym, tworzysz elastyczne, skalowalne i czytelne układy.

1. Zmienne CSS – fundament stylów

Stosuj zmienne do wszystkiego, co może się powtarzać: kolorów, odstępów, fontów, promieni i cieni.

:root {
  --color-primary: #0d6efd;
  --color-bg: #f8f9fa;
  --color-text: #212529;
  --font-base: 1rem;
  --font-lg: 1.5rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 2rem;
  --radius: 0.5rem;
  --shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

Dlaczego warto?

  • Wystarczy zmienić wartość w jednym miejscu, by zaktualizować cały projekt
  • Zachowujesz spójność – fonty, kolory i spacing są zawsze takie same
  • Kod CSS jest krótszy, czytelniejszy i bardziej zorganizowany
2. Flexbox – elastyczne komponenty

Flex jest idealny do osi poziomej i wyrównywania treści. Przykład: header, karty z ikoną, lista przycisków.

.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

.flex-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}

Przykład w HTML:

<div class="card flex-column">
  <img src="icon.svg" alt="" class="card__icon">
  <h3 class="card__title">Usługa</h3>
  <p class="card__text">Opis usługi...</p>
</div>
3. Grid – struktura całej sekcji

Grid sprawdza się, gdy chcesz mieć kontrolę nad układem w dwóch wymiarach.
Przykład: sekcja z 2–4 kolumnami, które automatycznie dostosowują się do rozmiaru ekranu.

.grid-responsive {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-md);
}
<section class="features grid-responsive">
  <div class="feature">Funkcja 1</div>
  <div class="feature">Funkcja 2</div>
  <div class="feature">Funkcja 3</div>
</section>

Dzięki Gridowi uzyskasz responsywną siatkę bez potrzeby używania Media Queries.

4. Łączenie Flex + Grid + zmiennych

Najczęściej łączysz Grid (do głównego układu sekcji) z Flexem (do elementów wewnętrznych):

<section class="team grid-responsive">
  <article class="card flex-column">
    <img src="avatar.jpg" class="card__avatar">
    <h3>Anna</h3>
    <p>UX Designer</p>
  </article>
</section>
5. Dobre praktyki
  • Zawsze używaj zmiennych w komponentach – nie wpisuj wartości „na sztywno”
  • Twórz klasy pomocnicze jak .grid-responsive, .flex-center, .mt-md
  • Nie mieszaj zbyt wielu stylów w jednej klasie – rozdzielaj odpowiedzialności
  • Testuj układ w różnych rozdzielczościach – Grid i Flex pomagają osiągnąć responsywność
Ćwiczenie

Na podstawie Twojej makiety:

  • stwórz siatkę z Grid dla sekcji z ofertą lub członkami zespołu,
  • wewnątrz każdej karty użyj Flex do ułożenia zawartości pionowo,
  • zastosuj zmienne do spacingu, kolorów i promieni,
  • zastosuj klasy pomocnicze, by uprościć kod.
Wniosek

Zmienne + Flex + Grid = nowoczesny CSS, który działa.
Dzięki ich połączeniu możesz budować interfejsy, które są elastyczne, estetyczne i łatwe do utrzymania.
To podejście, które stosuje się w realnych projektach frontendowych – i teraz Ty też możesz je wdrożyć.