dialog-transitions

Configures Terracotta dialog transitions by separating mount coordination from child animations.

2|1|Updated Jun 28, 2026
One-click install
npx skills add https://github.com/lxsmnsyc/overwander --skill dialog-transitions-lxsmnsyc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dialog-transitions
Source: https://github.com/lxsmnsyc/overwander/tree/main/.agents/skills/dialog-transitions
Command: npx skills add https://github.com/lxsmnsyc/overwander --skill dialog-transitions-lxsmnsyc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Dialogs animated incorrectly suffer from multiplied opacity, cut-off fades, broken stacking contexts, and panels that never mount. This Skill encodes the correct pattern for animating Terracotta dialogs in a SolidJS app: the outer Transition only controls mounting, while TransitionChild elements own the actual fade and scale animations. ## Core Features & Use Cases - Correct transition structure: Keeps enter/leave classes off the parent Transition and places FADE on the panel and SHEER on the overlay, preventing opacity multiplication and premature unmounting. - Suspense placement guidance: Positions the Suspense boundary inside the panel's TransitionChild with no fallback, and requires .latest for resources refetched after writes so panels do not detach mid-write. - Terracotta edge cases: Documents pitfalls such as inert breaking focus, PopoverPanel with as={TransitionChild} never mounting, and Tailwind scale-* mapping to the scale property rather than transform. - Use Case: When adding a fade animation to a styled dialog in src/components/styled, apply this Skill to wire the Transition wrapper, overlay, and panel correctly on the first attempt. ## Quick Start Apply the dialog-transitions skill to add a fade animation to the styled dialog component without putting transition classes on the parent Transition.

Frequently Asked Questions about dialog-transitions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I animate a Terracotta dialog in SolidJS?▼

Wrap the dialog in a plain Transition that only controls mounting, then put the animations on TransitionChild elements inside it. Use FADE for the panel and SHEER for the overlay so each child animates independently.

Why does my dialog fade look faster than the transition I wrote?▼

Opacity multiplies across nested elements, so a panel at 0.5 inside a wrapper at 0.5 renders at 0.25. Remove enter and leave classes from the parent Transition and animate only the TransitionChild elements.

Why does my dialog close immediately after opening?▼

An inert attribute on anything a Transition or TransitionChild wraps refuses focus, and Terracotta closes the panel when focus leaves. Remove inert from the animated subtree and use pointer-events-none for the leaving state instead.

Why does PopoverPanel with as={TransitionChild} never mount?▼

The panel and the transition each decide separately whether to render, and the two do not agree for popovers. Wrap the PopoverPanel in a Transition instead and leave the panel itself plain.

Why does my Tailwind scale transition not animate?▼

Tailwind's scale-* utilities set the scale property, not transform, so a transition naming transform animates nothing. Name scale in the transition property, as the FADE preset does.