Skip to content

Ant Design CSS スタイル上書きガイド

このページでは、Ant Design のスタイルを上書きするための詳細なガイドを提供します。コンポーネントスタイルのカスタマイズ、テーマの設定、CSS の優先順位の処理方法などが含まれます。

テーマのカスタマイズ

Ant Design では、テーマを設定することで全体のスタイルをカスタマイズできます。テーマ設定は主に Less 変数を通じて行われます。

設定方法

  1. プロジェクトに lessless-loader をインストールします:

    npm install less less-loader --save-dev
  2. プロジェクトのルートディレクトリに 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 の優先順位ルールは、複数のスタイルルールが同一の要素に適用された場合に、どのルールが有効になるかを決定します。優先順位の高い順は以下の通りです:

  1. インラインスタイル (Inline styles)
  2. ID セレクター (#id)
  3. クラスセレクター (.class)、擬似クラス (:hover)、属性セレクター ([type="text"])
  4. 要素セレクター (div, h1 など)、擬似要素 (::before, ::after)
  5. 全称セレクター (*)、結合子 (descendant, child, adjacent sibling, general sibling)

!important の使用

!important は、あるスタイルルールの優先順位を強制的に上げ、それを有効にするために使用できます。ただし、多用は推奨されず、最終手段として使用すべきです。

.ant-btn {
  background-color: red !important;
}

結び

テーマのカスタマイズとスタイルの上書きを通じて、開発者はプロジェクトの要件に合わせて Ant Design のスタイルを柔軟に調整し、独自のアプリケーションインターフェースを構築できます。詳細については、Ant Design 公式ドキュメントを参照してください。