Yet another component library on SwiftUI
Controls and styles in Figma
Some of the controls available include:
- Avatar
- Background
- BlurView
- Button
- ColorSelector
- GridSelect
- HUD
- Icon
- Loader
- Row
- SectionView
- SegmentedControl
- Select
- Surface
- TextField and more in: OversizeUI.
Colors, Typography, Spacing and other styles in core folder
- iOS 15+ or macOS 12.0+
- Xcode 14.2+
- Swift 5.7+
- File > Swift Packages > Add Package Dependency
- Add
https://github.com/oversizedev/OversizeUI.git
- Select "Up to Next Major" with "3.0.3"
After the framework has been added you can import the module to use it:
import OversizeUI
To build and deploy the demo follow these steps:
- Open
Example/Example.xcodeproj
in Xcode. - In the Xcode scheme menu choose
Example (iOS)
or other and choose a device to deploy to. - Once deployed you can choose a control to demo from the list of controls on the selected device.
Avatar(firstName: "Swift", lastName: "Apple")
.controlSize(.large)
Button("Button") { print(#function) }
.buttonStyle(.primary)
.accent()
.controlBorderShape(.capsule)
.bordered()
ColorSelector(selection: $color)
ColorSelector(selection: $color)
.colorSelectorStyle(GridColorSelectorStyle())
var items = ["One", "Two", "Three", "Four"]
@State var selection = ""
GridSelect(items, selection: $selection,
content: { item, _ in
VStack {
IconDeprecated(.circle)
Text(item)
}.padding()
})
IconDeprecated(.activity)
Row("Title")
SegmentedPickerSelector(items, selection: $selection) { item, _ in
Text(item)
}
Select("Select", items, selection: $selection) { item, _ in
Text(item)
} selectionView: { selected in
Text(selected)
}
Surface(background: .secondary) {
Text("Text")
}
TextField("Text", text: $placeholder))
.textFieldStyle(.default)
}
More information on in the DocC documentation
This project uses SwiftLint to automatically lint our Swift code for common errors. Please install it when developing in this repo by following the SwiftLint Installation Instructions.
OversizeUI is released under the MIT license. See LICENSE for details.