[ASP.NET Blazor Server][MudBlazor] MudBlazorの使い方2

次はレイアウトとテーマ設定について見ていきましょう。

Webアプリを作るとき、ページごとにヘッダーやサイドメニューを毎回ゼロから作るのは大変です。MudBlazorでは、これらを簡単に構築するための「枠組み(レイアウト)」専用のコンポーネントが用意されています。

大きく分けて、以下の4つのパーツを組み合わせて作ります。

  • MudLayout: アプリ全体のいちばん外側の枠組みです。
  • MudAppBar: 画面上部に固定されるヘッダー(ナビゲーションバー)です。
  • MudDrawer: 画面の横から出てくるサイドメニュー(引き出し)です。
  • MudMainContent: 実際にユーザーが見る各ページの中身(メインコンテンツ)が展開される場所です。

これらを組み合わせると、大枠のコードはこのようになります。

<MudLayout>
    <MudAppBar Color="Color.Primary">
        アプリのタイトル
    </MudAppBar>

    <MudDrawer Open="true">
        メニュー項目1
        メニュー項目2
    </MudDrawer>

    <MudMainContent>
        ここに各ページの内容が表示されます
    </MudMainContent>
</MudLayout>

さらに、MudBlazorには MudThemeProvider という強力な機能があります。 これを追加することで、アプリ全体の「テーマ(基調となる色やフォント)」を一括で管理できます。例えば「プライマリカラー(メインの色)を青から紫に変更する」と設定するだけで、アプリ内にあるすべての MudButtonMudAppBar の色が自動的に切り替わります

それでは、このレイアウトの仕組みについて、実際にアプリを作っている場面を想像して考えてみましょう。

もし、あなたが「ログアウト」ボタンを作るとします。このボタンは、ユーザーがどのページを開いていても、常に画面の右上に表示させておきたいと考えています。

その場合、先ほどの4つのコンポーネント(MudLayout, MudAppBar, MudDrawer, MudMainContent)のうち、どこに「ログアウト」ボタンのコードを配置するのが一番適切だと思いますか?

正解は MudAppBar(上部のヘッダー) の中でした! MudAppBar に配置しておけば、ユーザーが MudMainContent の中でどのページに移動しても、常に画面上部に残り続けるからです。

アプリの「テーマ(色合い)」をカスタマイズする

レイアウトの枠組みができたら、次はアプリ全体の色やデザイン(テーマ)を設定します。 MudBlazorでは、青色(Primary)やピンク色(Secondary)など、あらかじめデフォルトの色が設定されていますが、これを自分のアプリのブランドカラーに一括で変更することができます。

これを行うのが MudThemeProviderMudTheme です。

例えば、「うちのアプリのメインカラーは『緑』で、ヘッダーの背景は『ダークグレー』にしたい!」という場合は、C#側で自分専用のテーマ(パレット)を作成します。

<MudThemeProvider Theme="@MyCustomTheme" />

<MudLayout>
    <MudAppBar>アプリのタイトル</MudAppBar>
    <MudMainContent>コンテンツ</MudMainContent>
</MudLayout>

@code {
    // 自分専用のテーマを作成
    private MudTheme MyCustomTheme = new MudTheme()
    {
        PaletteLight = new PaletteLight()
        {
            Primary = Colors.Green.Default, // メインカラーを緑に
            AppbarBackground = Colors.Grey.Darken3 // ヘッダー背景をダークグレーに
        }
    };
}

このように MudTheme を1つ定義して MudThemeProvider に渡すだけで、アプリ内にあるすべての MudButton(Color="Color.Primary") が一斉に緑色に変わります。一つ一つのボタンの色をCSSで書き直す必要がないので、デザインの管理が劇的に楽になります

さらに、MudBlazorは現代のWebアプリに欠かせない 「ダークモード(黒背景)」 にも標準で対応しています。PaletteLight(明るいテーマ)とは別に、PaletteDark(暗いテーマ)を設定することも可能です。

さて、ここまでの「レイアウトとテーマ」の全体像はいかがでしたか?

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする