Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Nori

Nori

MITSwift0.2.0

Apply code-based style guides to iOS storyboards using Swift custom classes.

GitHubGitHub
290 stars7 forks0 contributors

What is Nori?

Nori is an iOS library that allows developers to apply code-based style guides to storyboard views. It provides custom `Styleable` UI components (like `StyleableLabel`, `StyleableButton`) that can be designed in Swift code and rendered live in Interface Builder. This solves the problem of maintaining visual consistency between code and storyboard designs.

Target Audience

iOS developers who use Interface Builder storyboards but want to define UI styles programmatically for better consistency and reusability.

Value Proposition

Developers choose Nori because it uniquely bridges storyboard design with code-based styling, offering live previews via @IBDesignable while keeping style logic in Swift for maintainability.

Overview

Easier to apply code based style guide to storyboard.

Use Cases

Best For

  • Applying consistent typography and colors across storyboard labels
  • Creating reusable button styles with different states in Interface Builder
  • Maintaining design systems across iOS storyboard projects
  • Teams transitioning from pure storyboard design to code-based styling
  • Projects needing live previews of styled UI components in Xcode
  • Enforcing brand guidelines across iOS app interfaces

Not Ideal For

  • Projects built entirely with SwiftUI, as Nori is UIKit and storyboard-specific.
  • Teams that prefer visual-only styling in Interface Builder without writing any Swift code.
  • Apps requiring highly dynamic UI styles that change at runtime based on data or user actions.
  • Large organizations needing extensive documentation, community support, or vendor-backed frameworks.

Pros & Cons

Pros

Live Design Previews

Supports @IBDesignable for real-time rendering of custom styles directly in Interface Builder, speeding up design iteration as shown in the README's GIF example.

Code-Based Consistency

Enables UI styles to be defined in Swift classes like StyleableLabel, ensuring reusable and maintainable components across storyboards, aligning with the philosophy of keeping styling logic in code.

State-Aware Styling

Allows buttons to define different styles for each UIControlState, such as normal or highlighted, providing flexibility for interactive elements without manual state handling.

Core View Support

Covers essential UIKit components including Label, Button, and TextField, making it practical for common UI tasks in storyboard-based apps.

Cons

Limited View Coverage

Only supports six view types, missing complex or custom views like TableViewCell or CollectionView, which limits its use in advanced UI scenarios.

UIKit and Storyboard Lock-in

Heavily dependent on Interface Builder and UIKit, making it unsuitable for modern SwiftUI projects and creating migration challenges for teams adopting newer technologies.

Setup Overhead

Requires creating custom subclasses and overriding methods like intrinsicStyle() for each style, which can be verbose and time-consuming for simple styling needs.

Frequently Asked Questions

Quick Stats

Stars290
Forks7
Contributors0
Open Issues0
Last commit7 years ago
CreatedSince 2016

Tags

#ios#ui-components#interface-builder#swift#ui-styling#ibdesignable#storyboard

Built With

U
UIKit
S
Swift

Included in

iOS51.7k
Auto-fetched 17 hours ago

Related Projects

inferinfer

A static analyzer for Java, C, C++, and Objective-C

Stars15,661
Forks2,098
Last commit1 day ago
R.swiftR.swift

Strong typed, autocompleted resources like images, fonts and segues in Swift projects

Stars9,569
Forks779
Last commit1 year ago
SwiftGenSwiftGen

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs!

Stars9,552
Forks765
Last commit3 months ago
XcodeGenXcodeGen

A Swift command line tool for generating your Xcode project

Stars8,642
Forks888
Last commit8 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub