https://github.com/space-code/flex-ui
flex-ui is a small tool that helps chain UI configurations.
https://github.com/space-code/flex-ui
chain swift uikit
Last synced: 4 months ago
JSON representation
flex-ui is a small tool that helps chain UI configurations.
- Host: GitHub
- URL: https://github.com/space-code/flex-ui
- Owner: space-code
- License: mit
- Created: 2024-12-30T15:33:14.000Z (about 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-08-12T13:24:58.000Z (6 months ago)
- Last Synced: 2025-09-06T11:57:14.541Z (5 months ago)
- Topics: chain, swift, uikit
- Language: Swift
- Homepage:
- Size: 58.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
flex-ui
## Description
`flex-ui` is a small tool that helps chain UI configurations.
- [Usage](#usage)
- [Requirements](#requirements)
- [Installation](#installation)
- [Communication](#communication)
- [Contributing](#contributing)
- [Author](#author)
- [License](#license)
## Usage
```swift
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:
```swift
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)
```
## Requirements
- iOS 14.0+
- Xcode 16.0
- Swift 6.0
## Installation
### Swift Package Manager
The [Swift Package Manager](https://swift.org/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`.
```swift
dependencies: [
.package(url: "https://github.com/space-code/flex-ui.git", .upToNextMajor(from: "1.0.0"))
]
```
## Communication
- 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.
## Contributing
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!
## Author
Nikita Vasilev, nv3212@gmail.com
## License
flex-ui is available under the MIT license. See the LICENSE file for more info.