MDC-101 Web: Malzeme Bileşenleri (MDC) ile İlgili Temel Bilgiler (Web)

1. Giriş

logo_components_color_2x_web_96dp.png

Materyal Bileşenleri (MDC), geliştiricilerin Materyal Tasarım'ı uygulamasına yardımcı olur. Google'da mühendislerden ve kullanıcı deneyimi tasarımcılarından oluşan bir ekip tarafından oluşturulan MDC, onlarca güzel ve işlevsel kullanıcı arayüzü bileşeni içerir. Ayrıca Android, iOS, web ve Flutter.material.io/develop'da kullanılabilir.

Web için Materyal Tasarım ve Materyal Bileşenleri nelerdir?

Materyal Tasarım, cesur ve güzel dijital ürünler oluşturmaya yönelik bir sistemdir. Ürün ekipleri stil, marka, etkileşim ve hareketi tutarlı bir ilke ve bileşen kümesi altında bir araya getirerek en büyük tasarım potansiyellerini gerçekleştirebilir.

Materyal Bileşenler Web (MDC Web), masaüstü ve mobil web'de tutarlılık sağlamak amacıyla tasarım ve mühendisliği bir bileşen kitaplığıyla birleştirir. MDC Web bileşenlerinin her biri kendi düğüm modüllerinde yer alır; bu nedenle Materyal Tasarım sistemi geliştikçe bu bileşenler tutarlı bir şekilde piksel mükemmelliğinde uygulama sağlamak ve Google'ın kullanıcı arabirimi geliştirme standartlarına uyum sağlamak için kolayca güncellenebilir. MDC ayrıca Android, iOS ve Flutter'da da kullanılabilir.

Bu codelab'de MDC Web'in çeşitli bileşenlerini kullanarak bir giriş sayfası oluşturacaksınız.

Oluşturacaklarınız

Bu codelab, giysi ve ev eşyaları satan bir e-ticaret web sitesi olan Shrine adlı uygulamayı geliştirme konusunda size rehberlik edecek üç codelab'den ilkidir. Bu kurs, MDC Web'i kullanarak bileşenleri her marka veya stili yansıtacak şekilde nasıl özelleştirebileceğinizi gösterecek.

Bu codelab'de, Shrine için aşağıdakileri içeren bir giriş sayfası oluşturacaksınız:

  • Biri kullanıcı adı, diğeri şifre için olmak üzere iki metin alanı
  • Biri "İptal" için olmak üzere iki düğme diğeri "Sonraki" için
  • Web sitesinin adı (Mabet)
  • Shrine'ın logosunun resmi

674d1ca8cfa98c9.png

Bu codelab'deki MDC Web bileşenleri

  • Metin alanı
  • Düğme
  • Dalga

Gerekenler

  • Node.js'nin yeni bir sürümü (JavaScript paket yöneticisi olan npm ile birlikte gelir).
  • Örnek kod (sonraki adımda indirilecektir)
  • Temel HTML, CSS ve JavaScript bilgisi

Eğitimlerimizi her zaman daha iyi hale getirmek için çalışıyoruz. Web geliştirme konusundaki deneyim düzeyinizi nasıl değerlendirirsiniz?

Acemi Orta Yeterli

2. Geliştirme ortamınızı ayarlama

Starter codelab uygulamasını indirin

Başlangıç uygulaması material-components-web-codelabs-master/mdc-101/starter dizininde bulunur. Başlamadan önce bu dizine cd eklediğinizden emin olun.

...veya GitHub'dan klonlayın

Bu codelab'i GitHub'dan klonlamak için şu komutları çalıştırın:

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

Proje bağımlılıklarını yükleme

Başlangıç dizininden aşağıdaki komutu çalıştırın:

npm install

Çok fazla etkinlik göreceksiniz ve son olarak terminalinizde başarılı bir yükleme gösterilecektir:

204c063d8fd78f94.png

Başlamazsa npm audit fix komutunu çalıştırın.

