CSS ユーティリティ
Kaze は、素早い UI 開発のための包括的な CSS ユーティリティクラスを提供します。 これらの低レベルなユーティリティクラスを使えば、カスタム CSS を書かずに自由なデザインを構築できます。 ユーティリティは自由に組み合わせることができ、Kaze コンポーネントと併用できるように設計されています。
ディスプレイ
要素の表示方法を制御します。これらのクラスは CSS の display プロパティに直接対応しています。
| クラス | 説明 |
|---|---|
| .flex | display: flex を設定 |
| .inline-flex | display: inline-flex を設定 |
| .grid | display: grid を設定 |
| .block | display: block を設定 |
| .inline-block | display: inline-block を設定 |
| .hidden | display: none を設定 |
フレックスボックス
フレックスコンテナ内の方向、折り返し、配置、主軸の配置、ギャップを制御するための フレックスボックスユーティリティです。
方向
| クラス | 説明 |
|---|---|
| .flex-row | flex-direction: row を設定(デフォルト) |
| .flex-col | flex-direction: column を設定 |
.flex .flex-row
.flex .flex-col
折り返し
| クラス | 説明 |
|---|---|
| .flex-wrap | flex-wrap: wrap を設定 |
| .flex-nowrap | flex-wrap: nowrap を設定 |
配置
| クラス | 説明 |
|---|---|
| .items-start | align-items: flex-start を設定 |
| .items-center | align-items: center を設定 |
| .items-end | align-items: flex-end を設定 |
| .items-stretch | align-items: stretch を設定 |
コンテナに .flex .items-center を適用
主軸の配置
| クラス | 説明 |
|---|---|
| .justify-start | justify-content: flex-start を設定 |
| .justify-center | justify-content: center を設定 |
| .justify-end | justify-content: flex-end を設定 |
| .justify-between | justify-content: space-between を設定 |
| .justify-around | justify-content: space-around を設定 |
.flex .justify-between
ギャップ
ギャップユーティリティは、フレックスまたはグリッドの子要素間のスペースを制御します。 値は Kaze のスペーシングスケールに従います。
| クラス | 説明 |
|---|---|
| .gap-1 | gap: 4px を設定(0.25rem) |
| .gap-2 | gap: 8px を設定(0.5rem) |
| .gap-3 | gap: 12px を設定(0.75rem) |
| .gap-4 | gap: 16px を設定(1rem) |
| .gap-5 | gap: 20px を設定(1.25rem) |
| .gap-6 | gap: 24px を設定(1.5rem) |
| .gap-7 | gap: 28px を設定(1.75rem) |
| .gap-8 | gap: 32px を設定(2rem) |
.flex .gap-4(16px のギャップ)
グリッド
カラムユーティリティを使って素早くグリッドレイアウトを作成できます。 ギャップユーティリティと組み合わせることで、グリッドを細かく制御できます。
カラム数
| クラス | 説明 |
|---|---|
| .grid-cols-1 | grid-template-columns: repeat(1, 1fr) を設定 |
| .grid-cols-2 | grid-template-columns: repeat(2, 1fr) を設定 |
| .grid-cols-3 | grid-template-columns: repeat(3, 1fr) を設定 |
| .grid-cols-4 | grid-template-columns: repeat(4, 1fr) を設定 |
.grid .grid-cols-3 .gap-4
スペーシング
一貫したスペーシングスケールでパディングとマージンを制御します。 値は 0 から 8 まであり、1 ステップあたり 4px(0.25rem)です。
パディング
| クラス | 説明 |
|---|---|
| .p-0 | 全方向に padding: 0px を設定 |
| .p-1 | 全方向に padding: 4px を設定 |
| .p-2 | 全方向に padding: 8px を設定 |
| .p-3 | 全方向に padding: 12px を設定 |
| .p-4 | 全方向に padding: 16px を設定 |
| .p-5 | 全方向に padding: 20px を設定 |
| .p-6 | 全方向に padding: 24px を設定 |
| .p-7 | 全方向に padding: 28px を設定 |
| .p-8 | 全方向に padding: 32px を設定 |
| .px-{n} | 水平方向のパディング(padding-left と padding-right)を設定。0 から 8 の値に対応。 |
| .py-{n} | 垂直方向のパディング(padding-top と padding-bottom)を設定。0 から 8 の値に対応。 |
マージン
| クラス | 説明 |
|---|---|
| .m-0 | 全方向に margin: 0px を設定 |
| .m-1 | 全方向に margin: 4px を設定 |
| .m-2 | 全方向に margin: 8px を設定 |
| .m-3 | 全方向に margin: 12px を設定 |
| .m-4 | 全方向に margin: 16px を設定 |
| .m-5 | 全方向に margin: 20px を設定 |
| .m-6 | 全方向に margin: 24px を設定 |
| .m-7 | 全方向に margin: 28px を設定 |
| .m-8 | 全方向に margin: 32px を設定 |
| .mx-auto | margin-left: auto; margin-right: auto を設定し、水平中央揃えにする |
.mx-auto(水平中央揃え)
タイポグラフィ
フォントサイズ、ウェイト、テキスト揃え、カラー、テキストの省略表示を タイポグラフィユーティリティクラスで制御します。
フォントサイズ
| クラス | 説明 |
|---|---|
| .text-xs | font-size: 0.75rem(12px)を設定 |
| .text-sm | font-size: 0.875rem(14px)を設定 |
| .text-base | font-size: 1rem(16px)を設定 |
| .text-lg | font-size: 1.125rem(18px)を設定 |
| .text-xl | font-size: 1.25rem(20px)を設定 |
| .text-2xl | font-size: 1.5rem(24px)を設定 |
| .text-3xl | font-size: 1.875rem(30px)を設定 |
| .text-4xl | font-size: 2.25rem(36px)を設定 |
フォントウェイト
| クラス | 説明 |
|---|---|
| .font-normal | font-weight: 400 を設定 |
| .font-medium | font-weight: 500 を設定 |
| .font-semibold | font-weight: 600 を設定 |
| .font-bold | font-weight: 700 を設定 |
配置
| クラス | 説明 |
|---|---|
| .text-left | text-align: left を設定 |
| .text-center | text-align: center を設定 |
| .text-right | text-align: right を設定 |
テキストカラー
| クラス | 説明 |
|---|---|
| .text-primary | Kaze テーマのプライマリテキストカラーを設定 |
| .text-secondary | セカンダリ(控えめ)のテキストカラーを設定 |
| .text-muted | 低強調のミュートテキストカラーを設定 |
| .text-positive | ポジティブ/成功のテキストカラー(緑)を設定 |
| .text-negative | ネガティブ/エラーのテキストカラー(赤)を設定 |
| .text-warning | 警告のテキストカラー(アンバー/イエロー)を設定 |
| .text-info | 情報のテキストカラー(ブルー)を設定 |
省略表示
| クラス | 説明 |
|---|---|
| .truncate | はみ出したテキストを省略記号で省略します。 overflow: hidden; text-overflow: ellipsis; white-space: nowrap を設定。 |
max-width を設定したコンテナに .truncate を適用
ボーダー
角丸とボーダーの配置を制御して、要素の形状や視覚的な区切りを設定します。
角丸
| クラス | 説明 |
|---|---|
| .rounded-sm | border-radius: 2px を設定 |
| .rounded-md | border-radius: 6px を設定 |
| .rounded-lg | border-radius: 8px を設定 |
| .rounded-xl | border-radius: 12px を設定 |
| .rounded-full | border-radius: 9999px を設定(ピル型) |
ボーダー線
| クラス | 説明 |
|---|---|
| .border | テーマのボーダーカラーで全辺に 1px のソリッドボーダーを追加 |
| .border-t | 上辺のみに 1px のソリッドボーダーを追加 |
| .border-b | 下辺のみに 1px のソリッドボーダーを追加 |
シャドウ
box-shadow ユーティリティで要素に奥行きと高さを与えます。 シャドウは極小から特大までスケールします。
| クラス | 説明 |
|---|---|
| .shadow-xs | 極小のシャドウでさりげない浮き上がりを表現 |
| .shadow-sm | 小さいシャドウで軽い浮き上がりを表現 |
| .shadow-md | 中程度のシャドウで標準的な浮き上がりを表現 |
| .shadow-lg | 大きいシャドウで目立つ浮き上がりを表現 |
| .shadow-xl | 特大のシャドウで最大の浮き上がりを表現 |
幅
割合、キーワード、最大幅のユーティリティクラスで要素の幅を設定します。
幅
| クラス | 説明 |
|---|---|
| .w-full | width: 100% を設定 |
| .w-auto | width: auto を設定 |
| .w-1/2 | width: 50% を設定 |
| .w-1/3 | width: 33.333% を設定 |
| .w-2/3 | width: 66.667% を設定 |
| .w-1/4 | width: 25% を設定 |
| .w-3/4 | width: 75% を設定 |
最大幅
| クラス | 説明 |
|---|---|
| .max-w-sm | max-width: 384px を設定 |
| .max-w-md | max-width: 448px を設定 |
| .max-w-lg | max-width: 512px を設定 |
| .max-w-xl | max-width: 576px を設定 |
アニメーション
要素にあらかじめ用意された CSS アニメーションを追加します。 すべてのアニメーションユーティリティはユーザーの prefers-reduced-motion 設定を尊重し、モーション軽減が要求された場合は自動的に無効になります。
| クラス | 説明 |
|---|---|
| .animate-fade-in | 透明から不透明にフェードインさせる |
| .animate-fade-out | 不透明から透明にフェードアウトさせる |
| .animate-slide-up | 下から上にスライドして表示する |
| .animate-slide-down | 上から下にスライドして表示する |
| .animate-scale-in | 小さいサイズから拡大して表示する |
| .animate-scale-out | 現在のサイズから縮小する |
| .animate-spin | 360 度の連続回転アニメーション(ローディングインジケーターに最適) |
| .animate-pulse | 不透明度が連続的に変化するパルスアニメーション |
アクセシビリティ
/* Kaze のアニメーションは prefers-reduced-motion を自動で尊重します */
@media (prefers-reduced-motion: reduce) {
.animate-fade-in,
.animate-fade-out,
.animate-slide-up,
.animate-slide-down,
.animate-scale-in,
.animate-scale-out,
.animate-spin,
.animate-pulse {
animation: none;
transition: none;
}
}使用例
<div class="animate-fade-in"> このコンテンツはマウント時にフェードインします。 </div> <button class="animate-pulse"> 読み込み中... </button> <svg class="animate-spin" ...> <!-- スピナーアイコン --> </svg>
レスポンシブ
Kaze はモバイルファーストのレスポンシブプレフィックスシステムを採用しています。 任意のユーティリティクラスにブレークポイントプレフィックスを付けると、 そのブレークポイント以上の画面幅でのみ適用されます。 プレフィックスなしのスタイルはすべての画面サイズに適用されます。
ブレークポイント
| プレフィックス | 最小幅 | 説明 |
|---|---|---|
| sm: | 640px | 小画面以上(横向きスマートフォン) |
| md: | 768px | 中画面以上(タブレット) |
| lg: | 1024px | 大画面以上(デスクトップ) |
| xl: | 1280px | 特大画面以上(ワイドデスクトップ) |
使い方
任意のユーティリティクラスの前にブレークポイント名とコロンを付けます。 そのユーティリティは、指定したブレークポイントの最小幅以上でのみ有効になります。
<!-- モバイルでは縦積み、中画面で 3 カラム、大画面で非表示 --> <div class="flex flex-col md:grid md:grid-cols-3 lg:hidden"> ... </div> <!-- モバイルで全幅、小画面で半分、中画面で 3 分の 1 --> <div class="w-full sm:w-1/2 md:w-1/3"> ... </div> <!-- モバイルで縦方向、小画面で横方向のレイアウト --> <nav class="flex flex-col sm:flex-row gap-2 sm:gap-4"> ... </nav>
よく使うパターン
| クラス | 説明 |
|---|---|
| .md:grid-cols-3 | 中画面以上で 3 カラムのグリッドレイアウトを適用 |
| .lg:hidden | 大画面以上で要素を非表示にする |
| .sm:flex-col | 小画面以上でフレックス方向を縦に切り替え |
| .xl:gap-8 | 特大画面でより大きなギャップを適用 |
| .md:text-lg | 中画面以上でフォントサイズを拡大 |
| .sm:px-4 | 小画面以上で水平パディングを追加 |
レスポンシブカードグリッドの例
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4"> <div class="p-4 rounded-lg shadow-sm">Card 1</div> <div class="p-4 rounded-lg shadow-sm">Card 2</div> <div class="p-4 rounded-lg shadow-sm">Card 3</div> <div class="p-4 rounded-lg shadow-sm">Card 4</div> </div>