コンポーネント
コンポーネント
Material Design Lite (MDL) は、Google のマテリアルデザインの理念に基づいた、Web 開発者向けのコンポーネントライブラリです。「優れたデザインの古典的な原則と、テクノロジーと科学の可能性を融合させた、ユーザーのための視覚言語」です。マテリアルデザインの目標と原則を理解することは、Material Design Lite コンポーネントを適切に使用するために不可欠です。マテリアルデザインの概要 をまだお読みでない場合は、コンポーネントを使用する前に必ずお読みください。

バッジ

UI 要素の小さな状態記述子。

account_box
account_box
アイコン
<!-- Number badge on icon -->
<div class="material-icons mdl-badge mdl-badge--overlap" data-badge="1">account_box</div>
<style></style>
<!-- Icon badge on icon --> <div class="material-icons mdl-badge mdl-badge--overlap" data-badge="♥">account_box</div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
受信トレイ
ムード
アイコン
<!-- Number badge -->
<span class="mdl-badge" data-badge="4">Inbox</span>
<style></style>
<!-- Icon badge --> <span class="mdl-badge" data-badge="♥">Mood</span>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL) の **バッジ** コンポーネントは、画面上の通知要素です。バッジは、通常は数字やその他の文字を含む小さな円形で、別のオブジェクトの近くに表示されます。バッジは、オブジェクトに関連付けられた追加のアイテムがあることを通知するものであり、アイテムの数を示すインジケーターでもあります。

バッジを使用して、ユーザーが気付かない可能性のあるアイテムにさりげなく注意を引いたり、アイテムに注意が必要であることを強調したりすることができます。たとえば

  • 「新しいメッセージ」の通知には、未読メッセージの数が含まれるバッジが付いている場合があります。
  • 「ショッピングカートに未購入のアイテムがあります」というリマインダーには、カート内のアイテム数を示すバッジが含まれている場合があります。
  • 「ディスカッションに参加しましょう!」ボタンには、現在ディスカッションに参加しているユーザー数を示すバッジが付いている場合があります。

バッジは、ほとんどの場合、リンクの近くに配置されるため、ユーザーはバッジによって示された追加情報に簡単にアクセスできます。ただし、意図によっては、バッジ自体がリンクの一部であるとは限りません。

バッジはユーザーインターフェースの新しい機能であり、ユーザーに関連する追加コンテンツを発見するための視覚的な手がかりを提供します。したがって、そのデザインと使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。

MDL **バッジ** コンポーネントを含めるには

 1. <a>(アンカー/リンク)または<span>要素を記述します。必要な属性とコンテンツを含めます。

<a href="#">This link has a badge.</a>

 2. class属性を使用して、1つ以上のMDLクラスをスペースで区切って要素に追加します。

<a href="#" class="mdl-badge">This link has a badge.</a>

 3. data-badge属性と、バッジの引用符で囲まれた文字列値を追加します。

<a href="#" class="mdl-badge" data-badge="5">This link has a badge.</a>

バッジコンポーネントは使用準備ができました。

**注:** バッジコンポーネントのサイズは小さいため、data-badge値には通常、1〜3文字を含める必要があります。3文字を超える文字を含めてもエラーは発生しませんが、一部の文字はバッジの外側に表示されるため、見にくい場合や見えない場合があります。data-badge属性の値は、バッジの中央に配置されます。

リンク内のバッジ。

<a href="#" class="mdl-badge" data-badge="7">This link contains a badge.</a>

リンクの近くにあるが、リンクに含まれていないバッジ。

<a href="#">This link is followed by a badge.</a>
<span class="mdl-badge" data-badge="12"></span>

バッジに収まりきらない文字数の多いリンク内のバッジ。

<a href="#" class="mdl-badge" data-badge="123456789">
This badge has too many characters.</a>

バッジの背景色が設定されていないリンク内のバッジ。

<a href="#" class="mdl-badge mdl-badge--no-background" data-badge="123">
This badge has no background color.</a>

設定オプション

MDL CSSクラスは、バッジにさまざまな事前に定義された視覚的な強化を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-badge バッジをMDLコンポーネントとして定義します spanまたはリンクで必須
mdl-badge--no-background バッジに空円の効果を適用します 任意
mdl-badge--overlap バッジをコンテナとオーバーラップさせます 任意
data-badge="value" バッジに文字列値を割り当てます クラスではなく、個別の属性です。spanまたはリンクで必須

ボタン

マテリアルデザインボタンのバリエーション。

カラーFAB
リップル付き
<!-- Colored FAB button -->
<button class="mdl-button mdl-js-button mdl-button--fab mdl-button--colored">
  <i class="material-icons">add</i>
</button>
<style></style>
<!-- Colored FAB button with ripple --> <button class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored"> <i class="material-icons">add</i> </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
プレーンFAB
リップル付き
無効
<!-- FAB button -->
<button class="mdl-button mdl-js-button mdl-button--fab">
  <i class="material-icons">add</i>
</button>
<style></style>
<!-- FAB button with ripple --> <button class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect"> <i class="material-icons">add</i> </button>
<style></style>
<!-- Disabled FAB button --> <button class="mdl-button mdl-js-button mdl-button--fab" disabled> <i class="material-icons">add</i> </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
立体ボタン
リップル付き
無効
<!-- Raised button -->
<button class="mdl-button mdl-js-button mdl-button--raised">
  Button
</button>
<style></style>
<!-- Raised button with ripple --> <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect"> Button </button>
<style></style>
<!-- Raised disabled button --> <button class="mdl-button mdl-js-button mdl-button--raised" disabled> Button </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
カラーボタン
アクセントカラー
リップル付き
<!-- Colored raised button -->
<button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
  Button
</button>
<style></style>
<!-- Accent-colored raised button --> <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--accent"> Button </button>
<style></style>
<!-- Accent-colored raised button with ripple --> <button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--accent"> Button </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
フラットボタン
リップル付き
無効
<!-- Flat button -->
<button class="mdl-button mdl-js-button">
  Button
</button>
<style></style>
<!-- Flat button with ripple --> <button class="mdl-button mdl-js-button mdl-js-ripple-effect"> Button </button>
<style></style>
<!-- Disabled flat button --> <button class="mdl-button mdl-js-button" disabled> Button </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
プライマリカラーフラット
アクセントカラーフラット
<!-- Primary-colored flat button -->
<button class="mdl-button mdl-js-button mdl-button--primary">
  Button
</button>
<style></style>
<!-- Accent-colored flat button --> <button class="mdl-button mdl-js-button mdl-button--accent"> Button </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
アイコンボタン
カラー
<!-- Icon button -->
<button class="mdl-button mdl-js-button mdl-button--icon">
  <i class="material-icons">mood</i>
</button>
<style></style>
<!-- Colored icon button --> <button class="mdl-button mdl-js-button mdl-button--icon mdl-button--colored"> <i class="material-icons">mood</i> </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
ミニFAB
カラー
<!-- Mini FAB button -->
<button class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab">
  <i class="material-icons">add</i>
</button>
<style></style>
<!-- Colored mini FAB button --> <button class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored"> <i class="material-icons">add</i> </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL) の **ボタン** コンポーネントは、標準的なHTML <button> 要素の拡張バージョンです。ボタンは、ユーザーがクリックまたはタッチしたときにどのようなアクションが発生するかを明確に伝えるテキストや画像で構成されます。MDLボタンコンポーネントはさまざまな種類のボタンを提供し、表示効果とクリック効果の両方を追加できます。

ボタンは、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースに普遍的に存在する機能です。したがって、そのデザインと使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細は、ボタンコンポーネントの マテリアルデザイン仕様ページ を参照してください。

使用可能なボタンの表示タイプは、フラット(デフォルト)、立体fabミニfab、およびアイコンです。これらのタイプのいずれも、プレーン(ライトグレー)またはカラーにすることができ、最初は、またはプログラムによって無効にできます。fabミニfab、およびアイコンボタンタイプは、通常、テキストではなく小さな画像をキャプションとして使用します。

MDL **ボタン** コンポーネントを含めるには

 1. <button> 要素を記述します。IDやイベントハンドラーなどの必要な属性と値を含め、必要に応じてテキストキャプションまたは画像を追加します。

<button>Save</button>

 2. class 属性を使用して、1 つ以上の MDL クラスをスペースで区切ってボタンに追加します。

<button class="mdl-button mdl-js-button mdl-button--raised">Save</button>

ボタンコンポーネントは使用準備ができました。

「立体」効果のあるボタン。

<button class="mdl-button mdl-js-button mdl-button--raised">Save</button>

「fab」効果のあるボタン。

<button class="mdl-button mdl-js-button mdl-button--fab">OK</button>

「アイコン」と「カラー」効果のあるボタン。

<button class="mdl-button mdl-js-button mdl-button--icon mdl-button--colored">?</button>

設定オプション

MDL CSS クラスは、ボタンにさまざまな事前に定義された視覚的および動作上の強化を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-button ボタンをMDLコンポーネントとして定義します 必須
mdl-js-button ボタンに基本的なMDL動作を割り当てます 必須
(なし) ボタンにフラット表示効果を適用します(デフォルト)
mdl-button--raised 立体表示効果を適用します fabミニfab、およびアイコンと相互に排他的です
mdl-button--fab fab(円形)表示効果を適用します 立体ミニfab、およびアイコンと相互に排他的です
mdl-button--mini-fab ミニfab(小さなfab円形)表示効果を適用します 立体fab、およびアイコンと相互に排他的です
mdl-button--icon アイコン(小さなプレーンな円形)表示効果を適用します 立体fab、およびミニfabと相互に排他的です
mdl-button--colored カラー表示効果を適用します(ボタンの種類に応じてプライマリカラーまたはアクセントカラー) カラーはmaterial.min.cssで定義されています
mdl-button--primary プライマリカラー表示効果を適用します カラーはmaterial.min.cssで定義されています
mdl-button--accent アクセントカラー表示効果を適用します カラーはmaterial.min.cssで定義されています
mdl-js-ripple-effect リップルクリック効果を適用します 他のクラスと組み合わせて使用できます

**注:** 使用可能なすべてのボタンタイプの無効バージョンが提供されており、標準的なHTMLブール属性disabledを使用して呼び出されます。<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" disabled>立体リップル無効</button>。あるいは、mdl-button--disabledクラスを使用して同じスタイルを実現できますが、要素の機能は無効になりません。この属性は、スクリプティングによってプログラムで追加または削除できます。

カード

データを含む独立した紙片。

ようこそ

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis pellentesque lacus eleifend lacinia...
ワイド
<!-- Wide card with share menu button -->
<style>
.demo-card-wide.mdl-card {
  width: 512px;
}
.demo-card-wide > .mdl-card__title {
  color: #fff;
  height: 176px;
  background: url('../assets/demos/welcome_card.jpg') center / cover;
}
.demo-card-wide > .mdl-card__menu {
  color: #fff;
}
</style>

<div class="demo-card-wide mdl-card mdl-shadow--2dp">
  <div class="mdl-card__title">
    <h2 class="mdl-card__title-text">Welcome</h2>
  </div>
  <div class="mdl-card__supporting-text">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Mauris sagittis pellentesque lacus eleifend lacinia...
  </div>
  <div class="mdl-card__actions mdl-card--border">
    <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
      Get Started
    </a>
  </div>
  <div class="mdl-card__menu">
    <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
      <i class="material-icons">share</i>
    </button>
  </div>
</div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

更新

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenan convallis.
スクエア
<!-- Square card -->
<style>
.demo-card-square.mdl-card {
  width: 320px;
  height: 320px;
}
.demo-card-square > .mdl-card__title {
  color: #fff;
  background:
    url('../assets/demos/dog.png') bottom right 15% no-repeat #46B6AC;
}
</style>

<div class="demo-card-square mdl-card mdl-shadow--2dp">
  <div class="mdl-card__title mdl-card--expand">
    <h2 class="mdl-card__title-text">Update</h2>
  </div>
  <div class="mdl-card__supporting-text">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Aenan convallis.
  </div>
  <div class="mdl-card__actions mdl-card--border">
    <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
      View Updates
    </a>
  </div>
</div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
Image.jpg

特集イベント
2016年5月24日
午後7時~11時

画像
イベント
<!-- Image card -->
<style>
.demo-card-image.mdl-card {
  width: 256px;
  height: 256px;
  background: url('../assets/demos/image_card.jpg') center / cover;
}
.demo-card-image > .mdl-card__actions {
  height: 52px;
  padding: 16px;
  background: rgba(0, 0, 0, 0.2);
}
.demo-card-image__filename {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
}
</style>

<div class="demo-card-image mdl-card mdl-shadow--2dp">
  <div class="mdl-card__title mdl-card--expand"></div>
  <div class="mdl-card__actions">
    <span class="demo-card-image__filename">Image.jpg</span>
  </div>
</div>
<style></style>
<!-- Event card --> <style> .demo-card-event.mdl-card { width: 256px; height: 256px; background: #3E4EB8; } .demo-card-event > .mdl-card__actions { border-color: rgba(255, 255, 255, 0.2); } .demo-card-event > .mdl-card__title { align-items: flex-start; } .demo-card-event > .mdl-card__title > h4 { margin-top: 0; } .demo-card-event > .mdl-card__actions { display: flex; box-sizing:border-box; align-items: center; } .demo-card-event > .mdl-card__actions > .material-icons { padding-right: 10px; } .demo-card-event > .mdl-card__title, .demo-card-event > .mdl-card__actions, .demo-card-event > .mdl-card__actions > .mdl-button { color: #fff; } </style> <div class="demo-card-event mdl-card mdl-shadow--2dp"> <div class="mdl-card__title mdl-card--expand"> <h4> Featured event:<br> May 24, 2016<br> 7-11pm </h4> </div> <div class="mdl-card__actions mdl-card--border"> <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect"> Add to Calendar </a> <div class="mdl-layout-spacer"></div> <i class="material-icons">event</i> </div> </div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL) の **カード** コンポーネントは、写真、テキスト、リンクなど、単一の主題に関する関連データを含む仮想的な紙片を表すユーザーインターフェース要素です。

カードは、異なる種類のオブジェクトで構成される関連コンテンツを一貫して表示する便利な手段です。また、サイズやサポートされるアクションが大きく異なる同様のオブジェクト(可変長のキャプション付きの写真など)の提示にも適しています。カードには一定の幅と、コンテンツに応じて可変の高さがあります。

カードはユーザーインターフェースの比較的新しい機能であり、ユーザーはより複雑で詳細な情報へのアクセス ポイントを提供します。そのデザインと使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細は、カードコンポーネントの マテリアルデザイン仕様ページ を参照してください。

MDL **カード** コンポーネントを含めるには

1. <div> 要素を記述します。これはカードのすべてのコンテンツを保持することを目的とした「外部」コンテナです。

<div>
</div>

2. div の中に、目的のコンテンツブロックごとに 1 つ以上の「内部」div を記述します。タイトル、画像、テキスト、アクションバーを含むカードには、すべて兄弟要素である 4 つの「内部」div が含まれます。

<div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
</div>

3. class 属性を使用して、「外部」div と「内部」div(それぞれの用途に応じて)に、スペースで区切った 1 つ以上の MDL クラスを追加します。

<div class="mdl-card">
  <div class="mdl-card__title">
  ...
  </div>
  <div class="mdl-card__media">
  ...
  </div>
  <div class="mdl-card__supporting-text">
  ...
  </div>
  <div class="mdl-card__actions">
  ...
  </div>
</div>

4. 標準的な HTML 要素と、必要に応じて追加の MDL クラスを使用して、「内部」div にコンテンツを追加します(これも用途によって異なります)。

<div class="mdl-card">
  <div class="mdl-card__title">
    <h2 class="mdl-card__title-text">title Text Goes Here</h2>
  </div>
  <div class="mdl-card__media">
    <img src="photo.jpg" width="220" height="140" border="0" alt="" style="padding:20px;">
  </div>
  <div class="mdl-card__supporting-text">
    This text might describe the photo and provide further information, such as where and
    when it was taken.
  </div>
  <div class="mdl-card__actions">
    <a href="(URL or function)">Related Action</a>
  </div>
</div>

カードコンポーネントが使用できるようになりました。

タイトル、画像、テキスト、アクションを含むカード(影なし)。

<div class="mdl-card">
  <div class="mdl-card__title">
     <h2 class="mdl-card__title-text">Auckland Sky Tower<br>Auckland, New Zealand</h2>
  </div>
  <div class="mdl-card__media">
    <img src="skytower.jpg" width="173" height="157" border="0" alt=""
     style="padding:10px;">
  </div>
  <div class="mdl-card__supporting-text">
  The Sky Tower is an observation and telecommunications tower located in Auckland,
  New Zealand. It is 328 metres (1,076 ft) tall, making it the tallest man-made structure
  in the Southern Hemisphere.
  </div>
  <div class="mdl-card__actions">
     <a href="http://en.wikipedia.org/wiki/Sky_Tower_%28Auckland%29">Wikipedia entry</a>
  </div>
</div>

画像、キャプション、テキストを含むカード(レベル3の影)。

<div class="mdl-card mdl-shadow--4dp">
  <div class="mdl-card__media"><img src="skytower.jpg" width="173" height="157" border="0"
   alt="" style="padding:10px;">
  </div>
  <div class="mdl-card__supporting-text">
    Auckland Sky Tower, taken March 24th, 2014
  </div>
  <div class="mdl-card__supporting-text">
  The Sky Tower is an observation and telecommunications tower located in Auckland,
  New Zealand. It is 328 metres (1,076 ft) tall, making it the tallest man-made structure
  in the Southern Hemisphere.
  </div>
</div>

設定オプション

MDL CSS クラスは、カードにさまざまな定義済みの視覚的および動作上の拡張機能を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-card div 要素を MDL カードコンテナとして定義します。 「外部」div で必須。
mdl-card--border 適用されたカードセクションにボーダーを追加します。 「内部」div で使用します。
mdl-shadow--2dp から mdl-shadow--16dp カードにさまざまな影の深さ(2、3、4、6、8、または 16)を割り当てます。 省略可能。「外部」div に適用します。省略した場合は、影は表示されません。
mdl-card__title div をカードタイトルコンテナとして定義します。 「内部」タイトル div で必須。
mdl-card__title-text カードタイトルに適切なテキスト特性を割り当てます。 タイトル div 内のヘッダータグ(H1~H6)で必須。
mdl-card__subtitle-text カードサブタイトルにテキスト特性を割り当てます。 省略可能。タイトル要素の子要素である必要があります。
mdl-card__media div をカードメディアコンテナとして定義します。 「内部」メディア div で必須。
mdl-card__supporting-text div をカード本文テキストコンテナとして定義し、本文テキストに適切なテキスト特性を割り当てます。 「内部」本文テキスト div で必須。テキストは、介入するコンテナなしで直接 div の中に記述します。
mdl-card__actions div をカードアクションコンテナとして定義し、アクションテキストに適切なテキスト特性を割り当てます。 「内部」アクション div で必須。コンテンツは、介入するコンテナなしで直接 div の中に記述します。
mdl-card__menu 要素を右上のメニューボタンとして定義します。 省略可能。mdl-card 要素の子要素である必要があります。

チップ

小さなブロックで複雑なエンティティを表します。

基本チップ
削除可能なチップ
基本チップ
削除可能なチップ
ボタンチップ
<!-- Basic Chip -->
<span class="mdl-chip">
    <span class="mdl-chip__text">Basic Chip</span>
</span>
<style></style>
<!-- Deletable Chip --> <span class="mdl-chip mdl-chip--deletable"> <span class="mdl-chip__text">Deletable Chip</span> <button type="button" class="mdl-chip__action"><i class="material-icons">cancel</i></button> </span>
<style></style>
<!-- Button Chip --> <button type="button" class="mdl-chip"> <span class="mdl-chip__text">Button Chip</span> </button>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
A コンタクトチップ
削除可能なコンタクトチップ cancel
コンタクトチップ
削除可能なコンタクトチップ
<!-- Contact Chip -->
<span class="mdl-chip mdl-chip--contact">
    <span class="mdl-chip__contact mdl-color--teal mdl-color-text--white">A</span>
    <span class="mdl-chip__text">Contact Chip</span>
</span>
<style></style>
<!-- Deletable Contact Chip --> <span class="mdl-chip mdl-chip--contact mdl-chip--deletable"> <img class="mdl-chip__contact" src="/templates/dashboard/images/user.jpg"></img> <span class="mdl-chip__text">Deletable Contact Chip</span> <a href="#" class="mdl-chip__action"><i class="material-icons">cancel</i></a> </span>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL) の**チップ**コンポーネントは、小さくインタラクティブな要素です。チップは、一般的に連絡先、テキスト、ルール、アイコン、写真に使用されます。

