MDC-102 Web: Materialstruktur und Layout (Web)

MDC-102 Web:
Materialstruktur und Layout (Web)

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Okt. 11, 2020
account_circleVerfasst von Liz Mitchell, Abhinay Omkar

1. Einführung

logo_components_color_2x_web_96dp.png

Material Components (MDC) unterstützen Entwickler bei der Implementierung von Material Design. 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.

In diesem Codelab erstellen Sie eine Startseite für eine App namens Shrine, eine E-Commerce-App für Kleidung und Haushaltswaren. Sie enthält Folgendes:

  • Eine Navigationsleiste
  • Eine Bildliste voller Produkte

e2f359c254988d75.png

  • 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
<ph type="x-smartling-placeholder">

Wie würden Sie Ihre Erfahrung mit Webentwicklung bewerten?

2. Entwicklungsumgebung einrichten

Weiter von MDC-101?

Wenn du MDC-101 abgeschlossen hast, sollte dein Code für dieses Codelab vorbereitet sein. Fahren Sie mit Schritt 3 „Navigationsleiste hinzufügen“ fort.

Starter-Codelab-App herunterladen

Die Start-App befindet sich im Verzeichnis material-components-web-codelabs-master/mdc-102/starter. Achten Sie darauf, dass Sie sich in diesem Verzeichnis cd befinden, bevor Sie beginnen.

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

Wenn zahlreiche Aktivitäten angezeigt werden, sollte Ihr Terminal eine erfolgreiche Installation anzeigen:

23003b0e5fdf9077.png

Starter-App ausführen

Führen Sie im selben Verzeichnis folgenden Befehl aus:

npm start

webpack-dev-server wird gestartet. Rufen Sie in Ihrem Browser http://localhost:8080/ auf, um die Seite aufzurufen.

4e04758051693865.png

Fertig! Die Anmeldeseite von Shrine im Codelab „MDC-101“ sollte angezeigt werden.

6c206785707bee2e.png

Jetzt, da die Anmeldeseite gut aussieht, fügen wir einige Produkte in die App ein. Geben Sie einen gültigen Nutzernamen und ein gültiges Passwort ein und klicken Sie auf „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-Drawer und -Liste installieren

Führen Sie folgenden Befehl aus, um die Pakete für die Drawer-Komponente zu installieren:

npm install @material/drawer @material/list

HTML hinzufügen

Ersetzen Sie in home.html „Du hast es!“ mit dem folgenden Markup für die Leiste 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 nach dem vorhandenen Import die folgenden Importanweisungen 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 hat die Startseite eine 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-Image-Liste 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 die Liste mit einem einzelnen Element, das aus einem Bild und einem Textlabel besteht.

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

<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 hinter den ersten Stilen der Startseite hinzu:

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

  overflow: auto;
}

Mit diesen Stilen wird die Bildliste angewiesen, Bilder in vier Spalten anzuzeigen, sodass sichergestellt wird, dass die Bildliste unabhängig von der Leiste scrollt.

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

5362b330204ffd58.png

In einer Bildliste sollen viele Bilder in einer Sammlung angezeigt werden. Fügen Sie also weitere Bilder hinzu, um die Funktionsweise der Komponente besser zu sehen.

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üge es dann 15 Mal nach dem vorhandenen Element (vor dem schließenden </ul>-Tag) ein. Insgesamt sind das 16 Bilder. Sie brauchen sich noch keine Gedanken über individuelle Bilder und Titel zu machen. gelangen Sie zu denen von 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 verfügt über einen grundlegenden Ablauf, der den Nutzer von der Anmeldeseite zu einer Startseite leitet, auf der die Produkte angezeigt werden können. Mit nur wenigen Codezeilen haben Sie eine Leiste und eine Bildliste hinzugefügt, um Inhalte zu präsentieren. Die Startseite weist jetzt eine grundlegende Struktur und einen grundlegenden Inhalt auf.

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 einen bestimmten Standpunkt 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 auszudrücken.

<ph type="x-smartling-placeholder"> <ph type="x-smartling-placeholder">

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

Ich möchte Material Components weiterhin verwenden.