ouds-ios-components-navigations
Usage and code examples for OUDS iOS Navigations components — OUDSLink (text, indicator, icon, size), OUDSTabBar (iOS 15–25 and iOS 26+ APIs) and Toolbars…
Skill by Orange-OpenSource
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/orange-opensource-ouds-ios-components-navigations
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ouds-ios-components-navigations
What's inside
- Skill name
ouds-ios-components-navigations- Description
- Usage and code examples for OUDS iOS Navigations components — OUDSLink (text, indicator, icon, size), OUDSTabBar (iOS 15–25 and iOS 26+ APIs) and Toolbars (toolBarTop / toolBarBottom + OUDSToolBarItem with back / close / icon / label / badge / prominent style). Load the ouds-ios-framework-usage skill first for imports, themes and image rules.
- License
- MIT
- Instructions
- 423 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# OUDS Navigations components
> Prerequisite: load `ouds-ios-framework-usage` first for imports, themes and image rules
> (`OUDSImage`, `// swiftlint:disable:next accessibility_label_for_image`).
## Link
```swift
OUDSLink(text: "Text", size: .default) {}
OUDSLink(text: "Text", indicator: .previous, size: .default) {}
OUDSLink(text: "Text", image: OUDSImage(asset: Image("ic")), size: .default) {}
OUDSLink(text: "Text", image: OUDSImage(asset: Image("ic"), renderingMode: .original), size: .default) {} // raw image (not tinted)
```
---
## Tab Bar
> Never combine with `OUDSToolBarBottom` on the same screen.
```swift
// iOS 15–25
@State private var selectedTab = 0
OUDSTabBar(selectedTab: $selectedTab, count: 3) {
SomeView().tabItem { Label("Tab 1", image: "ic_1") }.tag(0)
OtherView().tabItem { Label("Tab 2", image: "ic_2") }.tag(1)
}
// iOS 26+
OUDSTabBar {
SomeView().tabItem { Label("Tab 1", image: "ic_1") }
OtherView().tabItem { Label("Tab 2", image: "ic_2") }
}
```
> Tab bar images: 26×26 pt. `OUDSTabBar(selected:count:content:)` (plain `Int`) is deprecated — use `selectedTab: Binding<Int>`.
---
## Toolbars
> Availability: iOS 15+, visionOS 1+. Not available on watchOS, tvOS, macOS.
**Setup (top toolbar):**
- Must be inside `NavigationStack`.
- Call `.oudsNavigationBarAppearance()` once on the root `NavigationStack`.
- On iOS ≤ 18: add `.accentColor(theme.colors.contentDefault)` on root view for the back chevron.
- `subtitle` rendered on iOS 26+ only; ignored when `hasLargeTitle: true`.
- `principalItem` (at most one item, center position): when set, `subtitle` is **never** displayed (whatever `hasLargeTitle` is —
`.principal` only replaces the inline bar title, not `.navigationSubtitle()` on iOS 26+); `title` is displayed only if
`hasLargeTitle: true` (shown below the bar, large mode — never inside the bar next to `principalItem`).
**Setup (bottom toolbar):**
- Never combine with `OUDSTabBar` on the same screen.
- `groupedItems` layout meaningful on iOS 26+ only.
```swift
// Top — minimal
NavigationStack {
ContentView().toolBarTop("Title")
}
// Top — with items
NavigationStack {
ContentView()
.toolBarTop("Title",
leadingItems: { OUDSToolBarItem(navigation: .back()) },
principalItem: OUDSToolBarItem(icon: Image("ic_search"), accessibilityLabel: "Search") {},
trailingItems: {
OUDSToolBarItem(icon: Image("ic_settings"), accessibilityLabel: "Settings") {}
})
}
// Top — principalItem + hasLargeTitle: title shown below the bar (large mode), subtitle never shown
ContentView()
.toolBarTop("Title", hasLargeTitle: true, subtitle: "Never shown",
principalItem: OUDSToolBarItem(icon: Image("ic_search"), accessibilityLabel: "Search") {})
// Top — principalItem without hasLargeTitle: neither title nor subtitle shown
ContentView()
.toolBarTop("Title", principalItem: OUDSToolBarItem(icon: Image("ic_search"), accessibilityLabel: "Search") {})
// Top — large title + subtitle (subtitle iOS 26+ only)
ContentView().toolBarTop("Title", hasLargeTitle: true, subtitle: "Sub")
// Bottom — leading/trailing split
ContentView()
.toolBarBottom(
leadingItems: { OUDSToolBarItem(label: "Edit") {} },
trailingItems: { OUDSToolBarItem(icon: Image("ic_share"), accessibilityLabel: "Share") {} })
// Bottom — grouped (iOS 26+ only)
ContentView()
.toolBarBottom(groupedItems: {
OUDSToolBarItem(label: "Save") {}
OUDSToolBarItem(icon: Image("ic_delete"), accessibilityLabel: "Delete") {}
})
```
**`OUDSToolBarItem` reference:**
```swift
OUDSToolBarItem(label: "Edit") {} // text action
OUDSToolBarItem(icon: Image("ic"), accessibilityLabel: "X") {} // icon action
OUDSToolBarItem(navigation: .back()) // back — auto dismiss
OUDSToolBarItem(navigation: .back(label: "Cancel")) // back with label (ignored iOS 26+)
OUDSToolBarItem(navigation: .back(label: "Back") { saveDraft() }) // back + custom action
OUDSToolBarItem(navigation: .close) // close — NO closure, auto dismiss
// Badge on icon (v2.0.0+) — icon actions only
OUDSToolBarItem(action: .icon(asset: Image("ic_bell"), accessibilityLabel: "Notif",
badgeType: .standard))
OUDSToolBarItem(action: .icon(asset: Image("ic_mail"), accessibilityLabel: "Mail",
badgeType: .number(count: 9)))
// Action style — iOS 26+ only
if #available(iOS 26, *) {
OUDSToolBarItem(action: .label("Save", emphasized: false, accessibilityHint: nil) {},
style: .prominent) // .default | .prominent | .tintedFrom Orange-OpenSource/ouds-ios, MIT.
More from Orange-OpenSource/ouds-ios
- 0.654score
ouds-ios-components-controls
Orange-OpenSource
Usage and code examples for OUDS iOS Controls components — OUDSCheckbox / OUDSCheckboxItem / OUDSCheckboxPicker / OUDSCheckboxIndeterminate, OUDSRadio /…
SkillAFreshness: A★ 36Claude Code +9 - 0.654score
ouds-ios-components-indicators
Orange-OpenSource
Usage and code examples for OUDS iOS Indicators components — OUDSBadgeStandard / OUDSBadgeCount / OUDSBadgeIcon (statuses, sizes, UInt8 count), OUDSTag…
SkillAFreshness: A★ 36Claude Code +9 - 0.654score
ouds-ios-framework-usage
Orange-OpenSource
Setup and general usage of the OUDS iOS framework — imports, themes, token namespaces, view modifiers, image rules, shared control patterns and custom font…
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-layouts
Orange-OpenSource
Usage and code examples for OUDS iOS Layouts components — OUDSColoredSurface (color-mode tokens container) and OUDSHorizontalDivider / OUDSVerticalDivider.
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-dialogs
Orange-OpenSource
Usage and code examples for OUDS iOS Dialogs components — OUDSAlertMessage (statuses, bullet list, link, dismiss) and OUDSInlineAlert (statuses, icon).
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-content-display
Orange-OpenSource
Usage and code examples for OUDS iOS Content Display components — OUDSBulletList (unordered, ordered, nested items, raw / localized / rich…
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-foundations
Orange-OpenSource
Usage and code examples for OUDS iOS Foundations components — Typography (OUDSDisplay, OUDSHeading, OUDSBody, OUDSLabel, OUDSCode).
SkillAFreshness: A★ 36Claude Code +9 - 0.648score
ouds-ios-guide-figma-to-swift
Orange-OpenSource
How to derive a Swift token name from a Figma token path in the OUDS iOS project (raw, semantic and component tokens)
SkillAFreshness: A★ 36Claude Code +9 - 0.646score
ouds-ios-components-actions
Orange-OpenSource
Usage and code examples for OUDS iOS Action components — OUDSButton (text, icon, loading state, text+icon, icon-only with accessibility label).
SkillAFreshness: A★ 36Claude Code +9 - 0.629score
ouds-ios-guide-vocabulary
Orange-OpenSource
Use when the user asks about OUDS-specific terms such as tokenator, token, raw token, semantic token, component token, theme, tuning, token provider, or…
SkillAFreshness: A★ 36Claude Code +9 - 0.620score
ouds-ios-guide-create-theme
Orange-OpenSource
Use when the user wants to create a custom OUDS theme or brand theme for an iOS app — covers subclassing OrangeTheme, building a theme from scratch on…
SkillAFreshness: A★ 36Claude Code +9 - 0.620score
ouds-ios-guide-migration
Orange-OpenSource
Use when the user wants to migrate OUDS iOS code from an older version (1.0.0 or later) to the current version (3.2.0 or higher), or when deprecated or…
SkillAFreshness: A★ 36Claude Code +9
Signals
- Stars
- 36
- Forks
- 12
- Open issues
- 163
- Last commit (this folder)
- Oct 21, 2026 (7 days ago)
- Last release
- Oct 21, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Orange-OpenSource/ouds-ios
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Orange-OpenSource
- 0.654score
ouds-ios-components-controls
Orange-OpenSource
Usage and code examples for OUDS iOS Controls components — OUDSCheckbox / OUDSCheckboxItem / OUDSCheckboxPicker / OUDSCheckboxIndeterminate, OUDSRadio /…
SkillAFreshness: A★ 36Claude Code +9 - 0.654score
ouds-ios-components-indicators
Orange-OpenSource
Usage and code examples for OUDS iOS Indicators components — OUDSBadgeStandard / OUDSBadgeCount / OUDSBadgeIcon (statuses, sizes, UInt8 count), OUDSTag…
SkillAFreshness: A★ 36Claude Code +9 - 0.654score
ouds-ios-framework-usage
Orange-OpenSource
Setup and general usage of the OUDS iOS framework — imports, themes, token namespaces, view modifiers, image rules, shared control patterns and custom font…
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-layouts
Orange-OpenSource
Usage and code examples for OUDS iOS Layouts components — OUDSColoredSurface (color-mode tokens container) and OUDSHorizontalDivider / OUDSVerticalDivider.
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-dialogs
Orange-OpenSource
Usage and code examples for OUDS iOS Dialogs components — OUDSAlertMessage (statuses, bullet list, link, dismiss) and OUDSInlineAlert (statuses, icon).
SkillAFreshness: A★ 36Claude Code +9 - 0.651score
ouds-ios-components-content-display
Orange-OpenSource
Usage and code examples for OUDS iOS Content Display components — OUDSBulletList (unordered, ordered, nested items, raw / localized / rich…
SkillAFreshness: A★ 36Claude Code +9
Cite this page
ouds-ios-components-navigations skill. Agent Mart. https://agentmart.dev/skills/orange-opensource-ouds-ios-components-navigations (last updated 2026-10-24)