MDL チップコンポーネントを含めるには

1. チップのコンテナ要素を作成します。通常は<span><div>が使用されますが、任意のコンテナ要素でも同様に機能します。インタラクティブな機能が必要な場合は、<button>を使用するか、コンテナにtabindex属性を追加します。

<span>
</span>

2. テキストラッパーと MDL クラスを追加します。

<span class="mdl-chip">
    <span class="mdl-chip__text">Chip Text</span>
</span>

3. 削除可能なチップの場合、削除アイコンを追加します。これは<a><button>、または<span>などの非インタラクティブなタグにすることができます。

<span class="mdl-chip">
    <span class="mdl-chip__text">Chip Text</span>
    <a href="#" class="mdl-chip__action"><i class="material-icons">cancel</i></a>
</span>

4. コンタクトチップには、コンテナにmdl-chip--contactクラスと、コンタクトアイコン用の別のコンテナを追加する必要があります。写真用のアイコンコンテナは通常<img>タグですが、少し追加のCSSを使用すれば、他の種類のコンテンツも使用できます。

<span class="mdl-chip">
    <span class="mdl-chip__contact mdl-color--teal mdl-color-text--white">A</span>
    <span class="mdl-chip__text">Chip Text</span>
    <a href="#" class="mdl-chip__action"><i class="material-icons">cancel</i></a>
</span>

コンタクト画像がbackground-imageを持つ<span>であるボタンベースのコンタクトチップ。

<style>
    .demo-chip .mdl-chip__contact {
        background-image: url("./path/to/image");
        background-size: cover;
    }
</style>

<button class="mdl-chip demo-chip">
    <span class="mdl-chip__contact">&nbsp;</span>
    <span class="mdl-chip__text">Chip Text</span>
    <a href="#" class="mdl-chip__action"><i class="material-icons">cancel</i></a>
</button>

CSS クラス

MDL クラス 効果 備考
mdl-chip 要素を MDL チップコンテナとして定義します。 「外部」コンテナで必須。
mdl-chip--contact MDL チップをコンタクトスタイルチップとして定義します。 省略可能。「外部」コンテナに適用します。
mdl-chip__text 要素をチップのテキストとして定義します。 「内部」テキストコンテナで必須。
mdl-chip__action 要素をチップのアクションとして定義します。 存在する場合、「内部」アクションコンテナで必須。
mdl-chip__contact 要素をチップのコンタクトコンテナとして定義します。 「外部」コンテナにmdl-chip--contactクラスが存在する場合、「内部」コンタクトコンテナで必須。

ダイアログ

専用のユーザー入力のためのモーダルウィンドウ。

**注:** ダイアログは HTML の<dialog>要素を使用しますが、現在、クロスブラウザのサポートは非常に限られています。すべての最新のブラウザでサポートを確保するには、ポリフィルを使用するか、独自のものを作成することを検討してください。MDL にはポリフィルが含まれていません。

はじめに

Material Design Lite (MDL) の**ダイアログ**コンポーネントを使用すると、ユーザーアクションの確認、簡単なデータ入力、ユーザーに追加情報を提供するためのアラートを行うことができます。

基本的な使用方法

dialog 要素をサポートするブラウザを使用している必要があります。執筆時点では、Chrome と Opera のみがネイティブサポートしています。他のブラウザでは、dialog ポリフィルを含めるか、独自のものを作成する必要があります。

ダイアログのサポートが得られたら、ダイアログ要素を作成します。ポリフィルを使用する場合、要素は**必ず**body要素の子要素である必要があります。そのコンテナ内に、mdl-dialog__contentクラスを持つコンテンツ要素を追加します。コンテンツを追加してから、mdl-dialog__actionsクラスを持つアクションコンテナを作成します。最後にマークアップとして、このコンテナ内にダイアログ機能をトリガーするためのボタンを追加します。

アクションの順序は自動的に反転されることに注意してください。Material Design では、プライマリ(確認)アクションを最後に表示する必要があります。そのため、最初に作成するアクションは、アクションバーの最後に表示されます。これにより、仕様に従いつつ、より自然なコーディングとタブの順序付けが可能になります。

アクション項目のイベントハンドラーを追加することを忘れないでください。ダイアログのマークアップを作成したら、ダイアログを表示するようにトリガーするイベントリスナーをページに追加します。

例として

  var button = document.querySelector('button');
  var dialog = document.querySelector('dialog');
  button.addEventListener('click', function() {
    dialog.showModal();
    /* Or dialog.show(); to show the dialog without a backdrop. */
  });

シンプルなダイアログ

codepenでこのライブ例を参照してください。

<body>
  <button id="show-dialog" type="button" class="mdl-button">Show Dialog</button>
  <dialog class="mdl-dialog">
    <h4 class="mdl-dialog__title">Allow data collection?</h4>
    <div class="mdl-dialog__content">
      <p>
        Allowing us to collect data will let us get you the information you want faster.
      </p>
    </div>
    <div class="mdl-dialog__actions">
      <button type="button" class="mdl-button">Agree</button>
      <button type="button" class="mdl-button close">Disagree</button>
    </div>
  </dialog>
  <script>
    var dialog = document.querySelector('dialog');
    var showDialogButton = document.querySelector('#show-dialog');
    if (! dialog.showModal) {
      dialogPolyfill.registerDialog(dialog);
    }
    showDialogButton.addEventListener('click', function() {
      dialog.showModal();
    });
    dialog.querySelector('.close').addEventListener('click', function() {
      dialog.close();
    });
  </script>
</body>

アクションの幅全体を使用するダイアログ

codepenでこのライブ例を参照してください。

<body>
  <button type="button" class="mdl-button show-modal">Show Modal</button>
  <dialog class="mdl-dialog">
    <div class="mdl-dialog__content">
      <p>
        Allow this site to collect usage data to improve your experience?
      </p>
    </div>
    <div class="mdl-dialog__actions mdl-dialog__actions--full-width">
      <button type="button" class="mdl-button">Agree</button>
      <button type="button" class="mdl-button close">Disagree</button>
    </div>
  </dialog>
  <script>
    var dialog = document.querySelector('dialog');
    var showModalButton = document.querySelector('.show-modal');
    if (! dialog.showModal) {
      dialogPolyfill.registerDialog(dialog);
    }
    showModalButton.addEventListener('click', function() {
      dialog.showModal();
    });
    dialog.querySelector('.close').addEventListener('click', function() {
      dialog.close();
    });
  </script>
</body>

CSS クラス

ブロック

MDL クラス 効果 備考
mdl-dialog ダイアログコンポーネントのコンテナを定義します。 ダイアログコンテナで必須。

要素

MDL クラス 効果 備考
mdl-dialog__title ダイアログのタイトルコンテナを定義します。 タイトルコンテナで省略可能。
mdl-dialog__content ダイアログのコンテンツコンテナを定義します。 コンテンツコンテナで必須。
mdl-dialog__actions ダイアログのアクションコンテナを定義します。 アクションコンテナで必須。

修飾子

MDL クラス 効果 備考
mdl-dialog__actions--full-width 各アクションがコンテナの全幅を使用するように変更します。これにより、それぞれが独自の行を占めます。 アクションコンテナで省略可能。

レイアウト

ページレイアウトを作成するための構成要素。

ナビゲーションレイアウト

透明なヘッダー
<!-- Uses a transparent header that draws on top of the layout's background -->
<style>
.demo-layout-transparent {
  background: url('../assets/demos/transparent.jpg') center / cover;
}
.demo-layout-transparent .mdl-layout__header,
.demo-layout-transparent .mdl-layout__drawer-button {
  /* This background is dark, so we set text to white. Use 87% black instead if
     your background is light. */
  color: white;
}
</style>

<div class="demo-layout-transparent mdl-layout mdl-js-layout">
  <header class="mdl-layout__header mdl-layout__header--transparent">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
      <!-- Add spacer, to align navigation to the right -->
      <div class="mdl-layout-spacer"></div>
      <!-- Navigation -->
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
  </main>
</div>
<style></style>
固定ドロワー、ヘッダーなし
<!-- No header, and the drawer stays open on larger screens (fixed drawer). -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer">
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content"><!-- Your content goes here --></div>
  </main>
</div>
<style></style>
固定ヘッダー
<!-- Always shows a header, even in smaller screens. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
  <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
      <!-- Add spacer, to align navigation to the right -->
      <div class="mdl-layout-spacer"></div>
      <!-- Navigation. We hide it in small screens. -->
      <nav class="mdl-navigation mdl-layout--large-screen-only">
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content"><!-- Your content goes here --></div>
  </main>
</div>
<style></style>
固定ヘッダーとドロワー
<!-- The drawer is always open in large screens. The header is always shown,
  even in small screens. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer
            mdl-layout--fixed-header">
  <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <div class="mdl-layout-spacer"></div>
      <div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable
                  mdl-textfield--floating-label mdl-textfield--align-right">
        <label class="mdl-button mdl-js-button mdl-button--icon"
               for="fixed-header-drawer-exp">
          <i class="material-icons">search</i>
        </label>
        <div class="mdl-textfield__expandable-holder">
          <input class="mdl-textfield__input" type="text" name="sample"
                 id="fixed-header-drawer-exp">
        </div>
      </div>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content"><!-- Your content goes here --></div>
  </main>
</div>
<style></style>
スクロール可能なヘッダー
<!-- Uses a header that scrolls with the text, rather than staying
  locked at the top -->
<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header mdl-layout__header--scroll">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
      <!-- Add spacer, to align navigation to the right -->
      <div class="mdl-layout-spacer"></div>
      <!-- Navigation -->
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content"><!-- Your content goes here --></div>
  </main>
</div>
<style></style>
ウォーターフォールヘッダー
<!-- Uses a header that contracts as the page scrolls down. -->
<style>
.demo-layout-waterfall .mdl-layout__header-row .mdl-navigation__link:last-of-type  {
  padding-right: 0;
}
</style>

<div class="demo-layout-waterfall mdl-layout mdl-js-layout">
  <header class="mdl-layout__header mdl-layout__header--waterfall">
    <!-- Top row, always visible -->
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
      <div class="mdl-layout-spacer"></div>
      <div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable
                  mdl-textfield--floating-label mdl-textfield--align-right">
        <label class="mdl-button mdl-js-button mdl-button--icon"
               for="waterfall-exp">
          <i class="material-icons">search</i>
        </label>
        <div class="mdl-textfield__expandable-holder">
          <input class="mdl-textfield__input" type="text" name="sample"
                 id="waterfall-exp">
        </div>
      </div>
    </div>
    <!-- Bottom row, not visible on scroll -->
    <div class="mdl-layout__header-row">
      <div class="mdl-layout-spacer"></div>
      <!-- Navigation -->
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
        <a class="mdl-navigation__link" href="">Link</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
      <a class="mdl-navigation__link" href="">Link</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div class="page-content"><!-- Your content goes here --></div>
  </main>
</div>
<style></style>
タイトル
タイトル
スクロール可能なタブ
<!-- Simple header with scrollable tabs. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
  <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
    </div>
    <!-- Tabs -->
    <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
      <a href="#scroll-tab-1" class="mdl-layout__tab is-active">Tab 1</a>
      <a href="#scroll-tab-2" class="mdl-layout__tab">Tab 2</a>
      <a href="#scroll-tab-3" class="mdl-layout__tab">Tab 3</a>
      <a href="#scroll-tab-4" class="mdl-layout__tab">Tab 4</a>
      <a href="#scroll-tab-5" class="mdl-layout__tab">Tab 5</a>
      <a href="#scroll-tab-6" class="mdl-layout__tab">Tab 6</a>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
  </div>
  <main class="mdl-layout__content">
    <section class="mdl-layout__tab-panel is-active" id="scroll-tab-1">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-2">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-3">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-4">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-5">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="scroll-tab-6">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
  </main>
</div>
<style></style>
タイトル
タイトル
固定タブ
<!-- Simple header with fixed tabs. -->
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header
            mdl-layout--fixed-tabs">
  <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <!-- Title -->
      <span class="mdl-layout-title">Title</span>
    </div>
    <!-- Tabs -->
    <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
      <a href="#fixed-tab-1" class="mdl-layout__tab is-active">Tab 1</a>
      <a href="#fixed-tab-2" class="mdl-layout__tab">Tab 2</a>
      <a href="#fixed-tab-3" class="mdl-layout__tab">Tab 3</a>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout-title">Title</span>
  </div>
  <main class="mdl-layout__content">
    <section class="mdl-layout__tab-panel is-active" id="fixed-tab-1">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="fixed-tab-2">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
    <section class="mdl-layout__tab-panel" id="fixed-tab-3">
      <div class="page-content"><!-- Your content goes here --></div>
    </section>
  </main>
</div>
<style></style>

はじめに

Material Design Lite (MDL) の**レイアウト**コンポーネントは、MDL 開発の原則を使用し、MDL コンポーネントを効率的に使用できるようにし、さまざまなブラウザ、画面サイズ、デバイスに自動的に適応する包括的なページレイアウトアプローチです。

適切でアクセス可能なレイアウトは、サイトのコンテンツや機能に関係なく、すべてのユーザーインターフェースの重要な機能です。したがって、ページのデザインとプレゼンテーションは、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細については、レイアウトコンポーネントのMaterial Design 仕様ページを参照してください。

