site_logo
お問い合わせはこちら

見た目のカスタマイズ

Sparrowでは見た目のカスタマイズを行うことができます。

CSSのカスタマイズ方法

独自のCSSを適用する方法について解説します。
SparrowのCSSを上書きするためには、まずはDjangoプロジェクト内に上書き用のアプリを作ります。アプリ名は任意の名前で大丈夫です。今回は sparrowoverrides というアプリ名と仮定します。

sparrowoverridesアプリの作成
$ python src/manage.py startapp sparrowoverrides

アプリを作成したら、 INSTALLED_APPS への登録をします。

アプリ内に wagtail_hooks.py という名前のファイルを作り、以下のようなコードを書きます。

sparrowoverrides/wagtail_hooks.py
from django.utils.html import format_html
from django.templatetags.static import static
from wagtail import hooks

@hooks.register("insert_sparrowcommon_base_css")
def sparrowcommon_base_css():
    return format_html('<link rel="stylesheet" href="{}">', static('sparrowoverrides/style.css'))

これにより、 sparrowoverrides/static/sparrowoverrides/style.css のCSSがサイトに適用されるようになります。CSSのファイル名は任意の名前を設定できます。

例えば、記事一覧ページの記事リンクには border-radius が設定されていますが、これを無効化したい場合は以下のようなCSSを書きます。

style.css
.c-article-cards__item {
    border-radius: 0;
}

これにより、SparrowのデフォルトのCSSが上書きされます。

配色のカスタマイズ

Sparrowではデフォルトのプライマリカラーはグリーン系の色となっていますがこれを変更することが可能です。

読み込んだCSSファイル内の :root で色を定義します。以下がSparrowのデフォルトの :root 設定ですのでこれを上書きすることで配色を変更することが可能です。

現在、変数で管理できる色にはサイトのメイン色となるプライマリーカラーと、「重要タイプ」のボックスなどに適用されるレッド系カラーがあります。

Sparrowデフォルトのroot設定
:root {
  // Color Primary
  --color-primary-hue: 181;
  --color-primary-saturation: 100%;
  --color-primary-lightness: 25%;

  --color-primary-hsl: hsl(var(--color-primary-hue), var(--color-primary-saturation), var(--color-primary-lightness));
  --color-primary-desaturate-hsl: hsl(var(--color-primary-hue), calc(var(--color-primary-saturation) - 40%), var(--color-primary-lightness));
  --color-primary-transparent-hsla: hsla(var(--color-primary-hue), var(--color-primary-saturation), var(--color-primary-lightness), 0.2);

  // Color Red
  --color-red-hue: 341;
  --color-red-saturation: 94%;
  --color-red-lightness: 66%;

  --color-red-hsl: hsl(var(--color-red-hue), var(--color-red-saturation), var(--color-red-lightness));
  --color-red-desaturate-hsl: hsl(var(--color-red-hue), calc(var(--color-red-saturation) - 40%), var(--color-red-lightness));
  --color-red-transparent-hsla: hsla(var(--color-red-hue), var(--color-red-saturation), var(--color-red-lightness), 0.2);
}

色はHSL記法で指定します。HSL記法は色を表現するための一般的な記法です。hue(色相)、saturation(彩度), lightness(輝度)の値を指定することで色を表現します。

例えば、プライマリーカラーを青系色(#04384D, rgb(4, 56, 77)) に変更したいとします。この色はHSLで表すと(H: 197, S: 90, L: 16) になるので以下のようにコードを書きます。(カラーコードやRGBからHSLへの変換は無料のWEBツールで簡単に行えます。)

style.css
:root {
  --color-primary-hue: 197;
  --color-primary-saturation: 90%;
  --color-primary-lightness: 16%;
}

これでプライマリーカラーが変更され、以下のように表示されます。

primary-color-override-1

primary-color-override-2

おすすめ記事

thumbnail
2023/8/2

ブロックのカスタマイズ方法

thumbnail
2023/8/1

ページのカスタマイズ方法