Ant Design CSS スタイル上書きガイド
このページでは、Ant Design のスタイルを上書きするための詳細なガイドを提供します。コンポーネントスタイルのカスタマイズ、テーマの設定、CSS の優先順位の処理方法などが含まれます。
テーマのカスタマイズ
Ant Design では、テーマを設定することで全体のスタイルをカスタマイズできます。テーマ設定は主に Less 変数を通じて行われます。
設定方法
-
プロジェクトに
lessとless-loaderをインストールします:npm install less less-loader --save-dev -
プロジェクトのルートディレクトリに
vue.config.js(Vue CLI プロジェクトの場合)を作成するか、config-overrides.js(CRA プロジェクトの場合)を編集し、以下のコードを追加します:const { defineConfig } = require('vue-cli-plugin-antd-config'); module.exports = defineConfig({ css: { loaderOptions: { less: { lessOptions: { modifyVars: { 'primary-color': '#1DA57A', 'link-color': '#1DA57A', 'border-radius-base': '2px', }, javascriptEnabled: true, }, }, }, }, });
Less 変数
Ant Design は、テーマカスタマイズ用の一連の Less 変数を提供しています。よく使われる変数には以下のようなものがあります:
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
@primary-color |
メインカラー | #1890ff |
@link-color |
リンクカラー | @primary-color |
@success-color |
成功カラー | #52c41a |
@warning-color |
警告カラー | #faad14 |
@error-color |
エラーカラー | #f5222d |
@font-size-base |
基本フォントサイズ | 14px |
@heading-color |
見出しカラー | rgba(0, 0, 0, 0.85) |
@text-color |
メインテキストカラー | rgba(0, 0, 0, 0.65) |
@text-color-secondary |
サブテキストカラー | rgba(0, 0, 0, 0.45) |
@disabled-color |
無効状態カラー | rgba(0, 0, 0, 0.25) |
@border-radius-base |
コンポーネント/ポップオーバーの角丸 | 4px |
@border-color-base |
枠線カラー | #d9d9d9 |
@box-shadow-base |
コンポーネントの影 | 0 2px 8px rgba(0, 0, 0, 0.1) |
スタイルの上書き
特定の場合において、Ant Design のスタイルをより細かく上書きする必要があるかもしれません。その場合は、CSS セレクターの詳細度(特異性)を上げたり、!important を使用したりすることで実現できます。
CSS の優先順位
CSS の優先順位ルールは、複数のスタイルルールが同一の要素に適用された場合に、どのルールが有効になるかを決定します。優先順位の高い順は以下の通りです:
- インラインスタイル (Inline styles)
- ID セレクター (
#id) - クラスセレクター (
.class)、擬似クラス (:hover)、属性セレクター ([type="text"]) - 要素セレクター (
div,h1など)、擬似要素 (::before,::after) - 全称セレクター (
*)、結合子 (descendant,child,adjacent sibling,general sibling)
!important の使用
!important は、あるスタイルルールの優先順位を強制的に上げ、それを有効にするために使用できます。ただし、多用は推奨されず、最終手段として使用すべきです。
.ant-btn {
background-color: red !important;
}結び
テーマのカスタマイズとスタイルの上書きを通じて、開発者はプロジェクトの要件に合わせて Ant Design のスタイルを柔軟に調整し、独自のアプリケーションインターフェースを構築できます。詳細については、Ant Design 公式ドキュメントを参照してください。