Tworzenie Responsywnych Stron Internetowych
2 godz. 33 min · HTML i CSS · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperZacznijmy od przedstawienia projektu, który razem zbudujemy podczas tego warsztatu. Będziemy pracować nad stworzeniem nowoczesnej, responsywnej strony portfolio. Podczas budowania strony, zapoznam Cię z podstawowymi i zaawansowanymi funkcjami TailwindCSS, które pomogą Ci w efektywnym projektowaniu i stylizowaniu Twojej strony.
Zanim zaczniemy kodować, ważne jest, abyś miał dobrze skonfigurowane środowisko do pracy z TailwindCSS. Przeprowadzę Cię przez proces instalacji i konfiguracji TailwindCSS w Twoim projekcie. Pomoże to zrozumieć, jak TailwindCSS jest zbudowany i jak można go dostosować do swoich potrzeb.
Sekcja hero to wizytówka Twojej strony, więc ważne jest, aby była ona atrakcyjna i responsywna. Nauczę Cię, jak zaimplementować sekcję hero, która rozciąga się na całą wysokość i szerokość ekranu. Omówimy różne techniki, takie jak używanie tła obrazu, dodawanie ikon czy efektów obracania i zaznaczania tekstu.
W dzisiejszych czasach, gdzie ludzie korzystają z różnych urządzeń do przeglądania internetu, ważne jest, aby Twoja strona była responsywna i wyglądała dobrze na wszystkich typach urządzeń. Dowiesz się, jak korzystać z podejścia mobile first przy projektowaniu strony, co pomoże Ci zoptymalizować doświadczenie użytkownika na wszystkich rozdzielczościach ekranu.
Klasa container w TailwindCSS jest potężnym narzędziem, które pomaga w zarządzaniu układem Twojej strony. Przeprowadzę Cię przez różne sposoby korzystania z klasy container, aby uzyskać optymalny układ i design dla Twojej strony. Dowiesz się, jak zarządzać marginesami, paddingami, a także jak używać containera do tworzenia układów siatki.
Ten warsztat jest dla początkujących programistów, którzy chcą nauczyć się projektowania stron internetowych przy użyciu TailwindCSS. Idealny dla junior-deweloperów, oraz dla wszystkich, którzy chcą zrozumieć i wykorzystać moc nowoczesnych frameworków CSS.
Zanim zaczniemy, jakby konfigurować nasz projekt,
to chciałbym, żebyś upewnił, upewniła się, że masz zainstalowany Node JS.
Można to zrobić w taki sposób, że mamy node - -version i w tym momencie
powinna wyskoczyć odpowiedź jakiego typu wersję masz na swoim systemie operacyjnym.
Jeżeli nie masz Node'a zainstalowanego, to trzeba
po prostu sobie wejść na stronę internetową Nodejs.org
i tam ściągnąć sobie instalator na Twój system operacyjny.
Tak samo chciałbym żebyś zainstalował, zainstalowała.
Generalnie Node przychodzi z package managerem
w postaci npm natomiast ja tutaj w tym kursie będę korzystał z pnpm.
Jeżeli chcesz sobie zainstalować na pnpm to po prostu wystarczy sobie wyszukać w
Google pnpm strona instalacji i tam już jest łatwo dostępna.
Ja na swoim systemie operacyjnym w chwili
obecnej teraz kiedy nagrywam ten warsztat mam wersję 8.7.1
także to są dwie rzeczy, które potrzebujemy.
Tworzymy sobie nowy folder do naszego projektu.
Zróbmy sobie folder pod tytułem portfolio no i przeskoczymy do tego folderu.
I ja w tym momencie, już teraz jak już
mamy ten folder otworzę sobie ten folder w moim edytorze kodu poprzez code i kropka.
Mamy pusty folder w naszym edytorze kodu otwarty.
Dodatkowo na pewno będziemy potrzebowali
tutaj gdzieś obok przeglądarkę, żebyśmy mogli pracować sobie w tym momencie.
Jak już mamy otwarty folder w naszym edytorze kodu, to kilka rzeczy,
które chciałbym żeby wziął, wzięła pod uwagę.
Otóż na pewno potrzebujemy rozszerzenia pod tytułem Live Server, czyli Install
Extensions i tutaj musimy sobie wyszukać Live Server no i w tym momencie
te rozszerzenie jest dostępne, jakby powinno być od razu zainstalowane.
Visual Studio code jeżeli korzystasz z tego samego edytora, z którego ja korzystam.
Server mamy za sobą.
Kolejna rzecz, którą będziemy potrzebować
to zaincjalizować tutaj w naszym projekcie Tailwind CSS.
Robimy to poprzez pnpx init Tailwind CSS, czyli ja
teraz sobie tutaj przejdę do mojego trminala i za pomocą pnpx Tailwind CSS init.
Inicjalizujemy jakby Tailwind w naszym tutaj w naszym folderze.
Folderze ściągną się paczki odpowiednie do tego i mamy Tailwind config
JS jak gdyby to jest domyślny plik
konfiguracyjny Tailwind'a już tutaj został nam zaincjalizowany.
Kolejną rzecz, którą będziemy potrzebować zrobić, to tak naprawdę stworzyć sobie
strukturę folderów dla naszego projektu.
Czyli stworzymy sobie folder build. Gdzie będzie
wynikowe style, które zostaną zbudowane dla naszego projektu.
I stworzymy sobie również folder src.
Może nie bezpośrednio w folderze build,
ale chcielibyśmy to też na root'cie tak naprawdę na głównym folderze.
I mamy src.
Teraz w folderze src tworzymy sobie plik input css, w którym wkleimy sobie.
Musimy tutaj wkleić podstawowe dyrektywy Tailwind'a,
które będą wykorzystywane przez nasz projekt.
Mianowicie standardowo jest to Tailwind Base, Tailwind Components i Tailwind Utilities.
W naszym przypadku to wszystko tutaj zostanie.
Teraz w folderze tak naprawdę Build stworzymy sobie plik index html.
Tutaj w naszym folderze stworzymy sobie
index.html i folder image, gdzie będziemy mieli tak naprawdę nasze obrazki.
Obrazki, które będziemy wykorzystywali w naszym, w naszym tutaj,
w naszym projekcie mamy nasz imput CSS, mamy konfigurację Tailwind'a za sobą.
Tak jak wspominałem wszystkie obrazki z
projektu będą dostępne dla Ciebie w materiałach dodatkowych do tego projektu.
Także nie martw się jeżeli chcesz dokładnie odwzorować
tą stronę, którą przed chwilą Ci pokazałem to wszystkie obrazki będą dostępne.
I teraz musimy sobie tak naprawdę skonfigurować nasz Tailwind config.js.
Mianowicie musimy powiedzieć
gdzie chcemy, skąd chcemy pobierać content, żeby budowane były nasze style.
I tutaj w naszym przypadku będzie to build
katalog root'owy, później mamy build czyli ten folder tutaj.
No i plik *HTML
mówi Tailwind'owi o tym, że z wszystkich plików HTML ma silnik budujący style,
ma patrzeć, które style są wykorzystywane w plikach HTML i jakby
wynikowy plik ma zostać tworzony na bazie plików HTML w naszym projekcie.
Tak jak mówię, to mówi silnikowi, żeby kompilował style właśnie z folderu build i
ze wszystkich plików z rozszerzonym HTML tak naprawdę.
I teraz chcemy zaincjalizować sobie projekt pnpm init musimy sobie tutaj wpisać.
Czyli ja korzystam tutaj jakby z package manager'a pnpm.
Jeżeli korzystasz z package manager'a
z npm to npm init i w moim przypadku pnpm init no i został zaincjalizowany package JSON
plik, tak? Tutaj i teraz jakby
po stworzeniu tego pliku konfiguracyjnego package JSON
możemy sobie wpisać tutaj 1 skrypt, który będziemy na chwilę obecną potrzebować,
mianowicie skrypt związany z budowaniem styli Tailwind.
To tak naprawdę będzie praktycznie jedyny
skrypt, który będziemy potrzebować w tym warsztacie.
To jest skrypt, który mówi nam mniej ni
więcej, że on odpowiada tak naprawdę za budowanie pliku ze stylami dla naszego projektu.
I tutaj minus i wskazuje nam gdzie znajduje się input dla styli.
W naszym przypadku jest to src input css czyli dokładnie ten plik tutaj jest jakby
plikiem wejściowym dla Tailwind CSS, żeby budować style.
A tutaj -O mówimy gdzie style powinny się tak naprawdę zbudować.
Dodatkowo opcja watch pozwoli nam tutaj pracować nad tym plikiem
i cały czas te pliki będą się przebudowywały w miarę naszych zmian w pliku index html.
Tak że tym momencie jeżeli uruchomimy sobie ten
skrypt to będzie to stworzy nam to już bazowe style.
Natomiast zanim za to
zanim sobie uruchomimy pierwszy raz ten skrypt to jeszcze zainstalujmy sobie
dev dependency w naszym projekcie, mianowicie plugin do Tailwind'a, który też przyda nam się
tutaj podczas budowania tego, tego projektu.
I teraz tutaj pnpm add - D bo to jest dev dependency i to co chcemy sobie teraz
zbudować no i my chcemy prettier i dodatkowo plugin Tailwind CSS, tak?
To jest plugin który chcemy sobie teraz dodać.
No i zobacz, że w dev dependency pojawił się nowy plugin Tailwind CSS
i teraz będzie on odpowiedzialny za sortowanie klas, które będziemy używać
żeby zadziałał musimy tak naprawdę skonfigurować sobie prettier'a w projekcie
w pliku prettier config js.
Czyli otworzymy sobie teraz tutaj nasz projekt, zminimalizujemy wszystko i
tutaj potrzebujemy stworzyć prettier config js.
No i w naszym przypadku musimy sobie
wyeksportować module export i tutaj plugin prettier, plugin Tailwind CSS.
Już w tym momencie będą jakby automatycznie startowały nam się style
Tailwind'owe, które będziemy wykorzystywać w pliku index html.
Tą konfigurację mamy za sobą i tak
naprawdę powinieneś u siebie też zobaczyć tutaj folder node module.
Natomiast ja go mam dodany do
folderów zignorowanych, dlatego też nie widać ich tutaj w tym explorerze.
Natomiast jeżeli u Ciebie się ten folder
pojawi to jak najbardziej wszystko jest w porządku.
Nic złego się nie dzieje, bo zainstalowaliśmy
dev dependency i dzięki temu paczka się zainstalowała.
No i mamy folder node module już tutaj w naszym głównym folderze
i zawsze dobrze jest zapisywać stan naszego projektu gdzieś.
Tak naprawdę zaincjalizujemy sobie repozytorium na
GitHubie, ale najpierw dobrą praktyką jest to, kiedy już mamy node module, żeby
pokazać systemowi kontroli wersji, żeby nie zapisywał niepotrzebnie plików np.
z katalogu node module,
robimy to za pomocą pliku gitignore.
I tutaj mogę sobie wpisać node modules, żeby ten plik został ignorowany.
Dodatkowo musimy też dodać skrypt do
narzędzia prettier, które ujednolicić formatowanie w naszych plikach.
W pliku package JSON,
który mamy tutaj musimy sobie dodać kolejny skrypt,
mianowicie prettier, który będzie odpowiadał nam za
po prostu układano ładnie składnik już po
odpowiednim sformatowaniu mamy zapisany kolejny tutaj
skrypt, który pomoże nam w naszej pracy i tak naprawdę potrzebne nam to będzie do
zachowania odpowiedniej kolejności, kiedy będziemy używali Tailwind'owych klas w
naszych elementach i jest to bardzo ważne, szczgólnie kiedy pracujesz w zespole.
Korzystamy głównie z prettier'a w zespole, żeby wszyscy mieli tak samo sformatowane
pliki. Żeby zacząć pracę nad naszym projektem,
musimy wystartować naszą komendę Tailwind i robimy to za pomocą pnpm Tailwind.
I w tym momencie, jeżeli jakby startuje tutaj node package mój
pnpm package manager no i wskazuję skrypt, który chce uruchomić czyli Tailwind
w tym momencie zauważ, że tak naprawdę w katalogu build jeszcze nie mamy tutaj żadnego
katalogu związanego z CSS'em, natomiast jak to wystartuje
to już powinien się pojawić plik i plik CSS ze stylami i to co tutaj widzimy.
Te style, które zostały teraz wygenerowane to jest tzw.
prewlight w Tailwind'zie i są to domyślne style Tailwind'owe
może to trochę rozszerzę tutaj, które są jakby domyślnie dostarczane.
To jest reset styli, który mamy domyślnie dostarczane nam przez twórców
tej biblioteki i to co widzisz to style CSS.
To jest domyślny zestaw styli.
Te style zostały już bardzo dobrze
przygotowane i nie musimy się martwić resetami styli.
Dostajemy tak naprawdę świetnie
wyglądający font, który jest tutaj określony font family.
Dodatkowo linki nie są podkreślone.
Kasujemy marginesy na elementach body, heading i innych tego typu.
Tak że myślę, że więcej możesz sobie poczytać też dokumentacji Tailwind.
Natomiast to jest jakby reset styli, który
jest domyślnie zrobiony. I zobacz, że mamy tutaj tzw.
watch włączony.
Czyli w tym momencie już jak coś sobie
zmienię to ten plik powinien się przebudować.
Dodatkowa rzecz, który warto wspomnienia
to tutaj też Tailwind domyślnie zmienia zachowanie obrazków na stronie.
Czyli wszystkie obrazki zajmują 100%
szerokości, domyślnie są elementami blokowymi.
Jak sobie to zobaczymy tutaj wyszukamy image.
To zobacz, że mamy display block
i kolejny taki image, który znajdujemy tutaj.
Zobacz mamy max width 100% i height auto, tak?
Czyli to jest domyślna zmiana, która tutaj jest jakby od razu za stylowana i dodatkowo
jest kilka rzeczy, na które chcę zwrócić Twoją uwagę.
Otóż nagłówki nie mają swoich domyślnych styli.
Zobacz, że tutaj mamy h1.
Jeżeli sobie wyszukamy tą h1 to jest
ona wspomniana dwa razy i zobacz, że font size, font weight jest inherit.
I drugi rzecz gdzie jest h1 wspomniana.
To jest margines ustawiony na 0, czyli
wszystkie te nagłówki nie mają swoich domyślnych styli jakie
widzisz w przeglądarce i skasowanie wszystkich obramowania elementów czyli
imputy i inne rzeczy też nie będą miały swojego obramowania.
Czyli jak tutaj sobie przejdziemy na input to zobacz, że mamy
jest ustawione na 0 i dodatkowo jeżeli chodzi o kolor też mamy inherited.
Wszystko zrobione także też tutaj też nie ma jakby tych dodatkowych obramowań.
Kolor też ustawiony jakoś domyślne tutaj
preflight'a standardowego, tak?
To tyle z takiej krótkiej konfiguracji.
Teraz przejdziemy do dalszej części tego warsztatu.