sheet
Sheet opens a temporary task from the bottom on mobile or web while preserving a visual relationship with the page beneath it.
Drill-in — List → detail, going one level deeper.
When this motion fits
- When to use
- Use it for compose, filters, settings, or a short task that should keep its origin in context.
- What moves
- The task rises from the bottom; the background can stay still, scale back, or blur.
- Avoid when
- Avoid it for a permanent top-level destination or a deep flow that needs its own navigation stack.
Add it to a route rule
sheet() sets the motion; the rule around it decides which navigations get it. The config shape is the same in every framework.
import { sheet } from "@ssgoi/react/view-transitions";
const config = {
transitions: [
{ on: "/compose", transition: sheet() },
],
};Pattern forms, priority and the scroll defaults that come with each rule shape are on Route rules.
Configurations
type, variant and option are independent. Each clip is recorded from a demo published on ssgoi.dev. Combinations without a published demo keep the API details without a substitute clip.
static
type: staticdefaultThe sheet rises while the page underneath stays fixed. The clearest, quietest option.

Mobile · Gamja Market 
Web · YouTube Music sheet({ type: "static" })Open live demo 1 · Open live demo 2Opens at the source screen
scale
type: scaleThe page scales back as the sheet rises, creating stacked-card depth.

sheet({ type: "scale" })Open live demoOpens at the source screen
blur
type: blurA live backdrop sits between the two pages, blurring and dimming the origin while the sheet rises above it.

sheet({ type: "blur" })Open live demoOpens at the source screen
Agent guide: /llms/transitions/sheet.txt — every prop, the required markup, and a config fragment as plain text.