本文へスキップ
Material 3 Expressivev1.3.0-rc.1
基礎 · 準拠済み

Text

TextTextProps

Expressive typography

Semantic elements and visual roles stay independent.

Content color is inherited

Type scale

Display large
Display medium

Headline large

Headline medium
Headline small
Title large
Title small
Body medium (explicit baseline)
Body small
Label small
playground/examples/Text.example.tsx

Textは、明示的に選択したネイティブHTML要素にMaterial 3のタイプスケールを適用します。見た目のタイポグラフィと文書上の意味は独立しています。

import { Text } from '@language-lit/material3-expressive'
import '@language-lit/material3-expressive/styles.css'

<Text as="h1" variant="displayLarge" emphasis="emphasized">
  Account
</Text>
<Text as="p" variant="bodyLarge">
  The heading level comes from `as`; the visual scale comes from `variant`.
</Text>

仕様

  • asの既定値はspanです。span、p、div、h1〜h6、label、legend、strong、em、small、blockquote、figcaptionを指定できます。
  • variantの既定値はbodyLargeです。Materialのdisplay、headline、title、body、labelの各サイズでLarge、Medium、Smallを指定できます。
  • emphasisの既定値はbaselineです。emphasizedを指定すると、同じロールに対応する現在のMaterial 3 Expressiveのスタイルになります。
  • ネイティブ属性、ARIA/data属性、スタイル、クラス、イベントハンドラー、子要素、選択した要素に適したrefを渡します。
  • Textは選択した要素にユーザーエージェントの余白があれば取り除き、同じ視覚ロールで安定したレイアウトを実現します。ネイティブの表示形式は変更しません。

variant="displayLarge"を指定しても見出しにはなりません。ページの文書構造に合わせてas="h1"〜as="h6"を選んでください。反対に、実際の見出しに小さな視覚ロールを適用しても、見出しレベルは維持されます。

Expressiveタイプスケール

15種類のロールは次のとおりです。

  • displayLarge、displayMedium、displaySmall
  • headlineLarge、headlineMedium、headlineSmall
  • titleLarge、titleMedium、titleSmall
  • bodyLarge、bodyMedium、bodySmall
  • labelLarge、labelMedium、labelSmall

各ロールにはベースラインと強調スタイルがあります。強調スケールは単純な太字切り替えではなく、個別にテーマ設定できるMaterialのスケールです。テーマでは、ベースライン側を変えずにフォントファミリー、太さ、サイズ、行の高さ、字間、可変フォント軸を変更できます。

タイポグラフィトークンとフォント

Textは--m3e-sys-typescale-{emphasis}-{kebab-role}-*変数から、選択したロールのフォントファミリー、太さ、サイズ、行の高さ、字間、およびCRSV、FILL、GRAD、HEXP、ROND、opsz、slnt、wdth、wghtの各軸を直接取得します。Textコンポーネント用のトークンはありません。標準のTextはシステムのタイプスケールと継承されたコンテンツ色を直接使用します。

Textのレンダー時にフォントをダウンロードしたり注入したりすることはありません。アプリケーション側でフォントファイルと@font-faceを用意し、theme.reference.typeface.brandと.plainを設定します。フォントが対応していない可変軸は無視されます。設定した軸をすべて適用するには、十分な軸に対応した可変フォントを使ってください。

Textは周囲からcolorを継承します。SurfaceはMaterialに合うコンテンツ色を指定します。意図的に例外を設ける場合は、利用側の通常のCSSで色などの表示を上書きできます。

アクセシビリティと適応

Textはロール、フォーカス対象、キーボード動作、アクセシブルな状態、操作を追加しません。ネイティブの見出し、ラベル、凡例、テキストレベルの意味付けが優先されます。labelは有効なフォームコントロールとの関連付けがある場合のみ使い、見た目のロールにかかわらず見出しレベルを文書構造に沿って保ってください。

コンポーネント独自のモーション、物理方向のレイアウト、ブレークポイント、強制カラー上書きはありません。ブラウザーの文字拡大、書字方向、強制カラー、利用側のレスポンシブCSSはそのまま適用されます。自動フィットや文字の省略はExpressiveのタイプロールではなくレイアウト上の方針のため、この基盤APIの対象外です。