Apple HIG: Selection and Input Controls
Check for .claude/apple-design-context.md before asking questions. Use existing context and only ask for information not already covered.
Key Principles
Clear current state. Users must always see what is selected. Toggles show on/off, segmented controls highlight the active segment, pickers display the current selection.
Prefer standard system controls. Built-in controls provide consistency and accessibility. Custom controls introduce a learning curve and may break assistive features.
Toggles for binary states. On or off. In Settings-style screens, changes take effect immediately. In modal forms, changes commit on confirmation.
Segmented controls for mutually exclusive options. 2-5 items, roughly equal importance, short labels.
Sliders for continuous values. When precise numeric input is not critical. Provide min/max labels or icons for range endpoints.
Pickers for long option lists. Too many options for a segmented control. Works well for dates, times, structured data.
Steppers for small, precise adjustments. Increment/decrement in fixed steps. Display current value next to the stepper with reasonable min/max bounds.
Text fields for short, single-line input. Text views for multi-line. Configure keyboard type to match expected input (email, URL, number).
Combo boxes: text input + selection list. macOS. Type a value or choose from a predefined list when custom values are valid.
Token fields: discrete values as visual tokens. macOS. For email recipients, tags, or collections of discrete items.
Gauges and rating indicators display values. Gauges show a value within a range. Rating indicators show ratings (often stars). Display-only; use interactive variants for input.
Reference Index
| Reference |
Topic |
Key content |
| controls.md |
General controls |
States, affordance, system controls |
| toggles.md |
Toggles |
On/off, immediate effect |
| segmented-controls.md |
Segmented controls |
2-5 options, equal weight |
| sliders.md |
Sliders |
Continuous range, min/max labels |
| steppers.md |
Steppers |
Fixed steps, bounded values |
| pickers.md |
Pickers |
Dates, times, long option sets |
| combo-boxes.md |
Combo boxes |
macOS, type or select, custom values |
| text-fields.md |
Text fields |
Short input, keyboard types, validation |
| text-views.md |
Text views |
Multi-line, comments, descriptions |
| labels.md |
Labels |
Placement, VoiceOver support |
| token-fields.md |
Token fields |
macOS, chips, tags, recipients |
| virtual-keyboards.md |
Virtual keyboards |
Email, URL, number keyboard types |
| rating-indicators.md |
Rating indicators |
Star ratings, display-only |
| gauges.md |
Gauges |
Level indicators, range display |
Output Format
- Control recommendation with rationale and why alternatives are less suitable.
- State management -- how the control communicates current state and whether changes apply immediately or on confirmation.
- Validation approach -- when to show errors and how to communicate rules.
- Accessibility -- labels, traits, hints for VoiceOver.
Questions to Ask
- What type of data? (Boolean, choice from fixed set, numeric, free-form text?)
- How many options?
- Which platforms? (Combo boxes and token fields are macOS-only)
- Settings screen or inline form?
Related Skills
- hig-components-menus -- Buttons and pop-up buttons complementing selection controls
- hig-components-dialogs -- Sheets and popovers containing forms
- hig-components-search -- Search fields sharing text input patterns
- hig-inputs -- Keyboard, pointer, gesture interactions with controls
- hig-foundations -- Typography, color, layout for control styling
Built by Raintree Technology · More developer tools
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
AGI Framework Integration
Adapted for @techwavedev/agi-agent-kit
Original source: antigravity-awesome-skills
Memory-First Protocol
Retrieve prior design decisions (color palettes, typography, spacing scales) to maintain visual consistency across sessions. Cache generated design tokens.
# Check for prior frontend/design context before starting
python3 execution/memory_manager.py auto --query "design system decisions and component patterns for Hig Components Controls"
Storing Results
After completing work, store frontend/design decisions for future sessions:
python3 execution/memory_manager.py store \
--content "Design system: adopted 8px grid, Inter font family, HSL color tokens with dark mode support" \
--type decision --project <project> \
--tags hig-components-controls frontend
Multi-Agent Collaboration
Share design decisions with backend agents (API contract changes) and QA agents (visual regression baselines).
python3 execution/cross_agent_context.py store \
--agent "<your-agent>" \
--action "Implemented UI components — new design system with accessibility compliance (WCAG 2.1 AA)" \
--project <project>
Design Memory Persistence
Store design system tokens and component decisions in Qdrant so any agent on any platform (Claude, Gemini, Cursor) can retrieve and apply consistent styling.
1---2name: hig-components-controls3description: Check for .claude/apple-design-context.md before asking questions. Use existing context and only ask for information not already covered.4---56# Apple HIG: Selection and Input Controls78Check for `.claude/apple-design-context.md` before asking questions. Use existing context and only ask for information not already covered.910## Key Principles11121. **Clear current state.** Users must always see what is selected. Toggles show on/off, segmented controls highlight the active segment, pickers display the current selection.13142. **Prefer standard system controls.** Built-in controls provide consistency and accessibility. Custom controls introduce a learning curve and may break assistive features.15163. **Toggles for binary states.** On or off. In Settings-style screens, changes take effect immediately. In modal forms, changes commit on confirmation.17184. **Segmented controls for mutually exclusive options.** 2-5 items, roughly equal importance, short labels.19205. **Sliders for continuous values.** When precise numeric input is not critical. Provide min/max labels or icons for range endpoints.21226. **Pickers for long option lists.** Too many options for a segmented control. Works well for dates, times, structured data.23247. **Steppers for small, precise adjustments.** Increment/decrement in fixed steps. Display current value next to the stepper with reasonable min/max bounds.25268. **Text fields for short, single-line input.** Text views for multi-line. Configure keyboard type to match expected input (email, URL, number).27289. **Combo boxes: text input + selection list.** macOS. Type a value or choose from a predefined list when custom values are valid.293010. **Token fields: discrete values as visual tokens.** macOS. For email recipients, tags, or collections of discrete items.313211. **Gauges and rating indicators display values.** Gauges show a value within a range. Rating indicators show ratings (often stars). Display-only; use interactive variants for input.3334## Reference Index3536| Reference | Topic | Key content |37|---|---|---|38| [controls.md](references/controls.md) | General controls | States, affordance, system controls |39| [toggles.md](references/toggles.md) | Toggles | On/off, immediate effect |40| [segmented-controls.md](references/segmented-controls.md) | Segmented controls | 2-5 options, equal weight |41| [sliders.md](references/sliders.md) | Sliders | Continuous range, min/max labels |42| [steppers.md](references/steppers.md) | Steppers | Fixed steps, bounded values |43| [pickers.md](references/pickers.md) | Pickers | Dates, times, long option sets |44| [combo-boxes.md](references/combo-boxes.md) | Combo boxes | macOS, type or select, custom values |45| [text-fields.md](references/text-fields.md) | Text fields | Short input, keyboard types, validation |46| [text-views.md](references/text-views.md) | Text views | Multi-line, comments, descriptions |47| [labels.md](references/labels.md) | Labels | Placement, VoiceOver support |48| [token-fields.md](references/token-fields.md) | Token fields | macOS, chips, tags, recipients |49| [virtual-keyboards.md](references/virtual-keyboards.md) | Virtual keyboards | Email, URL, number keyboard types |50| [rating-indicators.md](references/rating-indicators.md) | Rating indicators | Star ratings, display-only |51| [gauges.md](references/gauges.md) | Gauges | Level indicators, range display |5253## Output Format54551. **Control recommendation with rationale** and why alternatives are less suitable.562. **State management** -- how the control communicates current state and whether changes apply immediately or on confirmation.573. **Validation approach** -- when to show errors and how to communicate rules.584. **Accessibility** -- labels, traits, hints for VoiceOver.5960## Questions to Ask61621. What type of data? (Boolean, choice from fixed set, numeric, free-form text?)632. How many options?643. Which platforms? (Combo boxes and token fields are macOS-only)654. Settings screen or inline form?6667## Related Skills6869- **hig-components-menus** -- Buttons and pop-up buttons complementing selection controls70- **hig-components-dialogs** -- Sheets and popovers containing forms71- **hig-components-search** -- Search fields sharing text input patterns72- **hig-inputs** -- Keyboard, pointer, gesture interactions with controls73- **hig-foundations** -- Typography, color, layout for control styling7475---7677*Built by [Raintree Technology](https://raintree.technology) · [More developer tools](https://raintree.technology)*7879## When to Use80This skill is applicable to execute the workflow or actions described in the overview.8182---8384<!-- AGI-INTEGRATION-START -->8586## AGI Framework Integration8788> **Adapted for [@techwavedev/agi-agent-kit](https://www.npmjs.com/package/@techwavedev/agi-agent-kit)**89> Original source: [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills)9091### Memory-First Protocol9293Retrieve prior design decisions (color palettes, typography, spacing scales) to maintain visual consistency across sessions. Cache generated design tokens.9495```bash96# Check for prior frontend/design context before starting97python3 execution/memory_manager.py auto --query "design system decisions and component patterns for Hig Components Controls"98```99100### Storing Results101102After completing work, store frontend/design decisions for future sessions:103104```bash105python3 execution/memory_manager.py store \106 --content "Design system: adopted 8px grid, Inter font family, HSL color tokens with dark mode support" \107 --type decision --project <project> \108 --tags hig-components-controls frontend109```110111### Multi-Agent Collaboration112113Share design decisions with backend agents (API contract changes) and QA agents (visual regression baselines).114115```bash116python3 execution/cross_agent_context.py store \117 --agent "<your-agent>" \118 --action "Implemented UI components — new design system with accessibility compliance (WCAG 2.1 AA)" \119 --project <project>120```121122### Design Memory Persistence123124Store design system tokens and component decisions in Qdrant so any agent on any platform (Claude, Gemini, Cursor) can retrieve and apply consistent styling.125126<!-- AGI-INTEGRATION-END -->