Başlangıç uygulamasını çalıştırma

Aynı dizinde şu komutu çalıştırın:

npm start

webpack-dev-server başlar. Sayfayı görmek için tarayıcınızda http://localhost:8080/ adresine gidin.

17c139dc5a9bebaf.png

Başarıyla gerçekleştirildi. Shrine'ın giriş sayfası için başlangıç kodu tarayıcınızda çalışıyor olmalıdır. "Shrine" adını göreceksiniz ve hemen altındaki Shrine logosu.

f7e3f354df8d84b8.png

Koda göz atın

index.html ürünündeki meta veriler

Başlangıç dizininde, index.html uygulamasını favori kod düzenleyicinizle açın. Şunları içermelidir:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>Shrine (MDC Web Example App)</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" sizes="192x192" href="https://material.io/static/images/simple-lp/favicons/components-192x192.png">
  <link rel="shortcut icon" href="https://material.io/static/images/simple-lp/favicons/components-72x72.png">

  <link rel="stylesheet"
        href="https://cdnjs.cloudflare.com/ajax/libs/normalize/6.0.0/normalize.min.css">
  <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet">
  <link rel="stylesheet" href="bundle-login.css">
</head>
<body class="shrine-login">
  <section class="header">
    <svg class="shrine-logo" ...>
      ...
    </svg>
    <h1>SHRINE</h1>
  </section>

  <form action="home.html">
  </form>

  <script src="bundle-login.js" async></script>
</body>
</html>

Burada, web paketi tarafından oluşturulan bundle-login.css dosyasını yüklemek için bir <link> etiketi kullanılır ve bir <script> etiketi bundle-login.js dosyasını içerir. Ayrıca, farklı tarayıcılarda tutarlı oluşturma için normalize.css ve Google Fonts'taki Roboto yazı tipini ekleriz.

login.scss ürünündeki özel stiller

