Documentation

MimiUXKit

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()