Skip to content

flex-ui is a small tool that helps chain UI configurations.

License

Notifications You must be signed in to change notification settings

space-code/flex-ui

Repository files navigation

flex-ui

License Swift Compatibility Platform Compatibility CI GitHub release; latest by date

Description

flex-ui is a small tool that helps chain UI configurations.

Usage

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)

Requirements

  • iOS 14.0+
  • Xcode 16.0
  • Swift 6.0

Installation

Swift Package Manager

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"))
]

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, [email protected]

License

flex-ui is available under the MIT license. See the LICENSE file for more info.

About

flex-ui is a small tool that helps chain UI configurations.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages