Protocol oriented, type safe, scalable design system foundation swift framework for iOS.

Overview

Doric: Design System Foundation in Swift

Build Status CocoaPods Compatible Carthage compatible Platform Documentation

Doric: Design System Foundation

Design System foundation written in Swift. Protocol oriented, type safe, scalable framework for iOS.

Features

  • Typography
  • Iconography
  • Colour Palette
  • Dynamic scalable font support
  • Auto layout
  • Gradients, Shadows, Borders and other scales
  • Layout spacing
  • Themes
  • UI Debugging helpers
  • API Document & Usage Documentation

Sketch Plugin

Roadmap

Not in specific orders to achieve it.

  • Add debugging tools (Ruler etc.) [In progress]
  • Expand framework to create more Styles
  • Colour processing utilities
  • Trait based layouts (UITraitCollection) [In progress]
  • Accessibility for colour palettes
  • Sketch plugin to generate palette. Try here

Usage Guide

  • See documentation

Requirements

  • iOS 11.0+
  • Xcode 10.2+
  • Swift 5

Demo

Preview Preview

Installation

CocoaPods

CocoaPods is an application level dependency manager for the Objective-C, Swift and any other languages that run on the Objective-C runtime that provides a standard format for managing external libraries. For usage and installation instructions visit site

To integrate Doric using CocoaPods, specify it in your Podfile:

pod 'Doric', '~> 1.0.0'

Carthage

Carthage builds your dependencies and provides you with binary frameworks, but you retain full control over your project structure and setup. Carthage does not automatically modify your project files or your build settings.

. To integrate Doric into your Xcode project using Carthage, specify it in your Cartfile:

github "jayeshk/Doric" ~> 1.0.0

Manually

If you can integrate project manually as below using git submodule

Embedded Framework

  • Open up Terminal, cd into your top-level project directory, and run the following command "if" your project is not initialised as a git repository:

    $ git init
  • Add Doric as a git submodule by running the following command:

    $ git submodule add https://github.com/jayeshk/Doric.git
  • Open the new Doric folder and drag the Doric.xcodeproj into the Project Navigator.

    It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter.

  • Select the Doric.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.

  • Next, select your application project in the Project Navigator to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.

  • In the tab bar at the top of that window, open the "General" panel.

  • Click on the + button under the "Embedded Binaries" section.

  • You will see Doric.framework nested inside a Products folder. Select the Doric.framework for iOS.

    You can verify which one you selected by inspecting the build log for your project. The build target for Doric will be listed as Doric.

    Doric.framework is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device.

Contribute

Doric is open to contribute, see contribution notes.

  • If you want to contribute, submit a pull request.
  • If you found a bug, open an issue.
  • If you need help with a feature or need to discuss best practices please see usage document , still anything to discuss contact me ([email protected]).

FAQ

About Doric name?

The Doric order was one of the three orders of ancient Greek and later Roman architecture, Doric is named based Doric_order. Hence provides pillars for your digital products.

Why Design System required?

As the number of devices screen variants and environments are increasing, so there is need to create scalable interface Design Systems.

Doric's primary goal is to create a system which allows you to manage design at scale for iOS. Consistency, scalability and efficiency across app are focused areas. See Awesome Design Systems

It is required to implement all parts of Doric?

Doric provides various building blocks to implement interface. All blocks can be used independently or can be composed as needed. For example your app can use Typography only or Color Palettes. Better practice would be compose all them into single Design System.

It also allows you to use any of these blocks with other third part frameworks. For example Spacing and Layout can be used any other third party frameworks.

Since it protocol oriented framework you can further extended any of section and customise it. Doric comes with few default implementations. See more for usage guide

Credits

Doric is influenced by various Design System guidelines and many stackoverflow posts.

Major source of inspiration Atomic Design

Brad Frost, author of Atomic Design : “comprehensive collection of the bits and pieces that make up your interface”.


License

Doric is released under the MIT license. See LICENSE for details.

You might also like...
Anchorage - Single file UIView drag and drop system
Anchorage - Single file UIView drag and drop system

anchorage Single file UIView drag and drop system anchors.mp4 License Copyright

Electronic Design in Swithft

Edith Electronic design in Swithft Serendipitously, the first woman to be professionally employed as an electrical engineer in the United States was a

Material, a UI/UX framework for creating beautiful iOS applications
Material, a UI/UX framework for creating beautiful iOS applications