MDC web bileşenlerinin stil özellikleri, mdc-text-field sınıfı gibi mdc-* CSS sınıfları kullanılarak belirlenir. (MDC Web, DOM yapısını herkese açık API'sinin bir parçası olarak ele alır.)

Genel olarak, kendi sınıflarınızı kullanarak bileşenlerde özel stil değişiklikleri yapmanız önerilir. Yukarıdaki HTML'de bulunan shrine-logo gibi bazı özel CSS sınıflarını fark etmiş olabilirsiniz. Bu stiller, sayfaya temel stiller eklemek için login.scss içinde tanımlanır.

login.scss uygulamasını açtığınızda giriş sayfası için şu stilleri görürsünüz:

@import "./common";

.header {
  text-align: center;
}

.shrine-logo {
  width: 150px;
  height: 150px;
  padding-top: 80px;
  fill: currentColor;
}

Artık başlangıç kodunu öğrendiğinize göre ilk bileşenimizi uygulayalım.

3. Metin alanları ekleyin

Başlangıç olarak, giriş sayfamıza, kullanıcıların kullanıcı adlarını ve şifrelerini girebilecekleri iki metin alanı ekleyeceğiz. Kayan bir etiket görüntüleyen ve bir dokunma dalgalanmasını etkinleştiren yerleşik işlevsellik içeren MDC Metin Alanı bileşenini kullanacağız.

9ad8a7db0b50f07d.png

MDC Metin Alanı'nı yükleyin

MDC Web bileşenleri, NPM paketleri aracılığıyla yayınlanır. Metin alanı bileşeninin paketini yüklemek için şu komutu çalıştırın:

npm install @material/textfield@^6.0.0

HTML'yi ekleme

index.html ürününde, aşağıdakileri gövdedeki <form> öğesinin içine ekleyin:

<label class="mdc-text-field mdc-text-field--filled username">
  <span class="mdc-text-field__ripple"></span>
  <input type="text" class="mdc-text-field__input" aria-labelledby="username-label" name="username">
  <span class="mdc-floating-label" id="username-label">Username</span>
  <span class="mdc-line-ripple"></span>
</label>
<label class="mdc-text-field mdc-text-field--filled password">
  <span class="mdc-text-field__ripple"></span>
  <input type="password" class="mdc-text-field__input" aria-labelledby="password-label" name="password">
  <span class="mdc-floating-label" id="password-label">Password</span>
  <span class="mdc-line-ripple"></span>
</label>

MDC Metin Alanı DOM yapısı birkaç bölümden oluşur:

  • Ana öğe olan mdc-text-field
  • Alt öğeler mdc-text-field__ripple, mdc-text-field__input, mdc-floating-label ve mdc-line-ripple

CSS'yi ekleme

login.scss aracında, mevcut içe aktarma işleminden sonra aşağıdaki içe aktarma deyimini ekleyin:

@import "@material/textfield/mdc-text-field";

Aynı dosyada, metin alanlarını hizalayıp ortalamak için aşağıdaki stilleri ekleyin:

.username,
.password {
  display: flex;
  margin: 20px auto;
  width: 300px;
}

JavaScript'i ekleme

Şu anda boş olan login.js uygulamasını açın. Metin Alanlarını içe aktarmak ve örneklendirmek için aşağıdaki kodu ekleyin:

import {MDCTextField} from '@material/textfield';

const username = new MDCTextField(document.querySelector('.username'));
const password = new MDCTextField(document.querySelector('.password'));

HTML5 doğrulaması ekleme

Metin Alanları, alan girişi geçerliyse veya hata içeriyorsa HTML5'in form doğrulama API'si tarafından sağlanan özellikleri kullanarak bunu ifade eder.

Aşağıdakileri yapmanız gerekir:

  • required özelliğini hem Kullanıcı Adı hem de Şifre metin alanlarının mdc-text-field__input öğelerine ekleyin.
  • Password (Şifre) metin alanının mdc-text-field__input öğesinin minlength özelliğini "8" olarak ayarlayın

İki <label class="mdc-text-field mdc-text-field--filled"> öğesini aşağıdaki gibi görünecek şekilde ayarlayın:

<label class="mdc-text-field mdc-text-field--filled username">
  <span class="mdc-text-field__ripple"></span>
  <input type="text" class="mdc-text-field__input" aria-labelledby="username-label" name="username" required>
  <span class="mdc-floating-label" id="username-label">Username</span>
  <span class="mdc-line-ripple"></span>
</label>
<label class="mdc-text-field mdc-text-field--filled password">
  <span class="mdc-text-field__ripple"></span>
  <input type="password" class="mdc-text-field__input" aria-labelledby="password-label" name="password" required minlength="8">
  <span class="mdc-floating-label" id="password-label">Password</span>
  <span class="mdc-line-ripple"></span>
</label>

http://localhost:8080/ adresinden sayfayı yenileyin. Kullanıcı Adı ve Şifre için iki metin alanı içeren bir sayfa görmeniz gerekir.

Kayan etiket animasyonunu ve çizgi dalgası animasyonunu (dışa doğru dalgalanan alt kenarlık çizgisi) kontrol etmek için metin alanlarını tıklayın:

c0b341e9949a6183.gif

4. Düğme ekle

Daha sonra, giriş sayfamıza iki düğme ekleyeceğiz: "İptal" ve "Sonraki"yi seçin. İkonik Materyal Tasarım mürekkep dalga efektini tamamlamak için MDC Düğmesi bileşenini, MDC Dalga bileşeniyle birlikte kullanacağız.

674d1ca8cfa98c9.png

MDC'yi Yükle Düğmesi

Düğme bileşenine ilişkin paketi yüklemek için şu komutu çalıştırın:

npm install @material/button@^6.0.0

HTML'yi ekleme

index.html içinde, <label class="mdc-text-field mdc-text-field--filled password"> öğesinin kapanış etiketinin altına aşağıdakileri ekleyin:

<div class="button-container">
  <button type="button" class="mdc-button cancel">
    <div class="mdc-button__ripple"></div>
    <span class="mdc-button__label">
      Cancel
    </span>
  </button>
  <button class="mdc-button mdc-button--raised next">
    <div class="mdc-button__ripple"></div>
    <span class="mdc-button__label">
      Next
    </span>
  </button>
</div>

"İptal" için varsayılan düğme stilini kullanıyoruz. Ancak "Sonraki" düğmesi, mdc-button--raised sınıfıyla belirtilen yükseltilmiş bir stil varyantı kullanır.

Daha sonra kolayca hizalamak için iki mdc-button öğesini bir <div> öğesine sarmalarız.

CSS'yi ekleme

login.scss aracında, mevcut içe aktarma işlemlerinden sonra aşağıdaki içe aktarma deyimini ekleyin:

@import "@material/button/mdc-button";

Düğmeleri hizalayıp aralarına kenar boşluğu eklemek için login.scss bölümüne aşağıdaki stilleri ekleyin:

.button-container {
  display: flex;
  justify-content: flex-end;
  width: 300px;
  margin: auto;
}

.button-container button {
  margin: 3px;
}

Düğmelere mürekkep dalgası ekleme

Kullanıcı bir düğmeye dokunduğunda veya düğmeyi tıkladığında geri bildirim, mürekkep dalgası biçiminde gösterilmelidir. Mürekkep dalgası bileşeni JavaScript gerektirdiğinden onu sayfaya ekleyeceğiz.

Ripple bileşeninin paketini yüklemek için şu komutu çalıştırın:

npm install @material/ripple@^6.0.0

login.js öğesinin üst tarafına aşağıdaki içe aktarma deyimini ekleyin:

import {MDCRipple} from '@material/ripple';

Dalgaları örneklendirmek için aşağıdakileri login.js öğesine ekleyin:

new MDCRipple(document.querySelector('.cancel'));
new MDCRipple(document.querySelector('.next'));

Ripple örneğini saklamamız gerekmediği için bu örneği bir değişkene atamaya da gerek yoktur.

İşte bu kadar. Sayfayı yenileyin. Düğmelerden her birini tıkladığınızda bir mürekkep dalgası görüntülenir.

bb19b0a567977bde.gif

Metin alanlarını geçerli değerlerle doldurun ve "SONRAKİ" düğmesine basın düğmesini tıklayın. Başardınız! MDC-102'de bu sayfa üzerinde çalışmaya devam edeceksiniz.

5. Özet

Web kitaplığı için Malzeme Bileşenleri, temel HTML işaretlemesi ile yalnızca birkaç satırlık CSS ve JavaScript'i kullanarak Materyal Tasarım yönergelerine uygun, tüm cihazlarda tutarlı bir görünüm ve davranışa sahip, güzel bir giriş sayfası oluşturmanıza yardımcı oldu.

Sonraki adımlar

Metin Alanı, Düğme ve Dalga, MDC Web kitaplığındaki üç temel bileşendir ancak daha birçok bileşen vardır. MDC Web'deki bileşenlerin geri kalanını da keşfedebilirsiniz.

Gezinme çekmecesi ve resim listesi hakkında bilgi edinmek için MDC-102: Material Design Structure and Layout'a (MDC-102: Materyal Tasarım Yapısı ve Düzen) gidebilirsiniz. Materyal Bileşenler'i denediğiniz için teşekkürler. Bu codelab'den memnun kaldığınızı umuyoruz.

Bu codelab'i makul bir zaman ve çabayla tamamlayabildim

Kesinlikle katılıyorum Katılıyorum Ne memnunum ne değilim Katılmıyorum Kesinlikle katılmıyorum

Gelecekte Materyal Bileşenleri kullanmaya devam etmek istiyorum

Kesinlikle katılıyorum Katılıyorum Ne memnunum ne değilim Katılmıyorum Kesinlikle katılmıyorum