Angular で Master CSS を設定する
CLI で生成した CSS を Angular に接続し、開発用の監視を両方動かして、本番のスタイルシートまたは任意のブラウザーランタイムを確認します。
このページの内容
Angular のビルダーを保持し、Master CSS CLI で読み込み可能なスタイルシートを生成します。開発中は両方の監視プロセスを動かしてください。Master CSS が生成 CSS を更新し、Angular がそれをインポートするアプリを配信します。
この設定は、グローバルな src/styles.css、動作する npm start コマンド、対応する Node.js 24 がある、既存のブラウザーレンダリングの Angular アプリを前提とします。Angular の既定のエミュレートされたカプセル化を使い、グローバルスタイルがコンポーネントのテンプレートに届くようにします。Shadow DOM コンポーネントでは、自身のシャドウルート内にスタイルが必要です。
#インストール
#スタイルシートの接続を確認する
インストーラーはプロジェクトのルートに Master CSS のソースエントリーを作成します:
@import '@master/css';既存の内容を保持したまま、Angular のグローバルスタイルシートに次のインポートも追加します:
@import './master.generated.css';angular.jsonのアプリのbuild.options.styles配列にsrc/styles.cssを残してください。生成した CSS がページに届くかは、Angular のグローバルスタイル設定で決まります。標準と異なるワークスペース構成では、出力パスとインポートを合わせて調整します。@themeや@utilityなどの Master CSS の定義はmaster.cssに置きます。Angular が使うのは生成後のネイティブ CSS で、通常の CSS ビルダーはこれらの定義をコンパイルしません。src/master.generated.cssを編集したり、master.cssに逆にインポートしたりしないでください。#CSS を生成する
一つのターミナルでスタイルシートを生成し、変更の監視を続けます:
npx master-css generate --output src/master.generated.css --watch最初の生成が終わるのを待ってから、別のターミナルで Angular を起動します:
npm start両方のプロセスを動かしたままにします。Angular の監視だけでは、クラスを追加しても Master CSS は再生成されません。
#Master CSS を使い始める
ルートコンポーネントが参照するテンプレートに次のマークアップを追加します。Angular の現在の命名規則では通常
src/app/app.htmlですが、既存のプロジェクトではsrc/app/app.component.htmlの場合もあります。テンプレートのスタイルを確認する
<p id="master-check" class="w-fit m(0) p-md b-solid b(1) b-line-divider r-md text-sm font-regular bg-surface-raised fg-text-strong">Hello Angular</p>生成された CSS
@layer theme { :root, :host { --color-zinc-90: oklch(24.6% .0022 265); --color-zinc-100: oklch(15% .0016 265) } :root, :host { --color-surface-raised: light-dark(var(--color-white), var(--color-zinc-90)); --color-line-divider: light-dark(oklch(0% 0 none / .12), oklch(100% 0 none / .12)); --color-text-strong: light-dark(var(--color-zinc-100), var(--color-white)) } :root, :host { --color-white: oklch(100% 0 none) } :root, :host { --font-weight-regular: 400; --font-size-sm: .875rem; --text-sm: var(--font-size-sm); --text-sm--line-height: 1.5; --text-sm--letter-spacing: 0; --radius-md: .375rem; --spacing-md: 1rem }}@layer utilities { .text-sm { font-size: var(--text-sm); line-height: var(--text-sm--line-height, normal); letter-spacing: var(--text-sm--letter-spacing, normal) } .bg-surface-raised { background-color: var(--color-surface-raised) } .b-line-divider { border-color: var(--color-line-divider) } .r-md { border-radius: var(--radius-md) } .b-solid { border-style: solid } .b\(1\) { border-width: calc(1 * 1px) } .fg-text-strong { color: var(--color-text-strong) } .font-regular { font-weight: var(--font-weight-regular) } .m\(0\) { margin: calc(0 * 1px) } .p-md { padding: var(--spacing-md) } .w-fit { width: fit-content }}段落には中立色の面、細い境界線、小さな角丸、四辺に 1rem のパディングが付きます。
#結果を確認する
Angular アプリを開きます。段落の間隔と面が例と一致するはずです。テンプレートの p-md を p-lg に変えてください。両方の監視プロセスが動いていれば、パディングが 1rem から 1.5rem に増えます。更新を確認してから元に戻します。
スタイルが付かない場合は、順に接続を確認してください:
- Master CSS のターミナルで生成エラーを確認し、
src/master.generated.cssが存在することを確かめます。 src/styles.cssのインポートと、angular.jsonでの同ファイルの登録を確認します。- ブラウザーの開発者ツールで段落を調べ、一致するルールと、それを上書きするコンポーネントスタイルがないか確認します。
静的生成には、ソース内の完全なクラス文字列、または明示的なセーフリストが必要です。条件付きのクラス名も完全な形で記述し、動的な値には CSS カスタムプロパティを使ってください。生成出力にクラスがない場合は、クラス名の走査を参照します。
#デプロイ用にビルドする
Angular がアプリをパッケージする前に CSS を生成します:
npx master-css generate --output src/master.generated.cssnpm run buildCI でも同じ順序にします。古い生成ファイルの配信はスタイルの欠落を隠す場合があるため、新しく生成してから本番ビルドを確認してください。
静的とは CSS の生成段階を指します。ブラウザーでレンダリングする Angular アプリが HTML を作るには、引き続き JavaScript が必要です。
#別のレンダリングモードを選ぶ
既定は静的レンダリングです。既知のソース文字列ではなく、ブラウザーの DOM 変更からクラスを生成する必要がある場合は、ランタイムレンダリングを使ってください。
| モード | インストーラーのオプション | CSS 配信 |
|---|---|---|
| 静的 | なし | src/styles.css が CLI の出力をインポート |
| ランタイム | --mode runtime | src/main.ts からブラウザーランタイムを起動 |
ブラウザーで新しいクラスを生成する
ランタイムモードの設定では、次を実行します:
npm create @master/css@2.0.0 -- --framework angular --mode runtime --yesインストーラーは src/main.ts から MasterCSSRuntime を起動し、@master/css-runtime/default-program を読み込んで、ドキュメントのクラス変更を監視します。
**Angular を起動する前に、グローバルスタイルシートの設定を完了してください。**現在、インストーラーは src/styles.css に @import '@master/css'; を追加します。このインポートを以下のネイティブなベーススタイルシートに置き換え、アプリに必要なほかのネイティブ CSS インポートとルールは保持します。静的モードから切り替える場合は、./master.generated.css のインポートも削除してください。このランタイム経路には CSS の監視は不要です。
@import '@master/css/base.css';既定のプログラムはプリセットの語彙を供給します。Angular の通常の CSS に @theme や @utility を追加しても、独自のランタイムプログラムはコンパイルされません。プロジェクト固有の語彙には、静的な CLI の経路を使うか、ランタイム APIで別途コンパイルしたプログラムを供給してください。
Angular アプリをビルドして配信し、ブラウザーのコンソールで次を実行します。再ビルドせずに、例の段落に下線が付くはずです:
document.querySelector('#master-check').classList.add('underline')このランタイムはブラウザーのエントリーから起動します。Angular SSR アプリには別途初期 CSS の方針が必要です。このガイドは、ブラウザーレンダリングの設定を対象とします。

