Swiftpack.co - globulus/swiftui-flow-layout as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by globulus.
globulus/swiftui-flow-layout 1.0.4
Flow layout / tag cloud / collection view in SwiftUI.
⭐️ 80
🕓 38 weeks ago
iOS macOS
.package(url: "https://github.com/globulus/swiftui-flow-layout.git", from: "1.0.4")


A Flow Layout is a container that orders its views sequentially, breaking into a new "line" according to the available width of the screen. You can compare it to a left-aligned block of text, where every word is a View. A common use for this layout is to create a tag cloud.

The end result looks like this:

in action

  • The layout algorithm behaves differently if your FlowLayout is nested in a VStack or a scrollable parent, such as ScrollView or a List. Therefore, there's the Mode enum and mode property.


This component is distrubuted as a Swift package. Just add this URL to your package list:


You can also use CocoaPods:

pod 'SwiftUIFlowLayout', '~> 1.0.4'

Sample usage

import SwiftUIFlowLayout

struct FlowLayout_Previews: PreviewProvider {
  static var previews: some View {
    FlowLayout(mode: .scrollable,
               items: ["Some long item here", "And then some longer one",
                       "Short", "Items", "Here", "And", "A", "Few", "More", 
                       "And then a very very very long one"],
               itemSpacing: 4) {
        .font(.system(size: 12))
        .background(RoundedRectangle(cornerRadius: 4)


Check out this recipe for in-depth description of the component and its code. Check out SwiftUIRecipes.com for more SwiftUI recipes!


  • 1.0.4 - Fixed crash when changing item count.
  • 1.0.3 - Removed Hashable constraint on data. Added convenience initializer when refresh binding isn't used.
  • 1.0.2 - Fixed layout issues with multiline items.
  • 1.0.1 - Added itemSpacing parameter.
  • 1.0.0 - Initial release.


Stars: 80
Last commit: 10 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics