WrappingHStack
WrappingHStack (FlowLayout) is a SwiftUI component similar to HStack that wraps horizontally overflowing subviews onto the next lines.
Install / Use
/learn @ksemianov/WrappingHStackREADME
WrappingHStack
A SwiftUI component similar to HStack that wraps horizontally overflowing subviews onto the next lines.
Overview
The library is based on the SwiftUI's Layout protocol and thus has the following deployment requirement:
iOS 16.0+, iPadOS 16.0+, macOS 13.0+, Mac Catalyst 16.0+, tvOS 16.0+, watchOS 9.0+
The component's signature:
WrappingHStack(alignment: Alignment = .center,
horizontalSpacing: CGFloat? = nil,
verticalSpacing: CGFloat? = nil,
fitContentWidth: Bool = false)
The component, by default, uses the .center alignment, but also supports the following alignment values: .center, .leading, .topLeading, .top, .topTrailing, .trailing, .bottomTrailing, .bottom, .bottomLeading. The rest are treated as .center.
The component, by default, uses the system provided spacing, but it's also possible to specify explicit horizontalSpacing and verticalSpacing.
The component, by default, spans the entire available width. However, you can set fitContentWidth to true to make it adjust its width based on its content.
The component assumes that the largest subview fits into the bounds and there are no infinitely growing subviews. The component assumes that it can grow vertically as much as necessary to fit into the width constraint.
Examples
An array of tags:

WrappingHStack(alignment: .leading) {
ForEach(tags) {
Text($0.text)
.foregroundColor(Color.white)
.padding(.horizontal, $0.horizontalPadding)
.padding(.vertical, $0.verticalPadding)
.background(Color.gray)
.cornerRadius(16)
}
}
Installation
You can add WrappingHStack to an Xcode project by adding it as a package dependency.
https://github.com/ksemianov/WrappingHStack
If you want to use WrappingHStack in a SwiftPM project,
it's as simple as adding it to a dependencies clause in your Package.swift:
dependencies: [
.package(url: "https://github.com/ksemianov/WrappingHStack", from: "0.2.0")
]
If you want to use WrappingHStack in a CocoaPods project,
add this line to your Podfile:
'WrappingHStackLayout', '~> 0.2.0'
License
This library is released under the MIT license. See LICENSE for details.
Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
