MDC-102 Web: Materialstruktur und Layout (Web)

1. Einführung

logo_components_color_2x_web_96dp.png

Mit Material Components (MDC) können Entwickler Material Design implementieren. MDC wurde von einem Team aus Entwicklern und UX-Designern bei Google entwickelt. Es enthält Dutzende schöne und funktionale UI-Komponenten und ist für Android, iOS, das Web und Flutter.material.io/develop verfügbar.

Im Codelab MDC-101 haben Sie zwei Material Components (MDC) zum Erstellen einer Benutzeroberfläche für die Anmeldeseite verwendet: das Textfeld und die Schaltfläche. Jetzt fügen wir Navigation, Struktur und Daten hinzu.

Inhalt

In diesem Codelab erstellen Sie eine Startseite für die E-Commerce-App Shrine, in der Kleidung und Haushaltswaren verkauft werden. Sie enthält:

  • Navigationsleiste
  • Eine Bildliste voller Produkte

e2f359c254988d75.png

MDC-Webkomponenten in diesem Codelab

  • Leiste
  • Bildliste

Voraussetzungen

  • Eine aktuelle Version von Node.js, die im JavaScript-Paketmanager npm enthalten ist
  • Der Beispielcode (wird im nächsten Schritt heruntergeladen)
  • Grundkenntnisse in HTML, CSS und JavaScript

Wie würden Sie Ihre Erfahrung mit der Webentwicklung bewerten?

Neuling Mittel Kompetent

2. Entwicklungsumgebung einrichten

Weiter von MDC-101?

Wenn Sie MDC-101 abgeschlossen haben, sollte Ihr Code für dieses Codelab bereit sein. Fahren Sie mit Schritt 3 „Navigationsleiste hinzufügen“ fort.

Codelab-App für den Einstieg herunterladen

Die Starter-App befindet sich im Verzeichnis material-components-web-codelabs-master/mdc-102/starter. Sie müssen sich vor Beginn in diesem Verzeichnis cd befinden.

...oder von GitHub klonen

Führen Sie die folgenden Befehle aus, um dieses Codelab von GitHub zu klonen:

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

Projektabhängigkeiten installieren

Das aktuelle Verzeichnis sollte material-components-web-codelabs/mdc-102/starter. sein. Führen Sie dort den folgenden Befehl aus:

npm install

Nach einer gewissen Zeit sollte auf dem Terminal eine erfolgreiche Installation angezeigt werden:

23003b0e5fdf9077.png

Starter-App ausführen

Führen Sie im selben Verzeichnis folgenden Befehl aus:

npm start

Die webpack-dev-server wird gestartet. Rufen Sie die Seite mit Ihrem Browser unter http://localhost:8080/ auf.

4e04758051693865.png

Fertig! Sie sollten die Anmeldeseite von Shrine aus dem MDC-101-Codelab sehen.

6c206785707bee2e.png

Die Anmeldeseite sieht jetzt gut aus. Fügen Sie der App nun einige Produkte hinzu. Geben Sie einen gültigen Nutzernamen und ein gültiges Passwort ein und klicken Sie auf die Schaltfläche „Weiter“, um zur Startseite zu gelangen.

3. Navigationsleiste hinzufügen

Wenn sich der Nutzer anmeldet, wird eine Startseite mit dem Text „Du hast es!“ angezeigt. Sehr gut. Jetzt müssen die Nutzenden jedoch Aktionen ausführen und ein Gefühl dafür bekommen, wo sie sich in der App befinden. Dazu fügen wir die Navigation hinzu.

Navigationsmuster im Material Design bieten ein hohes Maß an Nutzungsfreundlichkeit. Die Material-Navigationsleiste bietet Navigation und schnellen Zugriff auf andere Aktionen. Jetzt fügen wir einen Zeitraum hinzu.

MDC-Schieberegler und -Liste installieren

Führen Sie zum Installieren der Pakete für die Schubladenkomponente Folgendes aus:

npm install @material/drawer @material/list

HTML hinzufügen

Ersetzen Sie in home.html „Du hast es geschafft!“ durch das folgende Markup für die Schublade und ihre Elemente:

<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>

CSS hinzufügen

Fügen Sie in home.scss die folgenden Importanweisungen nach dem vorhandenen Import hinzu:

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

Fügen Sie unten in home.scss die folgenden Stile hinzu:

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

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

JavaScript hinzufügen

Für eine korrekte Tastaturnavigation muss die MDC-Liste in der Navigationsleiste instanziiert werden. Öffnen Sie home.js, das derzeit leer ist, und fügen Sie den folgenden Code hinzu:

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

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

Aktualisieren Sie die Seite unter http://localhost:8080/home.html. Ihre Startseite sollte jetzt so aussehen:

9c145acccbc28214.png

Jetzt enthält die Startseite eine dauerhafte Navigationsleiste mit verschiedenen Navigationselementen, wobei das erste Element aktiv ist.

4. Bilder mit Textlabels hinzufügen

Nachdem unsere App nun eine gewisse Struktur hat, organisieren wir die Inhalte, indem wir sie in eine Bilderliste einfügen.

MDC-Bildliste installieren

Führen Sie folgenden Befehl aus, um das Paket für die Image-Listen-Komponente zu installieren:

npm install @material/image-list

HTML-Code für eine Liste mit einem Eintrag hinzufügen

Als Erstes fügen wir eine Bilderliste neben der Navigationsleiste hinzu. Wir beginnen mit der Liste, indem wir ein einzelnes Element hinzufügen, das aus einem Bild und einem Textlabel besteht.

Fügen Sie in home.html nach dem Ende des <aside>-Elements den folgenden HTML-Code hinzu:

<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>

Die Liste enthält die zusätzliche Klasse product-list, mit der benutzerdefinierte Stile sowohl in dieser Anleitung als auch in MDC-103 angewendet werden.

CSS hinzufügen

Fügen Sie zuerst in home.scss einen Import für die Komponentenstile der Bildliste nach den vorhandenen Importen hinzu:

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

Fügen Sie als Nächstes die folgenden Stile nach den ersten Stilen für die Startseite hinzu:

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

  overflow: auto;
}

Bei diesen Stilen werden die Bilder in der Bildliste in vier Spalten angezeigt, sodass die Bildliste unabhängig von der Schublade gescrollt werden kann.

Aktualisieren Sie die Seite. Die Startseite sollte jetzt so aussehen:

5362b330204ffd58.png

Eine Bilderliste soll viele Bilder in einer Sammlung anzeigen. Fügen Sie also weitere Bilder hinzu, damit Sie die Funktion der Komponente besser nachvollziehen können.

Kopieren Sie in home.html das vorhandene <li>-Element:

  <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>

Fügen Sie es dann 15-mal nach dem vorhandenen Element (vor dem schließenden </ul>-Tag) ein. Das ergibt insgesamt 16 Bilder. Machen Sie sich noch keine Gedanken über eindeutige Bilder und Titel. Mit diesen Themen beschäftigen wir uns in MDC-103.

Aktualisieren. Jetzt sollte die Startseite so aussehen:

e2f359c254988d75.png

Die Bildliste enthält vier Bilder pro Zeile. Die Größe der Bilder wird automatisch an den verfügbaren Platz auf dem Bildschirm angepasst.

5. Zusammenfassung

Ihre Website hat einen einfachen Ablauf, bei dem Nutzer von der Anmeldeseite zu einer Startseite weitergeleitet werden, auf der Produkte angezeigt werden. Mit nur wenigen Codezeilen haben Sie einen Auszug und eine Bildliste hinzugefügt, um Inhalte zu präsentieren. Die Startseite hat jetzt eine grundlegende Struktur und Inhalte.

Weiteres Vorgehen

Mit der Leiste und der Bildliste haben Sie nun zwei weitere Kernkomponenten von Material Design aus der MDC-Webbibliothek verwendet. Weitere Komponenten finden Sie im MDC-Webkatalog.

Die Startseite ist zwar voll funktionsfähig, drückt aber noch keine bestimmte Marke oder Sichtweise aus. In MDC-103: Material Design Theming with Color, Shape, Elevation and Type passen Sie den Stil dieser Komponenten an, um eine lebendige, moderne Marke zu präsentieren.

Ich konnte dieses Codelab mit angemessenem Zeit- und Arbeitsaufwand abschließen

Stimme vollkommen zu Stimme zu Neutral Stimme nicht zu Stimme überhaupt nicht zu

Ich möchte Material Components auch in Zukunft verwenden

Stimme vollkommen zu Stimme zu Neutral Stimme nicht zu Stimme überhaupt nicht zu