フリーランスの暇な時に書く技術メモ
Genki Tech

Angular Materialのmat-form-fieldの外観の既定値を設定

Angular Material のフォームフィールド mat-form-field は、HTML タグの属性でスタイルを変更できるようになっています。

しかし、サイト内のコントロールの外観は固定であることが多いため、全てのコントロールタグに属性を付けていくのは大変であり、やっぱり変えたいとなった場合はさらに大変です。

それで今回は個人的に規定値から変更することの多い、外観設定「appearance」と、キャプション表示方法「floatLabel」の既定値を設定してみます。

appearance と floatLabel の挙動を確認

とりあえず以下のコードを編集し、結果がどのように変わるか試してみてください。

appearance と floatLabel の既定値を設定

appearance や floatLabel は HTML タグで指定されるため、CSS で一括指定ができません。それで例えば、appearance の既定値を outline、floatLabel の既定値を always(タイトルを常に上に表示)に変えたい場合、各種モジュールをインポートしている箇所(上の例だと main.ts)に、以下のコードを追加します。

main.ts
@NgModule({
  ...
  providers: [
    { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {
      appearance: 'outline',
      floatLabel: 'always', } },
  ]
  ...
})

すると以下のように、スタイル未指定フィールドの既定の動作を変更できます。