SymbolPicker
by @szpakkamil
Expert guidance on SymbolPicker, a native SwiftUI SF Symbol picker. Use when developers mention: (1) SymbolPicker, (2) selecting SF Symbols, (3) picking symbols with colors, (4) customizing symbol picker appearance, (5) cross-platform symbol selection (iOS, macOS, visionOS), (6) specific modifiers like .symbolPickerSymbolsStyle or .symbolPickerDismiss.
clawhub install symbolpickerπ About This Skill
name: SymbolPicker description: 'Expert guidance on SymbolPicker, a native SwiftUI SF Symbol picker. Use when developers mention: (1) SymbolPicker, (2) selecting SF Symbols, (3) picking symbols with colors, (4) customizing symbol picker appearance, (5) cross-platform symbol selection (iOS, macOS, visionOS), (6) specific modifiers like .symbolPickerSymbolsStyle or .symbolPickerDismiss.'
SymbolPicker Skill
Overview
This skill provides expert guidance on SymbolPicker, a native, customizable SwiftUI component for selecting SF Symbols on iOS, iPadOS, macOS, and visionOS. It mimics Appleβs native interface while offering extensive customization for colors, styles (filled/outlined), and behavior.
Agent Behavior (Follow These Rules)
1. Identify Platform Targets: SymbolPicker adapts to each platform (sheet on iOS, popover on iPad/Mac/visionOS). Always verify the target platform.
2. Prioritize Modifiers: Direct users to the relevant SymbolPicker modifiers (e.g., .symbolPickerSymbolsStyle, .symbolPickerDismiss) for customization.
3. Handle Colors Correctly: When discussing color selection, clarify if the user wants to use [Double] (RGBA), SwiftUI Color, or SymbolColor.
4. Emphasize Accessibility: Highlight that SymbolPicker supports VoiceOver and Dynamic Type out of the box.
5. Contextual Examples: Provide concise code snippets showing the .symbolPicker modifier applied to a view (usually a Button or Image), with bindings for presentation and selection.
6. Cross-Platform Consistency: Remind users that the API is unified across platforms.
Project Settings
Quick Decision Tree
1. Setting up a basic symbol picker?
* Basic installation and concepts β references/SymbolPicker.md
* To apply the modifier to a view β references/SymbolPickerView.md
2. Picking symbols with color?
* To use different color binding types β references/SymbolPickerView.md
* To understand the SymbolColor model β references/SymbolColor.md
3. Customizing appearance or behavior?
* Switching between filled/outlined icons β references/SymbolPickerModifiers.md (.symbolPickerSymbolsStyle)
* Controlling dismissal behavior β references/SymbolPickerModifiers.md (.symbolPickerDismiss)
Triage-First Playbook
.symbolPicker(isPresented: ...) is attached to a view that is part of the hierarchy.
* Ensure the isPresented binding is being toggled true.
.symbolPickerSymbolsStyle(.filled).
.symbolPickerDismiss(type: .onSymbolSelect).Core Patterns Reference
Basic Usage
@State private var isPresented = false
@State private var icon = "star"Button("Pick Icon") { isPresented = true }
.symbolPicker(isPresented: $isPresented, symbolName: $icon)
With Color Selection
@State private var isPresented = false
@State private var icon = "star.fill"
@State private var color: Color = .redButton("Pick Icon & Color") { isPresented = true }
.symbolPicker(isPresented: $isPresented, symbolName: $icon, color: $color)
.symbolPickerSymbolsStyle(.filled)
.symbolPickerDismiss(type: .onSymbolSelect)
Integration Quick Guide
1. Add Package Dependency: https://github.com/SzpakKamil/SymbolPicker.git (Min version 1.0.0).
2. Import: import SymbolPicker.
3. Requirements: iOS 14.0+, macOS 11.0+, visionOS 1.0+.
Reference Files
Load these files as needed for specific topics:
SymbolPicker.md - General overview, setup, and core benefits.SymbolPickerView.md - Detailed information on the picker view and its initializers.SymbolPickerModifiers.md - Customization of style (filled/outlined) and dismissal behavior.SymbolColor.md - Guide to using the SymbolColor enum and color bindings.SetUp.md - Step-by-step installation instructions.