MDL レイアウトの原則を使用すると、再利用可能なコンポーネントを提供することにより、スケーラブルなページの作成が簡素化され、認識可能な視覚要素を確立し、論理的な構造グリッドに準拠し、複数のプラットフォームと画面サイズで適切な間隔を維持することにより、環境全体の一貫性が促進されます。MDL レイアウトは非常に強力で動的であり、外見と動作の一貫性を高めながら、開発の柔軟性と使いやすさを維持できます。

基本的な MDL **レイアウト**コンポーネントを含めるには

1. <div> 要素を記述します。これはレイアウト全体を保持する「外部」div です。

<div>
</div>

**注:** レイアウトは<body>要素に直接適用できません。常にネストされた<div>要素を作成してください。

2. class 属性を使用して、スペースで区切った MDL クラスを div に追加します。

<div class="mdl-layout mdl-js-layout">
</div>

3. div の中に<header>要素を記述します。これには、大画面で表示されるナビゲーションリンクを含むヘッダー行と、小さい画面のナビゲーションドロワーを開くメニューアイコンが含まれます。class 属性を使用して、ヘッダーに MDL クラスを追加します。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
  </header>
</div>

4. ヘッダーの中に、メニューアイコンを作成するための<div>を追加し、指示どおりに MDL クラスを含めます。div 自体にはコンテンツはありません。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
  </header>
</div>

5. ヘッダーの中に、ヘッダー行のコンテンツを保持するための別の<div>を追加し、指示どおりに MDL クラスを含めます。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
    </div>
  </header>
</div>

6. ヘッダー行の div の中に、レイアウトタイトルを含む span を追加し、指示どおりに MDL クラスを含めます。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
    </div>
  </header>
</div>

7. span の後に、ヘッダーのナビゲーションリンクを右揃えにするための<div>を追加し、指示どおりに MDL クラスを含めます。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
    </div>
  </header>
</div>

8. スペーサー div の後に、ヘッダーのナビゲーションリンクを含む<nav>要素を追加し、指示どおりに MDL クラスを含めます。nav の中に、ヘッダーリンクごとにアンカー<a>要素を 1 つ追加し、指示どおりに MDL クラスを含めます。これでレイアウトのヘッダーが完成しました。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Nav link 1</a>
        <a class="mdl-navigation__link" href="#">Nav link 2</a>
        <a class="mdl-navigation__link" href="#">Nav link 3</a>
      </nav>
    </div>
  </header>
</div>

9. ヘッダーの後に、スライドアウトドロワーのコンテンツを保持するための<div>要素を追加し、指示どおりに MDL クラスを追加します。ドロワーは小さい画面で自動的に表示され、任意の画面サイズでメニューアイコンを使用して開くことができます。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Nav link 1</a>
        <a class="mdl-navigation__link" href="#">Nav link 2</a>
        <a class="mdl-navigation__link" href="#">Nav link 3</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
  </div>
</div>

10. ドロワー div の中に、レイアウトタイトルを含む span を追加します(これは手順 5 のタイトルと一致する必要があります)。指示どおりに MDL クラスを含めます。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Nav link 1</a>
        <a class="mdl-navigation__link" href="#">Nav link 2</a>
        <a class="mdl-navigation__link" href="#">Nav link 3</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Simple Layout</span>
  </div>
</div>

11. span の後に、ドロワーのナビゲーションリンクを含む<nav>要素を追加し、ドロワーリンクごとにアンカー<a>要素を 1 つ追加します(これらは手順 7 のリンクと一致する必要があります)。指示どおりに MDL クラスを含めます。これでレイアウトのドロワーが完成しました。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Nav link 1</a>
        <a class="mdl-navigation__link" href="#">Nav link 2</a>
        <a class="mdl-navigation__link" href="#">Nav link 3</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Simple Layout</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Nav link 1</a>
      <a class="mdl-navigation__link" href="#">Nav link 2</a>
      <a class="mdl-navigation__link" href="#">Nav link 3</a>
    </nav>
  </div>
</div>

12. 最後に、ドロワー div の後に、レイアウトの主要なコンテンツを保持するための<main>要素を追加し、指示どおりに MDL クラスを含めます。その要素の中に、目的のコンテンツを追加します。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Simple Layout</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Nav link 1</a>
        <a class="mdl-navigation__link" href="#">Nav link 2</a>
        <a class="mdl-navigation__link" href="#">Nav link 3</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Simple Layout</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Nav link 1</a>
      <a class="mdl-navigation__link" href="#">Nav link 2</a>
      <a class="mdl-navigation__link" href="#">Nav link 3</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <p>Content</p>
    <p>Goes</p>
    <p>Here</p>
  </main>
</div>

レイアウトコンポーネントが使用できるようになりました。

大画面では固定ヘッダー、小画面では折りたたみ可能なドロワーを持つレイアウト。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header">
    <div class="mdl-layout-icon"></div>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Material Design Lite</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Hello</a>
        <a class="mdl-navigation__link" href="#">World.</a>
        <a class="mdl-navigation__link" href="#">How</a>
        <a class="mdl-navigation__link" href="#">Are</a>
        <a class="mdl-navigation__link" href="#">You?</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Material Design Lite</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Hello</a>
      <a class="mdl-navigation__link" href="#">World.</a>
      <a class="mdl-navigation__link" href="#">How</a>
      <a class="mdl-navigation__link" href="#">Are</a>
      <a class="mdl-navigation__link" href="#">You?</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div>Content</div>
  </main>
</div>

コンテンツと共にスクロールする固定されていないヘッダーを持つ同じレイアウト。

<div class="mdl-layout mdl-js-layout">
  <header class="mdl-layout__header mdl-layout__header--scroll">
    <img class="mdl-layout-icon"></img>
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Material Design Lite</span>
      <div class="mdl-layout-spacer"></div>
      <nav class="mdl-navigation">
        <a class="mdl-navigation__link" href="#">Hello</a>
        <a class="mdl-navigation__link" href="#">World.</a>
        <a class="mdl-navigation__link" href="#">How</a>
        <a class="mdl-navigation__link" href="#">Are</a>
        <a class="mdl-navigation__link" href="#">You?</a>
      </nav>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Material Design Lite</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Hello</a>
      <a class="mdl-navigation__link" href="#">World.</a>
      <a class="mdl-navigation__link" href="#">How</a>
      <a class="mdl-navigation__link" href="#">Are</a>
      <a class="mdl-navigation__link" href="#">You?</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div>Content</div>
  </main>
</div>

大画面ではサイドバーナビゲーションとして機能する固定ドロワーを持つレイアウト。ドロワーは折りたたまれ、メニューアイコンは小画面で表示されます。

<div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer">
  <header class="mdl-layout__header">
    <div class="mdl-layout__header-row">
      <span class="mdl-layout__title">Fixed drawer layout demo</span>
    </div>
  </header>
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Material Design Lite</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Hello</a>
      <a class="mdl-navigation__link" href="#">World.</a>
      <a class="mdl-navigation__link" href="#">How</a>
      <a class="mdl-navigation__link" href="#">Are</a>
      <a class="mdl-navigation__link" href="#">You?</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div>Content</div>
  </main>
</div>

固定ドロワーを持つがヘッダーを持たないレイアウト。

<div class="mdl-layout mdl-js-layout mdl-layout--fixed-drawer">
  <div class="mdl-layout__drawer">
    <span class="mdl-layout__title">Material Design Lite</span>
    <nav class="mdl-navigation">
      <a class="mdl-navigation__link" href="#">Hello</a>
      <a class="mdl-navigation__link" href="#">World.</a>
      <a class="mdl-navigation__link" href="#">How</a>
      <a class="mdl-navigation__link" href="#">Are</a>
      <a class="mdl-navigation__link" href="#">You?</a>
    </nav>
  </div>
  <main class="mdl-layout__content">
    <div>Content</div>
  </main>
</div>

設定オプション

MDL CSS クラスは、レイアウトにさまざまな定義済みの視覚的および動作上の拡張機能を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-layout コンテナをMDLコンポーネントとして定義します 外部のdiv要素で必須
mdl-js-layout レイアウトに基本的なMDLの動作を割り当てます 外部のdiv要素で必須
mdl-layout__header コンテナをMDLコンポーネントとして定義します ヘッダー要素で必須
mdl-layout-icon アプリケーションアイコンを追加するために使用します。両方とも表示されている場合、メニューアイコンによって非表示になります。 オプションのアイコン要素に配置します
mdl-layout__header-row コンテナをMDLヘッダー行として定義します ヘッダーコンテンツのdivで必須
mdl-layout__title レイアウトのタイトルテキストを定義します レイアウトタイトルのspanで必須
mdl-layout-spacer 残りのスペースを埋めるように拡張することで、ヘッダーやドロワー内の要素を右揃えするために使用されます。一般的に、要素を右揃えするために使用されます。 レイアウトタイトルの後のオプションのdivに配置します
mdl-navigation コンテナをMDLナビゲーショングループとして定義します nav要素で必須
mdl-navigation__link アンカーをMDLナビゲーションリンクとして定義します ヘッダーおよび/またはドロワーのアンカー要素で必須
mdl-layout__drawer コンテナをMDLレイアウトドロワーとして定義します ドロワーのdiv要素で必須
mdl-layout__content コンテナをMDLレイアウトコンテンツとして定義します メイン要素で必須
mdl-layout__header--scroll ヘッダーをコンテンツと共にスクロールさせます オプション; ヘッダー要素に配置します
mdl-layout--fixed-drawer ドロワーを常に表示し、大きな画面では開いた状態にします オプション; 外側のdiv要素(ドロワーのdiv要素ではない)に配置します
mdl-layout--fixed-header ヘッダーを小さな画面でも常に表示します オプション; 外側のdiv要素に配置します
mdl-layout--no-drawer-button ドロワーボタンを表示しません オプション; `mdl-layout` 要素に配置します
mdl-layout--no-desktop-drawer-button デスクトップモードでドロワーボタンを表示しません オプション; `mdl-layout` 要素に配置します
mdl-layout--large-screen-only 小さな画面で要素を非表示にします オプション; `mdl-layout` の子孫要素に配置します
mdl-layout--small-screen-only 大きな画面で要素を非表示にします オプション; `mdl-layout` の子孫要素に配置します
mdl-layout__header--waterfall 複数のヘッダー行で「ウォーターフォール」効果を可能にします オプション; ヘッダー要素に配置します
mdl-layout__header--waterfall-hide-top ウォーターフォールヘッダーで下部の行ではなく上部の行を非表示にします オプション; ヘッダー要素に配置します。`mdl-layout__header--waterfall`が必要です
mdl-layout__header--transparent ヘッダーを透明にします(レイアウトの背景の上に描画されます) オプション; ヘッダー要素に配置します
mdl-layout__header--seamed 影のないヘッダーを使用します オプション; ヘッダー要素に配置します
mdl-layout__tab-bar コンテナをMDLタブバーとして定義します ヘッダー内のdiv要素(タブ付きレイアウト)で必須
mdl-layout__tab アンカーをMDLタブリンクとして定義します タブバーのアンカー要素で必須
is-active タブをデフォルトの有効なタブとして定義します オプション; タブバーのアンカー要素と関連付けられたタブセクション要素に配置します
mdl-layout__tab-panel コンテナをタブコンテンツパネルとして定義します タブセクション要素で必須
mdl-layout__tab-manual-switch タブ区切り記号をクリックしたときのタブの切り替えを無効にします。デフォルトの動作を無効にして独自のイベントリスナーを設定する場合に役立ちます。 オプション; タブバー要素に配置します
mdl-layout--fixed-tabs デフォルトのスクロール可能なタブではなく、固定タブを使用します オプション; 外側のdiv要素(ヘッダー内のdiv要素ではない)に配置します

グリッド

1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
6
4
2
6 (タブレットは8)
4 (タブレットは6)
2 (電話は4)
レスポンシブグリッド
<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
  <div class="mdl-cell mdl-cell--1-col">1</div>
</div>
<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--4-col">4</div>
  <div class="mdl-cell mdl-cell--4-col">4</div>
  <div class="mdl-cell mdl-cell--4-col">4</div>
</div>
<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--6-col">6</div>
  <div class="mdl-cell mdl-cell--4-col">4</div>
  <div class="mdl-cell mdl-cell--2-col">2</div>
</div>
<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--6-col mdl-cell--8-col-tablet">6 (8 tablet)</div>
  <div class="mdl-cell mdl-cell--4-col mdl-cell--6-col-tablet">4 (6 tablet)</div>
  <div class="mdl-cell mdl-cell--2-col mdl-cell--4-col-phone">2 (4 phone)</div>
</div>
<style>.mdl-cell { box-sizing: border-box; background-color: #BDBDBD; height: 200px; padding-left: 8px; padding-top: 4px; color: white; } .mdl-grid:first-of-type .mdl-cell { height: 50px; } </style>

はじめに

Material Design Lite (MDL)の**グリッド**コンポーネントは、複数の画面サイズに合わせてコンテンツをレイアウトするための簡素化された方法です。さまざまな表示条件でコンテンツブロックを正しく表示するために必要な通常のコーディングの負担を軽減します。

MDLグリッドは、コンテナ要素によって定義および囲まれています。グリッドには、デスクトップ画面サイズで12列、タブレットサイズで8列、電話サイズで4列あり、各サイズには事前に定義されたマージンとガターがあります。セルは、いくつかの例外を除いて、定義されている順序で、行に連続して配置されます。

  • セルのサイズが画面サイズのカラム数より小さい場合、次の行に折り返されます。
  • セルの指定されたカラムサイズが現在の画面サイズのカラム数以上の場合、その行全体を占めます。

`max-width` CSSプロパティを設定することで、グリッドの最大幅を設定でき、その幅を超えるとグリッドは両側にパディングを付けて中央に配置されたままになります。

グリッドは、ほとんどのユーザーインターフェースでは比較的新しい非標準化機能であり、ユーザーが理解したり保持したりするのが難しい可能性のあるコンテンツを整理された方法で表示する方法を提供します。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。

MDL **グリッド**コンポーネントを含めるには

 1. `<div>`要素を記述します。これは「外部」コンテナであり、グリッドのすべてのセルを保持することを目的としています。必要に応じてdivのスタイルを設定します(色、フォントサイズなど)。

<div>
</div>

 2. `class`属性を使用して、`mdl-grid` MDLクラスをdivに追加します。

<div class="mdl-grid">
</div>

 3. 各セルについて、表示するテキストを含む1つの「内部」divを記述します。

<div class="mdl-grid">
  <div>Content</div>
  <div>goes</div>
  <div>here</div>
</div>

 4. `class`属性を使用して、「内部」divに`mdl-cell`クラスと`mdl-cell--COLUMN-col`クラスを追加します。ここで、COLUMNはセルのカラムサイズを指定します。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--4-col">Content</div>
  <div class="mdl-cell mdl-cell--4-col">goes</div>
  <div class="mdl-cell mdl-cell--4-col">here</div>
</div>

 5. オプションで、`mdl-cell--COLUMN-col-DEVICE`クラスを追加します。ここで、COLUMNは特定のデバイスのセルのカラムサイズを指定し、DEVICEはデバイスの種類を指定します。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--4-col mdl-cell--8-col-tablet">Content</div>
  <div class="mdl-cell mdl-cell--4-col mdl-cell--8-col-tablet">goes</div>
  <div class="mdl-cell mdl-cell--4-col mdl-cell--8-col-tablet">here</div>
</div>

グリッドコンポーネントは使用準備ができました。

カラムサイズが1の5つのセルを持つグリッド。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--1-col">CS 1</div>
  <div class="mdl-cell mdl-cell--1-col">CS 1</div>
  <div class="mdl-cell mdl-cell--1-col">CS 1</div>
  <div class="mdl-cell mdl-cell--1-col">CS 1</div>
  <div class="mdl-cell mdl-cell--1-col">CS 1</div>
</div>

カラムサイズが6のセル1つ、カラムサイズが4のセル1つ、カラムサイズが2のセル1つの3つのセルを持つグリッド。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--6-col">CS 6</div>
  <div class="mdl-cell mdl-cell--4-col">CS 4</div>
  <div class="mdl-cell mdl-cell--2-col">CS 2</div>
</div>

カラムサイズが6の3つのセルで、タブレットデバイスではカラムサイズが8として表示されるグリッド。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--6-col mdl-cell--8-col-tablet">CS 6 (8 on tablet)</div>
  <div class="mdl-cell mdl-cell--6-col mdl-cell--8-col-tablet">CS 6 (8 on tablet)</div>
  <div class="mdl-cell mdl-cell--6-col mdl-cell--8-col-tablet">CS 6 (8 on tablet)</div>
</div>

カラムサイズが2の4つのセルで、電話デバイスではカラムサイズが4として表示されるグリッド。

<div class="mdl-grid">
  <div class="mdl-cell mdl-cell--2-col mdl-cell--4-col-phone">CS 2 (4 on phone)</div>
  <div class="mdl-cell mdl-cell--2-col mdl-cell--4-col-phone">CS 2 (4 on phone)</div>
  <div class="mdl-cell mdl-cell--2-col mdl-cell--4-col-phone">CS 2 (4 on phone)</div>
  <div class="mdl-cell mdl-cell--2-col mdl-cell--4-col-phone">CS 2 (4 on phone)</div>
</div>

設定オプション

MDL CSSクラスは、グリッドにさまざまな事前に定義された視覚的な拡張機能と動作効果を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-grid コンテナをMDLグリッドコンポーネントとして定義します 「外部」div要素で必須
mdl-cell コンテナをMDLセルとして定義します 「内部」div要素で必須
mdl-grid--no-spacing グリッドセルのマージンをなくします。 グリッドコンテナでオプション。
mdl-cell--N-col セルのカラムサイズをNに設定します Nは1〜12で、デフォルトは4です。「内部」div要素でオプション
mdl-cell--N-col-desktop デスクトップモードでのみセルのカラムサイズをNに設定します Nは1〜12です。「内部」div要素でオプション
mdl-cell--N-col-tablet タブレットモードでのみセルのカラムサイズをNに設定します Nは1〜8です。「内部」div要素でオプション
mdl-cell--N-col-phone 電話モードでのみセルのカラムサイズをNに設定します Nは1〜4です。「内部」div要素でオプション
mdl-cell--N-offset セルの前にN列の空白を追加します Nは1〜11です。「内部」div要素でオプション
mdl-cell--N-offset-desktop デスクトップモードでセルの前にN列の空白を追加します Nは1〜11です。「内部」div要素でオプション
mdl-cell--N-offset-tablet タブレットモードでセルの前にN列の空白を追加します Nは1〜7です。「内部」div要素でオプション
mdl-cell--N-offset-phone 電話モードでセルの前にN列の空白を追加します Nは1〜3です。「内部」div要素でオプション
mdl-cell--order-N セルの順序をNの位置に変更します Nは1〜12です。「内部」div要素でオプション
mdl-cell--order-N-desktop デスクトップモードの場合、セルの順序をNの位置に変更します Nは1〜12です。「内部」div要素でオプション
mdl-cell--order-N-tablet タブレットモードの場合、セルの順序をNの位置に変更します Nは1〜12です。「内部」div要素でオプション
mdl-cell--order-N-phone 電話モードの場合、セルの順序をNの位置に変更します Nは1〜12です。「内部」div要素でオプション
mdl-cell--hide-desktop デスクトップモードでセルを非表示にします 「内部」div要素でオプション
mdl-cell--hide-tablet タブレットモードでセルを非表示にします 「内部」div要素でオプション
mdl-cell--hide-phone 電話モードでセルを非表示にします 「内部」div要素でオプション
mdl-cell--stretch セルを垂直方向に伸ばして親を満たします デフォルト。「内部」div要素でオプション
mdl-cell--top セルを親の上部に揃えます 「内部」div要素でオプション
mdl-cell--middle セルを親の中央に揃えます 「内部」div要素でオプション
mdl-cell--bottom セルを親の下部に揃えます 「内部」div要素でオプション

タブ

  • エダード
  • キャトリン
  • ロブ
  • サンサ
  • ブラン
  • アーヤ
  • リコン
  • タイウィン
  • サーセイ
  • ジェイミー
  • ティリオン
  • ヴィセーリス
  • デナーリス
コンテンツタブ
<div class="mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
  <div class="mdl-tabs__tab-bar">
      <a href="#starks-panel" class="mdl-tabs__tab is-active">Starks</a>
      <a href="#lannisters-panel" class="mdl-tabs__tab">Lannisters</a>
      <a href="#targaryens-panel" class="mdl-tabs__tab">Targaryens</a>
  </div>

  <div class="mdl-tabs__panel is-active" id="starks-panel">
    <ul>
      <li>Eddard</li>
      <li>Catelyn</li>
      <li>Robb</li>
      <li>Sansa</li>
      <li>Brandon</li>
      <li>Arya</li>
      <li>Rickon</li>
    </ul>
  </div>
  <div class="mdl-tabs__panel" id="lannisters-panel">
    <ul>
      <li>Tywin</li>
      <li>Cersei</li>
      <li>Jamie</li>
      <li>Tyrion</li>
    </ul>
  </div>
  <div class="mdl-tabs__panel" id="targaryens-panel">
    <ul>
      <li>Viserys</li>
      <li>Daenerys</li>
    </ul>
  </div>
</div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)の**タブ**コンポーネントは、異なるコンテンツブロックが互いに排他的な方法で同じ画面スペースを共有できるようにするユーザーインターフェース要素です。タブは常に2つ以上のセットで表示され、アプリのさまざまなビューや機能的な側面を簡単に探索および切り替えたり、カテゴリ化されたデータセットを個別に参照したりすることができます。タブはそれぞれのコンテンツの「見出し」として機能します。アクティブなタブ(現在表示されているコンテンツのタブ)は常に他のタブとは視覚的に区別されるため、ユーザーは現在のコンテンツがどの見出しに属しているかがわかります。

タブは、ユーザーインターフェースにおける確立された非標準化機能であり、異なるがしばしば関連するコンテンツブロック(多くの場合、パネルと呼ばれる)を表示できます。タブは画面の領域を節約し、ナビゲーションと関連するユーザーの混乱を減らしながら、データへの直感的で論理的なアクセスを提供します。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細については、タブコンポーネントのMaterial Design仕様ページを参照してください。

MDL **タブ**コンポーネントのセットを含めるには

 1. `<div>`要素を記述します。これは「外部」divであり、すべてのタブとそのコンテンツを含むことを目的としています。

<div>
</div>

 2. 「外部」divの中に、タブ自体と各タブのコンテンツの「内部」divを記述します。すべて兄弟要素です。つまり、3つのコンテンツタブの場合、4つの「内部」divを記述します。

<div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
</div>

 3. 最初の「内部」div(タブ)の中に、各タブのアンカー`<a>`(リンク)タグを記述します。タブの`id`属性値と一致する値を持つ`href`属性と、簡潔なリンクテキストを含めます。残りの「内部」div(コンテンツ)に、リンクの`href`と一致する値を持つ`id`属性を記述します。

<div>
  <div>
    <a href="#tab1">Tab One</a>
    <a href="#tab2">Tab Two</a>
    <a href="#tab3">Tab Three</a>
  </div>
  <div id="tab1">
  ...
  </div>
  <div id="tab2">
  ...
  </div>
  <div id="tab3">
  ...
  </div>
</div>

 4. 残りの「内部」divの中に、各パネルに表示するコンテンツを記述します。標準的なHTMLタグを使用して、必要に応じてコンテンツの構造を記述します。

<div>
  <div>
    <a href="#tab1">Tab One</a>
    <a href="#tab2">Tab Two</a>
    <a href="#tab3">Tab Three</a>
  </div>
  <div id="tab1">
    <p>First tab's content.</p>
  </div>
  <div id="tab2">
    <p>Second tab's content.</p>
  </div>
  <div id="tab3">
    <p>Third tab's content.</p>
  </div>
</div>

 5. `class`属性を使用して、1つ以上のMDLクラスをスペースで区切って「外部」divと「内部」divに追加します。デフォルトで表示するタブには`is-active`クラスを含めるようにしてください。

<div class="mdl-tabs mdl-js-tabs">
  <div class="mdl-tabs__tab-bar">
    <a href="#tab1" class="mdl-tabs__tab">Tab One</a>
    <a href="#tab2" class="mdl-tabs__tab">Tab Two</a>
    <a href="#tab3" class="mdl-tabs__tab">Tab Three</a>
  </div>
  <div class="mdl-tabs__panel is-active" id="tab1">
    <p>First tab's content.</p>
  </div>
  <div class="mdl-tabs__panel" id="tab2">
    <p>Second tab's content.</p>
  </div>
  <div class="mdl-tabs__panel" id="tab3">
    <p>Third tab's content.</p>
  </div>
</div>

タブコンポーネントは使用準備ができました。

タブリンクにリップル効果のある3つのタブ。

<div class="mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
  <div class="mdl-tabs__tab-bar">
    <a href="#about-panel" class="mdl-tabs__tab is-active">About the Beatles</a>
    <a href="#members-panel" class="mdl-tabs__tab">Members</a>
    <a href="#albums-panel" class="mdl-tabs__tab">Discography</a>
  </div>
  <div class="mdl-tabs__panel is-active" id="about-panel">
    <p><b>The Beatles</b> were a four-piece musical group from Liverpool, England.
    Formed in 1960, their career spanned just over a decade, yet they are widely
    regarded as the most influential band in history.</p>
    <p>Their songs are among the best-loved music of all time. It is said that every
    minute of every day, a radio station somewhere is playing a Beatles song.</p>
  </div>
  <div class="mdl-tabs__panel" id="members-panel">
    <p>The Beatles' members were:</p>
    <ul>
      <li>John Lennon (1940-1980)</li>
      <li>Paul McCartney (1942-)</li>
      <li>George Harrison (1943-2001)</li>
      <li>Ringo Starr (1940-)</li>
    </ul>
  </div>
  <div class="mdl-tabs__panel" id="albums-panel">
    <p>The Beatles' original UK LPs, in order of release:</p>
    <ol>
      <li>Please Please Me (1963)</li>
      <li>With the Beatles (1963)</li>
      <li>A Hard Day's Night (1964)</li>
      <li>Beatles for Sale (1964)</li>
      <li>Help! (1965)</li>
      <li>Rubber Soul (1965)</li>
      <li>Revolver (1966)</li>
      <li>Sgt. Pepper's Lonely Hearts Club Band (1967)</li>
      <li>The Beatles ("The White Album", 1968)</li>
      <li>Yellow Submarine (1969)</li>
      <li>Abbey Road (1969)</li>
      <li>Let It Be (1970)</li>
    </ol>
  </div>
</div>

設定オプション

MDL CSSクラスは、タブに様々な定義済みの視覚的および動作的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-tabs タブコンテナをMDLコンポーネントとして定義します 「外部」div要素で必須
mdl-js-tabs タブコンテナに基本的なMDL動作を割り当てます 「外部」div要素で必須
mdl-js-ripple-effect タブリンクにリップルクリック効果を適用します オプションです。「外側」のdiv要素に適用します
mdl-tabs__tab-bar コンテナをMDLタブリンクバーとして定義します 最初の「内側」のdiv要素で必須です
mdl-tabs__tab アンカー(リンク)をMDLタブアクティベーターとして定義します 最初の「内側」のdiv要素内のすべてのリンクで必須です
is-active タブをデフォルトの表示タブとして定義します 「内側」のdiv(タブ)要素の1つ(および1つのみ)で必須です
mdl-tabs__panel コンテナをタブコンテンツとして定義します 各「内側」のdiv(タブ)要素で必須です

フッター

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__middle-section">

    <div class="mdl-mega-footer__drop-down-section">
      <input class="mdl-mega-footer__heading-checkbox" type="checkbox" checked>
      <h1 class="mdl-mega-footer__heading">Features</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">About</a></li>
        <li><a href="#">Terms</a></li>
        <li><a href="#">Partners</a></li>
        <li><a href="#">Updates</a></li>
      </ul>
    </div>

    <div class="mdl-mega-footer__drop-down-section">
      <input class="mdl-mega-footer__heading-checkbox" type="checkbox" checked>
      <h1 class="mdl-mega-footer__heading">Details</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">Specs</a></li>
        <li><a href="#">Tools</a></li>
        <li><a href="#">Resources</a></li>
      </ul>
    </div>

    <div class="mdl-mega-footer__drop-down-section">
      <input class="mdl-mega-footer__heading-checkbox" type="checkbox" checked>
      <h1 class="mdl-mega-footer__heading">Technology</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">How it works</a></li>
        <li><a href="#">Patterns</a></li>
        <li><a href="#">Usage</a></li>
        <li><a href="#">Products</a></li>
        <li><a href="#">Contracts</a></li>
      </ul>
    </div>

    <div class="mdl-mega-footer__drop-down-section">
      <input class="mdl-mega-footer__heading-checkbox" type="checkbox" checked>
      <h1 class="mdl-mega-footer__heading">FAQ</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">Questions</a></li>
        <li><a href="#">Answers</a></li>
        <li><a href="#">Contact us</a></li>
      </ul>
    </div>

  </div>

  <div class="mdl-mega-footer__bottom-section">
    <div class="mdl-logo">Title</div>
    <ul class="mdl-mega-footer__link-list">
      <li><a href="#">Help</a></li>
      <li><a href="#">Privacy & Terms</a></li>
    </ul>
  </div>

</footer>
<style></style>
<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
    <div class="mdl-logo">Title</div>
    <ul class="mdl-mini-footer__link-list">
      <li><a href="#">Help</a></li>
      <li><a href="#">Privacy & Terms</a></li>
    </ul>
  </div>
</footer>
<style></style>

はじめに

Material Design Lite (MDL)のフッターコンポーネントは、関連する大量のコンテンツを視覚的に魅力的で論理的に直感的な領域に表示することを目的とした包括的なコンテナです。「フッター」と呼ばれていますが、他のコンテンツの前後を問わず、デバイス画面の適切な場所に配置できます。

MDLフッターコンポーネントには、メガフッターミニフッターの2つの基本的な形式があります。名前が示すように、メガフッターはミニフッターよりも多くの(そしてより複雑な)コンテンツを含みます。メガフッターは水平線で区切られた複数のコンテンツセクションを表示する一方、ミニフッターは単一のコンテンツセクションを表示します。どちらのフッター形式にも独自の内部構造があり、必須要素とオプション要素が含まれ、通常はリンクなどの情報コンテンツとクリック可能なコンテンツの両方が含まれます。

このコンポーネントで表されるフッターは、ユーザーインターフェースにおける比較的新しい機能であり、ユーザーはまとまりのある一貫性のある方法で個別のコンテンツブロックを表示できます。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。

 1a. <footer>要素を記述します。フッターの中に、コンテンツセクションごとに1つの<div>要素を含めます。通常は3つ(上部中央下部)です。

<footer>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
</footer>

 1b. class属性を使用して、フッターとdivに適切なMDLクラスを追加します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
  ...
  </div>
  <div class="mdl-mega-footer__middle-section">
  ...
  </div>
  <div class="mdl-mega-footer__bottom-section">
  ...
  </div>
</footer>

 2a. 上部セクションのdivの中に、のコンテンツセクションの2つの兄弟「内側」divを記述します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div>
    ...
    </div>
    <div>
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
  ...
  </div>
  <div class="mdl-mega-footer__bottom-section">
  ...
  </div>
</footer>

 2b. class属性を使用して、2つの「内側」の左と右のdivに適切なMDLクラスを追加します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
    ...
    </div>
    <div class="mdl-mega-footer__right-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
  ...
  </div>
  <div class="mdl-mega-footer__bottom-section">
  ...
  </div>
</footer>

 3a. 中央セクションのdivの中に、ドロップダウンコンテンツセクションの兄弟「内側」divを1つ以上記述します。つまり、2つのドロップダウンセクションの場合は、2つのdivを記述します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
    ...
    </div>
    <div class="mdl-mega-footer__right-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div>
    ...
    </div>
    <div>
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
  ...
  </div>
</footer>

 3b. class属性を使用して、2つの「内側」のドロップダウンdivに適切なMDLクラスを追加します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
    ...
    </div>
    <div class="mdl-mega-footer__right-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
  ...
  </div>
</footer>

 4a. 下部セクションのdivの中に、セクションの見出しのための「内側」divと、下部セクションのリンクのための兄弟の順序なしリストを記述します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
    ...
    </div>
    <div class="mdl-mega-footer__right-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
    <div>
      ...
    </div>
    <ul>
      ...
    </ul>
  </div>
</footer>

 4b. class属性を使用して、「内側」のdivの見出しとリストに適切なMDLクラスを追加します。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
    ...
    </div>
    <div class="mdl-mega-footer__right-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
    <div class="mdl-mega-footer__drop-down-section">
    ...
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
    <div class="mdl-logo">
    </div>
    <ul class="mdl-mega-footer__link-list">
      ...
    </ul>
  </div>
</footer>

 5. フッターの上部(左と右)、中央(ドロップダウン)、下部(テキストとリンク)セクションにコンテンツを追加します。必要に応じてclass属性を使用して適切なMDLクラスを含めます。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
      <button class="mdl-mega-footer__social-btn"></button>
      <button class="mdl-mega-footer__social-btn"></button>
      <button class="mdl-mega-footer__social-btn"></button>
    </div>
    <div class="mdl-mega-footer__right-section">
      <a href="">Link 1</a>
      <a href="">Link 2</a>
      <a href="">Link 3</a>
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div class="mdl-mega-footer__drop-down-section">
      <h1 class="mdl-mega-footer__heading">Drop-down 1 Heading</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="">Link A</a></li>
        <li><a href="">Link B</a></li>
        <li><a href="">Link C</a></li>
        <li><a href="">Link D</a></li>
      </ul>
    </div>
    <div class="mdl-mega-footer__drop-down-section">
      <h1 class="mdl-mega-footer__heading">Drop-down 2 Heading</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="">Link A</a></li>
        <li><a href="">Link B</a></li>
        <li><a href="">Link C</a></li>
      </ul>
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
    <div class="mdl-logo">
    Mega-Footer Bottom Section Heading
    </div>
    <ul class="mdl-mega-footer__link-list">
      <li><a href="">Link A</a></li>
      <li><a href="">Link B</a></li>
    </ul>
  </div>
