ブログ BLOG

LiferayDXPでCSSを適用する方法3種類【LiferayDXP7.4】

2025.07.16

ブログ

はじめに

Liferayの初期状態はシンプルなデザインになっていますが、オリジナルデザインのカスタマイズを行うことができるので、今回はその方法をご紹介します。

Liefray DXP 初期画面

Liferayでサイトのデザインをカスタマイズする方法は何通りもあります。

GUIで色の設定をしていくこともできますが、CSSの知識がある方であれば、より柔軟にデザインのカスタマイズを行うことができます。今回はCSSのカスタマイズ方法を3種類ご紹介します。

CSS設定方法の比較

まずはCSS設定方法の比較表をご覧ください。
詳しい説明は次項で説明していきます。

設定方法影響範囲スタイル優先度*バージョン管理想定ユースケース
ページフラグメントフラグメント内のみボタン・カードなどの UI パーツ
カスタム CSSサイト全体全ページ共通レイアウト/ページ単位の微調整
Client Extension環境全体(サーバ単位) またはテーマ単位全ページ共通レイアウト

*優先度は、CSSはフラグメント > カスタムCSS > Client Extension になります。

ページフラグメント

ページフラグメントとは、ボタンやカードなどの UI パーツを作成できる機能です。UIパーツ単位でスタイルを設定したい場合は、ページフラグメント内のCSS入力欄に入れることで設定できます。

<設定手順>

LiferayDXP管理画面>左サイドバー>デザイン>ページフラグメント>新規作成

Liefray DXP ページフラグメント 設定画面

カスタムCSS

LiferayDXPの管理画面から設定を行うことで反映されます。

サイト全体に適用させる方法と、ページ単位に適用させる方法があります。(※サイト全体とページ単位の併用は不可)

デプロイ不要ですぐにサイト表示確認ができる為、開発中はこの方法がおすすめです。

設定手順 サイト全体に適用する場合

LiferayDXP管理画面>左サイドバー>サイトビルダー>サイトページ>右上の三点リーダー>設定>カスタムCSS

設定手順 個別ページに適用する場合

LiferayDXP管理画面>左サイドバー>ページツリーから対象のページを選択>右上の歯車アイコン>デザインタブ>カスタムCSS

Liefray DXP カスタムCSS 設定画面

「カスタムCSS は継承されたテーマを使用する場合は無効です。」と表示され、カスタムCSSの入力欄が選択できない場合

ページ全体に対してカスタムCSSが適用されている場合、各ページから設定画面を開くとこのようなアラートが表示され設定できないようになっていることがあります。

ページ上部のテーマで、「継承されたテーマを使用します。」が選択されている場合は、ページ毎のCSSは設定できず、継承する形になっている為です。「このページ用のカスタムテーマを定義します」を選択すると、ページ固有のカスタムCSSが設定が可能です。

「カスタムCSS は継承されたテーマを使用する場合は無効です。」と表示され、カスタムCSSの入力欄が選択できない場合

Client Extension

設定手順

1.Javaをインストール

Javaバージョンをインストールします。サポートされているJDK、データベース、環境の詳細については、以下の互換性マトリックスを参照してください。(本記事作成時はjava version “11.0.24”)
https://www.surekhatech.com/blog/enhance-liferay-portal-design-using-theme-client-extensions

2.サンプル ワークスペースをダウンロード

以下のコマンドを実行して、サンプルワークスペースをダウンロードします。

curl -o com.liferay.sample.workspace-latest.zip https://repository.liferay.com/nexus/service/local/artifact/maven/content?r=liferay-public-releases&g=com.liferay.workspace&a=com.liferay.sample.workspace&v=LATEST&p=zip

ダウ

ンロードが完了したら、「com.liferay.sample.workspace-latest.zip」を解凍します。

3.ワークスペース プラグインのバージョンを設定

ワークスペースのルートにある settings.gradle ファイルを開き、classpathを以下のように設定します。

buildscript {
dependencies {
classpath group: "com.liferay", name: "com.liferay.gradle.plugins.workspace", version: "10.1.1"
}
…省略…

4.Theme CSS Client Extension の中身を確認

サンプルワークスペースの「client-extensions/liferay-sample-theme-css-1/」ディレクトリに移動します。client-extension.yaml は以下のように定義されています。※「liferay-sample-theme-css-1」は任意の名前に変更してください。

assemble: - from: build/buildTheme/img into: static/img - from: build/buildTheme/images into: static/images liferay-sample-theme-css-1: clayRTLURL: css/clay_rtl.css clayURL: css/clay.css mainRTLURL: css/main_rtl.css mainURL: css/main.css name: Liferay Sample Theme CSS 1 type: themeCSS
項目説明
name管理画面に表示される拡張の名称
type必ず themeCSS
clayURL/mainURL読み込む CSS ファイルのパス
assembleビルド後に画像を静的リソースとして ZIP に含める設定

package.json の内容例:

{
    "name": "@liferay/liferay-sample-theme-css-1",
    "version": "1.0.0",
    "main": "package.json",
    "liferayDesignPack": {
    "baseTheme": "styled"
  },
  "dependencies": {
    "sassy-inputs": "1.0.6"
  }
}
項目説明
dependenciesCSS 内で使えるライブラリ
liferayDesignPack.baseThemestyleまたはunstyledを指定

5.SCSSをカスタマイズ

src/css/_custom.scss を開き、CSSを記述します。(以下は例です)

@import 'sassy-inputs/sass/main';

body {
  background-color: #eee;
}

これで、Client Extensionのスタイルが完成です。

6.ビルド・デプロイ

ワークスペースのルートで以下のコマンドを実行します。

./gradlew clean deploy

拡張モジュール(ZIP または JAR)が生成されます。

例:\client-extensions\custom-css-blue\dist\custom-css-blue.zip

7.ご自身のLiferay環境に作成したClient Extensionを取り込む(デプロイを行わない場合)

custom-css-blue.zipを、ご自身のLiferay環境のdeployディレクトリに入れると、Liferayのホットデプロイ機構により自動でファイルを取り込みます。(しばらくするとzipファイルは無くなります)

次に、LiferayDXP管理画面>左サイドバー>サイトビルダー>サイトページ>右上の三点リーダー>設定と進みます。

テーマのCSSクライアント拡張項目内、「テーマのCSS」の+ボタンを押します。

Client Extension設定画面

先ほどdeployフォルダに置いたClient Extensionファイルが表示されるので、選択して「保存」ボタンを押します。

複数のClient Extensionを入れて、切り替えを行うことも可能です。

Liefray DXP Client Extension 選択画面

最近だとテーマを使わないことが増えてきました。テーマをカスタマイズした場合、Liferayのバージョンアップをすると表示崩れが起きたり、テーマを使わなくとも十分なカスタマイズができる為です。Client Extentionはテーマと分離している為、テーマを作成することなく、簡単に導入ができます。また、テーマを作成するとメンテナンスコストが掛かる為、テーマを作成せずにClient Extentionの導入のみでサイトデザインをカスタマイズすることで、CSSのみのメンテナンスに抑えることができます。

デザインカスタマイズ例

以下は実際にカスタムCSSや、Client Extentionを使用して作成したサイトデザインの一例です。

Liferay DXP デザインカスタマイズ例

高性能・カスタイマイズ性の高いLiferayDXPを使用して、社内ポータルサイトやBtoBサイトなどの制作をお考えの方は、OxygenDesignにお任せください。

デザインのカスタマイズ~機能実装まで一貫して制作を行っております。

まずは試してみたいという企業様向けに、ご要望に合わせたデモサイト作成も承っておりますので、ぜひお問い合わせください。