mcpField
R
responsive-patterns

responsive-patterns

github.com/yonatangrossデザイン・UI2991.6k 回インストール今日更新
リポジトリ

responsive-patterns について

React 開発者向けのレスポンシブデザインスキルで、コンテナクエリ、流動的なタイポグラフィ、モバイルファーストのレイアウトを扱います。CSS、React、PWA、アニメーション、タッチ操作のルールを必要に応じて参照できます。

主な機能

  1. 01コンテナクエリのパターン
  2. 02clamp() による流動的な文字組み
  3. 03本質的にレスポンシブなグリッド
  4. 04レスポンシブな React コンポーネントと画像
  5. 05モバイル、PWA、タッチ操作のガイド

活用シーン

  1. 01コンテナに応じたコンポーネント調整
  2. 02レスポンシブなカードやグリッドの構築
  3. 03ユーザー設定に配慮した文字サイズ調整
  4. 04モバイルや折りたたみ端末向けレイアウトの計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/yonatangross/orchestkit --skill responsive-patterns

インストール後、Claude Code で/responsive-patternsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

test-cases.json
references/
container-queries.md
fluid-typography.md
rules/
_sections.md
_template.md
animation-motion.md
animation-scroll.md
css-intrinsic-responsive.md
css-patterns.md
css-subgrid.md
pwa-offline.md
pwa-service-worker.md
react-patterns.md
responsive-foldables.md
touch-interaction.md

詳細

レスポンシブパターン

React アプリケーション向けの最新のレスポンシブデザインパターン。コンテナクエリ、流動的なタイポグラフィ、モバイルファースト戦略を活用します(2026年のベストプラクティス)。

概要

  • コンテナに適応する再利用可能なコンポーネントの構築
  • 滑らかに拡大縮小する流動的なタイポグラフィの実装
  • メディアクエリが過剰にならないレスポンシブレイアウトの作成
  • 複数のコンテキストで使えるデザインシステムコンポーネントの構築
  • 可変のコンテナサイズ(サイドバー、モーダル、グリッド)に合わせた最適化

コアコンセプト

コンテナクエリとメディアクエリの比較
機能メディアクエリコンテナクエリ
対応対象ビューポートのサイズコンテナのサイズ
コンポーネントの再利用コンテキストに依存真にポータブル
ブラウザーのサポート普遍的Baseline 2023+
用途ページレイアウトコンポーネントレイアウト

最新の CSS レイアウト

CSS Subgrid パターン(ネストしたグリッドの配置、タイトル/コンテンツ/アクションを揃えたカードレイアウト、2 次元のサブグリッド)については、Read("rules/css-subgrid.md") を読み込んでください。

本質的にレスポンシブなレイアウト(auto-fit/minmax グリッド、あらゆる要素を流動的にする clamp()、コンポーネントのロジックに使うコンテナクエリ、メディアクエリを使わないパターン)については、Read("rules/css-intrinsic-responsive.md") を読み込んでください。

折りたたみ式/マルチスクリーンデバイスのサポート(env(safe-area-inset-*)、ビューポートセグメントクエリ、デュアルスクリーンレイアウト、プログレッシブエンハンスメント)については、Read("rules/responsive-foldables.md") を読み込んでください。

主なパターン: CSS Subgrid による配置、本質的にレスポンシブなグリッド(auto-fit + minmax)、流動的な clamp() スケール、折りたたみ式デバイスのレイアウト、セーフエリアのインセット、ビューポートセグメントクエリ。

CSS パターン

コンテナクエリ、cqi/cqb 単位、clamp() を使った流動的なタイポグラフィ、モバイルファーストのブレークポイント、CSS Grid パターン、スクロールクエリの完全な CSS サンプルについては、Read("rules/css-patterns.md") を読み込んでください。

主なパターン: コンテナクエリの基本、コンテナクエリ単位(cqi/cqb)、clamp() を使った流動的なタイポグラフィ、コンテナベースの流動的なタイポグラフィ、モバイルファーストのブレークポイント、レスポンシブな CSS Grid パターン、コンテナスクロールクエリ(Chrome 126+)。

React パターン

ResponsiveCard コンポーネント、Tailwind のコンテナクエリ、useContainerQuery フック、レスポンシブ画像の完全な React サンプルについては、Read("rules/react-patterns.md") を読み込んでください。

主なパターン: コンテナクエリを使ったレスポンシブコンポーネント、Tailwind CSS のコンテナクエリ、useContainerQuery フック、レスポンシブ画像パターン。

アクセシビリティに関する考慮事項

/* IMPORTANT: Always include rem in fluid typography */
/* This ensures user font preferences are respected */

/* ❌ WRONG: Viewport-only ignores user preferences */
font-size: 5vw;

/* ✅ CORRECT: Include rem to respect user settings */
font-size: clamp(1rem, 0.5rem + 2vw, 2rem);

/* User zooming must still work */
@media (min-width: 768px) {
  /* Use em/rem, not px, for breakpoints in ideal world */
  /* (browsers still use px, but consider user zoom) */
}

アンチパターン(禁止)

/* ❌ NEVER: Use only viewport units for text */
.title {
  font-size: 5vw; /* Ignores user font preferences! */
}

/* ❌ NEVER: Use cqw/cqh (use cqi/cqb instead) */
.card {
  padding: 5cqw; /* cqw = container width, not logical */
}
/* ✅ CORRECT: Use logical units */
.card {
  padding: 5cqi; /* Container inline = logical direction */
}

/* ❌ NEVER: Container queries without container-type */
@container (min-width: 400px) {
  /* Won't work without container-type on parent! */
}

/* ❌ NEVER: Desktop-first media queries */
.element {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 768px) {
  .element {
    grid-template-columns: 1fr; /* Overriding = more CSS */
  }
}

/* ❌ NEVER: Fixed pixel breakpoints for text */
@media (min-width: 768px) {
  body { font-size: 18px; } /* Use rem! */
}

/* ❌ NEVER: Over-nesting container queries */
@container a {
  @container b {
    @container c {
      /* Too complex, reconsider architecture */
    }
  }
}

ブラウザーのサポート

機能ChromeSafariFirefoxEdge
コンテナサイズクエリ105+16+110+105+
コンテナスタイルクエリ111+❌❌111+
コンテナスクロール状態126+❌❌126+
cqi/cqb 単位105+16+110+105+
clamp()79+13.1+75+79+
Subgrid117+16+71+117+

ルール

各カテゴリには個別のルールファイルがあり、rules/ 内に保存され、必要に応じて読み込まれます。

カテゴリルール影響度主なパターン
モダン CSS レイアウトrules/css-subgrid.md高ネストされたグリッドの整列やカードレイアウトに CSS Subgrid を使用
モダン CSS レイアウトrules/css-intrinsic-responsive.md高内在的なレスポンシブレイアウト、auto-fit/minmax、clamp()、ブレークポイントなし
モダン CSS レイアウトrules/responsive-foldables.md中折りたたみ式デバイス、安全領域インセット、ビューポートセグメント
CSSrules/css-patterns.md高コンテナークエリ、cqi/cqb、流動的なタイポグラフィ、グリッド、スクロールクエリ
Reactrules/react-patterns.md高コンテナークエリコンポーネント、Tailwind、useContainerQuery、レスポンシブ画像
PWArules/pwa-service-worker.md高Workbox のキャッシュ戦略、VitePWA、更新管理
PWArules/pwa-offline.md高オフラインフック、バックグラウンド同期、インストールプロンプト
アニメーションrules/animation-motion.md高モーションプリセット、AnimatePresence、ビュー遷移
アニメーションrules/animation-scroll.md中CSS のスクロール駆動型アニメーション、視差効果、段階的な機能強化
タッチとモバイルrules/touch-interaction.md高タッチターゲット(最小 44px)、親指で操作しやすい範囲、ピンチズーム、安全領域、ジェスチャー

合計:6 カテゴリにわたる 10 個のルール

主な決定事項

決定事項選択肢 A選択肢 B推奨
クエリの種類メディアクエリコンテナークエリコンポーネントには コンテナー、レイアウトには メディア
コンテナーユニットcqw/cqhcqi/cqbcqi/cqb(論理的で、i18n に対応しやすい)
流動的な文字サイズの基準vw のみrem + vwrem + vw(アクセシビリティ)
モバイルファーストはいデスクトップファーストモバイルファースト(CSS が少なく、段階的に機能強化できる)
グリッドパターンauto-fitauto-fillカードには auto-fit、アイコンには auto-fill

関連スキル

  • design-system-starter - レスポンシブデザインシステムの構築
  • ork:performance - CLS、レスポンシブ画像、画像の最適化
  • ork:i18n-date-patterns - RTL/LTR のレスポンシブ対応に関する考慮事項

機能の詳細

container-queries

キーワード:@container, container-type, inline-size, container-name 解決する課題:コンポーネント単位のレスポンシブデザイン

fluid-typography

キーワード:clamp(), fluid, vw, rem, scale, typography 解決する課題:ブレークポイントなしで滑らかにフォントサイズを拡大・縮小すること

responsive-images

キーワード:srcset, sizes, picture, art direction 解決する課題:異なるビューポートに対応したレスポンシブ画像

mobile-first-strategy

キーワード:min-width, mobile, progressive, breakpoints 解決する課題:効率的なレスポンシブ CSS アーキテクチャ

grid-flexbox-patterns

キーワード:auto-fit, auto-fill, subgrid, minmax 解決する課題:レスポンシブなグリッドとフレックスボックスのレイアウト

container-units

キーワード:cqi, cqb, container width, container height 解決する課題:コンテナーのサイズを基準とした寸法指定

参考資料

Read("references/<file>") で必要に応じて読み込みます。

ファイル内容
container-queries.mdコンテナークエリのパターン
fluid-typography.mdアクセシブルな流動的文字サイズのスケール

コメント