Etap 3: Czcionki i ikonki
To już trzecia część wyzwania Zacznij kodować z Kodillą – czas szybko leci! Po pierwszych dwóch etapach wiesz już całkiem dużo na temat HTML i CSS oraz masz ostylowaną pierwszą sekcję strony. Przykładowy efekt:
Dzisiaj nadasz swojej stronie jeszcze więcej charakteru poprzez dobór odpowiednich czcionek, a także wykorzystasz dotychczasową wiedzę do samodzielnego ostylowania kolejnej sekcji.
1. Czcionki – z czym to się je?
Kiedyś było prosto. Podstawową czcionką (lub, z angielskiego, fontem) na stronach internetowych był Times New Roman (taki jak w większości edytorów tekstu typu Word), a szczytem szaleństwa była zmiana fonta na Arial. Te czasy już za nami – dziś mamy do wyboru ogromne bogactwo darmowych i płatnych czcionek, a typografia (czyli właściwy dobór czcionek i układ tekstu) stała się jednym z najważniejszych elementów dobrych projektów graficznych.
W wyzwaniu wykorzystamy najbardziej znaną kolekcję darmowych czcionek, gotowych do użycia na stronach internetowych: Google Fonts (https://fonts.google.com/).
W przykładzie wybierzemy dwa fonty: jeden dla nagłówków, drugi dla reszty tekstu. Ty oczywiście możesz w swoim projekcie użyć większej liczby krojów czcionek, ale zalecamy umiar – w typografii mniej znaczy więcej :)
Zadanie 1
- Wejdź na stronę Google Fonts (https://fonts.google.com/) i wybierz kroje czcionek dla swojej strony (przynajmniej dwa). Jeżeli nie możesz się zdecydować, przejrzyj gotowe zestawienia tutaj:
- Następnie kliknij ikonę plusa przy każdej z wybranych czcionek:
- Kliknij na ten pasek u dołu ekranu, aby otworzyć okno konfiguracji czcionek:
- W oknie konfiguracji kliknij “Customize”. Dla każdej czcionki wybierz wagi (grubości), których chcesz użyć na stronie. Na dole tego okna, w sekcji “Languages”, zaznacz również opcję “Latin Extended”, jeżeli jest dostępna. Służy ona do tego, by czcionka poprawnie obsługiwała polskie znaki.
- Kiedy już wybierzesz wagi czcionek, w oknie konfiguracji kliknij “Embed” (tuż obok “Customize”). W sekcji “Embed Font” wybierz opcję “@IMPORT” oraz zaznacz i skopiuj treść pokazaną na obrazku poniżej (znajdującą się pomiędzy znacznikami
<style></style>
). Oczywiście ta treść będzie się różnić w zależności od wybranych czcionek: - Przejdź do swojego edytora Codepen i wklej skopiowaną treść na samej górze pliku CSS, jeszcze przed zmiennymi.
- W pliku CSS utwórz zmienne dla swoich czcionek: z okna konfiguracji na stronie Google Fonts skopiuj wartości
font-family
......i umieść je w zmiennych:
- I to wszystko! Teraz możesz używać swoich czcionek, nadając selektorom w CSS odpowiednie wartości
font-family
, na przykład:font-family: $font-header;
Zadanie 2
Użyj zmiennych, aby strona wykorzystywała wybrane przez Ciebie czcionki.
Rada: aby sprawić, by któraś czcionka była używana przez wszystkie elementy na stronie, nadaj właściwość font-family
na selektor body, html
. Później już konkrentym elementom (np. .main-title
, .main-subtitle
) możesz nadawać ich własne font-family
.
A co z wagami czcionek, które wybraliśmy podczas konfiguracji? Możesz użyć ich jako wartości właściwości font-weight
, np. font-weight: 600;
, w zależności od tego, jakie wagi zostały wybrane.
Jeżeli czcionki poszczególnych elementów zmienią się na te wybrane przez Ciebie, zadanie zostało wykonane prawidłowo :)
Uwaga: czasem czcionka może świetnie wyglądać na Google Fonts, ale na Twojej stronie już niekoniecznie. Nie zniechęcaj się tym, tylko eksperymentuj z różnymi krojami, aby znaleźć te właściwe. Może być też konieczne dostosowanie właściwości font-size
lub letter-spacing
(wyrażonej w pikselach), aby czcionka była czytelna.
2. Szybka powtórka: stylowanie tytułów sekcji
Wiesz już tyle o CSS, że zadania w tym module nie powinny sprawić Ci problemu :)
Kiedy zerkniesz do kodu HTML, zobaczysz, że tytuły poszczególnych sekcji (pod sekcją “Splash”) mają klasę section-title
. Wykorzystamy ją teraz do nadania tytułom odpowiednich styli.
Zadanie 3
W kodzie CSS, w nowej linii, stwórz selektor dla klasy section-title
. Czy pamiętasz, jak to się robi? Najpierw w CSS wpisujesz nazwę klasy, którą chcesz ostylować (poprzedzoną kropką). Później wciskasz spację, tworzysz parę nawiasów klamrowych, a wewnątrz nawiasów umieszczasz właściwości.
Dodaj temu selektorowi następujące style:
position: relative;
margin: 0 0 60px 0;
text-align: center;
Następnie, już samodzielnie:
- zdefiniuj kolor tego elementu
- zdefiniuj jego czcionkę
- zdefiniuj wagę czcionki
- jeżeli chcesz, nadaj nagłówkom jeszcze inne efekty, które już znasz
Zadanie 4
Dodamy teraz niewielką dekorację do naszych nagłówków. W naszym przykładzie będzie to niewielka pozioma linia pod nagłówkiem:

