こんにちは。エキサイトでデザイナーをしている齋藤です。
今回は、Tailwind CSSでスペーシングのベースサイズをカスタマイズする方法をご紹介します。
なお、本稿ではv4.1
(2025年4月14日時点の最新版)のTailwind CSSを前提とします。
実現したいこと
冒頭、実現したいことを整理します。
Tailwind CSSでは、スペーシングのベースサイズは0.25rem
(4px
相当)とデフォルトで設定されています。
例えば、padding
はp-<number>
の形式のユーティリティクラスでスタイリングします。
以下のように、p-4
と記述した場合、0.25*4
でpadding: 1rem;
(16px
相当)が出力値となります。
<!-- 0.25*4で padding: 1rem;になる --> <div class="p-4"></div>
プロジェクトによっては、この0.25rem
というベースサイズをカスタマイズしたいシーンがあるかもしれません。
今回実現したいのは、スペーシングのベースサイズを0.25rem
から1px
に変更することです。
スペーシングのベースサイズをカスタマイズする方法
スペーシングのベースサイズをカスタマイズしたい場合、テーマ変数の値を変更することで実現できます。
ベースサイズ用のテーマ変数は--spacing
です。
@import "tailwindcss";
が宣言されたTailwind CSSの設定ファイル内の@theme
レイヤーに次のように記述します。
@import "tailwindcss"; @theme { --spacing: 1px; }
これにより、p-4
と記述した場合、1*4
でpadding: 4px;
が出力値となります。
<!-- 1*4で padding: 4px;になる --> <div class="p-4"></div>
仕組み
簡単に仕組みをご説明します。
padding
用のユーティリティクラス、p-<number>
の実態は以下のようになっています。
/* `p-<number>` */ padding: calc(var(--spacing) * <number>);
calc()
を用いて、CSS変数の--spacing
に数字を掛け算しています。
まとめ
今回は、Tailwind CSSでスペーシングのベースサイズをカスタマイズする方法をご紹介しました。
既にデザインシステムが設計されたプロジェクトの場合、Tailwind CSSのデフォルト設定と噛み合わないこともあると思いますが、テーマ変数によって柔軟にカスタマイズができます。
また、v4
からはCSS-first configuration
により、設定方法がJSからCSSに記述する方式になったため、デザイナーにも馴染みやすくなったと思います。
Tailwind CSSを使用される方の一助となれば幸いです。ご精読ありがとうございました。