0Pricing
CSS Academy · レッスン

CSSカスタムプロパティによるカードコンポーネント

CSSカスタムプロパティだけで柔軟なカードコンポーネントを構築し、テーマを簡単に変更できるようにします。

「CSSカスタムプロパティによるカードコンポーネント」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。

デザインの目標

カードコンポーネントは、コンテンツを格納する自己完結型のコンテナです。デザインの目標は、スペーシングトークンによる一貫したパディング、エイリアストークンによるテーマ対応の色、JavaScriptを使わないレスポンシブなサイズ設定、CSSカスタムプロパティによるバリエーション(elevated、outlined、flat)のサポートです。

カードの基本構造

設定可能な値にはCSSカスタムプロパティを使用し、単一の.cardクラスを使います。内部要素(header、body、footer)はカードのスコープから値を継承します。これにより、コードベース全体でカードのインスタンス間に生じるスタイルのばらつきを抑えられます。

<div class="card">
  <h3>Card Title</h3>
  <p>Card content styled via custom properties.</p>
</div>

バリエーションクラス

個別のルールセットを記述するのではなく、バリエーションクラスでカードレベルのカスタムプロパティを上書きします。バリエーションクラスでは変更された変数だけを再定義すればよく、変更されないプロパティは繰り返し記述しなくてもベースの値を自動的に継承します。

<div class="card card--elevated">
  <p>Elevated variant</p>
</div>
<div class="card card--outlined">
  <p>Outlined variant</p>
</div>

カードのテーマ設定

親のテーマクラスが--color-surfaceを変更すると、そのテーマ内にあるすべてのカードの背景が自動的に更新されます。カード固有のテーマ上書きコードは必要ありません。エイリアストークンシステムが透過的に処理します。

レスポンシブなカードのパディング

カスタムプロパティのオーバーライドと clamp() を使うと、パディングを流動的に設定できます。--card-padding: clamp(1rem, 4vw, 2rem) のように定義します。ビューポートが大きいほど余裕のあるパディングになり、小さいビューポートでは最小限のパディングになります。すべてを1つのトークン定義から制御できます。

カードのグリッドレイアウト

CSS Grid の auto-fill と minmax を使ったカードグリッドでは、レイアウトが自動的に整います。grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) のように指定すると、カードが利用可能なスペースを埋め、メディアクエリのブレークポイントなしで自動的に折り返されます。

画像のアスペクト比

画像コンテナに aspect-ratio: 16/9 を指定すると、カード画像のアスペクト比を統一できます。object-fit: cover によって画像がコンテナを埋めるため、元画像のサイズに関係なくカードの高さが揃います。

インタラクション状態

カードを少し浮き上がらせる hover と focus-within の状態を追加します。transform: translateY(-2px) と、より強い box-shadow を使います。transition: transform 200ms ease, box-shadow 200ms ease でアニメーションさせると、滑らかでコンポジターに適したインタラクションのフィードバックになります。

アクセシブルなカードリンク

ストレッチリンクを使ってカード全体をクリック可能にします。カードを相対配置にし、メインリンクを inset: 0 で絶対配置します。スクリーンリーダーはリンクテキストを読み上げ、オーバーレイがカード全体を視覚的に覆うため、マウスユーザーもカード全体を操作できます。

読み込み状態

CSS アニメーションを使ったスケルトンのシマー効果でコンテンツを置き換える .card--loading バリエーションを追加します。background: linear-gradient(90deg, var(--color-skeleton-from), var(--color-skeleton-to)) を background-size: 200% と animation: shimmer 1.5s infinite でアニメーションさせます。

ダークモードのカード

ダークモードでは、--color-surface トークンが明るい色から暗い色へ自動的に変わります。浮き上がったカードの奥行きを box-shadow に依存している場合、暗い背景ではその効果が見えにくくなるため、控えめなボーダーを追加するか、surface の色のコントラストを強めて、ダークモードでも浮き上がりを認識できるようにします。

理解度チェック

CSS カスタムプロパティを使うと、ルールセット全体を複製せずにカードのバリエーションを作成できるのはなぜですか?

まとめ

CSS カスタムプロパティを使ってカードコンポーネントを構築すると、柔軟でテーマに対応し、バリエーションも扱える UI の基本部品になります。ベース変数でデフォルト値を設定し、バリエーションクラスで必要な部分だけを上書きし、テーマクラスで全体を上書きします。レスポンシブなサイズ設定、アクセシブルなリンク、読み込み状態と組み合わせることで、このパターンはデザインシステム全体に無理なく拡張できます。

よくある質問

「CSSカスタムプロパティによるカードコンポーネント」レッスンは無料ですか?

はい。「CSSカスタムプロパティによるカードコンポーネント」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。

「CSSカスタムプロパティによるカードコンポーネント」で何を学びますか?

CSSカスタムプロパティだけで柔軟なカードコンポーネントを構築し、テーマを簡単に変更できるようにします。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

CSS Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「CSSカスタムプロパティによるカードコンポーネント」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCSS Academyレッスンでコードを書いて実行できますか?

はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. CSSカスタムプロパティによるカードコンポーネント
  2. モーダルとダイアログのスタイリング
  3. ドロップダウンとポップオーバーのパターン
  4. タブコンポーネント: :checkedハックとJSの比較
← CSS Academyに戻る