ouds-ios-components-controls
Usage and code examples for OUDS iOS Controls components — OUDSCheckbox / OUDSCheckboxItem / OUDSCheckboxPicker / OUDSCheckboxIndeterminate, OUDSRadio /…
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-controls
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
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-controls
What's inside
- Skill name
ouds-ios-components-controls- Description
- Usage and code examples for OUDS iOS Controls components — OUDSCheckbox / OUDSCheckboxItem / OUDSCheckboxPicker / OUDSCheckboxIndeterminate, OUDSRadio / OUDSRadioItem / OUDSRadioPicker, OUDSSwitch / OUDSSwitchItem, OUDSSuggestionChip / OUDSFilterChip / OUDSChipPicker, OUDSPinCodeInput, OUDSPasswordInput, OUDSTextInput, OUDSTextArea. Load the ouds-ios-framework-usage skill first for imports, themes and image rules.
- License
- MIT
- Instructions
- 254 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# OUDS Controls components
> Prerequisite: load `ouds-ios-framework-usage` first for imports, themes and image rules
> (`OUDSImage`, `// swiftlint:disable:next accessibility_label_for_image`).
## Common patterns (shared across most Controls)
These patterns apply to Checkbox, Radio, Switch, TextInput, TextArea, PinCodeInput, PasswordInput unless noted otherwise.
| Pattern | Syntax |
|---|---|
| Error state | `isError: true, errorText: .raw("Message")` — `errorText` is an `OUDSTextualContent` (`.raw`, `.localized`, `.rich`); prefer `.raw("…")` to a bare literal to avoid a deprecation warning |
| Rich error | `errorText: .rich(AttributedString)` |
| Plain helper | `helperText: .raw("…")` (`OUDSTextArea`: `helperText: .textual("…")`) — `helperText` is an `OUDSTextualContent` (`.raw`, `.localized`, `.rich`); prefer `.raw("…")` to a bare literal to avoid a deprecation warning |
| Rich helper | `helperText: .rich(AttributedString)` (`OUDSTextArea`: `helperText: .textual(.rich(AttributedString))`) |
| Error status (inputs) | `status: .textualError(message: "…")` — message is an `OUDSTextualContent` |
| Rich error status | `status: .textualError(message: .rich(AttributedString))` |
| Read-only | `isReadOnly: true` |
| Disabled | `.disabled(true)` — never combine with `isError` or `isReadOnly` |
> `OUDSSwitchItem`, `OUDSCheckboxItem`, `OUDSCheckboxItemIndeterminate` and `OUDSRadioItem` `errorText` as `String` / `AttributedString` is **deprecated** since v3.2.0, use `OUDSTextualContent`.
> **Literal pitfall**: a bare `errorText: "abc"` may select a deprecated initializer (warning) because `AttributedString` is expressible by a string literal. Write `errorText: .raw("abc")`.
> **Forbidden combinations** (fatal error at runtime): `isError` + `isReadOnly`, `isError` + `.disabled`, `isReadOnly` + `.disabled`
---
## Checkbox
```swift
OUDSCheckbox(isOn: $isOn, accessibilityLabel: "Label")
OUDSCheckboxIndeterminate(selection: $selection, accessibilityLabel: "Label")
OUDSCheckboxItem("Label", isOn: $isOn)
OUDSCheckboxItem("Label", isOn: $isOn, description: "Helper",
image: OUDSImage(asset: Image(decorative: "ic")))
OUDSCheckboxItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "ic")), isReversed: true)
// Raw (non-tinted) image:
OUDSCheckboxItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "il_brand"), renderingMode: .original))
// Flip icon for RTL:
OUDSCheckboxItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(systemName: "figure.handball"),
flipped: layoutDirection == .rightToLeft))
// LocalizedStringKey:
OUDSCheckboxItem(LocalizedStringKey("agree_terms"), bundle: Bundle.module, isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "ic")))
// Indeterminate (three states) — also accepts LocalizedStringKey and an OUDSTextualContent errorText:
OUDSCheckboxItemIndeterminate("Label", selection: $selection,
image: OUDSImage(asset: Image(decorative: "ic")))
OUDSCheckboxItemIndeterminate(LocalizedStringKey("select_all"), bundle: Bundle.module,
selection: $selection)
// Error text: raw, localized or rich OUDSTextualContent
OUDSCheckboxItem("Label", isOn: $isOn, isError: true, errorText: .rich(AttributedString(…)))
// Error / helper / disabled → see "Common patterns" above
```
> Parameter order: `(_ label:, isOn:, description:, image:, isReversed:, isError:, errorText:, isReadOnly:, hasDivider:, constrainedMaxWidth:, action:)`
```swift
// Picker — image is OUDSImage?
OUDSCheckboxPicker(selections: $selections, checkboxes: [
.init(tag: "a", label: "Option A"),
.init(tag: "b", label: "Option B", description: "Details", isReversed: true),
.init(tag: "c", label: "Option C", image: OUDSImage(asset: Image(systemName: "flame"))),
.init(tag: "d", label: "Option D",
image: OUDSImage(asset: Image(decorative: "il_brand"), renderingMode: .original)),
])
OUDSCheckboxPicker(selections: $selections, checkboxes: data,
placement: .verticalRooted("All options", .textAndCount))
OUDSCheckboxPicker(selections: $selections, checkboxes: data,
isReversed: true, placement: .horizontal(true))
```
---
## Radio Button
```swift
OUDSRadio(isOn: $isOn, accessibilityLabel: "Label")
OUDSRadioItem("Label", isOn: $isOn)
OUDSRadioItem("Label", isOn: $isOn, image: OUDSImage(asset: Image(decorative: "ic")))
// Raw (non-tinted) image:
OUDSRadioItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "il_brand"), renderingMode: .original))
// Flip icon for RTL:
OUDSRadioItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(systemName: "chevron.right"),
flipped: layoutDirection == .rightToLeft))
// LocalizedStringKey:
OUDSRadioItem(LocalizedStringKey("option_label"), bundle: Bundle.module, isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "ic")))
// Error text: raw, localized or rich OUDSTextualContent
OUDSRadioItem("Label", isOn: $isOn, isError: true, errorText: .rich(AttributedString(…)))
// Error / helper / disabled → see "Common patterns" above
OUDSRadioPicker(selection: $selection,
radios: [
.init(tag: "a", label: "Option A"),
.init(tag: "b", label: "Option B",
image: OUDSImage(asset: Image(systemName: "flame"))),
.init(tag: "c", label: "Option C",
image: OUDSImage(asset: Image(decorative: "il_brand"),
renderingMode: .original)),
],
placement: .vertical)
```
---
## Switch
```swift
OUDSSwitch(isOn: $isOn, accessibilityLabel: "Label")
OUDSSwitchItem("Label", isOn: $isOn)
OUDSSwitchItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "ic")))
// Raw (non-tinted) image:
OUDSSwitchItem("Label", isOn: $isOn,
image: OUDSImage(asset: Image(decorative: "il_brand"), renderingMode: .original))From Orange-OpenSource/ouds-ios, MIT.
More from Orange-OpenSource/ouds-ios
- 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.654score
ouds-ios-components-navigations
Orange-OpenSource
Usage and code examples for OUDS iOS Navigations components — OUDSLink (text, indicator, icon, size), OUDSTabBar (iOS 15–25 and iOS 26+ APIs) and Toolbars…
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-foundations
Orange-OpenSource
Usage and code examples for OUDS iOS Foundations components — Typography (OUDSDisplay, OUDSHeading, OUDSBody, OUDSLabel, OUDSCode).
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-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.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-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.654score
ouds-ios-components-navigations
Orange-OpenSource
Usage and code examples for OUDS iOS Navigations components — OUDSLink (text, indicator, icon, size), OUDSTabBar (iOS 15–25 and iOS 26+ APIs) and Toolbars…
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-foundations
Orange-OpenSource
Usage and code examples for OUDS iOS Foundations components — Typography (OUDSDisplay, OUDSHeading, OUDSBody, OUDSLabel, OUDSCode).
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-controls skill. Agent Mart. https://agentmart.dev/skills/orange-opensource-ouds-ios-components-controls (last updated 2026-10-24)