MDC-102 Web: מבנה ופריסה של חומרים (אינטרנט)

1. מבוא

logo_components_color_2x_web_96dp.png

רכיבי Material ‏ (MDC) עוזרים למפתחים להטמיע את Material Design. ‫MDC נוצרה על ידי צוות של מהנדסים ומעצבי UX ב-Google. היא כוללת עשרות רכיבי ממשק משתמש יפים ופונקציונליים, וזמינה ל-Android, ל-iOS, לאינטרנט ול-Flutter.material.io/develop

ב-codelab‏ MDC-101, השתמשתם בשני רכיבי Material ‏ (MDC) כדי ליצור ממשק משתמש של דף כניסה: שדה טקסט וכפתור. עכשיו נרחיב את זה ונוסיף ניווט, מבנה ונתונים.

מה תפַתחו

ב-codelab הזה תיצרו דף בית לאפליקציה בשם Shrine, אפליקציית מסחר אלקטרוני שמוכרת בגדים ומוצרים לבית. היא תכלול:

  • חלונית הזזה לניווט
  • רשימת תמונות מלאה של מוצרים

e2f359c254988d75.png

MDC Web components in this codelab

  • חלונית הזזה
  • רשימת תמונות

מה תצטרכו

  • גרסה עדכנית של Node.js (שמגיעה עם npm, כלי לניהול חבילות JavaScript).
  • קוד לדוגמה (להורדה בשלב הבא)
  • ידע בסיסי ב-HTML, ב-CSS וב-JavaScript

מה רמת הניסיון שלך בפיתוח אתרים?

מתחילים ביניים מומחים

2. הגדרת סביבת הפיתוח

המשך מ-MDC-101?

אם השלמתם את MDC-101, הקוד שלכם אמור להיות מוכן ל-codelab הזה. דילוג לשלב 3: הוספת חלונית הזזה לניווט.

הורדת אפליקציית ה-codelab למתחילים

אפליקציה לתחילת הדרך נמצאת בספרייה material-components-web-codelabs-master/mdc-102/starter. חשוב לעבור לספרייה הזו באמצעות הפקודה cd לפני שמתחילים.

...או לשכפל אותו מ-GitHub

כדי לשכפל את ה-codelab הזה מ-GitHub, מריצים את הפקודות הבאות:

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

התקנת יחסי תלות בפרויקט

הספרייה הנוכחית צריכה להיות material-components-web-codelabs/mdc-102/starter.. משם מריצים את הפקודה הבאה:

npm install

אחרי שמופיעה הרבה פעילות, המסוף אמור להציג שההתקנה בוצעה בהצלחה:

23003b0e5fdf9077.png

הפעלת אפליקציה לתחילת הדרך

באותה תיקייה, מריצים את הפקודה הבאה:

npm start

המינוי ל-webpack-dev-server יתחיל. כדי לראות את הדף, פותחים את הדפדפן ועוברים לכתובת http://localhost:8080/.

4e04758051693865.png

הצלחת! אמור להופיע דף הכניסה של Shrine מתוך ה-codelab‏ MDC-101.

6c206785707bee2e.png

עכשיו, אחרי שדף הכניסה נראה טוב, נמלא את האפליקציה במוצרים. מזינים שם משתמש וסיסמה תקינים ולוחצים על הלחצן 'הבא' כדי לעבור לדף הבית.

3. הוספה של חלונית הזזה לניווט

כשהמשתמש מתחבר, מוצג לו דף בית עם הכיתוב 'עשית את זה!'. נהדר! אבל עכשיו המשתמש צריך לדעת מה לעשות ואיפה הוא נמצא באפליקציה. כדי לעזור לו, נוסיף ניווט.

דפוסי הניווט של Material Design מציעים רמת שימושיות גבוהה. חלונית ההזזה לניווט של Material מספקת ניווט וגישה מהירה לפעולות אחרות. בואו נוסיף אחד.

התקנה של חלונית הזזה ורשימה של MDC

כדי להתקין את החבילות של רכיב חלונית הזזה, מריצים את הפקודה:

npm install @material/drawer @material/list

הוספת ה-HTML

ב-home.html, מחליפים את הכיתוב You did it!‎ בתגי העיצוב הבאים של חלונית ההזזה והפריטים שבה:

<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

