flex-ui
is a small tool that helps chain UI configurations.
import FlexUI
let label = UILabel()
label
.flex
.text("Label Text")
.textColor(.black)
.font(.systemFont(ofSize: 17.0))
New configuration methods can be added by extending the interface of the Flex component, such as:
import FlexUI
import UIKit
public enum Fonts {
public enum Headings {
/// The largest heading style.
case h1
/// A slightly smaller heading style.
case h2
/// A medium-sized heading style.
case h3
var font: UIFont {
/// Implementation to return a specific UIFont based on the heading style.
}
}
}
public extension FlexUI where Component: UIButton {
@discardableResult
@MainActor
func font(_ heading: Fonts.Headings) -> Self {
component.titleLabel?.font = heading.font
return self
}
}
let button = UIButton()
button
.flex
.font(.h3)
- iOS 14.0+
- Xcode 16.0
- Swift 6.0
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift
compiler. It is in early development, but flex-ui
does support its use on supported platforms.
Once you have your Swift package set up, adding flex-ui
as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/space-code/flex-ui.git", .upToNextMajor(from: "1.0.0"))
]
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Bootstrapping development environment
make bootstrap
Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request!
Nikita Vasilev, [email protected]
flex-ui is available under the MIT license. See the LICENSE file for more info.