Loading repository data…
Loading repository data…
Orange-OpenSource / repository
A Swift Package of SwiftUI components library for Orange developers with Orange Unified Design System. Build Sharper. Ship faster. Perform better.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
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 and , apps and Orange countries and affiliates app will use this project in the future.
The project is open source (except some assets) and topics like accessibility and ecodesign are also considered.
It replaces internal frameworks and also ODS as the only one design system for Orange group and affiliates.
[!CAUTION] This Swift Package is dedicated to SwiftUI. UIKit and other frameworks are not supported.
[!NOTE] Main targets are iOS / iPadOS, and we do our best to support macOS, visionOS, tvOS and watchOS!
You can try our Swift Package online tutorials which will explain how to embed and use OUDS iOS Swift Package for your app.
You can find available releases on GitHub releases. The wiki contains also a page listing the available API. Versions, builds and releases are explained also in this page.
First, you must add as package dependency of your project the URL of this Swift Package GitHub repository:
https://github.com/Orange-OpenSource/ouds-ios
You can choose the dependency rule you want. Keep in mind OUDS iOS releases are frozen and are based on semantic versioning.
In your Xcode targets, add the librairies you need. Everything is splitted so as to let users choose the content to embed they want.
The OUDSSwiftUI library embeds everything, but you may prefer instead tailor your imports.
You can get the detailed list of available librairies in the documentation.
More technical details in the wiki.
In the root view of your app, add the OUDSThemeableView with inside the theme object you want to apply.
You can instanciate the theme object on the fly, but only once.
@main
struct YourApp: App {
var body: some Scene {
WindowGroup {
OUDSThemeableView(theme: theTheme) { // theTheme can be: OrangeTheme(), SoshTheme(), WirefameTheme(), etc.
AppRootView() // Add your app root view here
}
}
}
}
Feel free to read the online documentation. You can find also more details about theme instanciations online.
If you need to get configuration details from the theme (colors, dimensions, etc.), get the theme through environment object:
@Environment(\.theme) var theme
Import the OUDSComponents library and instanciate the component you need. All of them are described in the online documentation (and grouped by categories).
The wiki lists also the components and their availability.
[!NOTE] This repository contains the OUDS iOS library, as a Swift Package, that provides Orange iOS components for its unified design system.
You can find the detailed technical documentation online, and also the whole design system.
Details about the project are also available in the wiki.
You can find the available API online on the wiki.
[!IMPORTANT] The design system toolbox app, i.e. the showcase app, is on Orange-OpenSource/ouds-ios-design-system-toolbox.
[!TIP] Releases are immutable and in most of time cryptographically signed (commits, tags and artifacts). You can verify their integrity with commands from GPG tool of GitHub CLI client. Please refer to the wiki to choose the options you need
[!TIP] This Swift package embeds specific versions of themes / tokens librairies. You can find more details in the online documentation and also in the wiki.
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.
If you want to share ideas or discuss about API, features, components or other topics, you should first open a new discussion. Q&A is more dedicated for help, otherwise feel free to open or update a topic in Ideas. Keep in mind internal or sensitive discussions must be in internal tools, not public ones.
If your discussions, requests or issues are about the design system toolbox app