MDC-102 Web: struktura i układ materiału (internet)

1. Wprowadzenie

logo_components_color_2x_web_96dp.png

Material Komponenty (MDC) pomagają deweloperom wdrażać interfejs Material Design. MDC to biblioteka stworzona przez zespół inżynierów i projektantów UX w Google. Zawiera dziesiątki pięknych i funkcjonalnych komponentów UI. Jest dostępna na Androida, iOS, web i Flutter.material.io/develop

W tym ćwiczeniu użyjesz 2 komponentów Material Design (MDC) do utworzenia interfejsu strony logowania: pola tekstowego i przycisku. Teraz rozszerzymy to o dodanie nawigacji, struktury i danych.

Co utworzysz

W tym ćwiczeniu w Codelab utworzysz stronę główną aplikacji Shrine, która jest aplikacją e-commerce sprzedającą odzież i wyposażenie domowe. Będą one zawierać:

  • Panel nawigacji
  • Lista obrazów z produktami

e2f359c254988d75.png

Komponenty internetowe MDC w tym ćwiczeniu z programowania

  • Panel
  • Lista obrazów

Czego potrzebujesz

  • najnowsza wersja Node.js (dołączona do npm, menedżera pakietów JavaScript);
  • Przykładowy kod (do pobrania w następnym kroku)
  • Podstawowa znajomość języka HTML, CSS i JavaScript

Jak oceniasz swój poziom doświadczenia w tworzeniu stron internetowych?

Początkujący Średnio zaawansowany Zaawansowany

2. Konfigurowanie środowiska programistycznego

Przechodzisz z MDC-101?

Jeśli ukończyłeś/ukończyłaś kurs MDC-101, Twój kod powinien być gotowy do użycia w tym ćwiczeniu. Przejdź do kroku 3. Dodaj panel nawigacji.

Pobierz aplikację Codelab dla początkujących

Aplikacja startowa znajduje się w katalogu material-components-web-codelabs-master/mdc-102/starter. Zanim zaczniesz, przejdź do tego katalogu.

...lub sklonuj je z GitHuba

Aby skopiować to ćwiczenia z programowania z GitHuba, uruchom te polecenia:

git clone https://github.com/material-components/material-components-web-codelabs
cd material-components-web-codelabs/mdc-102/starter

Instalowanie zależności projektu

Bieżący katalog powinien być material-components-web-codelabs/mdc-102/starter.. Stamtąd uruchom to polecenie:

npm install

Gdy pojawi się dużo działań, terminal powinien informować o pomyślnej instalacji:

23003b0e5fdf9077.png

Uruchomienie aplikacji startowej

W tym samym katalogu uruchom:

npm start

Rozpocznie się webpack-dev-server. Aby wyświetlić stronę, otwórz w przeglądarce adres http://localhost:8080/.

4e04758051693865.png

Gotowe! Powinna się wyświetlić strona logowania do Shrine z MDC-101.

6c206785707bee2e.png

Strona logowania wygląda już dobrze, więc uzupełnijmy aplikację o produkty. Wpisz prawidłową nazwę użytkownika i hasło, a następnie kliknij przycisk „Dalej”, aby przejść do strony głównej.

3. Dodawanie panelu nawigacji

Gdy użytkownik zaloguje się, na stronie głównej pojawi się komunikat „You did it!” (To się udało!). Wspaniale. Teraz użytkownik musi wykonać określone czynności i wiedzieć, gdzie się znajduje w aplikacji. Aby mu to ułatwić, dodajmy nawigację.

Wzorce nawigacji w stylu Material Design zapewniają wysoki stopień użyteczności. Panel nawigacyjny w stylu Material Design umożliwia nawigację i szybki dostęp do innych działań. Dodajmy jedną.

Instalowanie szuflady i listy MDC

Aby zainstalować pakiety dla komponentu szuflady, uruchom:

npm install @material/drawer @material/list

Dodawanie kodu HTML

home.html zastąp tekst „You did it!” (Udało się!) tym znacznikiem dla szuflady i jej elementów:

<aside class="mdc-drawer shrine-drawer">
  <div class="mdc-drawer__header">
    <svg class="shrine-logo-drawer" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
       width="48px" height="48px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve" fill="#000000" focusable="false">
      <g>
        <g>
          <path d="M17,2H7L2,6.62L12,22L22,6.62L17,2z M16.5,3.58l3.16,2.92H16.5V3.58z M7.59,3.5H15v3H4.34L7.59,3.5z
             M11.25,18.1L7.94,13h3.31V18.1z M11.25,11.5H6.96L4.69,8h6.56V11.5z M16.5,12.32 M12.75,18.09V8h6.56L12.75,18.09z"/>
        </g>
        <rect fill="none" width="24" height="24"/>
      </g>
    </svg>
    <h1 class="shrine-title">SHRINE</h1>
  </div>
  <div class="mdc-drawer__content">
    <nav class="mdc-list">
      <a class="mdc-list-item mdc-list-item--activated" aria-selected="true" tabindex="0" href="#">
        <span class="mdc-list-item__text">Featured</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Apartment</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Accessories</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Shoes</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Tops</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Bottoms</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">Dresses</span>
      </a>
      <a class="mdc-list-item" href="#">
        <span class="mdc-list-item__text">My Account</span>
      </a>
    </nav>
  </div>
