mcpField
G
generic-fullstack-ux-designer

generic-fullstack-ux-designer

github.com/travisjneumanデザイン・UI106149 回インストール1 日前に更新
リポジトリ

generic-fullstack-ux-designer について

Next.js と NestJS で構築するフルスタックアプリ向けの UX スキルです。レンダリング、API、認証、リアルタイム動作が画面状態やユーザーフローに与える影響を扱います。

主な機能

  1. 01サーバーサイドレンダリングとハイドレーション状態への対応
  2. 02API の読み込みとエラー回復の設計
  3. 03適切な場面での楽観的 UI の適用
  4. 04フォームと認証フローの計画
  5. 05リアルタイム更新パターンの選択

活用シーン

  1. 01API 呼び出しの読み込み・エラー表示を設計
  2. 02複数ステップフォームの操作性を改善
  3. 03保護ルートのログイン体験を計画
  4. 04チャットや通知の更新方式を選択

インストール

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

$npx skills add https://github.com/travisjneuman/.claude --skill generic-fullstack-ux-designer

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

詳細

フルスタック UX デザイナー

Next.js/NestJS のフルスタックアプリケーションに関する、プロフェッショナルな UX の専門知識です。

拡張元: 汎用 UX デザイナー — デザイン思考のプロセス、調査手法、インタラクションパターン、批評のフレームワークについては、基本スキルをお読みください。

フルスタック UX に関する考慮事項

サーバーサイドレンダリングの UX
シナリオUX パターン
初回ページ読み込みハイドレーションに安全なスケルトン画面
データ取得静的コンテンツにはサーバーコンポーネント、動的コンテンツにはクライアントを使用
認証リダイレクト UX を伴う保護されたルート
フォーム送信プログレッシブエンハンスメント
ハイドレーションに安全なパターン
// ✓ Avoid hydration mismatch
function Timestamp({ date }: { date: Date }) {
  const [formatted, setFormatted] = useState("");

  useEffect(() => {
    setFormatted(date.toLocaleString()); // Client-side only
  }, [date]);

  return <span>{formatted || "Loading..."}</span>;
}

API の読み込み状態とエラー状態

読み込み状態の階層
所要時間パターン例
< 100msインジケーターなしボタンクリック
100ms - 1s目立たないスピナーフォーム送信
1s - 5sスケルトン画面ページ取得
> 5sプログレスバーファイルアップロード
エラー状態の設計
API Error → Parse Error → User-Friendly Message → Recovery Action
エラーの種類ユーザーメッセージ復旧方法
400 バリデーションフィールドエラーを表示修正して再試行
401 未認証「ログインしてください」ログイン画面にリダイレクト
404 見つかりません「アイテムが見つかりません」前の画面に戻る
500 サーバーエラー「問題が発生しました」再試行ボタン

楽観的 UI パターン

// Show immediate feedback, rollback on error
async function toggleLike(postId: string) {
  // 1. Update UI immediately
  setLiked(true);
  setLikeCount((c) => c + 1);

  try {
    // 2. Call API
    await api.like(postId);
  } catch {
    // 3. Rollback on failure
    setLiked(false);
    setLikeCount((c) => c - 1);
    showToast("Failed to like");
  }
}
楽観的 UI を使うタイミング
操作楽観的に処理するか理由
いいね/お気に入りはいリスクが低く、よくある操作
コメント追加はい保留中の状態を表示できる
アイテム削除いいえ破壊的な操作で、確認が必要
支払いいいえ重要な操作で、検証が必須
フォーム送信場合による複雑さによって異なる

フォーム送信の UX

クライアント → サーバーのフロー
User Input → Client Validation → Submit → Server Validation → Response
     ↓              ↓              ↓              ↓              ↓
  Feedback    Inline errors   Loading...   Field errors    Success/Error
複数ステップのフォーム
// Show progress and allow back navigation
<FormStepper
  steps={["Details", "Payment", "Confirm"]}
  currentStep={step}
  onBack={() => setStep((s) => s - 1)}
/>

認証の UX

ログインフローのパターン
状態UX
認証を読み込み中全画面スケルトン
未ログインログインフォームを表示
ログイン中フォームを無効化し、スピナーを表示
成功トーストを表示してリダイレクト
エラーインラインエラーを表示し、フォームデータを保持
保護されたルートのパターン
// Redirect unauthenticated users
if (!user && !loading) {
  return <Navigate to="/login" state={{ from: location }} />;
}

リアルタイム更新

パターンユースケース
ポーリング低頻度の更新(通知など)
WebSocketチャット、リアルタイムコラボレーション
SSEサーバーからの一方向更新
プレゼンスインジケーター
  • オンライン状態を示すドット
  • 「ユーザーが入力中…」インジケーター
  • 共同編集カーソル

フルスタック設計の批評

項目質問
読み込み状態API 呼び出し中は何を表示するか?
エラーからの復旧ユーザーはエラーから復旧できるか?
オフライン時の動作ネットワークがない場合、どうなるか?
認証の遷移ログイン/ログアウトはスムーズか?
データの鮮度古いデータが明確に示されているか?

関連項目

コメント