CSS

Tailwind CSS 実務テクニック集|デザインの限界を突破する「arbitrary value」完全ガイド

こんにちは、フロントエンドエンジニアのあおきです。
実務で役立つ Tailwind CSSのテクニック をシリーズ形式で紹介しています。
第3回の今回は、「デフォルト値に縛られない、自由自在な数値指定」 についてです。

任意値(Arbitrary values)の活用

「この余白、13pxにしたいけどTailwindのクラスにない」
「デザインカンプの指定が、Tailwindのデフォルト値(4の倍数など)にどうしても収まらない」
実務では、標準のユーティリティクラスだけでは対応できない「微調整」が必ず発生します。そんな時に、tailwind.config.js を汚さず、その場でスタイルを完結させるのが arbitrary value(任意値) です。

ブラケット [ ] でCSSの「自由度」を取り戻す

結論から言うと、[ ](ブラケット)の中に値を書くだけで、どんなCSSプロパティの値もその場で生成できます。
ビルドを回し直したり、わざわざ別ファイルにカスタムCSSを書く必要はありません。TailwindのJITエンジンが、実行時に必要なクラスを動的に生成してくれます。

実務で使える!arbitrary value の4つのパターン

① 任意の数値を直接指定(サイズ・位置)

デザインカンプを確認していると、Tailwindの標準クラス(4px刻みなど)ではどうしても対応できない数値が出てきます。

フォントサイズの微調整

Tailwindには text-xs(12px)、text-sm(14px)、text-base(16px) などが用意されていますが、「その間の15pxがほしい!」や「もっと小さい10pxにしたい」という時があります。
15pxにしたい場合: text-[15px]
10pxにしたい場合: text-[10px]
デザインカンプどおりの指定をそのまま反映できます。

ネガティブマージンの指定

要素を重ねたい時に使うマイナスの余白(ネガティブマージン)も、ブラケットの前に -(マイナス記号) をつけるだけで指定可能です。
コード-mt-[50px](上に50px食い込ませる)
解説mt-[50px] の先頭にハイフンをつけるだけなので、直感的に記述できます。もちろん左右 (-ml-, -mr-) や下 (-mb-) も同様です。

その他

w-[100px]
h-[calc(100vh-80px)]
top-[120px]
left-[12%]
z-[1]

デザインカンプの数値をそのまま再現したいときに便利です。

② 透明度を指定する

色は色一覧表にあるように、色の名前と明度の数値を組み合わせて指定しますが、さらに透明度を加えたい場合は、最後に /(スラッシュ) を加え、透明度の数値を追記します。
コード<div class="bg-black/[0.12]"></div>
解説:標準の bg-black/10(10%)などでは表現できない、絶妙な透け感(例:12%など)を作りたいなど、微妙なニュアンス調整でよく使います。

③ CSSカスタムプロパティ(変数)

CSS変数(CSSカスタムプロパティ)もそのまま利用できます。
text-[var(--color-primary)]
通常CSScolor: var(--color-primary);
テーマカラーやレイアウト制御と相性がいいです。

④ Tailwindにないスタイルの指定

Tailwindに定義されていないプロパティや値も自由に書けます。

レイアウト

grid-cols-[200px_1fr]
grid-rows-[auto_1fr_auto]
aspect-[4/3]

ポイント
レイアウトは「デザイン指定そのまま再現」が求められる場面が多い
→ Tailwindのプリセットでは足りないことが多い

transform / 位置調整

rotate-[17deg]
scale-[1.03]

ポイント
1px〜数pxの微調整は実務で頻出
→ デザインの“ズレ”を合わせるのに使う

見た目(装飾)

shadow-[0_4px_20px_rgba(0,0,0,0.08)]
rounded-[6px]
bg-[linear-gradient(90deg,#000,#fff)]

ポイント
Tailwindのshadowやroundedは段階的
→ 「ちょうどいい値」が無いときに使う

filter / エフェクト

filter-[blur(2px)]
backdrop-blur-[2px]

ポイント
エフェクト系はデザインごとの差が大きい
→ arbitrary value前提で使うケースが多い

タイポグラフィ

leading-[1.7]
text-[clamp(18px,_calc(0.74vw+15.33px),_26px)]

ポイント
フォントサイズはデザインツール依存
→ プリセットとズレやすいので調整用途で使う

その他

pointer-events-[none]
overflow-x-[auto]

ポイント
細かい制御系はプリセット外が多い
→ 必要なときだけピンポイントで使う

技術的な注意点:スペースは _(アンダースコア)で

ブラケット内では半角スペースが使えません。複数の値を指定したい場合は、スペースの代わりに_(アンダースコア)を使用します。
NG: grid-cols-[200px 1fr]
OK: grid-cols-[200px_1fr]

configいらず!Tailwind CSS 任意値([ ])で広がるデザイン表現

『これ、Tailwindじゃ無理かな?』と思うような複雑な指定も、任意値を使えばHTMLだけで完結します。透明度の微調整から、calcを使った計算、CSS変数の活用まで、実際の挙動をコードと一緒に確認してみましょう!

See the Pen Tailwind CSS 実務テクニック集|arbitrary value 活用デモ by あおき (@himlinfq-the-encoder) on CodePen.

補足

arbitrary valueは非常に便利ですが、使いすぎると設計が崩れます。

  • 基本はTailwindのスケールを使う
  • 足りない部分だけ任意値を使う

このバランスが重要です。

あおき

あおき

主にフロントエンドを担当するエンジニアです。現在はデザインの勉強を始め、いろいろなパーツ制作に取り組んでいます。最近はFigmaの最新アップデートやAI連携機能に注目しています。

関連記事