</footer>

メガフッターコンポーネントが使用できるようになりました。

3つのセクションと、中央セクションに2つのドロップダウンセクションを持つメガフッターコンポーネント。

<footer class="mdl-mega-footer">
  <div class="mdl-mega-footer__top-section">
    <div class="mdl-mega-footer__left-section">
      <button class="mdl-mega-footer__social-btn"></button>
      <button class="mdl-mega-footer__social-btn"></button>
      <button class="mdl-mega-footer__social-btn"></button>
    </div>
    <div class="mdl-mega-footer__right-section">
      <a href="#">Introduction</a>
      <a href="#">App Status Dashboard</a>
      <a href="#">Terms of Service</a>
    </div>
  </div>
  <div class="mdl-mega-footer__middle-section">
    <div class="mdl-mega-footer__drop-down-section">
      <h1 class="mdl-mega-footer__heading">Learning and Support</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">Resource Center</a></li>
        <li><a href="#">Help Center</a></li>
        <li><a href="#">Community</a></li>
        <li><a href="#">Learn with Google</a></li>
        <li><a href="#">Small Business Community</a></li>
        <li><a href="#">Think Insights</a></li>
      </ul>
    </div>
    <div class="mdl-mega-footer__drop-down-section">
      <h1 class="mdl-mega-footer__heading">Just for Developers</h1>
      <ul class="mdl-mega-footer__link-list">
        <li><a href="#">Google Developers</a></li>
        <li><a href="#">AdWords API</a></li>
        <li><a href="#">AdWords Scipts</a></li>
        <li><a href="#">AdWords Remarketing Tag</a></li>
      </ul>
    </div>
  </div>
  <div class="mdl-mega-footer__bottom-section">
    <div class="mdl-logo">
      More Information
    </div>
    <ul class="mdl-mega-footer__link-list">
      <li><a href="#">Help</a></li>
      <li><a href="#">Privacy and Terms</a></li>
    </ul>
  </div>
</footer>

 1a. <footer>要素を記述します。フッターの中に、セクションとセクションの2つの<div>要素を記述します。

<footer>
  <div>
  ...
  </div>
  <div>
  ...
  </div>
</footer>

 1b. class属性を使用して、フッターとdivに適切なMDLクラスを追加します。

<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
  ...
  </div>
  <div class="mdl-mini-footer__right-section">
  ...
  </div>
</footer>

 2a. 左セクションのdivの中に、セクションの見出しのための「内側」divと、左セクションのリンクのための兄弟の順序なしリストを記述します。

<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
    <div>
      ...
    </div>
    <ul>
      ...
    </ul>
  </div>
  <div class="mdl-mini-footer__right-section">
  ...
  </div>
</footer>

 2b. class属性を使用して、「内側」のdivとリストに適切なMDLクラスを追加します。

<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
    <div class="mdl-logo">
      ...
    </div>
    <ul class="mdl-mini-footer__link-list">
      ...
    </ul>
  </div>
  <div class="mdl-mini-footer__right-section">
  ...
  </div>
</footer>

 3. フッターの左(テキストとリンク)と右(テキストまたは装飾)セクションにコンテンツを追加します。必要に応じてclass属性を使用して適切なMDLクラスを含めます。

<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
    <div class="mdl-logo">
      Mini-footer Heading
    </div>
    <ul class="mdl-mini-footer__link-list">
      <li><a href="">Link 1</a></li>
      <li><a href="">Link 2</a></li>
      <li><a href="">Link 3</a></li>
    </ul>
  </div>
  <div class="mdl-mini-footer__right-section">
    <button class="mdl-mini-footer__social-btn"></button>
    <button class="mdl-mini-footer__social-btn"></button>
    <button class="mdl-mini-footer__social-btn"></button>
  </div>
</footer>

ミニフッターコンポーネントが使用できるようになりました。

左セクションと右セクションを持つミニフッター。

<footer class="mdl-mini-footer">
  <div class="mdl-mini-footer__left-section">
    <div class="mdl-logo">
      More Information
    </div>
    <ul class="mdl-mini-footer__link-list">
      <li><a href="#">Help</a></li>
      <li><a href="#">Privacy and Terms</a></li>
      <li><a href="#">User Agreement</a></li>
    </ul>
  </div>
  <div class="mdl-mini-footer__right-section">
    <button class="mdl-mini-footer__social-btn"></button>
    <button class="mdl-mini-footer__social-btn"></button>
    <button class="mdl-mini-footer__social-btn"></button>
  </div>
</footer>

設定オプション

MDL CSSクラスは、フッターに様々な定義済みの視覚的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-mega-footer コンテナをMDLメガフッターコンポーネントとして定義します フッター要素で必須です
mdl-mega-footer__top-section コンテナをフッターの上部セクションとして定義します 上部セクションの「外側」div要素で必須です
mdl-mega-footer__left-section コンテナを左セクションとして定義します 左セクションの「内側」div要素で必須です
mdl-mega-footer__social-btn メガフッター内に装飾的な正方形を定義します ボタン要素(使用する場合)で必須です
mdl-mega-footer__right-section コンテナを右セクションとして定義します 右セクションの「内側」div要素で必須です
mdl-mega-footer__middle-section コンテナをフッターの中央セクションとして定義します 中央セクションの「外側」div要素で必須です
mdl-mega-footer__drop-down-section コンテナをドロップダウン(垂直)コンテンツ領域として定義します ドロップダウンの「内側」div要素で必須です
mdl-mega-footer__heading 見出しをメガフッターの見出しとして定義します ドロップダウンセクション内のh1要素で必須です
mdl-mega-footer__link-list 順序なしリストをドロップダウン(垂直)リストとして定義します ドロップダウンセクション内のul要素で必須です
mdl-mega-footer__bottom-section コンテナをフッターの下部セクションとして定義します 下部セクションの「外側」div要素で必須です
mdl-logo コンテナをスタイル付きのセクション見出しとして定義します メガフッターの下部セクションまたはミニフッターの左セクションの「内側」div要素で必須です
mdl-mini-footer コンテナをMDLミニフッターコンポーネントとして定義します フッター要素で必須です
mdl-mini-footer__left-section コンテナを左セクションとして定義します 左セクションの「内側」div要素で必須です
mdl-mini-footer__link-list 順序なしリストをインライン(水平)リストとして定義します 「mdl-logo」div要素の兄弟のul要素で必須です
mdl-mini-footer__right-section コンテナを右セクションとして定義します 右セクションの「内側」div要素で必須です
mdl-mini-footer__social-btn ミニフッター内に装飾的な正方形を定義します ボタン要素(使用する場合)で必須です

リスト

カスタマイズ可能なスクロール可能なリスト。

  • ブライアン・クランストン
  • アーロン・ポール
  • ボブ・オデンカーク
シンプルなリスト
<!-- Simple list -->
<style>
.demo-list-item {
  width: 300px;
}
</style>

<ul class="demo-list-item mdl-list">
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      Bryan Cranston
    </span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      Aaron Paul
    </span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      Bob Odenkirk
    </span>
  </li>
</ul>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
  • person ブライアン・クランストン
  • person アーロン・ポール
  • person ボブ・オデンカーク
アイコン
<!-- Icon List -->
<style>
.demo-list-icon {
  width: 300px;
}
</style>

<ul class="demo-list-icon mdl-list">
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
    <i class="material-icons mdl-list__item-icon">person</i>
    Bryan Cranston
</span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
    <i class="material-icons mdl-list__item-icon">person</i>
    Aaron Paul
  </span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
    <i class="material-icons mdl-list__item-icon">person</i>
    Bob Odenkirk
  </span>
  </li>
</ul>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
person ブライアン・クランストン star
person アーロン・ポール star
person ボブ・オデンカーク star
アバターとアクション
<!-- List items with avatar and action -->
<style>
.demo-list-action {
  width: 300px;
}
</style>

<div class="demo-list-action mdl-list">
  <div class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Bryan Cranston</span>
    </span>
    <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
  </div>
  <div class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Aaron Paul</span>
    </span>
    <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
  </div>
  <div class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Bob Odenkirk</span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
  </span>
  </div>
</div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
  • person ブライアン・クランストン
  • person アーロン・ポール
  • person ボブ・オデンカーク
アバターとコントロール
<!-- List with avatar and controls -->
<style>
.demo-list-control {
  width: 300px;
}

.demo-list-radio {
  display: inline;
}
</style>

<ul class="demo-list-control mdl-list">
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons  mdl-list__item-avatar">person</i>
      Bryan Cranston
    </span>
    <span class="mdl-list__item-secondary-action">
      <label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="list-checkbox-1">
        <input type="checkbox" id="list-checkbox-1" class="mdl-checkbox__input" checked />
      </label>
    </span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons  mdl-list__item-avatar">person</i>
      Aaron Paul
    </span>
    <span class="mdl-list__item-secondary-action">
      <label class="demo-list-radio mdl-radio mdl-js-radio mdl-js-ripple-effect" for="list-option-1">
        <input type="radio" id="list-option-1" class="mdl-radio__button" name="options" value="1" checked />
      </label>
    </span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons  mdl-list__item-avatar">person</i>
      Bob Odenkirk
    </span>
    <span class="mdl-list__item-secondary-action">
      <label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-1">
        <input type="checkbox" id="list-switch-1" class="mdl-switch__input" checked />
      </label>
    </span>
  </li>
</ul>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
  • person ブライアン・クランストン 62エピソード 俳優 star
  • person アーロン・ポール 62エピソード star
  • person ボブ・オデンカーク 62エピソード star
2行
<!-- Two Line List with secondary info and action -->
<style>
.demo-list-two {
  width: 300px;
}
</style>

<ul class="demo-list-two mdl-list">
  <li class="mdl-list__item mdl-list__item--two-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Bryan Cranston</span>
      <span class="mdl-list__item-sub-title">62 Episodes</span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <span class="mdl-list__item-secondary-info">Actor</span>
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
  <li class="mdl-list__item mdl-list__item--two-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Aaron Paul</span>
      <span class="mdl-list__item-sub-title">62 Episodes</span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
  <li class="mdl-list__item mdl-list__item--two-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Bob Odenkirk</span>
      <span class="mdl-list__item-sub-title">62 Episodes</span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
</ul>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
  • person ブライアン・クランストン ブライアン・クランストンは、「ブレイキング・バッド」でウォルター役を演じました。また、「マルコム in the Middle」でハル役を演じたことでも知られています。 star
  • person アーロン・ポール アーロン・ポールは、「ブレイキング・バッド」でジェシー役を演じました。また、「ニード・フォー・スピード」映画にも出演しました。 star
  • person ボブ・オデンカーク ボブ・オデンカークは、「ブレイキング・バッド」でソール役を演じました。このキャラクターへの人気が高まったため、ボブは現在「ベター・コール・ソール」という自身の番組で主演しています。 star
3行
<!-- Three Line List with secondary info and action -->
<style>
.demo-list-three {
  width: 650px;
}
</style>

<ul class="demo-list-three mdl-list">
  <li class="mdl-list__item mdl-list__item--three-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons mdl-list__item-avatar">person</i>
      <span>Bryan Cranston</span>
      <span class="mdl-list__item-text-body">
        Bryan Cranston played the role of Walter in Breaking Bad. He is also known
        for playing Hal in Malcom in the Middle.
      </span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
  <li class="mdl-list__item mdl-list__item--three-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons  mdl-list__item-avatar">person</i>
      <span>Aaron Paul</span>
      <span class="mdl-list__item-text-body">
        Aaron Paul played the role of Jesse in Breaking Bad. He also featured in
        the "Need For Speed" Movie.
      </span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
  <li class="mdl-list__item mdl-list__item--three-line">
    <span class="mdl-list__item-primary-content">
      <i class="material-icons  mdl-list__item-avatar">person</i>
      <span>Bob Odenkirk</span>
      <span class="mdl-list__item-text-body">
        Bob Odinkrik played the role of Saul in Breaking Bad. Due to public fondness for the
        character, Bob stars in his own show now, called "Better Call Saul".
      </span>
    </span>
    <span class="mdl-list__item-secondary-content">
      <a class="mdl-list__item-secondary-action" href="#"><i class="material-icons">star</i></a>
    </span>
  </li>
</ul>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

リストは、複数の行項目を1つの連続した要素として垂直に表示します。コンテンツオプションの詳細については、Material Design Specを参照してください。

MDLのリストコンポーネントを含めるには

基本項目を持つリストを作成します。

 1. クラスmdl-listを持つ<ul>要素を記述します。これは「外側」コンテナであり、リストのすべてのコンテンツを保持することを目的としています。

<ul class='mdl-list'>
</ul>

 2. クラスmdl-list__itemを持つ必要な数の<li>要素を記述します。これは、すべての項目のコンテンツを保持することを目的としています。

<ul class='mdl-list'>
  <li class="mdl-list__item"></li>
  <li class="mdl-list__item"></li>
  <li class="mdl-list__item"></li>
</ul>

 3. 例えば、適切なコンテンツタイプの修飾クラスを使用して、<li>の子としてコンテンツを追加します。

<ul class='mdl-list'>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content"></span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content"></span>
  </li>
  <li class="mdl-list__item">
    <span class="mdl-list__item-primary-content"></span>
  </li>
</ul>

設定オプション

MDL CSSクラスは、リストに様々な定義済みの視覚的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
.mdl-list リストをMDLコンポーネントとして定義します -
.mdl-list__item リストの項目を定義します 必須
.mdl-list__item--two-line リストの項目を2行として定義します オプションの2行リストバリアント
.mdl-list__item--three-line リストの項目を3行として定義します オプションの3行リストバリアント
.mdl-list__item-primary-content 主要なコンテンツのサブディビジョンを定義します -
.mdl-list__item-avatar アバターのサブディビジョンを定義します -
.mdl-list__item-icon アイコンのサブディビジョンを定義します -
.mdl-list__item-secondary-content セカンダリコンテンツのサブセクションを定義します .mdl-list__item--two-line または .mdl-list__item--three-line が必要です
.mdl-list__item-secondary-info 情報サブセクションを定義します .mdl-list__item--two-line または .mdl-list__item--three-line が必要です
.mdl-list__item-secondary-action アクションサブセクションを定義します .mdl-list__item--two-line または .mdl-list__item--three-line が必要です
.mdl-list__item-text-body テキストボディサブセクションを定義します .mdl-list__item--three-line が必要です

読み込み中

読み込みと進捗状況を示します。

プログレスバー

デフォルト
<!-- Simple MDL Progress Bar -->
<div id="p1" class="mdl-progress mdl-js-progress"></div>
<script>
  document.querySelector('#p1').addEventListener('mdl-componentupgraded', function() {
    this.MaterialProgress.setProgress(44);
  });
</script>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
不定
<!-- MDL Progress Bar with Indeterminate Progress -->
<div id="p2" class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
バッファリング
<!-- MDL Progress Bar with Buffering -->
<div id="p3" class="mdl-progress mdl-js-progress"></div>
<script>
  document.querySelector('#p3').addEventListener('mdl-componentupgraded', function() {
    this.MaterialProgress.setProgress(33);
    this.MaterialProgress.setBuffer(87);
  });
</script>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)の**プログレス**コンポーネントは、ウェブページまたはアプリケーションにおけるバックグラウンドアクティビティの視覚的なインジケーターです。プログレスインジケーターは、通常は水平方向のバーで構成され、動きを示すアニメーションが含まれています。一部のプログレスデバイスは完了の概算または具体的な割合を示しますが、MDLプログレスコンポーネントは、アクティビティが進行中でまだ完了していないことを伝えるだけです。

プログレスインジケーターは、ユーザーインターフェースにおける確立されたものの標準化されていない機能であり、アプリケーションのステータスをユーザーに視覚的に示します。したがって、その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素となります。詳細については、プログレスコンポーネントのMaterial Design仕様ページを参照してください。

MDL **プログレス**コンポーネントを含めるには

 1. <div>要素を記述します。idや幅など、必要な属性と値を含めます。通常は、ここに示されているようなインラインstyle属性ではなく、外部CSSを使用して行われます。

<div id="prog1" style="width:250px"></div>

 2. class属性を使用して、スペースで区切った1つ以上のMDLクラスをdivに追加します。

<div id="prog1" style="width:250px" class="mdl-js-progress"></div>

プログレスコンポーネントは使用準備ができました。

静的(非アニメーション)プログレスインジケーター。

<div id="progstatic" style="width:250px" class="mdl-js-progress"></div>

アクティブ(アニメーション)プログレスインジケーター。

<div id="progactive" style="width:200px" class="mdl-js-progress
 mdl-progress--indeterminate"></div>

設定オプション

MDL CSSクラスは、プログレスインジケーターにさまざまな定義済みの視覚的および動作上の機能強化を適用します。以下の表は、使用可能なクラスとその効果を示しています。

MDL クラス 効果 備考
mdl-js-progress プログレスインジケーターに基本的なMDL動作を割り当てます 必須
mdl-progress--indeterminate アニメーション効果を適用します 任意

注:mdl-progress__intermediateはコードベースに存在します。名前がBEMの整合性と一致しないため、非推奨です。2.0で削除されます。

スピナー

デフォルト
単色
<!-- MDL Spinner Component -->
<div class="mdl-spinner mdl-js-spinner is-active"></div>
<style></style>
<!-- MDL Spinner Component with Single Color --> <div class="mdl-spinner mdl-spinner--single-color mdl-js-spinner is-active"></div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)の**スピナー**コンポーネントは、従来の「待機カーソル」(ハードウェアやソフトウェアのバージョンによって大きく異なります)の拡張版であり、進行中のプロセスがあり、その結果はまだ利用できないことを示します。スピナーは、時計回りにアニメーション化される際に色が変わる開いた円からなり、プロセスが開始されたがまだ完了していないことを明確に伝えます。

スピナー自体は、表示によっても、ユーザーがクリックまたはタッチしたときにも、何のアクションも行わず、プロセスの具体的な進捗状況や完了度を示すものではありません。MDLスピナーコンポーネントは、さまざまな種類のスピナーを提供し、表示効果を追加できます。

スピナーは、ほとんどのユーザーインターフェースの比較的新しい機能であり、ハードウェアデバイス、オペレーティングシステム、またはブラウザー環境に関係なく、進行中のアクティビティに関する一貫した視覚的な手がかりをユーザーに提供します。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素となります。

MDL **スピナー**コンポーネントを含めるには

 1. スピナーを含む要素(<div><p>、または<span>など)を記述します。要素自体はコンテンツを含んではいけません。

<div></div>

 2. class属性を使用して、スペースで区切った1つ以上のMDLクラスをコンテナーに追加します。

<div class="mdl-spinner mdl-js-spinner is-active"></div>

スピナーコンポーネントは使用準備ができました。

div内のデフォルトのスピナー。

<div class="mdl-spinner mdl-js-spinner is-active"></div>

段落内の単色スピナー。

<p class="mdl-spinner mdl-js-spinner mdl-spinner--single-color is-active"></p>

設定オプション

MDL CSSクラスは、スピナーにさまざまな定義済みの視覚的機能強化を適用します。以下の表は、使用可能なクラスとその効果を示しています。

MDL クラス 効果 備考
mdl-spinner コンテナーをMDLスピナーコンポーネントとして定義します 必須
mdl-js-spinner スピナーに基本的なMDL動作を割り当てます 必須
is-active スピナーを可視化し、アニメーション化します 任意
mdl-spinner--single-color 色が変化する代わりに、単一の色(プライマリパレット)を使用します 任意

**注:**スピナーには特定の無効バージョンはありません。is-activeクラスの有無によって、スピナーが表示されるかどうかが決まります。たとえば、このスピナーは非アクティブで非表示です:<div class="mdl-spinner mdl-js-spinner"></div>この属性は、スクリプトを介してプログラムで追加または削除できます。

スライダー

範囲から値を選択します。

デフォルトのスライダー
開始値
<!-- Default Slider -->
<input class="mdl-slider mdl-js-slider" type="range"
  min="0" max="100" value="0" tabindex="0">
<style></style>
<!-- Slider with Starting Value --> <input class="mdl-slider mdl-js-slider" type="range" min="0" max="100" value="25" tabindex="0">
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)の**スライダー**コンポーネントは、新しいHTML5の<input type="range">要素の拡張版です。スライダーは、小さな移動可能なディスク(サム)と、通常はユーザーが移動したときに設定される値を明確に伝えるテキストが水平線上に配置されたものから構成されます。

スライダーは、ユーザーインターフェースにおける比較的新しい機能であり、ユーザーはサムを範囲内で移動することで(低い値は左に、高い値は右に)、事前に決められた範囲から値を選択できます。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素となります。詳細については、スライダーコンポーネントのMaterial Design仕様ページを参照してください。

拡張されたスライダーコンポーネントは、最初は、またはプログラムで無効にすることができます。

MDL **スライダー**コンポーネントを含めるには

 1. <p>段落要素を記述し、必要に応じてスタイルを設定します。スライダーのサイズを決めるCSSのwidthプロパティ(直接またはCSSクラスを介して)を含めます。

<p style="width:300px">
...
</p>

 2. 段落コンテナ内に<input>要素を記述し、その`type`属性の値を`"range"`にします。スクリプトからアクセスできるように`id`属性も付与し、スライダーの範囲を指定する`min`属性と`max`属性を値と共に指定します。スライダーの初期位置を設定する`value`属性(省略可能、省略時は最大値の50%)、そしてサムが移動する増分を指定する`step`属性(省略可能、省略時は1)も値と共に指定します。最後に、ユーザーがスライダーの値を変更したときに実行されるイベントハンドラーを付与します。

<p style="width:300px">
  <input type="range" id="s1" min="0" max="10" value="4" step="2">
</p>

 3. `class`属性を使用して、スペースで区切った1つ以上のMDLクラスをスライダーに追加します。

<p style="width:300px">
  <input class="mdl-slider mdl-js-slider" type="range" id="s1" min="0" max="10" value="4" step="2">
</p>

スライダーコンポーネントは使用準備完了です。

音量を制御するスライダー。

<p style="width:300px">
<input class="mdl-slider mdl-js-slider" type="range" id="s1" min="0" max="10" value="4" step="2">
</p>

設定オプション

MDL CSSクラスは、スライダーに様々な事前に定義された視覚的および動作的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-slider 入力要素をMDLコンポーネントとして定義します 必須
mdl-js-slider 入力要素に基本的なMDL動作を割り当てます 必須

注記: スライダーの無効化バージョンが用意されており、標準的なHTMLブール属性`disabled`を使用して呼び出されます。<input class="mdl-slider mdl-js-slider" type="range" id="s1" min="0" max="10" value="4" step="2" disabled> この属性は、スクリプトを介してプログラム的に追加または削除できます。

注記: `value`属性はスライダーの初期値を設定するために使用されますが、プログラム的に値を変更するために使用しないでください。代わりに、MDLの`change()`メソッドを使用してください。例えば、`slider1`がスライダーオブジェクトであり、`newvalue`が目的の値を含む変数であると仮定すると、`slider1.value = newvalue`を使用する代わりに、`slider1.MaterialSlider.change(newvalue)`を使用してください。

ライセンス

Copyright Google, 2015. Apache-2ライセンスに基づいてライセンス供与されています。

Snackbar

一時的なポップアップ通知。

Snackbar
<button id="demo-show-snackbar" class="mdl-button mdl-js-button mdl-button--raised" type="button">Show Snackbar</button>
<div id="demo-snackbar-example" class="mdl-js-snackbar mdl-snackbar">
  <div class="mdl-snackbar__text"></div>
  <button class="mdl-snackbar__action" type="button"></button>
</div>
<script>
(function() {
  'use strict';
  var snackbarContainer = document.querySelector('#demo-snackbar-example');
  var showSnackbarButton = document.querySelector('#demo-show-snackbar');
  var handler = function(event) {
    showSnackbarButton.style.backgroundColor = '';
  };
  showSnackbarButton.addEventListener('click', function() {
    'use strict';
    showSnackbarButton.style.backgroundColor = '#' +
        Math.floor(Math.random() * 0xFFFFFF).toString(16);
    var data = {
      message: 'Button color changed.',
      timeout: 2000,
      actionHandler: handler,
      actionText: 'Undo'
    };
    snackbarContainer.MaterialSnackbar.showSnackbar(data);
  });
}());
</script>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
Toast
<button id="demo-show-toast" class="mdl-button mdl-js-button mdl-button--raised" type="button">Show Toast</button>
<div id="demo-toast-example" class="mdl-js-snackbar mdl-snackbar">
  <div class="mdl-snackbar__text"></div>
  <button class="mdl-snackbar__action" type="button"></button>
</div>
<script>
(function() {
  'use strict';
  window['counter'] = 0;
  var snackbarContainer = document.querySelector('#demo-toast-example');
  var showToastButton = document.querySelector('#demo-show-toast');
  showToastButton.addEventListener('click', function() {
    'use strict';
    var data = {message: 'Example Message # ' + ++counter};
    snackbarContainer.MaterialSnackbar.showSnackbar(data);
  });
}());
</script>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)のsnackbarコンポーネントは、操作の状態をユーザーに通知するために使用されるコンテナです。画面下部に表示されます。snackbarには、ユーザーがコマンドを実行するためのアクションボタンを含めることができます。アクションは、コミットされたアクションを取り消すか、失敗した場合は再試行する必要があります。アクションは、snackbarを閉じるためのものであってはなりません。アクションを提供しない場合、snackbarはtoastコンポーネントになります。

基本的な使用方法

コンテナdiv要素でsnackbarを開始します。そのコンテナで`mdl-js-snackbar`と`mdl-snackbar`クラスを定義します。このコンテナにaria-liveとaria-atomicの値を追加することも有益です。

コンテナ内に、メッセージのコンテナ要素を作成します。この要素には`mdl-snackbar__text`クラスが必要です。この要素は空のままにしてください!テキストは、snackbarの表示が呼び出されたときに追加されます。

コンテナの次に、ボタン要素を追加します。この要素には`mdl-snackbar__action`クラスが必要です。フォームが誤って送信されないように、タイプをボタンに設定することをお勧めします。ここでもテキストコンテンツは空のままにしてください!イベントハンドラーを直接適用しないでください。

これで、snackbarが機能するためのマークアップが完成しました。残りは、JavaScript内でsnackbarコンテナに対して`showSnackbar`メソッドを呼び出すだけです。これは、snackbarのコンテンツを適切に構成するためのプレーンオブジェクトを取ります。複数回連続して呼び出すことができ、メッセージは積み重ねられます。

すべてのsnackbarは、同じ要素を通して表示する必要があります。

マークアップ

<div aria-live="assertive" aria-atomic="true" aria-relevant="text" class="mdl-snackbar mdl-js-snackbar">
    <div class="mdl-snackbar__text"></div>
    <button type="button" class="mdl-snackbar__action"></button>
</div>

注記:この例には、アクセシビリティのためのいくつかのaria属性が含まれています。必要に応じて、サイトに合わせて変更してください。

Snackbar

var notification = document.querySelector('.mdl-js-snackbar');
var data = {
  message: 'Message Sent',
  actionHandler: function(event) {},
  actionText: 'Undo',
  timeout: 10000
};
notification.MaterialSnackbar.showSnackbar(data);

Toast

var notification = document.querySelector('.mdl-js-snackbar');
notification.MaterialSnackbar.showSnackbar(
  {
    message: 'Image Uploaded'
  }
);

CSS クラス

ブロック

MDL クラス 効果 備考
mdl-snackbar snackbarコンポーネントのコンテナを定義します。 snackbarコンテナで必須

要素

MDL クラス 効果 備考
mdl-snackbar__text snackbarのテキストを含む要素を定義します。 必須
mdl-snackbar__action snackbarのアクションをトリガーする要素を定義します。 必須

修飾子

MDL クラス 効果 備考
mdl-snackbar--active snackbarをアクティブとしてマークし、表示されるようにします。 アクティブな場合に必須。JavaScriptで制御されます

データオブジェクト

Snackbarコンポーネントの`showSnackbar`メソッドは、snackbarデータのオブジェクトを取ります。以下の表に、プロパティとその使用方法を示します。

プロパティ 効果 備考
message 表示するテキストメッセージ。 必須 文字列
timeout snackbarを表示する時間(ミリ秒)。 省略可能(デフォルト2750) 整数
actionHandler アクションがクリックされたときに実行する関数。 任意 関数
actionText アクションボタンに表示するテキスト。 actionHandlerが設定されている場合に必須 文字列。

トグル

状態間で選択します。

チェックボックス

オンチェック
オフチェック
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-1">
  <input type="checkbox" id="checkbox-1" class="mdl-checkbox__input" checked>
  <span class="mdl-checkbox__label">Checkbox</span>
</label>
<style></style>
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox-2"> <input type="checkbox" id="checkbox-2" class="mdl-checkbox__input"> <span class="mdl-checkbox__label">Checkbox</span> </label>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)のチェックボックスコンポーネントは、標準的なHTML<input type="checkbox">要素の拡張バージョンです。チェックボックスは小さな四角形で構成され、通常は、ユーザーがクリックまたはタッチしたときに設定または解除される2値条件を明確に伝えるテキストが含まれています。チェックボックスは、グループで表示されることが一般的ですが、必ずしもそうではなく、個別に選択および選択解除できます。MDLチェックボックスコンポーネントを使用すると、表示とクリック効果を追加できます。

チェックボックスは、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースの一般的な機能です。したがって、その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細については、チェックボックスコンポーネントのMaterial Design仕様ページを参照してください。

拡張されたチェックボックスコンポーネントは、標準的なチェックボックスよりも鮮やかな視覚的な外観を持ち、最初に、またはプログラム的に無効化することができます。

MDLのチェックボックスコンポーネントを含めるには

 1. <label>要素を記述し、その`for`属性の値を、含めるチェックボックスの一意のidにします。<input>要素が<label>要素内に含まれている場合、`for`属性は省略可能ですが、明確にするために推奨されます。

<label for="chkbox1">
...
</label>

 2. ラベル内に<input>要素を記述し、その`type`属性の値を`"checkbox"`にします。また、その`id`属性の値を、ラベルの`for`属性の値と一致させます。

<label for="chkbox1">
  <input type="checkbox" id="chkbox1">
</label>

 3. ラベル内にも、チェックボックスの後に、チェックボックスのテキストキャプションを含む<span>要素を記述します。

<label for="chkbox1">
  <input type="checkbox" id="chkbox1">
  <span>Enable AutoSave</span>
</label>

 4. `class`属性を使用して、スペースで区切った1つ以上のMDLクラスを、ラベル、チェックボックス、キャプションに追加します。

<label for="chkbox1" class="mdl-checkbox mdl-js-checkbox">
  <input type="checkbox" id="chkbox1" class="mdl-checkbox__input">
  <span class="mdl-checkbox__label">Enable AutoSave</span>
</label>

チェックボックスコンポーネントは使用準備完了です。

リップルクリック効果のあるチェックボックス。

<label for="chkbox1" class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect">
  <input type="checkbox" id="chkbox1" class="mdl-checkbox__input">
  <span class="mdl-checkbox__label">Enable AutoSave</span>
</label>

設定オプション

MDL CSSクラスは、チェックボックスに様々な事前に定義された視覚的および動作的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-checkbox ラベルをMDLコンポーネントとして定義します ラベル要素で必須
mdl-js-checkbox ラベルに基本的なMDL動作を割り当てます ラベル要素で必須
mdl-checkbox__input チェックボックスに基本的なMDL動作を適用します 入力要素(チェックボックス)で必須
mdl-checkbox__label キャプションに基本的なMDL動作を適用します span要素(キャプション)で必須
mdl-js-ripple-effect リップルクリック効果を適用します 省略可能。入力要素(チェックボックス)ではなく、ラベル要素に追加されます。

注記: 利用可能なすべてのチェックボックスタイプの無効化バージョンが用意されており、標準的なHTMLブール属性`disabled`を使用して呼び出されます。<input type="checkbox" id="checkbox-5" class="mdl-checkbox__input" disabled> この属性は、スクリプトを介してプログラム的に追加または削除できます。

ラジオボタン

ラジオオン
ラジオオフ
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-1">
  <input type="radio" id="option-1" class="mdl-radio__button" name="options" value="1" checked>
  <span class="mdl-radio__label">First</span>
</label>
<style></style>
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-2"> <input type="radio" id="option-2" class="mdl-radio__button" name="options" value="2"> <span class="mdl-radio__label">Second</span> </label>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)のラジオコンポーネントは、標準的なHTML<input type="radio">、または「ラジオボタン」要素の拡張バージョンです。ラジオボタンは小さな円形で構成され、通常は、ユーザーがクリックまたはタッチしたときに設定される条件を明確に伝えるテキストが含まれています。ラジオボタンは常に2つ以上のグループで表示され、個別に選択できますが、同じグループ内の別のラジオボタンを選択することによってのみ選択解除できます(これにより、グループ内の他のすべてのラジオボタンが選択解除されます)。MDLラジオコンポーネントを使用すると、表示とクリック効果を追加できます。

ラジオボタンは、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースの一般的な機能です。したがって、その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細については、ラジオコンポーネントのMaterial Design仕様ページを参照してください。

拡張されたラジオコンポーネントは、標準的なラジオボタンよりも鮮やかな視覚的な外観を持ち、最初に、またはプログラム的に無効化することができます。

MDLのラジオコンポーネントを含めるには

 1. <label>要素を記述し、その`for`属性の値を、含めるラジオボタンの一意のidにします。<input>要素が<label>要素内に含まれている場合、`for`属性は省略可能ですが、明確にするために推奨されます。

<label for="radio1">
...
</label>

 2. ラベル内に<input>要素を記述し、その`type`属性の値を`"radio"`にします。また、その`id`属性の値を、ラベルの`for`属性の値と一致させ、`name`属性の値をラジオボタングループを識別するものにします。必要に応じて、スクリプト目的でラジオボタンに関する情報を提供する`value`属性を値と共に指定します。

