2.1 KiB
2.1 KiB
Apple Human Interface Guidelines (HIG) - Core Principles for iOS
@Context: Mobile Whisky Tasting App (Dark Mode)
1. Layout & Structure
- Safe Areas: Always respect the top (Dynamic Island/Notch) and bottom (Home Indicator) safe areas. Never place interactive elements (like the "Save Tasting" sticky button) directly on the bottom edge; add bottom padding.
- Modality (Sheets): For the "Session Context" (Step C in our flow), use native-style Sheets. Supports "detents" (medium/large). Sheets should be dismissible by dragging down.
- Navigation: Use a Navigation Bar for hierarchy. The title (e.g., "Tasting Editor") should be large (Large Title) on top of the scroll view and collapse to a small title on scroll.
2. Touch & Interaction
- Hit Targets: Minimum tappable area is 44x44 pt. Ensure the "Smart Tags" in the form are large enough.
- Feedback: Use Haptics (Haptic Feedback) for significant actions (e.g.,
successhaptic when "Save Tasting" is clicked,selectionhaptic when moving sliders). - Gestures: Support "Swipe Back" to navigate to the previous screen. Do not block this gesture with custom UI.
3. Visual Design (Dark Mode)
- Colors: - Never use pure black (
#000000) for backgrounds. Use semantic system colors or generic dark grays (e.g.,systemBackground/#1C1C1E).- Use
systemGraytosystemGray6for elevation levels (cards on top of background).
- Use
- Typography:
- Use San Francisco (SF Pro) or the defined app fonts (Inter/Playfair).
- Respect Dynamic Type sizes so users can scale text.
- Icons: Use SF Symbols (or Lucide variants closely matching SF Symbols) with consistent stroke weights (usually "Medium" or "Semibold" for active states).
4. Specific Component Rules
- Buttons:
- "Primary" buttons (Save) should use high-contrast background colors.
- "Secondary" buttons (Cancel/Back) should be plain text or tinted glyphs.
- Avoid using multiple primary buttons on one screen.
- Inputs: - Text fields must clearly indicate focus.
- Keyboard: Use the correct keyboard type (e.g.,
decimalPadfor ABV input).
- Keyboard: Use the correct keyboard type (e.g.,