W nowej linii CSS wpisz następujący kod:
Nie modyfikuj ani nie usuwaj właściwości position
, display
ani content
tego elementu. Są one niezbędne do tego, by w ogóle wyświetlił się on na stronie.
Twoim zadaniem będzie modyfikacja tego elementu dekoracyjnego zgodnie z własnymi preferencjami. Co możesz zmienić:
width
(szerokość)height
(wysokość)background-color
bottom
margin-left
(aby dekoracja była wyśrodkowana w stosunku do tytułu sekcji, wartość tej właściwości powinna być równa wartości właściwościwidth
podzielonej przez 2 i poprzedzona znakiem minus, tak jak w przykładzie)
Zachęcamy do eksperymentów!
Dla chętnych: sprawdź, co się stanie, gdy elementowi dekoracyjnemu usuniesz background-color
, ale za to zamiast content: '';
użyjesz np. content: '***';
.
Dla ciekawskich: pseudoelementy :after
i :before
Jeżeli chcesz dowiedzieć się wiecej o tym, czym są pseudoelementy :after
i :before
oraz jak ich używać do bardziej skomplikowanych zadań, zajrzyj tutaj: http://blog.eduweb.pl/pseudo-elementy-before-i-after-w-css/.
3. Szybka powtórka: stylowanie sekcji “About”
Dokończymy teraz stylowanie sekcji “About”. W przykładzie nadamy jej kolor tła i margines dla tekstu, ale nie wahaj się użyć innych efektów, jeżeli tylko masz na to ochotę.
Zadanie 5
W nowej linii w CSS stwórz selektor .about
. Dodaj mu background-color
o wartości $color-background
. Jeżeli chcesz, wróć do tej zmiennej i zmodyfikuj jej wartość (przypisany do niej kolor).
Następnie zerknij do HTML i przypomnij sobie, jaką klasę ma akapit tekstu (<p>
) w sekcji “About”. Stwórz dla niego selektor w CSS i nadaj mu margin
równy 36px 0 0 0;
. Możesz też zmienić kolor czcionki (color
) tego elementu, lub inne właściwości - co tylko podpowie Ci wyobraźnia.
4. Ikonki, czyli FontAwesome w praktyce
Ikony na stronach WWW, podobnie jak czcionki, zyskały w ostatnich latach na znaczeniu i popularności. Za pomocą ikon możemy w łatwy sposób przyciągnąć uwagę użytkownika oraz wzbogacić nasz przekaz tekstowy o warstwę wizualną.
W Wyzwaniu używamy zestawu czcionek o nazwie FontAwesome, który jest prosty i przyjemny w implementacji. Wejdź na stronę https://fontawesome.com/icons, aby zobaczyć dostępne ikony.
Następnie w swoim edytorze Codepen kliknij ikonę koła zębatego w “pudełku” CSS i upewnij się, że FontAwesome jest podpięty do Twojego projektu dokładnie w ten sposób:

