CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

vercel-react-view-transitions

Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, expert-level skill body: executable code throughout, hard-won failure modes stated precisely, and a real multi-step reference workflow with verification. The only flaws are minor redundancy around `default="none"` and a duplicated wrapper example, plus a dead pointer to a nonexistent AGENTS.md compiled document.

Suggestions

Consolidate the `default="none"` guidance into one section (e.g. 'Use default="none" Deliberately') and reference it from the Props and shared-element sections instead of restating the semantics three times.

Drop the duplicated `DirectionalTransition` wrapper code from the body (keep the one-sentence advice to extract a reusable wrapper) since the full component already lives in references/implementation.md.

Remove or generate the 'Full Compiled Document: AGENTS.md' pointer — the file does not exist in the bundle, so following it dead-ends; alternatively ship it in the bundle.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious expert knowledge (placement rules, trigger semantics, router.back() type loss, nested-VT limitations) and explains no basics, but a few things could be trimmed: the implications of `default="none"` are spelled out in three separate places (Props, 'Use default="none" Deliberately', and the shared-element bullets), the `DirectionalTransition` wrapper example is duplicated in full between the body and references/implementation.md, and time-sensitive version specifics (React 19.3, Chromium 125+, Firefox 144+, Safari 18.2+) sit inline rather than in a deprecation/old-patterns section. These are minor trimmable instances matching the 4 anchor rather than the 5 anchor's 'every token earns its place'.

4 / 5

Actionability

Every section gives copy-paste-ready JSX with real prop values and imports — the works/broken placement-rule contrast, the type-map objects with the TypeScript `default`-key requirement, the nested list-identity/shared-element composition, and the Suspense fallback/content patterns. CSS class names are concretely backed by the recipes file, and failure modes come with specific fixes ('make the name conditional (via a prop) or move the named VT out of the shared component'). This fully matches the 5 anchor's executable, common-case-covering guidance.

5 / 5

Workflow Clarity

The body sequences work explicitly (the priority table with 'Implement all applicable patterns from this list, in this order') and mandates 'follow references/implementation.md step by step. Start with the audit — do not skip it', which resolves to a real 7-step reference workflow ending in a per-navigation-path verification checklist and a symptom-driven troubleshooting guide as the error-recovery loop. Clear sequence, explicit validation, and a checklist for a complex process match the 5 anchor; the 4 anchor's 'minor validation gaps' does not apply since verification is a dedicated final step.

5 / 5

Progressive Disclosure

The split is well done — overview and core concepts in SKILL.md, with bulk CSS, Next.js details, patterns, and debugging each in a clearly signaled one-level-deep reference file, all five of which exist with resolving anchors — but the 'Full Compiled Document' section points to `AGENTS.md`, which is not present in the bundle, creating a dead navigation path. That is a minor organization gap consistent with the 4 anchor rather than the 5 anchor's unqualified 'easy navigation'.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it names the exact APIs, enumerates seven concrete use cases, and provides two explicit trigger clauses covering both task-level and keyword-level invocation. It is comprehensive without padding and cleanly scoped to React/Next.js view transitions.

DimensionReasoningScore

Specificity

Lists seven concrete actions ("add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js") plus the exact APIs involved (`<ViewTransition>`, `addTransitionType`, CSS view transition pseudo-elements). This matches the 'comprehensive coverage of concrete actions' anchor; the only soft language ('smooth, native-feeling') is a brief qualifier, not a coverage gap, so it does not fall to the 4 anchor.

5 / 5

Completeness

Explicitly answers both questions: what ("Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements)") and when, stated twice with concrete triggers ("Use this skill whenever the user wants to add page transitions... or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types..."). This mirrors the anchor-5 example structure exactly, so it is not the 4 anchor where 'when' could be more explicit.

5 / 5

Trigger Term Quality

Covers the natural phrases a user would say — "page transitions", "route changes", "shared element animations", "list reorder", "forward/back" — alongside API-name synonyms users quote verbatim ("view transitions", "startViewTransition", "ViewTransition", "transition types") and the intent-level phrase "animating between UI states in React without third-party animation libraries". Anchor 5 (comprehensive natural terms including synonyms) is the best fit; anchor 4's 'a few natural terms missing' does not describe this coverage.

5 / 5

Distinctiveness Conflict Risk

The niche is sharply defined — React's View Transition API specifically, with React/Next.js scoping repeated across triggers ("React's View Transition API", "in React", "integrate view transitions in Next.js") — so it would not fire for generic CSS animation or non-React view-transition work. Clear niche with distinct triggers and minimal conflict risk is the closest anchor; the 4 anchor's 'minor overlap risk with closely related skills' is not evident given the explicit React and no-third-party-library qualifiers.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

vercel-labs/agent-skills

Path

skills/react-view-transitions/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.