Documentation
Quick Start
MimiUXKit is the core of all Mimi user interfaces, leveraging UIKit
to provide a foundation of UI components and services. In addition to a comprehensive collection of themeable UI components, it handles other foundational concepts such as user flows.
Key Features
- Comprehensive, customizable library of UI components.
- Powerful and extensive theming engine.
- Core UI/UX concepts such as User Flow management.
- Mimi brand assets; including fonts, color palettes and styling guidelines.
Components
A large library of UIKit
components are provided with MimiUXKit
that can be dropped into your product with ease.
import MimiUXKit
let checkbox = MimiCheckbox()
let button = MimiActionButton()
let label = MimiLabel()
All of these components are as open
as possible, allowing for overriding and subclassing wherever required. They also support Interface Builder where possible.
In addition to this, all components provided in MimiUXKit
automatically support the MimiUXKit theming engine.
Theming Basics
Applying an existing theme is as easy as one line:
MimiBrandTheme.default.apply()
Creating a new theme is a little more involved, but just requires you to create a type that conforms to MimiTheme
:
import MimiUXKit
struct MyCustomTheme: MimiTheme {
let identifier: String
let primaryTintColor: MimiColor
// more properties...
// variants
static let light = MyCustomTheme(identifier: "io.mimi.theme.mycustom.light",
primaryTintColor: MimiColor(.white))
static let dark = MyCustomTheme(identifier: "io.mimi.theme.mycustom.dark",
primaryTintColor: MimiColor(.black))
static var variants: [MyCustomTheme] = [.light, .dark]
}
MyCustomTheme.dark.apply()