メインコンテンツへスキップ

Hugo・BlowfishでカスタムCSS適用

·
目次

はじめに
#

Hugo + BlowfishテーマでのカスタムCSS適用は、独自のデザインカスタマイズを可能にする重要な機能です。テーマファイルを直接編集することなく、安全にスタイルをオーバーライドできるため、テーマ更新の際も変更が維持されます。

以下に、Hugo・BlowfishでカスタムCSSを適用する手順と実践的な活用方法を説明します。

基本的なファイル構成
#

カスタムCSS適用に必要なファイル構成:

プロジェクトルート/
├── assets/
│   └── css/
│       └── custom.css          # カスタムCSSファイル
├── config/
│   └── _default/
│       └── params.toml         # 設定ファイル

重要: assets/css/ ディレクトリに配置することで、Hugoのアセット処理機能が利用できます。

インストール・セットアップ
#

1. ディレクトリとファイルの作成
#

# assetsディレクトリ内にcssフォルダを作成
mkdir -p assets/css

# カスタムCSSファイルを作成
touch assets/css/custom.css

2. params.tomlでの設定
#

config/_default/params.toml に以下を追加:

# カスタムスタイル設定
customCSS = ["css/custom.css"]

複数ファイルの場合:

customCSS = ["css/custom.css", "css/additional.css"]

基本的な使い方
#

カスタムCSSの記述
#

assets/css/custom.css にスタイルを記述します:

目的実装例解説
カラーパレット設定:root { --primary-color: #4f46e5; }CSS変数でテーマカラーを統一
既存要素の調整.card { border-radius: 12px; }Blowfishのクラスをオーバーライド
アニメーション追加.card:hover { transform: translateY(-2px); }ホバーエフェクトの実装

実用的なカスタマイズ例
#

/* カスタムカラーパレット */
:root {
  --primary-gradient-start: #4f46e5;
  --primary-gradient-end: #06b6d4;
  --accent-color: #10b981;
}

/* カード要素の改善 */
.min-h-full.border {
  border: none !important;
  box-shadow: 0 10px 25px -3px rgba(0, 0, 0, 0.1);
  border-radius: 12px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.min-h-full.border:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.15);
}

サイトの再生成
#

# 開発サーバー再起動
hugo server --port 1313

# または本番ビルド
hugo

実践的な使い方
#

1. レスポンシブデザイン対応
#

/* モバイル対応 */
@media (max-width: 768px) {
  .grid.gap-4.sm\:grid-cols-2.md\:grid-cols-3 {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

2. アニメーション効果
#

/* ホバーエフェクト */
.thumbnail_card {
  transition: transform 0.3s ease;
}

.min-h-full.border:hover .thumbnail_card {
  transform: scale(1.05);
}

3. ダークモード対応
#

/* ダークモード対応 */
@media (prefers-color-scheme: dark) {
  .min-h-full.border {
    background: linear-gradient(145deg, #1f2937 0%, #111827 100%);
  }
}

問題1: CSSが適用されない
#

原因と解決策

原因確認方法解決策
ファイルパス間違いls -la assets/css/custom.cssassets/css/ ディレクトリに正しく配置
params.toml記述ミス配列形式で記述されているかcustomCSS = ["css/custom.css"]
キャッシュ問題ブラウザで強制リロードrm -rf public && hugo

問題2: 既存スタイルとの競合
#

/* 詳細度を上げる */
body .main-content .card-element {
  color: #333 !important;
}

問題3: レスポンシブが効かない
#

/* メディアクエリの順序を確認 */
@media (max-width: 768px) {
  /* モバイル用スタイル */
}
@media (min-width: 769px) {
  /* デスクトップ用スタイル */
}

参考リンク
#