Skip to content

Orange-OpenSource/ouds-ios

Repository files navigation

OUDS iOS

OUDS iOS provides Orange iOS components to developers and a demo application.
Report bug · Request feature · Online documentation · Wiki

Table of contents

Status

MIT license

Versions Still maintained

Code size Opened issues

iOS 15.0 Xcode 16 Swift 6

Content

This repository contains the OUDS iOS library that provides Orange iOS components for its unified design system, but also a demo application showcasing these different components.

You can find the detailed technical documentation online, and also the whole design system.

Details about the project are also available in the wiki.

Import the library

Add in Xcode the Swift package dependency https://github.com/Orange-OpenSource/ouds-ios.

Then add in your project the modules you need within:

  • OUDSModules containing OUDS modules with features
  • OUDSComponents containing all components embeded also inside modules
  • OUDSThemesInverseTheme providing a theme with inverted colors for components
  • OUDSThemesOrangeTheme providing the default Orange theme defining style for components
  • OUDS providing basic objects and low layer of responsabilities to help to implement themes
  • OUDSTokensComponent providing component tokens for components to add in applications and modules
  • OUDSTokensSemantic providing semantic tokens
  • OUDSTokensRaw providing raw tokens
  • OUDSFoundations providing low level and utils objects.

You must define the theme you use in your app root view:

import OUDS  // To get OUDSThemeableView
import OUDSThemeOrange // To get OrangeTheme
import SwiftUI

@main
struct YourApp: App {
    var body: some Scene {
       WindowGroup {
          OUDSThemeableView(theme: OrangeTheme()) {
                // Your root view
          }
       }
    }
}

Then get the current thme using @Environment(\.theme) var theme and use it! You can also use the moudles and the components exposed by the library.

OUDS

OUDS means "Orange Unified Design System". This is a new design system, again, but unified, trying to merge all requirements of Orange brands and affiliates so as to provide a unique design system, unified across all platforms and for all countries, companies, users and apps. Guidelines for TV, Android, iOS and web environments will be merged in a "cohesive" approach, and any Orange-related softwares including brand apps like Parnasse and Sosh, Orange Innovation Cup apps and Orange countries and affiliates app will use this project in the future. The project is open source and topics like accessibility and ecodesign are also managed. It should replace internal frameworks and also ODS in the near future.

Bugs and feature requests

Have a bug or a feature request? Please first search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Contributing

Please read through our contributing guidelines. Included are directions for opening issues, coding standards, and notes on development. More technical details are available also in the DEVELOP file.

Copyright and license

Code released under the MIT License. For images and other assets, please refer to the NOTICE.txt.