<label for="radio1">
  <input type="radio" id="radio1" name="flash" value="on">
</label>

 3. ラベル内にも、ラジオボタンの後に、ラジオボタンのテキストキャプションを含む<span>要素を記述します。

<label for="radio1">
  <input type="radio" id="radio1" name="flash" value="on">
  <span>Always on</span>
</label>

 4. `class`属性を使用して、スペースで区切った1つ以上のMDLクラスを、ラベル、チェックボックス、キャプションに追加します。

<label for="radio1" class="mdl-radio mdl-js-radio">
  <input type="radio" id="radio1" name="flash" value="on" class="mdl-radio__button">
  <span class="mdl-radio__label">Always on</span>
</label>

 5. グループ内の他のラジオコンポーネントについても、手順1から4を繰り返します。それぞれについて

  • `label`要素で、一意の`for`属性値を指定します
  • `input`要素で、その`label`要素の`for`属性値と一致する`id`属性値を指定します
  • `input`要素で、グループ内のすべてのラジオコンポーネントに同じ`name`属性値を指定します
  • 必要に応じて、`input`要素で一意の`value`属性値を指定します

ラジオコンポーネントは使用準備完了です。

カメラのフラッシュ設定を制御するラジオボタンのグループ。

<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="flash1">
  <input checked class="mdl-radio__button" id="flash1" name="flash" type="radio"
   value="on">
  <span class="mdl-radio__label">Always on</span>
</label>
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="flash2">
  <input class="mdl-radio__button" id="flash2" name="flash" type="radio" value="off">
  <span class="mdl-radio__label">Always off</span>
</label>
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="flash3">
  <input class="mdl-radio__button" id="flash3" name="flash" type="radio" value="auto">
  <span class="mdl-radio__label">Automatic</span>
</label>

設定オプション

MDL CSSクラスは、ラジオボタンに様々な事前に定義された視覚的および動作的な拡張機能を適用します。以下の表に、利用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-radio ラベルをMDLコンポーネントとして定義します ラベル要素で必須
mdl-js-radio ラベルに基本的なMDL動作を割り当てます ラベル要素で必須
mdl-radio__button ラジオに基本的なMDL動作を適用します 入力要素(ラジオボタン)で必須
mdl-radio__label キャプションに基本的なMDL動作を適用します span要素(キャプション)で必須
mdl-js-ripple-effect リップルクリック効果を適用します 省略可能。入力要素(ラジオボタン)ではなく、ラベル要素に追加されます。

注記: 利用可能なすべてのラジオボタングループの無効化バージョンが用意されており、標準的なHTMLブール属性`disabled`を使用して呼び出されます。<input type="radio" id="radio5" name="flash" class="mdl-radio__button" disabled> この属性は、スクリプトを介してプログラム的に追加または削除できます。

アイコントグル

アイコンオン
アイコンオフ
<label class="mdl-icon-toggle mdl-js-icon-toggle mdl-js-ripple-effect" for="icon-toggle-1">
  <input type="checkbox" id="icon-toggle-1" class="mdl-icon-toggle__input" checked>
  <i class="mdl-icon-toggle__label material-icons">format_bold</i>
</label>
<style></style>
<label class="mdl-icon-toggle mdl-js-icon-toggle mdl-js-ripple-effect" for="icon-toggle-2"> <input type="checkbox" id="icon-toggle-2" class="mdl-icon-toggle__input"> <i class="mdl-icon-toggle__label material-icons">format_italic</i> </label>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL)のアイコントグルコンポーネントは、標準的なHTML<input type="checkbox">要素の拡張バージョンです。アイコントグルは、ユーザーが定義したアイコンで構成され、視覚的な強調表示によって、ユーザーがクリックまたはタッチしたときに設定または解除される2値条件を示します。チェックボックスと同様に、アイコントグルは個別に、またはグループで表示でき、個別に選択および選択解除できます。

アイコントグルは、特に特定のチェックボックスの代替として、サイトのコンテンツや機能に関係なく、ユーザーインターフェースの貴重な機能となる可能性があります。したがって、その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細については、アイコントグルコンポーネントのMaterial Design仕様ページを参照してください。

アイコントグルコンポーネントは、標準的なチェックボックスよりもカスタマイズされた視覚的な外観を持つことができ、最初に、またはプログラム的に無効化することができます。

MDLのアイコン・トグルコンポーネントを含めるには

 1. <label>要素を記述し、for属性に含めるアイコン・トグルの一意のIDを値として指定します。

<label for="icon-toggle-1">
...
</label>

 2. ラベル内に<input>要素を記述し、その`type`属性の値を`"checkbox"`にします。また、その`id`属性の値を、ラベルの`for`属性の値と一致させます。

<label for="icon-toggle-1">
  <input type="checkbox" id="icon-toggle-1">
</label>

 3. また、label要素内、入力要素の後に、アイコン・トグルに必要なアイコンを含む<i>要素を記述します。

<label for="icon-toggle-1">
  <input type="checkbox" id="icon-toggle-1">
  <i class="mdl-icon-toggle__label material-icons">format_bold</i>
</label>

 4. class属性を使用して、label要素と入力要素に、スペースで区切った1つ以上のMDLクラスを追加します。

<label class="mdl-icon-toggle mdl-js-icon-toggle mdl-js-ripple-effect" for="icon-toggle-1">
  <input type="checkbox" id="icon-toggle-1" class="mdl-icon-toggle__input">
  <i class="mdl-icon-toggle__label material-icons">format_bold</i>
</label>

アイコン・トグルコンポーネントが使用できるようになります。

リップルクリック効果のあるアイコン・トグル。

<label class="mdl-icon-toggle mdl-js-icon-toggle mdl-js-ripple-effect" for="icon-toggle-1">
  <input type="checkbox" id="icon-toggle-1" class="mdl-icon-toggle__input">
  <i class="mdl-icon-toggle__label material-icons">format_bold</i>
</label>

設定オプション

MDLのCSSクラスは、アイコン・トグルに様々な定義済みの視覚的および動作的な拡張機能を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-icon-toggle ラベルをMDLコンポーネントとして定義します ラベル要素で必須
mdl-js-icon-toggle ラベルに基本的なMDL動作を割り当てます ラベル要素で必須
mdl-icon-toggle__input アイコン・トグルに基本的なMDL動作を適用します 入力要素(アイコン・トグル)で必須
mdl-icon-toggle__label キャプションに基本的なMDL動作を適用します i要素(アイコン)で必須
mdl-js-ripple-effect リップルクリック効果を適用します オプション。label要素に適用し、入力要素(アイコン・トグル)には適用しません。

注記: 使用可能なすべての入力タイプについて、無効化されたバージョンが提供され、標準的なHTMLブール属性disabledを使用して呼び出されます。<input type="checkbox" id="icon-toggle-5" class="mdl-icon-toggle__input" disabled> この属性は、スクリプトを使用してプログラム的に追加または削除できます。

スイッチ

オン
オフ
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
  <input type="checkbox" id="switch-1" class="mdl-switch__input" checked>
  <span class="mdl-switch__label"></span>
</label>
<style></style>
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-2"> <input type="checkbox" id="switch-2" class="mdl-switch__input"> <span class="mdl-switch__label"></span> </label>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite(MDL)のスイッチコンポーネントは、標準的なHTML<input type="checkbox">要素を拡張したものです。スイッチは、目立つ円形のステートインジケーターと、通常はユーザーがクリックまたはタッチしたときに設定または解除される2値の状態を明確に伝えるテキストを持つ短い水平方向の「トラック」で構成されます。チェックボックスと同様に、スイッチは個別に、またはグループで表示され、個別に選択および選択解除できます。ただし、スイッチは、その状態をより直感的に視覚的に表現します。オフの場合は左/グレー、オンの場合は右/カラーです。MDLスイッチコンポーネントを使用すると、表示効果とクリック効果の両方を追加できます。

特に特定のチェックボックスの代替として、スイッチは、サイトのコンテンツや機能に関係なく、ユーザーインターフェースにおいて貴重な機能となる可能性があります。したがって、その設計と使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。スイッチコンポーネントのマテリアルデザイン仕様ページで詳細を確認してください。

拡張されたスイッチコンポーネントは、標準的なチェックボックスよりも鮮やかな視覚的な外観を持ち、最初に、またはプログラム的に無効化できます。

MDLのスイッチコンポーネントを含めるには

 1. <label>要素を記述し、for属性に含めるスイッチの一意のIDを値として指定します。

<label for="switch1">
...
</label>

 2. ラベル内に<input>要素を記述し、その`type`属性の値を`"checkbox"`にします。また、その`id`属性の値を、ラベルの`for`属性の値と一致させます。

<label for="switch1">
  <input type="checkbox" id="switch1">
</label>

 3. また、label要素内、チェックボックスの後に、スイッチのテキストキャプションを含む<span>要素を記述します。

<label for="switch1">
  <input type="checkbox" id="switch1">
  <span>Sound off/on</span>
</label>

 4. class属性を使用して、label、スイッチ、キャプションに、スペースで区切った1つ以上のMDLクラスを追加します。

<label for="switch1" class="mdl-switch mdl-js-switch">
  <input type="checkbox" id="switch1" class="mdl-switch__input">
  <span class="mdl-switch__label">Sound off/on</span>
</label>

スイッチコンポーネントが使用できるようになります。

リップルクリック効果のあるスイッチ。

<label for="switch1" class="mdl-switch mdl-js-switch mdl-js-ripple-effect">
  <input type="checkbox" id="switch1" class="mdl-switch__input">
  <span class="mdl-switch__label">Sound off/on</span>
</label>

設定オプション

MDLのCSSクラスは、スイッチに様々な定義済みの視覚的および動作的な拡張機能を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-switch ラベルをMDLコンポーネントとして定義します ラベル要素で必須
mdl-js-switch ラベルに基本的なMDL動作を割り当てます ラベル要素で必須
mdl-switch__input スイッチに基本的なMDL動作を適用します 入力要素(スイッチ)で必須
mdl-switch__label キャプションに基本的なMDL動作を適用します span要素(キャプション)で必須
mdl-js-ripple-effect リップルクリック効果を適用します オプション。label要素に適用し、入力要素(スイッチ)には適用しません。

注記: 使用可能なすべてのスイッチタイプについて、無効化されたバージョンが提供され、標準的なHTMLブール属性disabledを使用して呼び出されます。<input type="checkbox" id="switch5" class="mdl-switch__input" disabled> この属性は、スクリプトを使用してプログラム的に追加または削除できます。

データを整理します。

マテリアル 数量 単価
アクリル(透明) 25 $2.90
合板(バーチ) 50 $1.25
ラミネート(金/青) 10 $2.35
データテーブル
<table class="mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp">
  <thead>
    <tr>
      <th class="mdl-data-table__cell--non-numeric">Material</th>
      <th>Quantity</th>
      <th>Unit price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Acrylic (Transparent)</td>
      <td>25</td>
      <td>$2.90</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Plywood (Birch)</td>
      <td>50</td>
      <td>$1.25</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Laminate (Gold on Blue)</td>
      <td>10</td>
      <td>$2.35</td>
    </tr>
  </tbody>
</table>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite(MDL)のデータテーブルコンポーネントは、標準的なHTML<table>を拡張したものです。データテーブルは、適切なユーザーインタラクション機能を備えた、適切にフォーマットされたデータの行と列で構成されます。

表は、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースに普遍的に存在する機能です。したがって、その設計と使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。データテーブルコンポーネントのマテリアルデザイン仕様ページで詳細を確認してください。

データテーブルで使用可能な行/列/セルのタイプは、ほとんどが自己フォーマットです。つまり、データテーブルが定義されると、個々のセルは非常に少ない特定の注意しか必要としません。たとえば、行はマウスオーバーと選択時にシェーディング動作を示し、数値はデフォルトで自動的にフォーマットされ、単一のクラスを追加すると、テーブル行を個別にまたはまとめて選択できるようになります。これにより、データテーブルコンポーネントは、開発者にとって便利で簡単にコーディングでき、ユーザーにとって魅力的で直感的なものになります。

MDLのデータテーブルコンポーネントを含めるには

 1. <table>要素を記述します。タイトル行とデータ行をそれぞれ保持する<thead>要素と<tbody>要素を含めます。

<table>
  <thead>
  </thead>
  <tbody>
  </tbody>
</table>

 2. class属性を使用して、テーブルに、スペースで区切った1つ以上のMDLクラスを追加します。

<table class="mdl-data-table mdl-js-data-table">
  <thead>
  </thead>
  <tbody>
  </tbody>
</table>

 2. <thead>内には、各列に1つのテーブルヘッダーセル<th>を含むテーブル行<tr>を正確に1つ記述し、ヘッダーセルに必要なテキストを含めます。ヘッダーの適切な配置を確保するために、テキストのみの列のヘッダーセルに「非数値」MDLクラスを追加します。(データセルはデフォルトで数値としてフォーマットされます。)

<table class="mdl-data-table mdl-js-data-table">
  <thead>
    <tr>
      <th class="mdl-data-table__cell--non-numeric">Name</th>
      <th>Age</th>
      <th>ID Number</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

 3. <tbody>内には、各データ行に1つのテーブル行<tr>と、行の各列に1つのテーブルデータセル<td>を記述します。ヘッダーセルと同様に、テキストのみのデータセルに「非数値」MDLクラスを追加して、適切な配置を確保します。

<table class="mdl-data-table mdl-js-data-table">
  <thead>
    <tr>
      <th class="mdl-data-table__cell--non-numeric">Name</th>
      <th>Age</th>
      <th>ID Number</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Don Aubrey</td>
      <td>25</td>
      <td>49021</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Sophia Carson</td>
      <td>32</td>
      <td>10258</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Steve Moreno</td>
      <td>29</td>
      <td>12359</td>
    </tr>
  </tbody>
</table>

データテーブルコンポーネントが使用できるようになります。

「マスター」選択チェックボックスと個々の行選択チェックボックスを持つデータテーブル。

<table class="mdl-data-table mdl-js-data-table mdl-data-table--selectable">
  <thead>
    <tr>
      <th class="mdl-data-table__cell--non-numeric">Material</th>
      <th>Quantity</th>
      <th>Unit price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Acrylic (Transparent)</td>
      <td>250</td>
      <td>$2.90</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Plywood (Birch)</td>
      <td>50</td>
      <td>$1.25</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Laminate (Gold on Blue)</td>
      <td>10</td>
      <td>$12.35</td>
    </tr>
  </tbody>
</table>

主にテキストデータを含む選択チェックボックスのないデータテーブル。

<table class="mdl-data-table mdl-js-data-table">
  <thead>
    <tr>
      <th class="mdl-data-table__cell--non-numeric">Name</th>
      <th class="mdl-data-table__cell--non-numeric">Nickname</th>
      <th>Age</th>
      <th class="mdl-data-table__cell--non-numeric">Living?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">John Lennon</td>
      <td class="mdl-data-table__cell--non-numeric">The smart one</td>
      <td>40</td>
      <td class="mdl-data-table__cell--non-numeric">No</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Paul McCartney</td>
      <td class="mdl-data-table__cell--non-numeric">The cute one</td>
      <td>73</td>
      <td class="mdl-data-table__cell--non-numeric">Yes</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">George Harrison</td>
      <td class="mdl-data-table__cell--non-numeric">The shy one</td>
      <td>58</td>
      <td class="mdl-data-table__cell--non-numeric">No</td>
    </tr>
    <tr>
      <td class="mdl-data-table__cell--non-numeric">Ringo Starr</td>
      <td class="mdl-data-table__cell--non-numeric">The funny one</td>
      <td>74</td>
      <td class="mdl-data-table__cell--non-numeric">Yes</td>
    </tr>
  </tbody>
</table>

設定オプション

MDLのCSSクラスは、データテーブルに様々な定義済みの視覚的および動作的な拡張機能を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-data-table テーブルをMDLコンポーネントとして定義します テーブル要素で必須
mdl-js-data-table テーブルに基本的なMDL動作を割り当てます テーブル要素で必須
mdl-data-table--selectable すべての/個々の選択可能な動作(チェックボックス)を適用します オプション。テーブル要素に適用します。
mdl-data-table__header--sorted-ascending 列が昇順でソートされていることを示す視覚的なスタイルを適用します オプション。テーブルヘッダー(th)に適用します。
mdl-data-table__header--sorted-descending 列が降順でソートされていることを示す視覚的なスタイルを適用します オプション。テーブルヘッダー(th)に適用します。
mdl-data-table__cell--non-numeric データセルにテキストフォーマットを適用します オプション。テーブルヘッダーとテーブルデータセルの両方に適用します。
(なし) ヘッダーまたはデータセルに数値フォーマットを適用します(デフォルト)

テキストフィールド

テキスト入力コンポーネント。

入力は数値ではありません!
テキスト
数値
<!-- Simple Textfield -->
<form action="#">
  <div class="mdl-textfield mdl-js-textfield">
    <input class="mdl-textfield__input" type="text" id="sample1">
    <label class="mdl-textfield__label" for="sample1">Text...</label>
  </div>
