Introducing ListKit - an open-source library for working with lists in SwiftUI
Jun 8, 2026 ·
Say hi to ListKit - a new open-source library for working with lists in SwiftUI. The library has reusable view components and extension for many common challenges.

ListKit contains views and utilities that have been extracted from SwiftUIKit, since I want to replace that previous monolith with several smaller and more focused libraries.
Views
ListKit has many very small utility views like , ListDragHandle, ListSectionTitle, ListSelectItem, and PlainListContent, that makes it easy to mimic and augment native views.
ListKit also has more complex view components, like ListButtonGroup, which mimics the horizontal action button group that you can see in e.g. the native Contacts app.

This view will adjust its default look and feel to the current platform, which means that it looks a bit different on e.g. macOS and visionOS.
ListKit also has a Shelf view component, that can be used to create vertical lists of scrolling shelves, which is common in e.g. streaming media apps.

The Shelf view lets you use custom header and item views, and can be further customized with the many available shelf-specific view modifiers, like .shelfScrollBehavior.
View Extensions
Besides these views, ListKit also has a couple of list-specific view modifiers, like:
.listBackgroundGradient(.blue).listBackgroundGradient(colors: [.mint, .blue]).preferredListSectionSpacing(10).preferredScrollContentHidden()
I’m currently struggling with what to keep in SwiftUIKit, and what to extract to separate libraries, but I’m currently leaning towards SwiftUIKit having common extensions and views, while more specific ones get their own library.
Conclusion
The ListKit library is currently tiny, but I think it’s good to avoid the bloated monolith that SwiftUIKit started growing into. Feel free to give it a try and let me know what you think.
Discussions & More
If you found this interesting, please share your thoughts on Bluesky and Mastodon. Make sure to follow to be notified when new content is published.