Lists · 5 free pieces

SwiftUI lists and carousels

Rows and carousels with real behavior: custom swipe actions, a swipeable to-do row, a status timeline, a depth carousel and an infinite-scroll list.

All components

About these pieces

One self-contained Swift file each, Apple frameworks only, from iOS 17.

Swipe Action Row wraps any row in a card with swipe actions drawn as solid blocks, a full swipe that arms with a haptic, and a shared binding that keeps one row open at a time. Task Row completes with a swipe right and a drawn check, snoozes or deletes with a swipe left, and reports reorder moves after a long-press lift.

Paged List is async/await infinite scroll done properly: it prefetches before the end, never runs two loads at once, drops duplicate ids, ignores stale responses, and keeps loaded rows when a page fails. Depth Carousel pages cards that recede as they leave center, and Status Timeline shows order or delivery progress with a live step that breathes.

Learn the technique: SwiftUI loading states guide, SwiftUI cards guide.

Questions

How the pieces work, and how to build the same thing yourself. Every piece's page has its full notes.

How do I add infinite scroll to a SwiftUI list?

Trigger the next page load from onAppear of a row a few items before the end, guard against concurrent loads, and de-duplicate by id. Paged List does this with skeleton rows, a retry chip and pull to refresh.

Can I use swipe actions outside a List in SwiftUI?

The built-in swipeActions modifier only works inside List. Swipe Action Row works in any ScrollView or VStack and draws its own actions.

Next

Ready to build something better?

55 pieces, one file each, yours to keep. Start with the library or see what the whole app looks like.