Material Welcome to Material, a UI/UX framework for creating beautiful applications. Material's animation system has been completely reworked to take

Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, gantt chart or timetable as if you are using Excel.
Full configurable spreadsheet view user interfaces for iOS applications. With this framework, you can easily create complex layouts like schedule, gantt chart or timetable as if you are using Excel.

kishikawakatsumi/SpreadsheetView has moved! It is being actively maintained at bannzai/SpreadsheetView. This fork was created when the project was mov

Lightweight framework for Unsplash in Swift
Lightweight framework for Unsplash in Swift

Lightweight framework for Unsplash in Swift

Swift extensions for UIKit.framework.

XUIKit Example To run the example project, clone the repo, and run pod install from the Example directory first. Requirements Installation XUIKit is a

Flexible UI Framework Designed for Swift

Overlay Overlay is a very flexible UI framework designed for Swift. Note: Overlay is still under development and many things are subject to change. Fe

A child view controller framework that makes setting up your parent controllers as easy as pie.
A child view controller framework that makes setting up your parent controllers as easy as pie.

Description Family is a child view controller framework that makes setting up your parent controllers as easy as pie. With a simple yet powerful publi

Neumorphism framework for UIKit.
Neumorphism framework for UIKit.

NeumorphismKit is neumorphism framework for UIKit. Requirements iOS 12.0+ Swift 5.1+ Versions NeumorphismKit version Xcode version 1.0.0 Xcode 11+ 1.1

Comments
  • Updated documentation

    Updated documentation

    Before you open the request please review the following guidelines and tips to help it be more easily integrated:

    • Describe the scope of your change i.e. what the change does and what parts of the code were modified. This will help us understand any risks of integrating the code.

    • Describe any known limitations with your change. For example if the change doesn't apply to a supported platform of the library please mention it.

    • Please run any tests or examples that can exercise your modified code. We strive to not break users of the code and running tests/examples helps with this process.

    Thank you again for contributing!

    opened by jayeshk 0
Owner
Jay
Jay
UIPheonix is a super easy, flexible, dynamic and highly scalable UI framework + concept for building reusable component/control-driven apps for macOS, iOS and tvOS

UIPheonix is a super easy, flexible, dynamic and highly scalable UI framework + concept for building reusable component/control-driven apps for macOS, iOS and tvOS

Mohsan Khan 29 Sep 9, 2022
🎸🎸🎸 Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

?????? Common categories for daily development. Such as UIKit, Foundation, QuartzCore, Accelerate, OpenCV and more.

77。 423 Jan 4, 2023
URLEmbeddedView automatically caches the object that is confirmed the Open Graph Protocol.

URLEmbeddedView Features Simple interface for fetching Open Graph Data Be able to display Open Graph Data Automatically caching Open Graph Data Automa

Taiki Suzuki 643 Dec 20, 2022
Protocol to handle initial Loadings, Empty Views and Error Handling in a ViewController & views

StatusProvider Protocol to handle initial Loadings, Empty Views and Error Handling in a ViewController & views CocoaPods Podfile pod 'StatusProvider'

Mario Hahn 887 Dec 22, 2022
Material design components for iOS written in Swift

MaterialKit NOTE: This project is unmaintained. Material design components (inspired by Google Material Design) for iOS written in Swift Please feel f

Le Van Nghia 2.5k Jan 5, 2023
A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView and iPhone X safe area support for content reloading. Built for iOS 10 and later.

Arale A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for reloading your content. Built f

Putra Z. 43 Feb 4, 2022
A Material Design drop down for iOS

A Material Design drop down for iOS written in Swift. Demo Do pod try DropDown in your console and run the project to try a demo. To install CocoaPods

AssistoLab 2.3k Dec 20, 2022
Modular and customizable Material Design UI components for iOS

Material Components for iOS Material Components for iOS (MDC-iOS) helps developers execute Material Design. Developed by a core team of engineers and

Material Components 4.6k Dec 29, 2022
Blobmorphism is a brand new design language I've created to break free of the material overload in iOS, built in SwiftUI. Everything feels smooth and fluid.

Blobmorphism is a brand new design language I've created to break free of the material overload in iOS, built in SwiftUI. Everything feels smooth and fluid.

Ethan Lipnik 89 Nov 29, 2022
A Swift material design UI module which paints over the parent view when the switch is on.

:octocat: ?? RAMPaperSwitch is a Swift material design UI module which paints over the parent view when the switch is turned on. iOS library by @Ramotion

Ramotion 2.9k Dec 29, 2022