GitHub repository: Originate/OriginateTheme
Description: OriginateTheme is a lightweight user interface theming framework.

1.1.4: tag_name: 1.1.4
body: Updated development dependencies.
1.1.3: tag_name: 1.1.3
body: Updated dependencies.
1.1.2: tag_name: 1.1.2
body: **Enhancements:**
- None.

**Bug fixes:**
- Fix podspec. (https://github.com/Originate/OriginateTheme/pull/24)

1.1.1: tag_name: 1.1.1
body: **Enhancements:**
- None.

**Bug fixes:**
- Fix podspec. (https://github.com/Originate/OriginateTheme/pull/20)

1.1.0: tag_name: 1.1.0
body: **Enhancements:**
- Fix initial compilation fail. (https://github.com/Originate/OriginateTheme/pull/17)

**Bug fixes:**
- None.

**NOTE:** Installation instructions have been updated. If a previous version of the framework is already successfully integrated, the updated instructions may be safely skipped, though it may be wise to follow them for future compatibility.

[1.0.0] Dynamic Framework Creation on Compile Time and Run Phase Integration : tag_name: 1.0.0
body: ## About OriginateTheme 1.0.0

OriginateTheme 1.0.0 introduces the concept of a theme. A theme is specified in a JSON file and describes the basic look and feel of your application. After integrating the OriginateTheme framework into your project the specified JSON file will automatically get parsed and via a code generation phase transformed to accessible Objective-C classes. These created or modified classes are added to the OriginateTheme framework before each source code compilation.

## Concept of the OTTheme Class

Adding the framework to the project will allow a user to create a new instance of an `OTTheme` class. This class exposes the properties `fonts`, `colors` and `components`. Each of these properties are references to automatically created classes which provide access to the defined styles in the `JSON` file.

``` objective-c
@property (nonatomic, strong, readonly) OTColors *colors;
@property (nonatomic, strong, readonly) OTComponents *components;
@property (nonatomic, strong, readonly) OTFonts *fonts;
```

As an example the `colors` property of the `OTTheme` instance is of type `OTColors` and exposes the defined color styles. 

Inside the `OTColors` instance these styles can be accessed by generated property accessors which look as the following:

``` objective-c
@property (nonatomic, strong, readwrite) UIColor *errorColor;
@property (nonatomic, strong, readwrite) UIColor *primaryColor;
@property (nonatomic, strong, readwrite) UIColor *secondaryColor;
@property (nonatomic, strong, readwrite) UIColor *successColor;
@property (nonatomic, strong, readwrite) UIColor *warningColor;
```

Next to simply exposing the aforementioned properties, the class `OTTheme` also provides a custom initializer with the declaration:

``` objective-c
- (instancetype)initWithStyleDefinitionFileAtURL:(NSURL *)URL;
```

The parameter `URL` is a path to a `JSON` file stored on disk. This `JSON` file can exist already during source code compilation or created dynamically while application runtime. In case the `JSON` file contains the same basic structure consisting of `colors`, `components` and `fonts` it is possible to override theme styles dynamically on runtime. If only a subset of keys are overwritten the at compile time defined styles will be used as fallback. 

This will allow (remote) customization of the `OriginateTheme` framework also after submitting or distributing the application.

For more information take a look at the README file.