</form>
<style></style>
<!-- Numeric Textfield --> <form action="#"> <div class="mdl-textfield mdl-js-textfield"> <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" id="sample2"> <label class="mdl-textfield__label" for="sample2">Number...</label> <span class="mdl-textfield__error">Input is not a number!</span> </div> </form>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
入力は数値ではありません!
フローティングラベル付きテキスト
フローティングラベル付き数値
<!-- Textfield with Floating Label -->

<form action="#">
  <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
    <input class="mdl-textfield__input" type="text" id="sample3">
    <label class="mdl-textfield__label" for="sample3">Text...</label>
  </div>
</form>
<style></style>
<!-- Numeric Textfield with Floating Label --> <form action="#"> <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" id="sample4"> <label class="mdl-textfield__label" for="sample4">Number...</label> <span class="mdl-textfield__error">Input is not a number!</span> </div> </form>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
複数行
拡張
<!-- Floating Multiline Textfield -->
<form action="#">
  <div class="mdl-textfield mdl-js-textfield">
    <textarea class="mdl-textfield__input" type="text" rows= "3" id="sample5" ></textarea>
    <label class="mdl-textfield__label" for="sample5">Text lines...</label>
  </div>
</form>
<style></style>
<!-- Expandable Textfield --> <form action="#"> <div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable"> <label class="mdl-button mdl-js-button mdl-button--icon" for="sample6"> <i class="material-icons">search</i> </label> <div class="mdl-textfield__expandable-holder"> <input class="mdl-textfield__input" type="text" id="sample6"> <label class="mdl-textfield__label" for="sample-expandable">Expandable Input</label> </div> </div> </form>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite(MDL)のテキストフィールドコンポーネントは、標準的なHTML<input type="text">および<input type="textarea">要素を拡張したものです。テキストフィールドは、キーボード入力ができる場所を示す水平線と、通常はテキストフィールドの意図された内容を明確に伝えるテキストで構成されます。MDLテキストフィールドコンポーネントは、様々なタイプのテキストフィールドを提供し、表示効果とクリック効果の両方を追加できます。

テキストフィールドは、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースに共通の機能です。したがって、その設計と使い方は、全体的なユーザーエクスペリエンスにおいて重要な要素です。テキストフィールドコンポーネントのマテリアルデザイン仕様ページで詳細を確認してください。

拡張されたテキストフィールドコンポーネントは、標準的なテキストフィールドよりも鮮やかな視覚的な外観を持ち、最初に、またはプログラム的に無効化できます。テキストフィールドコンポーネントには、それぞれ独自の基本的なコーディング要件を持つ3つの主要なタイプのテキストフィールドがあります。そのタイプは、シングルラインマルチライン、および拡張可能です。

シングルラインのMDLテキストフィールドコンポーネントを含めるには

 1. テキストフィールドを保持する<div>要素を記述します。

<div>
...
</div>

 2. div要素内には、type属性が"text"(テキストフィールド)で、id属性が任意の値の<input>要素を記述します。

<div>
  <input type="text" id="user">
</div>

 3. また、div要素内、テキストフィールドの後に、for属性の値がinput要素のid値と一致し、フィールドのプレースホルダーテキストとして使用する短い文字列を含む<label>要素を記述します。

<div>
  <input type="text" id="user">
  <label for="user">User name</label>
</div>

 4. オプションで、<input>要素にpattern属性と値を追加し(詳細についてはW3C HTML5フォーム仕様を参照)、<label>の後に<span>要素に関連するエラーメッセージを含めます。

<div>
  <input type="text" id="user" pattern="[A-Z,a-z, ]*">
  <label for="user">User name</label>
  <span>Letters and spaces only</span>
</div>

 5. class属性を使用して、divコンテナ、テキストフィールド、フィールドラベル、エラーメッセージに、スペースで区切った1つ以上のMDLクラスを追加します。

<div class="mdl-textfield mdl-js-textfield">
  <input class="mdl-textfield__input" type="text" id="user" pattern="[A-Z,a-z, ]*">
  <label class="mdl-textfield__label" for="user">User name</label>
  <span class="mdl-textfield__error">Letters and spaces only</span>
</div>

シングルラインテキストフィールドコンポーネントが使用できるようになります。

標準的なラベルを持つシングルラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield">
  <input class="mdl-textfield__input" type="text" id="fname">
  <label class="mdl-textfield__label" for="fname">First name</label>
</div>

フローティングラベルを持つシングルラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
  <input class="mdl-textfield__input" type="text" id="addr1">
  <label class="mdl-textfield__label" for="addr1">Address line 1</label>
</div>

標準的なラベル、パターンマッチング、エラーメッセージを持つシングルラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield">
  <input class="mdl-textfield__input" type="text" pattern="[0-9]*" id="phone">
  <label class="mdl-textfield__label" for="phone">Phone</label>
  <span class="mdl-textfield__error">Digits only</span>
</div>

マルチラインのMDLテキストフィールドコンポーネントを含めるには

 1. テキストフィールドを保持する<div>要素を記述します。

<div>
...
</div>

 2. div要素内には、type属性が"text"(マルチラインテキストフィールド)で、id属性が任意の値の<textarea>要素を記述します。rows属性に"1"を値として含めます(この属性は、同時に表示される入力行の数を設定します)。

<div>
  <textarea type="text" rows="1" id="address"></textarea>
</div>

 3. また、div要素内、テキストフィールドの後に、for属性の値が<textarea>要素のid値と一致し、フィールドのプレースホルダーテキストとして使用する短い文字列を含む<label>要素を記述します。

<div>
  <textarea type="text" rows="1" id="address"></textarea>
  <label for="address">Full address</label>
</div>

 4. class属性を使用して、divコンテナ、テキストフィールド、フィールドラベルに、スペースで区切った1つ以上のMDLクラスを追加します。

<div class="mdl-textfield mdl-js-textfield">
  <textarea class="mdl-textfield__input" type="text" rows="1" id="address"></textarea>
  <label class="mdl-textfield__label" for="address">Full address</label>
</div>

マルチラインテキストフィールドコンポーネントが使用できるようになります。

1つの表示入力行を持つマルチラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield">
  <textarea class="mdl-textfield__input" type="text" rows="1" id="schools"></textarea>
  <label class="mdl-textfield__label" for="schools">Schools attended</label>
</div>

1つの表示入力行とフローティングラベルを持つマルチラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
  <textarea class="mdl-textfield__input" type="text" rows= "1" id="schools"></textarea>
  <label class="mdl-textfield__label" for="schools">Schools attended</label>
</div>

複数の表示入力行と最大行数を持つマルチラインテキストフィールド。

<div class="mdl-textfield mdl-js-textfield">
  <textarea class="mdl-textfield__input" type="text" rows="3" maxrows="6"
   id="schools"></textarea>
  <label class="mdl-textfield__label" for="schools">Schools attended (max. 6)</label>
</div>

拡張可能なMDLテキストフィールドコンポーネントを含めるには

 1. 拡張可能なテキストフィールドを保持する「外部」<div>要素を記述します。

<div>
...
</div>

 2. div要素内には、for属性の値が<input>要素のid値(ステップ5で記述)と一致する<label>要素を記述します。

<div>
  <label for="expando1">
  ...
  </label>
</div>

 3. label要素内には、<span>要素を記述します。span要素は空で、ラベルの唯一のコンテンツである必要があります。この要素には、拡張可能なテキストフィールドのアイコンが含まれます。

<div>
  <label for="expando1">
    <span></span>
  </label>
</div>

 4. 「外部」div要素内、spanを含むラベルの後に、「内部」(ネストされた)<div>要素を記述します。

<div>
  <label for="expando1">
    <span></span>
  </label>
  <div>
  ...
  </div>
</div>

 5. 「内部」div要素内には、type属性が"text"(テキストフィールド)で、id属性の値がステップ2のfor属性の値と一致する<input>要素を記述します。

<div>
  <label for="expando1">
    <span></span>
  </label>
  <div>
    <input type="text" id="expando1">
  </div>
</div>

 6. "inner" div の中に、テキストフィールドの後に、<label> 要素を記述します。for 属性の値は、ステップ 5 で記述した <input> 要素の id 属性の値と一致させ、短い文字列をプレースホルダーテキストとして使用します。

<div>
  <label for="expando1">
    <span></span>
  </label>
  <div>
    <input type="text" id="expando1">
    <label for="expando1">Expandable text field</label>
  </div>
</div>

 7. "outer" div コンテナ、ラベル、span、そして "inner" div コンテナ、テキストフィールド、フィールドラベルに、class 属性を使用して、スペースで区切られた 1 つ以上の MDL クラスを追加します。

<div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable">
  <label class="mdl-button mdl-js-button mdl-button--icon" for="expando1">
    <i class="material-icons">search</i>
  </label>
  <div class="mdl-textfield__expandable-holder">
    <input class="mdl-textfield__input" type="text" id="expando1">
    <label class="mdl-textfield__label" for="expando1">Expandable text field</label>
  </div>
</div>

拡張可能なテキストフィールドコンポーネントが使用可能になりました。アイコン(空の <span>)をクリックするか、フォーカスを受けると展開されます。

標準ラベル付きの拡張可能なテキストフィールド。

<div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable">
  <label class="mdl-button mdl-js-button mdl-button--icon" for="search-expandable">
    <i class="material-icons">search</i>
  </label>
  <div class="mdl-textfield__expandable-holder">
    <input class="mdl-textfield__input" type="text" id="search-expandable">
    <label class="mdl-textfield__label" for="search-expandable">Search text</label>
  </div>
</div>

フローティングラベル付きの拡張可能なテキストフィールド。

<div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable
 mdl-textfield--floating-label">
  <label class="mdl-button mdl-js-button mdl-button--icon" for="search-expandable2">
    <i class="material-icons">search</i>
  </label>
  <div class="mdl-textfield__expandable-holder">
    <input class="mdl-textfield__input" type="text" id="search-expandable2">
    <label class="mdl-textfield__label" for="search-expandable2">
      Enter search text below
    </label>
  </div>
</div>

設定オプション

MDL CSS クラスは、テキストフィールドにさまざまな定義済みの視覚的および動作的な機能強化を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-textfield コンテナをMDLコンポーネントとして定義します 「外部」div要素で必須
mdl-js-textfield 入力に基本的な MDL 動作を割り当てます 「外部」div要素で必須
mdl-textfield__input 要素をテキストフィールド入力として定義します 入力またはテキストエリア要素で必須
mdl-textfield__label 要素をテキストフィールドラベルとして定義します 入力またはテキストエリア要素のラベル要素で必須
mdl-textfield--floating-label フローティングラベル効果を適用します オプションです。「外側」のdiv要素に適用します
mdl-textfield__error span を MDL エラーメッセージとして定義します オプションです。パターンを持つ MDL 入力要素の span 要素に追加されます。
mdl-textfield--expandable div を MDL 拡張可能なテキストフィールドコンテナとして定義します 拡張可能な入力フィールドの場合、"outer" div 要素で必須です
mdl-button ラベルを MDL アイコンボタンとして定義します 拡張可能な入力フィールドの場合、"outer" div のラベル要素で必須です
mdl-js-button アイコンコンテナに基本的な動作を割り当てます 拡張可能な入力フィールドの場合、"outer" div のラベル要素で必須です
mdl-button--icon ラベルを MDL アイコンコンテナとして定義します 拡張可能な入力フィールドの場合、"outer" div のラベル要素で必須です
mdl-input__expandable-holder コンテナを MDL コンポーネントとして定義します 拡張可能な入力フィールドの場合、"inner" div 要素で必須です
is-invalid 初期ロード時にテキストフィールドを無効として定義します。 mdl-textfield 要素でオプション

(1) ここでは例として「検索」アイコンを使用しています。テキストを変更することで、他のアイコンを使用できます。使用可能なアイコンの一覧については、このページを参照してください。

注記: 各テキストフィールドタイプの無効バージョンが提供されており、標準の HTML ブール属性 disabled を使用して呼び出されます。<input class="mdl-textfield mdl-js-textfield" type="text" disabled> この属性は、スクリプトを使用してプログラムによって追加または削除できます。

ツールチップ

ホバー時の便利な情報。

add
フォロー
印刷
印刷
シンプル
<!-- Simple Tooltip -->
<div id="tt1" class="icon material-icons">add</div>
<div class="mdl-tooltip" data-mdl-for="tt1">
Follow
</div>
<style></style>
<!-- Large Tooltip --> <div id="tt2" class="icon material-icons">print</div> <div class="mdl-tooltip mdl-tooltip--large" for="tt2"> Print </div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>
cloud_upload
file.zip をアップロード
share
ソーシャルメディアでコンテンツを共有
します
リッチ
複数行
<!-- Rich Tooltip -->
<div id="tt3" class="icon material-icons">cloud_upload</div>
<div class="mdl-tooltip" data-mdl-for="tt3">
Upload <strong>file.zip</strong>
</div>
<style></style>
<!-- Multiline Tooltip --> <div id="tt4" class="icon material-icons">share</div> <div class="mdl-tooltip" for="tt4"> Share your content<br>via social media </div>
<style></style>
<style> body { padding: 20px; background: #fafafa; position: relative; } </style>

はじめに

Material Design Lite (MDL) のツールチップコンポーネントは、title 属性によって生成される標準の HTML ツールチップの拡張バージョンです。ツールチップは、ユーザーが要素の上にホバーしたとき、またはタッチベースの UI では要素をタッチしたときに、要素に関する追加情報を明確に伝えるテキストや画像で構成されます。MDL ツールチップコンポーネントは、(色、フォント、その他の設定は material.min.css に含まれています)事前にスタイルが設定されており、関連するが通常は必須ではないコンテンツ(例:定義、説明、または簡単な指示)を表示する鮮やかで魅力的な視覚要素を提供します。

ツールチップは、サイトのコンテンツや機能に関係なく、ほとんどのユーザーインターフェースに普遍的に存在する機能です。その設計と使用は、全体的なユーザーエクスペリエンスにおいて重要な要素です。詳細は、ツールチップコンポーネントのMaterial Design 仕様ページを参照してください。

MDL のツールチップコンポーネントを含めるには

 1. <div><p><span>などの要素を記述し、必要に応じてスタイルを設定します。これがツールチップのターゲットになります。id 属性と一意の値を含めて、コンテナをツールチップにリンクします。

<p id="tt1">HTML</p>

 2. ターゲット要素の後に、<div><p><span>などの2番目の要素を記述します。これがツールチップ自体になります。for(またはdata-mdl-for)属性の値をターゲットのidの値と一致させます。

<p id="tt1">HTML</p>
<span for="tt1">HyperText Markup Language</span>

 3. class 属性を使用して、スペースで区切られた 1 つ以上の MDL クラスをツールチップ要素に追加します。

<p id="tt1">HTML</p>
<span for="tt1" class="mdl-tooltip">HyperText Markup Language</span>

ツールチップコンポーネントが使用可能になりました。

シンプルなテキストツールチップを持つターゲット。

<p>HTML is related to but different from <span id="xml"><i>XML</i></span>.</p>
<span class="mdl-tooltip" for="xml">eXtensible Markup Language</span>

「リッチ」(HTML マークアップを含む)なツールチップテキストを持つターゲット。

<p>HTML is related to but different from <span id="xml"><i>XML</i></span>.</p>
<span class="mdl-tooltip" for="xml">e<b>X</b>tensible <b>M</b>arkup <b>L</b>anguage</span>

自動的に折り返される長いテキストツールチップを持つターゲット。

<p>HTML is related to but different from <span id="xml"><i>XML</i></span>.</p>
<span class="mdl-tooltip" for="xml">XML is an acronym for eXtensible Markup Language</span>

より大きなフォントサイズのツールチップテキストを持つターゲット。

<p>HTML is related to but different from <span id="xml"><i>XML</i></span>.</p>
<span class="mdl-tooltip mdl-tooltip--large" for="xml">eXtensible Markup Language</span>

画像とテキストの両方を含むツールチップを持つターゲット。

<p>HTML is related to but different from <span id="xml"><i>XML</i></span>.</p>
<span class="mdl-tooltip" for="xml">
<img src="xml-logo-small.png" width="20" height="10"> eXtensible Markup Language</span>

設定オプション

MDL CSS クラスは、ツールチップにさまざまな定義済みの視覚的機能強化を適用します。以下の表に、使用可能なクラスとその効果を示します。

MDL クラス 効果 備考
mdl-tooltip コンテナを MDL ツールチップとして定義します ツールチップコンテナ要素で必須
mdl-tooltip--large 大フォント効果を適用します オプションです。ツールチップコンテナ要素に追加されます。
mdl-tooltip--left ターゲットの左側にツールチップを配置します オプションです。ツールチップコンテナ要素に追加されます。
mdl-tooltip--right ターゲットの右側にツールチップを配置します オプションです。ツールチップコンテナ要素に追加されます。
mdl-tooltip--top ターゲットの上側にツールチップを配置します オプションです。ツールチップコンテナ要素に追加されます。
mdl-tooltip--bottom ターゲットの下側にツールチップを配置します オプションです。ツールチップコンテナ要素に追加されます。
キットのダウンロード