SearchBar
by @szpakkamil
Expert guidance on SearchBar, a customizable SwiftUI search component. Use when developers mention: (1) SearchBar, (2) custom search bars in SwiftUI, (3) search tokens or suggestions, (4) styling search bars (glass, capsule), (5) cross-platform search (iOS, macOS, visionOS), (6) specific SearchBar modifiers like .searchBarStyle or .searchBarSuggestions.
clawhub install searchbarπ About This Skill
name: SearchBar description: 'Expert guidance on SearchBar, a customizable SwiftUI search component. Use when developers mention: (1) SearchBar, (2) custom search bars in SwiftUI, (3) search tokens or suggestions, (4) styling search bars (glass, capsule), (5) cross-platform search (iOS, macOS, visionOS), (6) specific SearchBar modifiers like .searchBarStyle or .searchBarSuggestions.'
SearchBar Skill
Overview
This skill provides expert guidance on SearchBar, a powerful and highly customizable SwiftUI component for creating native-feeling search experiences across iOS, iPadOS, macOS, and visionOS. It bridges the gap between UISearchBar (iOS/visionOS) and native SwiftUI views (macOS), offering a unified API for styling, behavior, and advanced features like search tokens and dynamic suggestions.
Agent Behavior (Follow These Rules)
1. Identify Platform Targets: SearchBar behaves slightly differently on iOS/visionOS (wraps UISearchBar) vs. macOS (custom SwiftUI). Always check or ask for the target platform to provide accurate advice (e.g., specific material effects or token behaviors).
2. Prioritize Modifiers: Direct users to the relevant SearchBar modifiers (e.g., .searchBarStyle, .searchBarSuggestions) rather than suggesting they build custom views from scratch.
3. Clarify Availability: Explicitly mention version requirements (iOS 14+, iOS 16+ for tokens/suggestions) when discussing advanced features.
4. Emphasize Localization: Remind users that SearchBar is fully localized and adapts to system languages automatically.
5. Contextual Examples: Provide concise code snippets that illustrate the recommended usage within a View, often with a binding to @State for text and tokens.
6. Highlight Cross-Platform: When possible, remind users of SearchBar's cross-platform consistency and how to handle platform-specific differences using #if os(...) directives if necessary (though the library handles most internally).
Project Settings
Quick Decision Tree
1. Setting up a basic search bar?
* Basic init and setup β references/SearchBar.md
2. Customizing appearance?
* Changing colors, shape (capsule/rounded) β references/SearchBarStyle.md
* Using "Glass" or "Solid" materials β references/SearchBarStyle.md
* Changing the size/scale β references/SearchBarStyle.md
* Custom icon β references/SearchBarModifiers.md (.searchBarIconView)
3. Configuring behavior?
* Showing/Hiding Cancel or Clear buttons β references/SearchBarDisplayModes.md
* Handling events (begin/end editing, clear, cancel) β references/SearchBarModifiers.md
* Focus management β references/SearchBarModifiers.md (.searchBarIsFocused)
4. Using advanced search features (iOS 16+/visionOS)?
* Adding filter tokens (capsules) β references/SearchBarData.md
* Showing search suggestions β references/SearchBarData.md
* Enabling automatic suggestion filtering β references/SearchBarData.md
Triage-First Playbook
UISearchBar. Styling is consistent but underlying implementation differs.
.searchBarStyle(..., backgroundColor: .red). See references/SearchBarStyle.md.
.searchBarCancelButtonDisplayMode(.never). See references/SearchBarDisplayModes.md.
.searchBarMaterial(.glass). Note platform/version restrictions (iOS 26+). See references/SearchBarStyle.md.Core Patterns Reference
Basic Setup
SearchBar(text: $text, prompt: "Search...")
.searchBarStyle(.rounded)
Advanced Styling
SearchBar(text: $text)
.searchBarStyle(.capsule, textColor: .white, tint: .blue, backgroundColor: .black.opacity(0.8))
.searchBarMaterial(.glass) // iOS 26+ (Experimental/Future)
Tokens & Suggestions
SearchBar(text: $text)
.searchBarCurrentTokens($tokens)
.searchBarSuggestions($suggestions)
.searchBarEnableAutomaticSuggestionsFiltering(true)
Event Handling
SearchBar(text: $text)
.searchBarBeginEditingAction { print("Started") }
.searchBarEndEditingAction { print("Ended") }
.searchBarCancelButtonAction { print("Cancelled") }
Integration Quick Guide
SearchBar is integrated via Swift Package Manager.
1. Add Package Dependency: In Xcode, go to File > Add Package Dependency and enter https://github.com/SzpakKamil/SearchBar.git.
2. Import: import SearchBar in your Swift files.
3. Deployment Targets: Ensure your project targets iOS 14.0+, macOS 11.0+, visionOS 1.0+.
For detailed setup, see references/SearchBar.md.
Reference Files
SearchBar.md - General overview, setup, and initialization.SearchBarModifiers.md - Comprehensive list of all modifiers.SearchBarStyle.md - Styling, materials, corner styles, and scale.SearchBarDisplayModes.md - Cancel and Clear button behaviors.SearchBarData.md - Search Tokens and Suggestions._index.md - Index of all topics.