A stay detail screen over full-bleed scenery, with a floating booking card that rises and flicks away.
A booking screen for a place to stay: dusk scenery, a two-line serif name, the house as fact blocks and a floating booking card that rises with a spring, leans with your drag and flicks away. Its two detents are each laid out to fit: dates and the request at rest, then guests, the week and the price. The card ships as `.glassSheet` for your own screens.
$199 once, every piece included. See how installing works · Sign in
SwiftUI source you own, built on Apple frameworks only.
selection binding for the detent.glassSheet(isPresented:content:) for your own screensTravel (brief). Your agent builds around this screen in the same design.
Travel App (template)
How it behaves, what it handles, and the decisions behind it.
Apply .glassSheet(isPresented:content:) to any view. The card is inset from the edges rather than attached to the bottom, so it reads as a floating panel: it rises with a spring, carries a grabber, and dims the content behind it. Drag anywhere on the card to move it; the card also leans slightly with horizontal movement and rubber-bands when pushed up. Flick down and it leaves along the drag vector; with two detents, a flick up grows it to the tall size. It rides above the keyboard. .glassEffect on iOS 26, Material below.
predictedEndTranslation: past 45% of the card height dismisses with a rigid haptic, an upward flick past 80pt grows to the second detent, a downward flick from the tall detent returns to the resting one, and everything else settles with a soft haptic.limit * (1 - 1 / (1 + d / limit)) curve as the rest of the Pro sheets.selection: (optional, additive) to read or set the detent index. The content gets the card's full height, so a Spacer can pin an action to the bottom edge at every detent.\.spTheme: dusk scenery mixed from the brand's blocks, a two-line serif name, the house as three fact blocks and a floating booking bar whose Reserve action raises the card.selection: the resting detent holds the dates as two blocks and the request action; the tall one adds guests, the week of the stay and the price, with the action still on the bottom edge. ViewThatFits falls back to a scroll view when Dynamic Type makes the content taller than the card, so nothing is clipped.GlassSheetExample at the end of GlassSheet.swift is the Stay screen from the preview.Pieces that work well next to this one.