</aside>

Dodawanie kodu CSS

W pliku home.scss dodaj po dotychczasowej instrukcji importu te instrukcje:

@import "@material/drawer/mdc-drawer";
@import "@material/list/mdc-list";

U dołu strony home.scss dodaj te style:

.shrine-logo-drawer {
  display: block;
  width: 48px;
  padding: 40px 0 0;
  margin: 0 auto;
  fill: currentColor;
}

.shrine-title {
  text-align: center;
  margin: 5px auto;
}

Dodawanie kodu JavaScript

Aby umożliwić prawidłową nawigację za pomocą klawiatury, musimy utworzyć instancję listy MDC w panelu nawigacji. Otwórz plik home.js, który jest obecnie pusty, i dodaj ten kod:

import {MDCList} from '@material/list';

new MDCList(document.querySelector('.mdc-list'));

Odśwież stronę http://localhost:8080/home.html. Twoja strona główna powinna wyglądać tak:

9c145acccbc28214.png

Teraz na stronie głównej znajduje się stały panel nawigacji, w którym wyświetlają się różne elementy nawigacyjne, przy czym pierwszy jest aktywny.

4. Dodawanie obrazów z etykietami tekstowymi

Teraz, gdy nasza aplikacja ma już pewną strukturę, uporządkujmy zawartość, umieszczając ją na liście obrazów.

Zainstaluj listę obrazów MDC

Aby zainstalować pakiet dla komponentu listy obrazów, uruchom:

npm install @material/image-list

Dodawanie kodu HTML do listy z jednym elementem

Zacznijmy od dodania listy obrazów obok szuflady nawigacyjnej. Listę zaczynamy od dodania pojedynczego elementu, który składa się z obrazu i etykiety tekstowej.

W pliku home.html dodaj ten kod HTML po elemencie <aside>:

<ul class="mdc-image-list product-list">
  <li class="mdc-image-list__item">
    <img class="mdc-image-list__image" src="assets/weave-keyring.jpg">
    <div class="mdc-image-list__supporting">
      <span class="mdc-image-list__label">Weave keyring</span>
    </div>
  </li>
</ul>

Lista zawiera dodatkową klasę product-list, która zastosuje niestandardowe style zarówno w tym samouczku, jak i w MDC-103.

Dodawanie kodu CSS

Najpierw w pliku home.scss dodaj instrukcje importu stylów komponentu listy obrazów po dotychczasowych instrukcjach importu:

@import "@material/image-list/mdc-image-list";

Następnie dodaj następujące style po początkowych stylach strony głównej:

.product-list {
  @include mdc-image-list-standard-columns(4);

  overflow: auto;
}

Te style każą na liście obrazów wyświetlać obrazy w 4 kolumnach. Dzięki temu lista obrazów przewija się niezależnie od panelu.

Odśwież stronę. Strona główna powinna teraz wyglądać tak:

5362b330204ffd58.png

Lista obrazów ma wyświetlać wiele obrazów w kolekcji, dlatego dodajmy więcej obrazów, by lepiej zrozumieć, jak działa komponent.

W interfejsie home.html skopiuj istniejący element <li>:

  <li class="mdc-image-list__item">
    <img class="mdc-image-list__image" src="assets/weave-keyring.jpg">
    <div class="mdc-image-list__supporting">
      <span class="mdc-image-list__label">Weave keyring</span>
    </div>
  </li>

Następnie wklej go 15 razy po dotychczasowym elemencie (przed zamykającym tagiem </ul>). Łącznie uzyskasz 16 obrazów. Nie musisz jeszcze przejmować się unikalnymi obrazami ani tytułami. W ramach MDC-103 poradzisz sobie z nimi.

Odśwież. Teraz strona główna powinna wyglądać tak:

e2f359c254988d75.png

Lista obrazów zawiera 4 obrazy na wiersz, a ich rozmiar jest dostosowywany automatycznie do dostępnej przestrzeni na ekranie.

5. Podsumowanie

W witrynie obowiązuje podstawowy proces, który prowadzi użytkownika ze strony logowania na stronę główną, na której można obejrzeć produkty. Za pomocą kilku linijek kodu dodaliśmy do aplikacji listę obrazów i schownię, aby prezentować treści. Strona główna ma teraz podstawową strukturę i zawartość.

Dalsze kroki

Dzięki zastosowaniu szuflady i listy obrazów udało Ci się użyć 2 kolejnych podstawowych komponentów Material Design z biblioteki MDC Web. Więcej komponentów znajdziesz w katalogu internetowym MDC.

Chociaż strona główna działa już w pełni, nie wyraża jeszcze żadnej konkretnej marki ani punktu widzenia. W kursie MDC-103: Motywowanie Material Design za pomocą koloru, kształtu, wyeksponowania i rodzaju dowiesz się, jak dostosować styl tych komponentów, aby wyrazić żywą, nowoczesną markę.

Udało mi się ukończyć to ćwiczenia z programowania w rozsądny sposób i w rozsądny sposób

Całkowicie się zgadzam Zgadzam się Nie mam zdania Nie zgadzam się Całkowicie się nie zgadzam

Chcę w przyszłości nadal używać komponentów Material Komponenty

Zdecydowanie się zgadzam Zgadzam się Nie mam zdania Nie zgadzam się Zdecydowanie się nie zgadzam