ScrollCraft
App info
Get ScrollCraft

Shape the scroll. Copy the SwiftUI.

ScrollCraft is an iPhone, iPad and Mac app for SwiftUI developers that turns slider settings into scrollTransition() code you can copy.

Download ScrollCraft on the App Store

Free editor · Lifetime Access is a one-time purchase · No subscription

ScrollCraft on iPad: a panel of sliders for opacity, scale, offset, blur and saturation in the Top Leading and Identity phases, beside the live preview, a scrolling list of rainbow bars

Pick a template. Scroll the page.

The bars on this page move with the values of ScrollCraft’s three free templates, and the code is what the app generates for each one.

Fade Lift A gentle fade with a small vertical lift for clean lists.
.scrollTransition { content, phase in
  content
    .opacity(phase == .topLeading ? 0.25 :
             phase == .identity ? 1 : 0.25)
    .scaleEffect(phase == .topLeading ? 0.9 :
                 phase == .identity ? 1 : 0.9)
    .offset(
      x: phase == .topLeading ? 0 :
         phase == .identity ? 0 : 0,
      y: phase == .topLeading ? -80 :
         phase == .identity ? 0 : 80
    )
    .saturation(phase == .topLeading ? 0.65 :
                phase == .identity ? 1 : 0.65)
}
Soft Focus A calm blur and saturation change for quieter interfaces.
.scrollTransition { content, phase in
  content
    .opacity(phase == .topLeading ? 0.45 :
             phase == .identity ? 1 : 0.45)
    .scaleEffect(phase == .topLeading ? 0.95 :
                 phase == .identity ? 1 : 0.95)
    .offset(
      x: phase == .topLeading ? 0 :
         phase == .identity ? 0 : 0,
      y: phase == .topLeading ? -40 :
         phase == .identity ? 0 : 40
    )
    .blur(radius:(phase == .topLeading ? 12 :
                  phase == .identity ? 0 : 12))
    .saturation(phase == .topLeading ? 0.35 :
                phase == .identity ? 1 : 0.35)
}
List Snap A practical list transition with stronger entry and exit contrast.
.scrollTransition { content, phase in
  content
    .opacity(phase == .topLeading ? 0.2 :
             phase == .identity ? 1 : 0.2)
    .scaleEffect(phase == .topLeading ? 0.82 :
                 phase == .identity ? 1 : 0.82)
    .offset(
      x: phase == .topLeading ? -120 :
         phase == .identity ? 0 : 120,
      y: phase == .topLeading ? -20 :
         phase == .identity ? 0 : 20
    )
    .blur(radius:(phase == .topLeading ? 4 :
                  phase == .identity ? 0 : 4))
    .saturation(phase == .topLeading ? 0.7 :
                phase == .identity ? 1 : 0.7)
}
Template playing on this page

A website demonstration: in browsers with scroll-driven animation, CSS replays each template’s values as the bars cross the edges of your screen. The code is ScrollCraft’s own output, re-indented to fit. Nine more templates come with Lifetime Access.

Tune every phase.

Opacity, scale, offset, blur and saturation, set separately for each phase, plus colors and corner radius, while the preview updates immediately.

.topLeading
The view is at the top or leading edge, scrolling in or out.
.identity
The view is fully inside the visible area.
.bottomTrailing
The view is at the bottom or trailing edge.

A modifier appears in the code only once you move it off its default, so Fade Lift above has no blur line.

ScrollCraft’s Top Leading sliders on iPad: Opacity, Scale, X Offset, Y Offset, Blur and Saturation, a Reset Section button, and the start of the Identity group
iPad · the sliders for one phase
ScrollCraft’s generated code on iPhone: a SwiftUI ScrollView with a scrollTransition, under Close, Copy and Export buttons
iPhone · the code sheet, with Copy and Export

Copy it, or export a Swift file.

Copy puts the whole ScrollView on the clipboard: a LazyVStack of fifty placeholder rectangles in your colors and corner radius, each carrying the scrollTransition, under a comment that says where your content goes. The first copy is free.

With Lifetime Access, copying is unlimited and Export writes a complete Swift file: import SwiftUI, a ScrollCraftView and a #Preview, ready to open in Xcode. Saved presets stay on your device.

Deliberately small: not a code editor, compiler or general animation suite.

At a glance

Devices
iPhone · iPad · Mac
Requires
iOS 17, iPadOS 17 and macOS 14 or later
Price
Free download · Lifetime Access $19.99 · One-time purchase · No subscriptionUS App Store price, checked October 10, 2026 · Family Sharing included
Free version
The full editor, three templates and one code copy
Languages
38
Your data
Settings and saved presets stay on your device. No account, and ScrollCraft never reads your clipboard.
Version
26.0.1 · updated

Questions

What is free, and what does Lifetime Access add?

The whole editor, three templates and one code copy are free. Lifetime Access is a one-time purchase that adds unlimited copying, Swift file export, saved presets and the other nine templates. Family Sharing is included.

Which OS versions does the generated code need?

The scrollTransition modifier is available from iOS 17, iPadOS 17 and macOS 14, the same versions ScrollCraft itself needs. Apple’s reference also lists tvOS 17, watchOS 10 and visionOS 1, so the copied code runs there too.

Why can I copy only once?

The free version includes one code copy. After that, Copy opens the Lifetime Access screen. If you already bought Lifetime Access, open Settings and tap Restore Purchases with the same Apple Account.

Does ScrollCraft read my clipboard or send my code anywhere?

No. It places code on the clipboard only when you tap Copy and never reads it. There is no account, and your presets stay on your device.

Is the Mac version a real Mac app?

Yes. ScrollCraft for Mac is a native Mac app for macOS 14 or later, not the iPad app running on a Mac, and it comes from the same App Store listing. Its Craft menu has Show Generated Code (⌘⇧G), Copy Code (⌘⇧C), Export Swift File (⌘E) and Save Preset (⌘S); the last two need Lifetime Access.

Does the effect follow my scrolling, or animate on its own?

It follows your scrolling. The generated code uses the modifier’s default configuration, which Apple’s documentation describes as interactively interpolating the effect as the view scrolls into the visible region. Your sliders set the state at each edge, and SwiftUI draws everything in between.

Does the code work in a horizontal scroll view?

The preview scrolls vertically, but the generated modifier sets no axis, which Apple’s modifier reference says means the axis of the innermost scroll view it sits in. In a horizontal one, Apple’s phase reference says the top-leading values apply at the leading edge and the bottom-trailing values at the trailing edge, so an X Offset becomes the natural slide.

Design your first transition for free.

One listing covers iPhone, iPad and Mac, with no account and no tracking.

Download ScrollCraft on the App Store

Pairs well with

  • Crafter Motion

    Shapes the timing curve for your SwiftUI animations and copies the Animation.timingCurve value.

  • SymbolCraft

    Copies SF Symbols as SwiftUI code for the views you animate.

Availability

Devices
iPhone · iPad · Mac
Download
Free to download
Purchase options
Lifetime Access · One-time purchase · No subscription

Prices vary by country; the App Store shows your local price.

ScrollCraft support and purchase help

Designed and built by Daniel, an independent Apple developer. Every release is listed in the changelog.