Zadanie 6
Wreszcie przyszedł czas na dodanie nieco różnorodności do kolejnej sekcji! Jak pamiętasz, w sekcji “Features” umieściliśmy trzy “pudełka“ z ikoną, tytułem i opisem.
- W HTML sekcji “Features”, jeżeli potrzeba, dopracuj treści – niech każde “pudełko” ma inny tytuł i opis.
- Na stronie https://fontawesome.com/icons wyszukaj ikony pasujące do treści każdego z “pudełek“. Na tej stronie ikony w jasnoszarym kolorze dostępne są tylko dla wersji premium, więc będą interesować nas tylko ciemnoszare, darmowe ikony.
- Jak już wiesz, aby wyświetlić ikonę na stronie, potrzebujemy tagu
<i>
z odpowiednią klasą. Aby uzyskać tag dla danej ikony, kliknij ją, a później wstaw zaznaczony na obrazku element do swojego HTML:
Twoim zadaniem jest podmiana ikon w kodzie HTML na takie, jakie wybrałaś/wybrałeś.
Zadanie 7
Mamy już całą treść “pudełek” - ikony, tytuły i opisy. Czas je teraz porządnie ułożyć i dokończyć stylowanie. Zerknijmy do HTML – wszystkie “pudełka” znajdują się w elemencie o klasie features-wrapper
. Stwórz selektor dla tej klasy w swoim pliku CSS i daj mu tylko jedną właściwość: display: flex;
.
W kolejnej linii CSS wklej:
Mamy to! “Pudełka” są już w jednej linii.
Dla ciekawskich: display
i flexbox
Jeżeli ciekawi Cię, czym jest właściwość display
i jakie wartości może przyjmować, zajrzyj tutaj: https://cssreference.io/property/display/. O właściwości flex
i samym flexboksie możesz natomiast poczytać tutaj: https://css-tricks.com/snippets/css/a-guide-to-flexbox/.
Zadanie 8
Potrzebnych nam jest jeszcze kilka styli, aby nadać tej sekcji ostateczny sznyt. Zacznijmy od stylowania ikonek. Potrzebny nam będzie do tego selektor .feature i
– dodaj go do swojego pliku CSS i nadaj mu następujące style:
width: 100px;
height: 100px;
line-height: 100px;
Następnie, już samodzielnie:
- zdefiniuj kolor (
color
) tego elementu. Jeżeli chcesz, by był biały, użyj wartości#ffffff;
- zdefiniuj jego
font-size
(wyrażony wpx
) - zdefiniuj jego
background-color
. Możesz ustawić go na główny kolor Twojej strony. - zdefiniuj jego
border-radius
, jeżeli chcesz zaokrąglić brzegi elementu. Możesz użyć wartości w pikselach lub procentach.border-radius: 50%;
sprawi, że element stanie się kołem, pod warunkiem, że jegowidth
iheight
są identyczne (czyli pod warunkiem, że jest kwadratem) - dodaj dowolne inne style według swojej fantazji. Może Twoje ikonki będą miały białe tło, ale za to kolorową obwódkę? Może zechcesz dodać im np. cień?
Dla chętnych: zmodyfikuj wartości width
i height
ikonek i sprawdź, co się stanie. Pamiętaj, że wartość line-height
musi być równa wartości height
, żeby ikonki były wycentrowane w pionie.
Zadanie 9
Ostylujemy teraz tytuły “pudełek”. Zerknij do HTML i sprawdź, jaką klasę mają te elementy. Utwórz odpowiedni selektor w CSS i nadaj mu margin: 24px 0 0 0;
. Resztę stylów – czcionkę, kolor, wagę, itp. dodaj samodzielnie.
Zadanie 10
Ostatnie zadanie na dzisiaj – opisy “pudełek”! Podobnie jak poprzednio, sprawdź w HTML, jaką klasę mają opisy i utwórz dla nich selektor w CSS. Nadaj mu margin: 24px 0 0 0;
oraz padding: 0 24px;
. Resztę właściwości pozostawiamy Twojej fantazji!
Pamiętaj, aby zapisać swoją pracę, klikając button Save w editorze.
W kolejnej części wyzwania dodamy i ostylujemy kolejne elementy na stronie.
Powodzenia!