スキル一覧に戻る
RomualdP

view-transitions-generator

by RomualdP

Volley App Monorepo

0🍴 0📅 2025年11月3日
GitHubで見るManusで実行

SKILL.md


name: View Transitions Generator description: Implémente l'API View Transitions pour des transitions fluides entre pages et états. MANDATORY pour toutes navigations. À utiliser lors de navigation, page transitions, ou quand l'utilisateur mentionne "transition", "animation", "navigation", "smooth". allowed-tools: [Read, Write, Edit]

View Transitions Generator

🎯 Mission

Implémenter des transitions fluides entre pages et états avec l'API View Transitions pour une expérience utilisateur moderne.

🎨 View Transitions API

Helper Function

// lib/view-transitions.ts

export function startViewTransition(callback: () => void): void {
  if (typeof document !== 'undefined' && 'startViewTransition' in document) {
    (document as any).startViewTransition(callback);
  } else {
    // Fallback pour navigateurs non supportés
    callback();
  }
}

Usage avec Navigation

'use client';

import { useRouter } from 'next/navigation';
import { startViewTransition } from '@/lib/view-transitions';

export function ClubCard({ club }: Props) {
  const router = useRouter();

  const handleClick = () => {
    startViewTransition(() => {
      router.push(`/clubs/${club.id}`);
    });
  };

  return (
    <div onClick={handleClick} style={{ viewTransitionName: `club-${club.id}` }}>
      {/* ... */}
    </div>
  );
}

CSS Animations

/* app/globals.css */

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.3s;
  animation-timing-function: ease-in-out;
}

/* Specific elements */
[style*="view-transition-name"] {
  contain: layout;
}

/* Custom animations */
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slide-from-right {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

::view-transition-new(club-card) {
  animation: fade-in 0.3s ease-in-out;
}

Patterns

Page Navigation:

const navigate = (path: string) => {
  startViewTransition(() => router.push(path));
};

State Changes:

const toggleView = () => {
  startViewTransition(() => setView('grid'));
};

✅ Checklist

  • Helper startViewTransition() créé
  • CSS animations définies
  • view-transition-name sur éléments clés
  • Fallback pour navigateurs non supportés
  • Utilisé pour TOUTES les navigations

Rappel: MANDATORY pour toutes navigations = UX moderne et fluide.

スコア

総合スコア

40/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です