ב-home.scss, מוסיפים את הצהרות הייבוא הבאות אחרי הייבוא הקיים:

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

בתחתית הקובץ home.scss, מוסיפים את הסגנונות הבאים:

.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

כדי לאפשר ניווט תקין באמצעות המקלדת, צריך ליצור מופע של רשימת MDC בתוך חלונית הזזה לניווט. פותחים את home.js, שכרגע ריק, ומוסיפים את הקוד הבא:

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

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

מרעננים את הדף בכתובת http://localhost:8080/home.html. עכשיו דף הבית אמור להיראות כך:

9c145acccbc28214.png

עכשיו יש בדף הבית חלונית הזזה לניווט קבועה שמציגה פריטי ניווט שונים, והפריט הראשון פעיל.

4. הוספת תמונות עם תוויות טקסט

עכשיו, כשיש לאפליקציה שלנו מבנה מסוים, נארגן את התוכן על ידי הצבתו ברשימת תמונות.

התקנה של רשימת תמונות של MDC

כדי להתקין את החבילה של רכיב רשימת התמונות, מריצים את הפקודה:

npm install @material/image-list

הוספת HTML לרשימה עם פריט אחד

נתחיל בהוספת רשימת תמונות לצד חלונית הזזה לניווט. נתחיל את הרשימה בהוספת פריט אחד, שכולל תמונה ותווית טקסט.

ב-home.html, מוסיפים את קוד ה-HTML הבא אחרי סוף הרכיב <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>

הרשימה כוללת עוד מחלקה, product-list, שתחיל סגנונות מותאמים אישית, גם במדריך הזה וגם ב-MDC-103.

הוספת ה-CSS

קודם, ב-home.scss, מוסיפים ייבוא לסגנונות של רכיב רשימת התמונות אחרי הייבוא הקיים:

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

בשלב הבא, מוסיפים את הסגנונות הבאים אחרי הסגנונות הראשוניים של דף הבית:

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

  overflow: auto;
}

הסגנונות האלה מנחים את רשימת התמונות להציג תמונות ב-4 עמודות, כדי להבטיח שרשימת התמונות תגולל באופן עצמאי מהמגירה.

יש לרענן את הדף. עכשיו דף הבית אמור להיראות כך:

5362b330204ffd58.png

מטרת רשימת התמונות היא להציג הרבה תמונות באוסף, לכן כדאי להוסיף עוד תמונות כדי לראות טוב יותר איך הרכיב פועל.

ב-home.html, מעתיקים את רכיב <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>

אחר כך מדביקים אותו 15 פעמים אחרי הפריט הקיים (לפני תג הסגירה </ul>). התוצאה תהיה 16 תמונות. אל תדאגו לגבי תמונות ושמות ייחודיים – תלמדו על זה בקורס MDC-103.

רענן. עכשיו דף הבית אמור להיראות כך:

e2f359c254988d75.png

ברשימת התמונות מוצגות ארבע תמונות בכל שורה, והגודל של התמונות מותאם אוטומטית לשטח המסך הזמין.

5. Recap

באתר יש תהליך בסיסי שמעביר את המשתמש מדף הכניסה לדף הבית, שבו אפשר לראות את המוצרים. בכמה שורות קוד בלבד, הוספתם חלונית הזזה ורשימת תמונות להצגת תוכן. דף הבית כולל עכשיו מבנה ותוכן בסיסיים.

השלבים הבאים

בעזרת מגירת הצד ורשימת התמונות, השתמשתם עכשיו בשני רכיבי ליבה נוספים של Material Design מהספרייה של MDC Web. אפשר לעיין ברכיבים נוספים בקטלוג האינטרנט של MDC.

הדף פועל באופן מלא, אבל עדיין לא משקף מותג או נקודת מבט מסוימים. בקורס MDC-103: Material Design Theming with Color, Shape, Elevation and Type, תלמדו איך להתאים אישית את הסגנון של הרכיבים האלה כדי להביע מותג מודרני ותוסס.

הצלחתי להשלים את ה-codelab הזה בזמן סביר ובמאמץ סביר

נכון מאוד נכון אין לי דעה לכאן או לכאן לא נכון לא נכון בכלל

אני רוצה להמשיך להשתמש ב-Material Components בעתיד

נכון מאוד נכון אין לי דעה לכאן או לכאן לא נכון לא נכון בכלל