[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-minimax-ios-application-dev":3,"mdc-kau8dr-key":40,"related-repo-minimax-ios-application-dev":1737,"related-org-minimax-ios-application-dev":1860},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":29,"repoUrl":30,"updatedAt":31,"license":32,"forks":33,"topics":34,"repo":35,"sourceUrl":38,"mdContent":39},"ios-application-dev","develop iOS applications with SwiftUI and UIKit","iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files.\nUse when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit\u002FSnapKit\u002FSwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"minimax","MiniMax","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fminimax.jpg","MiniMax-AI",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"SwiftUI","swiftui","tag",{"name":18,"slug":19,"type":16},"Accessibility","accessibility",{"name":21,"slug":22,"type":16},"iOS","ios",{"name":24,"slug":25,"type":16},"Mobile","mobile",{"name":27,"slug":28,"type":16},"UI Components","ui-components",13030,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills","2026-07-13T06:16:55.686092","MIT",1118,[],{"repoUrl":30,"stars":29,"forks":33,"topics":36,"description":37},[],null,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fios-application-dev","---\nname: ios-application-dev\ndescription: |\n  iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files.\n  Use when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit\u002FSnapKit\u002FSwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.\nlicense: MIT\nmetadata:\n  author: MiniMax-OpenSource\n  version: \"1.0.0\"\n  category: mobile\n  sources:\n    - Apple Human Interface Guidelines\n    - Apple Developer Documentation\n---\n\n# iOS Application Development Guide\n\nA practical guide for building iOS applications using UIKit, SnapKit, and SwiftUI. Focuses on proven patterns and Apple platform conventions.\n\n## Quick Reference\n\n### UIKit\n\n| Purpose | Component |\n|---------|-----------|\n| Main sections | `UITabBarController` |\n| Drill-down | `UINavigationController` |\n| Focused task | Sheet presentation |\n| Critical choice | `UIAlertController` |\n| Secondary actions | `UIContextMenuInteraction` |\n| List content | `UICollectionView` + `DiffableDataSource` |\n| Sectioned list | `DiffableDataSource` + `headerMode` |\n| Grid layout | `UICollectionViewCompositionalLayout` |\n| Search | `UISearchController` |\n| Share | `UIActivityViewController` |\n| Location (once) | `CLLocationButton` |\n| Feedback | `UIImpactFeedbackGenerator` |\n| Linear layout | `UIStackView` |\n| Custom shapes | `CAShapeLayer` + `UIBezierPath` |\n| Gradients | `CAGradientLayer` |\n| Modern buttons | `UIButton.Configuration` |\n| Dynamic text | `UIFontMetrics` + `preferredFont` |\n| Dark mode | Semantic colors (`.systemBackground`, `.label`) |\n| Permissions | Contextual request + `AVCaptureDevice` |\n| Lifecycle | `UIApplication` notifications |\n\n### SwiftUI\n\n| Purpose | Component |\n|---------|-----------|\n| Main sections | `TabView` + `tabItem` |\n| Drill-down | `NavigationStack` + `NavigationPath` |\n| Focused task | `.sheet` + `presentationDetents` |\n| Critical choice | `.alert` |\n| Secondary actions | `.contextMenu` |\n| List content | `List` + `.insetGrouped` |\n| Search | `.searchable` |\n| Share | `ShareLink` |\n| Location (once) | `LocationButton` |\n| Feedback | `UIImpactFeedbackGenerator` |\n| Progress (known) | `ProgressView(value:total:)` |\n| Progress (unknown) | `ProgressView()` |\n| Dynamic text | `.font(.body)` semantic styles |\n| Dark mode | `.primary`, `.secondary`, `Color(.systemBackground)` |\n| Scene lifecycle | `@Environment(\\.scenePhase)` |\n| Reduce motion | `@Environment(\\.accessibilityReduceMotion)` |\n| Dynamic type | `@Environment(\\.dynamicTypeSize)` |\n\n## Core Principles\n\n### Layout\n- Touch targets >= 44pt\n- Content within safe areas (SwiftUI respects by default, use `.ignoresSafeArea()` only for backgrounds)\n- Use 8pt spacing increments (8, 16, 24, 32, 40, 48)\n- Primary actions in thumb zone\n- Support all screen sizes (iPhone SE 375pt to Pro Max 430pt)\n\n### Typography\n- UIKit: `preferredFont(forTextStyle:)` + `adjustsFontForContentSizeCategory = true`\n- SwiftUI: semantic text styles `.headline`, `.body`, `.caption`\n- Custom fonts: `UIFontMetrics` \u002F `Font.custom(_:size:relativeTo:)`\n- Adapt layout at accessibility sizes (minimum 11pt)\n\n### Colors\n- Use semantic system colors (`.systemBackground`, `.label`, `.primary`, `.secondary`)\n- Asset catalog variants for custom colors (Any\u002FDark Appearance)\n- No color-only information (pair with icons or text)\n- Contrast ratio >= 4.5:1 for normal text, 3:1 for large text\n\n### Accessibility\n- Labels on icon buttons (`.accessibilityLabel()`)\n- Reduce motion respected (`@Environment(\\.accessibilityReduceMotion)`)\n- Logical reading order (`.accessibilitySortPriority()`)\n- Support Bold Text, Increase Contrast preferences\n\n### Navigation\n- Tab bar (3-5 sections) stays visible during navigation\n- Back swipe works (never override system gestures)\n- State preserved across tabs (`@SceneStorage`, `@State`)\n- Never use hamburger menus\n\n### Privacy & Permissions\n- Request permissions in context (not at launch)\n- Custom explanation before system dialog\n- Support Sign in with Apple\n- Respect ATT denial\n\n## Checklist\n\n### Layout\n- [ ] Touch targets >= 44pt\n- [ ] Content within safe areas\n- [ ] Primary actions in thumb zone (bottom half)\n- [ ] Flexible widths for all screen sizes (SE to Pro Max)\n- [ ] Spacing aligns to 8pt grid\n\n### Typography\n- [ ] Semantic text styles or UIFontMetrics-scaled custom fonts\n- [ ] Dynamic Type supported up to accessibility sizes\n- [ ] Layouts reflow at large sizes (no truncation)\n- [ ] Minimum text size 11pt\n\n### Colors\n- [ ] Semantic system colors or light\u002Fdark asset variants\n- [ ] Dark Mode is intentional (not just inverted)\n- [ ] No color-only information\n- [ ] Text contrast >= 4.5:1 (normal) \u002F 3:1 (large)\n- [ ] Single accent color for interactive elements\n\n### Accessibility\n- [ ] VoiceOver labels on all interactive elements\n- [ ] Logical reading order\n- [ ] Bold Text preference respected\n- [ ] Reduce Motion disables decorative animations\n- [ ] All gestures have alternative access paths\n\n### Navigation\n- [ ] Tab bar for 3-5 top-level sections\n- [ ] No hamburger\u002Fdrawer menus\n- [ ] Tab bar stays visible during navigation\n- [ ] Back swipe works throughout\n- [ ] State preserved across tabs\n\n### Components\n- [ ] Alerts for critical decisions only\n- [ ] Sheets have dismiss path (button and\u002For swipe)\n- [ ] List rows >= 44pt tall\n- [ ] Destructive buttons use `.destructive` role\n\n### Privacy\n- [ ] Permissions requested in context (not at launch)\n- [ ] Custom explanation before system permission dialog\n- [ ] Sign in with Apple offered with other providers\n- [ ] Basic features usable without account\n- [ ] ATT prompt shown if tracking, denial respected\n\n### System Integration\n- [ ] App handles interruptions gracefully (calls, background, Siri)\n- [ ] App content indexed for Spotlight\n- [ ] Share Sheet available for shareable content\n\n## References\n\n| Topic | Reference |\n|-------|-----------|\n| Touch Targets, Safe Area, CollectionView | [Layout System](references\u002Flayout-system.md) |\n| TabBar, NavigationController, Modal | [Navigation Patterns](references\u002Fnavigation-patterns.md) |\n| StackView, Button, Alert, Search, ContextMenu | [UIKit Components](references\u002Fuikit-components.md) |\n| CAShapeLayer, CAGradientLayer, Core Animation | [Graphics & Animation](references\u002Fgraphics-animation.md) |\n| Dynamic Type, Semantic Colors, VoiceOver | [Accessibility](references\u002Faccessibility.md) |\n| Permissions, Location, Share, Lifecycle, Haptics | [System Integration](references\u002Fsystem-integration.md) |\n| Metal Shaders & GPU | [Metal Shader Reference](references\u002Fmetal-shader.md) |\n| SwiftUI HIG, Components, Patterns, Anti-Patterns | [SwiftUI Design Guidelines](references\u002Fswiftui-design-guidelines.md) |\n| Optionals, Protocols, async\u002Fawait, ARC, Error Handling | [Swift Coding Standards](references\u002Fswift-coding-standards.md) |\n\n---\n\nSwift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.\n",{"data":41,"body":48},{"name":4,"description":6,"license":32,"metadata":42},{"author":43,"version":44,"category":25,"sources":45},"MiniMax-OpenSource","1.0.0",[46,47],"Apple Human Interface Guidelines","Apple Developer Documentation",{"type":49,"children":50},"root",[51,60,66,73,80,489,493,833,839,845,883,889,958,964,1011,1015,1058,1064,1101,1107,1130,1136,1141,1195,1200,1240,1245,1294,1299,1348,1353,1402,1408,1456,1462,1511,1517,1548,1554,1728,1732],{"type":52,"tag":53,"props":54,"children":56},"element","h1",{"id":55},"ios-application-development-guide",[57],{"type":58,"value":59},"text","iOS Application Development Guide",{"type":52,"tag":61,"props":62,"children":63},"p",{},[64],{"type":58,"value":65},"A practical guide for building iOS applications using UIKit, SnapKit, and SwiftUI. Focuses on proven patterns and Apple platform conventions.",{"type":52,"tag":67,"props":68,"children":70},"h2",{"id":69},"quick-reference",[71],{"type":58,"value":72},"Quick Reference",{"type":52,"tag":74,"props":75,"children":77},"h3",{"id":76},"uikit",[78],{"type":58,"value":79},"UIKit",{"type":52,"tag":81,"props":82,"children":83},"table",{},[84,103],{"type":52,"tag":85,"props":86,"children":87},"thead",{},[88],{"type":52,"tag":89,"props":90,"children":91},"tr",{},[92,98],{"type":52,"tag":93,"props":94,"children":95},"th",{},[96],{"type":58,"value":97},"Purpose",{"type":52,"tag":93,"props":99,"children":100},{},[101],{"type":58,"value":102},"Component",{"type":52,"tag":104,"props":105,"children":106},"tbody",{},[107,126,143,156,173,190,215,238,255,272,289,306,323,340,364,381,398,422,451,470],{"type":52,"tag":89,"props":108,"children":109},{},[110,116],{"type":52,"tag":111,"props":112,"children":113},"td",{},[114],{"type":58,"value":115},"Main sections",{"type":52,"tag":111,"props":117,"children":118},{},[119],{"type":52,"tag":120,"props":121,"children":123},"code",{"className":122},[],[124],{"type":58,"value":125},"UITabBarController",{"type":52,"tag":89,"props":127,"children":128},{},[129,134],{"type":52,"tag":111,"props":130,"children":131},{},[132],{"type":58,"value":133},"Drill-down",{"type":52,"tag":111,"props":135,"children":136},{},[137],{"type":52,"tag":120,"props":138,"children":140},{"className":139},[],[141],{"type":58,"value":142},"UINavigationController",{"type":52,"tag":89,"props":144,"children":145},{},[146,151],{"type":52,"tag":111,"props":147,"children":148},{},[149],{"type":58,"value":150},"Focused task",{"type":52,"tag":111,"props":152,"children":153},{},[154],{"type":58,"value":155},"Sheet presentation",{"type":52,"tag":89,"props":157,"children":158},{},[159,164],{"type":52,"tag":111,"props":160,"children":161},{},[162],{"type":58,"value":163},"Critical choice",{"type":52,"tag":111,"props":165,"children":166},{},[167],{"type":52,"tag":120,"props":168,"children":170},{"className":169},[],[171],{"type":58,"value":172},"UIAlertController",{"type":52,"tag":89,"props":174,"children":175},{},[176,181],{"type":52,"tag":111,"props":177,"children":178},{},[179],{"type":58,"value":180},"Secondary actions",{"type":52,"tag":111,"props":182,"children":183},{},[184],{"type":52,"tag":120,"props":185,"children":187},{"className":186},[],[188],{"type":58,"value":189},"UIContextMenuInteraction",{"type":52,"tag":89,"props":191,"children":192},{},[193,198],{"type":52,"tag":111,"props":194,"children":195},{},[196],{"type":58,"value":197},"List content",{"type":52,"tag":111,"props":199,"children":200},{},[201,207,209],{"type":52,"tag":120,"props":202,"children":204},{"className":203},[],[205],{"type":58,"value":206},"UICollectionView",{"type":58,"value":208}," + ",{"type":52,"tag":120,"props":210,"children":212},{"className":211},[],[213],{"type":58,"value":214},"DiffableDataSource",{"type":52,"tag":89,"props":216,"children":217},{},[218,223],{"type":52,"tag":111,"props":219,"children":220},{},[221],{"type":58,"value":222},"Sectioned list",{"type":52,"tag":111,"props":224,"children":225},{},[226,231,232],{"type":52,"tag":120,"props":227,"children":229},{"className":228},[],[230],{"type":58,"value":214},{"type":58,"value":208},{"type":52,"tag":120,"props":233,"children":235},{"className":234},[],[236],{"type":58,"value":237},"headerMode",{"type":52,"tag":89,"props":239,"children":240},{},[241,246],{"type":52,"tag":111,"props":242,"children":243},{},[244],{"type":58,"value":245},"Grid layout",{"type":52,"tag":111,"props":247,"children":248},{},[249],{"type":52,"tag":120,"props":250,"children":252},{"className":251},[],[253],{"type":58,"value":254},"UICollectionViewCompositionalLayout",{"type":52,"tag":89,"props":256,"children":257},{},[258,263],{"type":52,"tag":111,"props":259,"children":260},{},[261],{"type":58,"value":262},"Search",{"type":52,"tag":111,"props":264,"children":265},{},[266],{"type":52,"tag":120,"props":267,"children":269},{"className":268},[],[270],{"type":58,"value":271},"UISearchController",{"type":52,"tag":89,"props":273,"children":274},{},[275,280],{"type":52,"tag":111,"props":276,"children":277},{},[278],{"type":58,"value":279},"Share",{"type":52,"tag":111,"props":281,"children":282},{},[283],{"type":52,"tag":120,"props":284,"children":286},{"className":285},[],[287],{"type":58,"value":288},"UIActivityViewController",{"type":52,"tag":89,"props":290,"children":291},{},[292,297],{"type":52,"tag":111,"props":293,"children":294},{},[295],{"type":58,"value":296},"Location (once)",{"type":52,"tag":111,"props":298,"children":299},{},[300],{"type":52,"tag":120,"props":301,"children":303},{"className":302},[],[304],{"type":58,"value":305},"CLLocationButton",{"type":52,"tag":89,"props":307,"children":308},{},[309,314],{"type":52,"tag":111,"props":310,"children":311},{},[312],{"type":58,"value":313},"Feedback",{"type":52,"tag":111,"props":315,"children":316},{},[317],{"type":52,"tag":120,"props":318,"children":320},{"className":319},[],[321],{"type":58,"value":322},"UIImpactFeedbackGenerator",{"type":52,"tag":89,"props":324,"children":325},{},[326,331],{"type":52,"tag":111,"props":327,"children":328},{},[329],{"type":58,"value":330},"Linear layout",{"type":52,"tag":111,"props":332,"children":333},{},[334],{"type":52,"tag":120,"props":335,"children":337},{"className":336},[],[338],{"type":58,"value":339},"UIStackView",{"type":52,"tag":89,"props":341,"children":342},{},[343,348],{"type":52,"tag":111,"props":344,"children":345},{},[346],{"type":58,"value":347},"Custom shapes",{"type":52,"tag":111,"props":349,"children":350},{},[351,357,358],{"type":52,"tag":120,"props":352,"children":354},{"className":353},[],[355],{"type":58,"value":356},"CAShapeLayer",{"type":58,"value":208},{"type":52,"tag":120,"props":359,"children":361},{"className":360},[],[362],{"type":58,"value":363},"UIBezierPath",{"type":52,"tag":89,"props":365,"children":366},{},[367,372],{"type":52,"tag":111,"props":368,"children":369},{},[370],{"type":58,"value":371},"Gradients",{"type":52,"tag":111,"props":373,"children":374},{},[375],{"type":52,"tag":120,"props":376,"children":378},{"className":377},[],[379],{"type":58,"value":380},"CAGradientLayer",{"type":52,"tag":89,"props":382,"children":383},{},[384,389],{"type":52,"tag":111,"props":385,"children":386},{},[387],{"type":58,"value":388},"Modern buttons",{"type":52,"tag":111,"props":390,"children":391},{},[392],{"type":52,"tag":120,"props":393,"children":395},{"className":394},[],[396],{"type":58,"value":397},"UIButton.Configuration",{"type":52,"tag":89,"props":399,"children":400},{},[401,406],{"type":52,"tag":111,"props":402,"children":403},{},[404],{"type":58,"value":405},"Dynamic text",{"type":52,"tag":111,"props":407,"children":408},{},[409,415,416],{"type":52,"tag":120,"props":410,"children":412},{"className":411},[],[413],{"type":58,"value":414},"UIFontMetrics",{"type":58,"value":208},{"type":52,"tag":120,"props":417,"children":419},{"className":418},[],[420],{"type":58,"value":421},"preferredFont",{"type":52,"tag":89,"props":423,"children":424},{},[425,430],{"type":52,"tag":111,"props":426,"children":427},{},[428],{"type":58,"value":429},"Dark mode",{"type":52,"tag":111,"props":431,"children":432},{},[433,435,441,443,449],{"type":58,"value":434},"Semantic colors (",{"type":52,"tag":120,"props":436,"children":438},{"className":437},[],[439],{"type":58,"value":440},".systemBackground",{"type":58,"value":442},", ",{"type":52,"tag":120,"props":444,"children":446},{"className":445},[],[447],{"type":58,"value":448},".label",{"type":58,"value":450},")",{"type":52,"tag":89,"props":452,"children":453},{},[454,459],{"type":52,"tag":111,"props":455,"children":456},{},[457],{"type":58,"value":458},"Permissions",{"type":52,"tag":111,"props":460,"children":461},{},[462,464],{"type":58,"value":463},"Contextual request + ",{"type":52,"tag":120,"props":465,"children":467},{"className":466},[],[468],{"type":58,"value":469},"AVCaptureDevice",{"type":52,"tag":89,"props":471,"children":472},{},[473,478],{"type":52,"tag":111,"props":474,"children":475},{},[476],{"type":58,"value":477},"Lifecycle",{"type":52,"tag":111,"props":479,"children":480},{},[481,487],{"type":52,"tag":120,"props":482,"children":484},{"className":483},[],[485],{"type":58,"value":486},"UIApplication",{"type":58,"value":488}," notifications",{"type":52,"tag":74,"props":490,"children":491},{"id":15},[492],{"type":58,"value":14},{"type":52,"tag":81,"props":494,"children":495},{},[496,510],{"type":52,"tag":85,"props":497,"children":498},{},[499],{"type":52,"tag":89,"props":500,"children":501},{},[502,506],{"type":52,"tag":93,"props":503,"children":504},{},[505],{"type":58,"value":97},{"type":52,"tag":93,"props":507,"children":508},{},[509],{"type":58,"value":102},{"type":52,"tag":104,"props":511,"children":512},{},[513,536,559,582,598,614,637,653,669,685,700,717,734,752,782,799,816],{"type":52,"tag":89,"props":514,"children":515},{},[516,520],{"type":52,"tag":111,"props":517,"children":518},{},[519],{"type":58,"value":115},{"type":52,"tag":111,"props":521,"children":522},{},[523,529,530],{"type":52,"tag":120,"props":524,"children":526},{"className":525},[],[527],{"type":58,"value":528},"TabView",{"type":58,"value":208},{"type":52,"tag":120,"props":531,"children":533},{"className":532},[],[534],{"type":58,"value":535},"tabItem",{"type":52,"tag":89,"props":537,"children":538},{},[539,543],{"type":52,"tag":111,"props":540,"children":541},{},[542],{"type":58,"value":133},{"type":52,"tag":111,"props":544,"children":545},{},[546,552,553],{"type":52,"tag":120,"props":547,"children":549},{"className":548},[],[550],{"type":58,"value":551},"NavigationStack",{"type":58,"value":208},{"type":52,"tag":120,"props":554,"children":556},{"className":555},[],[557],{"type":58,"value":558},"NavigationPath",{"type":52,"tag":89,"props":560,"children":561},{},[562,566],{"type":52,"tag":111,"props":563,"children":564},{},[565],{"type":58,"value":150},{"type":52,"tag":111,"props":567,"children":568},{},[569,575,576],{"type":52,"tag":120,"props":570,"children":572},{"className":571},[],[573],{"type":58,"value":574},".sheet",{"type":58,"value":208},{"type":52,"tag":120,"props":577,"children":579},{"className":578},[],[580],{"type":58,"value":581},"presentationDetents",{"type":52,"tag":89,"props":583,"children":584},{},[585,589],{"type":52,"tag":111,"props":586,"children":587},{},[588],{"type":58,"value":163},{"type":52,"tag":111,"props":590,"children":591},{},[592],{"type":52,"tag":120,"props":593,"children":595},{"className":594},[],[596],{"type":58,"value":597},".alert",{"type":52,"tag":89,"props":599,"children":600},{},[601,605],{"type":52,"tag":111,"props":602,"children":603},{},[604],{"type":58,"value":180},{"type":52,"tag":111,"props":606,"children":607},{},[608],{"type":52,"tag":120,"props":609,"children":611},{"className":610},[],[612],{"type":58,"value":613},".contextMenu",{"type":52,"tag":89,"props":615,"children":616},{},[617,621],{"type":52,"tag":111,"props":618,"children":619},{},[620],{"type":58,"value":197},{"type":52,"tag":111,"props":622,"children":623},{},[624,630,631],{"type":52,"tag":120,"props":625,"children":627},{"className":626},[],[628],{"type":58,"value":629},"List",{"type":58,"value":208},{"type":52,"tag":120,"props":632,"children":634},{"className":633},[],[635],{"type":58,"value":636},".insetGrouped",{"type":52,"tag":89,"props":638,"children":639},{},[640,644],{"type":52,"tag":111,"props":641,"children":642},{},[643],{"type":58,"value":262},{"type":52,"tag":111,"props":645,"children":646},{},[647],{"type":52,"tag":120,"props":648,"children":650},{"className":649},[],[651],{"type":58,"value":652},".searchable",{"type":52,"tag":89,"props":654,"children":655},{},[656,660],{"type":52,"tag":111,"props":657,"children":658},{},[659],{"type":58,"value":279},{"type":52,"tag":111,"props":661,"children":662},{},[663],{"type":52,"tag":120,"props":664,"children":666},{"className":665},[],[667],{"type":58,"value":668},"ShareLink",{"type":52,"tag":89,"props":670,"children":671},{},[672,676],{"type":52,"tag":111,"props":673,"children":674},{},[675],{"type":58,"value":296},{"type":52,"tag":111,"props":677,"children":678},{},[679],{"type":52,"tag":120,"props":680,"children":682},{"className":681},[],[683],{"type":58,"value":684},"LocationButton",{"type":52,"tag":89,"props":686,"children":687},{},[688,692],{"type":52,"tag":111,"props":689,"children":690},{},[691],{"type":58,"value":313},{"type":52,"tag":111,"props":693,"children":694},{},[695],{"type":52,"tag":120,"props":696,"children":698},{"className":697},[],[699],{"type":58,"value":322},{"type":52,"tag":89,"props":701,"children":702},{},[703,708],{"type":52,"tag":111,"props":704,"children":705},{},[706],{"type":58,"value":707},"Progress (known)",{"type":52,"tag":111,"props":709,"children":710},{},[711],{"type":52,"tag":120,"props":712,"children":714},{"className":713},[],[715],{"type":58,"value":716},"ProgressView(value:total:)",{"type":52,"tag":89,"props":718,"children":719},{},[720,725],{"type":52,"tag":111,"props":721,"children":722},{},[723],{"type":58,"value":724},"Progress (unknown)",{"type":52,"tag":111,"props":726,"children":727},{},[728],{"type":52,"tag":120,"props":729,"children":731},{"className":730},[],[732],{"type":58,"value":733},"ProgressView()",{"type":52,"tag":89,"props":735,"children":736},{},[737,741],{"type":52,"tag":111,"props":738,"children":739},{},[740],{"type":58,"value":405},{"type":52,"tag":111,"props":742,"children":743},{},[744,750],{"type":52,"tag":120,"props":745,"children":747},{"className":746},[],[748],{"type":58,"value":749},".font(.body)",{"type":58,"value":751}," semantic styles",{"type":52,"tag":89,"props":753,"children":754},{},[755,759],{"type":52,"tag":111,"props":756,"children":757},{},[758],{"type":58,"value":429},{"type":52,"tag":111,"props":760,"children":761},{},[762,768,769,775,776],{"type":52,"tag":120,"props":763,"children":765},{"className":764},[],[766],{"type":58,"value":767},".primary",{"type":58,"value":442},{"type":52,"tag":120,"props":770,"children":772},{"className":771},[],[773],{"type":58,"value":774},".secondary",{"type":58,"value":442},{"type":52,"tag":120,"props":777,"children":779},{"className":778},[],[780],{"type":58,"value":781},"Color(.systemBackground)",{"type":52,"tag":89,"props":783,"children":784},{},[785,790],{"type":52,"tag":111,"props":786,"children":787},{},[788],{"type":58,"value":789},"Scene lifecycle",{"type":52,"tag":111,"props":791,"children":792},{},[793],{"type":52,"tag":120,"props":794,"children":796},{"className":795},[],[797],{"type":58,"value":798},"@Environment(\\.scenePhase)",{"type":52,"tag":89,"props":800,"children":801},{},[802,807],{"type":52,"tag":111,"props":803,"children":804},{},[805],{"type":58,"value":806},"Reduce motion",{"type":52,"tag":111,"props":808,"children":809},{},[810],{"type":52,"tag":120,"props":811,"children":813},{"className":812},[],[814],{"type":58,"value":815},"@Environment(\\.accessibilityReduceMotion)",{"type":52,"tag":89,"props":817,"children":818},{},[819,824],{"type":52,"tag":111,"props":820,"children":821},{},[822],{"type":58,"value":823},"Dynamic type",{"type":52,"tag":111,"props":825,"children":826},{},[827],{"type":52,"tag":120,"props":828,"children":830},{"className":829},[],[831],{"type":58,"value":832},"@Environment(\\.dynamicTypeSize)",{"type":52,"tag":67,"props":834,"children":836},{"id":835},"core-principles",[837],{"type":58,"value":838},"Core Principles",{"type":52,"tag":74,"props":840,"children":842},{"id":841},"layout",[843],{"type":58,"value":844},"Layout",{"type":52,"tag":846,"props":847,"children":848},"ul",{},[849,855,868,873,878],{"type":52,"tag":850,"props":851,"children":852},"li",{},[853],{"type":58,"value":854},"Touch targets >= 44pt",{"type":52,"tag":850,"props":856,"children":857},{},[858,860,866],{"type":58,"value":859},"Content within safe areas (SwiftUI respects by default, use ",{"type":52,"tag":120,"props":861,"children":863},{"className":862},[],[864],{"type":58,"value":865},".ignoresSafeArea()",{"type":58,"value":867}," only for backgrounds)",{"type":52,"tag":850,"props":869,"children":870},{},[871],{"type":58,"value":872},"Use 8pt spacing increments (8, 16, 24, 32, 40, 48)",{"type":52,"tag":850,"props":874,"children":875},{},[876],{"type":58,"value":877},"Primary actions in thumb zone",{"type":52,"tag":850,"props":879,"children":880},{},[881],{"type":58,"value":882},"Support all screen sizes (iPhone SE 375pt to Pro Max 430pt)",{"type":52,"tag":74,"props":884,"children":886},{"id":885},"typography",[887],{"type":58,"value":888},"Typography",{"type":52,"tag":846,"props":890,"children":891},{},[892,910,935,953],{"type":52,"tag":850,"props":893,"children":894},{},[895,897,903,904],{"type":58,"value":896},"UIKit: ",{"type":52,"tag":120,"props":898,"children":900},{"className":899},[],[901],{"type":58,"value":902},"preferredFont(forTextStyle:)",{"type":58,"value":208},{"type":52,"tag":120,"props":905,"children":907},{"className":906},[],[908],{"type":58,"value":909},"adjustsFontForContentSizeCategory = true",{"type":52,"tag":850,"props":911,"children":912},{},[913,915,921,922,928,929],{"type":58,"value":914},"SwiftUI: semantic text styles ",{"type":52,"tag":120,"props":916,"children":918},{"className":917},[],[919],{"type":58,"value":920},".headline",{"type":58,"value":442},{"type":52,"tag":120,"props":923,"children":925},{"className":924},[],[926],{"type":58,"value":927},".body",{"type":58,"value":442},{"type":52,"tag":120,"props":930,"children":932},{"className":931},[],[933],{"type":58,"value":934},".caption",{"type":52,"tag":850,"props":936,"children":937},{},[938,940,945,947],{"type":58,"value":939},"Custom fonts: ",{"type":52,"tag":120,"props":941,"children":943},{"className":942},[],[944],{"type":58,"value":414},{"type":58,"value":946}," \u002F ",{"type":52,"tag":120,"props":948,"children":950},{"className":949},[],[951],{"type":58,"value":952},"Font.custom(_:size:relativeTo:)",{"type":52,"tag":850,"props":954,"children":955},{},[956],{"type":58,"value":957},"Adapt layout at accessibility sizes (minimum 11pt)",{"type":52,"tag":74,"props":959,"children":961},{"id":960},"colors",[962],{"type":58,"value":963},"Colors",{"type":52,"tag":846,"props":965,"children":966},{},[967,996,1001,1006],{"type":52,"tag":850,"props":968,"children":969},{},[970,972,977,978,983,984,989,990,995],{"type":58,"value":971},"Use semantic system colors (",{"type":52,"tag":120,"props":973,"children":975},{"className":974},[],[976],{"type":58,"value":440},{"type":58,"value":442},{"type":52,"tag":120,"props":979,"children":981},{"className":980},[],[982],{"type":58,"value":448},{"type":58,"value":442},{"type":52,"tag":120,"props":985,"children":987},{"className":986},[],[988],{"type":58,"value":767},{"type":58,"value":442},{"type":52,"tag":120,"props":991,"children":993},{"className":992},[],[994],{"type":58,"value":774},{"type":58,"value":450},{"type":52,"tag":850,"props":997,"children":998},{},[999],{"type":58,"value":1000},"Asset catalog variants for custom colors (Any\u002FDark Appearance)",{"type":52,"tag":850,"props":1002,"children":1003},{},[1004],{"type":58,"value":1005},"No color-only information (pair with icons or text)",{"type":52,"tag":850,"props":1007,"children":1008},{},[1009],{"type":58,"value":1010},"Contrast ratio >= 4.5:1 for normal text, 3:1 for large text",{"type":52,"tag":74,"props":1012,"children":1013},{"id":19},[1014],{"type":58,"value":18},{"type":52,"tag":846,"props":1016,"children":1017},{},[1018,1030,1041,1053],{"type":52,"tag":850,"props":1019,"children":1020},{},[1021,1023,1029],{"type":58,"value":1022},"Labels on icon buttons (",{"type":52,"tag":120,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":58,"value":1028},".accessibilityLabel()",{"type":58,"value":450},{"type":52,"tag":850,"props":1031,"children":1032},{},[1033,1035,1040],{"type":58,"value":1034},"Reduce motion respected (",{"type":52,"tag":120,"props":1036,"children":1038},{"className":1037},[],[1039],{"type":58,"value":815},{"type":58,"value":450},{"type":52,"tag":850,"props":1042,"children":1043},{},[1044,1046,1052],{"type":58,"value":1045},"Logical reading order (",{"type":52,"tag":120,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":58,"value":1051},".accessibilitySortPriority()",{"type":58,"value":450},{"type":52,"tag":850,"props":1054,"children":1055},{},[1056],{"type":58,"value":1057},"Support Bold Text, Increase Contrast preferences",{"type":52,"tag":74,"props":1059,"children":1061},{"id":1060},"navigation",[1062],{"type":58,"value":1063},"Navigation",{"type":52,"tag":846,"props":1065,"children":1066},{},[1067,1072,1077,1096],{"type":52,"tag":850,"props":1068,"children":1069},{},[1070],{"type":58,"value":1071},"Tab bar (3-5 sections) stays visible during navigation",{"type":52,"tag":850,"props":1073,"children":1074},{},[1075],{"type":58,"value":1076},"Back swipe works (never override system gestures)",{"type":52,"tag":850,"props":1078,"children":1079},{},[1080,1082,1088,1089,1095],{"type":58,"value":1081},"State preserved across tabs (",{"type":52,"tag":120,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":58,"value":1087},"@SceneStorage",{"type":58,"value":442},{"type":52,"tag":120,"props":1090,"children":1092},{"className":1091},[],[1093],{"type":58,"value":1094},"@State",{"type":58,"value":450},{"type":52,"tag":850,"props":1097,"children":1098},{},[1099],{"type":58,"value":1100},"Never use hamburger menus",{"type":52,"tag":74,"props":1102,"children":1104},{"id":1103},"privacy-permissions",[1105],{"type":58,"value":1106},"Privacy & Permissions",{"type":52,"tag":846,"props":1108,"children":1109},{},[1110,1115,1120,1125],{"type":52,"tag":850,"props":1111,"children":1112},{},[1113],{"type":58,"value":1114},"Request permissions in context (not at launch)",{"type":52,"tag":850,"props":1116,"children":1117},{},[1118],{"type":58,"value":1119},"Custom explanation before system dialog",{"type":52,"tag":850,"props":1121,"children":1122},{},[1123],{"type":58,"value":1124},"Support Sign in with Apple",{"type":52,"tag":850,"props":1126,"children":1127},{},[1128],{"type":58,"value":1129},"Respect ATT denial",{"type":52,"tag":67,"props":1131,"children":1133},{"id":1132},"checklist",[1134],{"type":58,"value":1135},"Checklist",{"type":52,"tag":74,"props":1137,"children":1139},{"id":1138},"layout-1",[1140],{"type":58,"value":844},{"type":52,"tag":846,"props":1142,"children":1145},{"className":1143},[1144],"contains-task-list",[1146,1159,1168,1177,1186],{"type":52,"tag":850,"props":1147,"children":1150},{"className":1148},[1149],"task-list-item",[1151,1157],{"type":52,"tag":1152,"props":1153,"children":1156},"input",{"disabled":1154,"type":1155},true,"checkbox",[],{"type":58,"value":1158}," Touch targets >= 44pt",{"type":52,"tag":850,"props":1160,"children":1162},{"className":1161},[1149],[1163,1166],{"type":52,"tag":1152,"props":1164,"children":1165},{"disabled":1154,"type":1155},[],{"type":58,"value":1167}," Content within safe areas",{"type":52,"tag":850,"props":1169,"children":1171},{"className":1170},[1149],[1172,1175],{"type":52,"tag":1152,"props":1173,"children":1174},{"disabled":1154,"type":1155},[],{"type":58,"value":1176}," Primary actions in thumb zone (bottom half)",{"type":52,"tag":850,"props":1178,"children":1180},{"className":1179},[1149],[1181,1184],{"type":52,"tag":1152,"props":1182,"children":1183},{"disabled":1154,"type":1155},[],{"type":58,"value":1185}," Flexible widths for all screen sizes (SE to Pro Max)",{"type":52,"tag":850,"props":1187,"children":1189},{"className":1188},[1149],[1190,1193],{"type":52,"tag":1152,"props":1191,"children":1192},{"disabled":1154,"type":1155},[],{"type":58,"value":1194}," Spacing aligns to 8pt grid",{"type":52,"tag":74,"props":1196,"children":1198},{"id":1197},"typography-1",[1199],{"type":58,"value":888},{"type":52,"tag":846,"props":1201,"children":1203},{"className":1202},[1144],[1204,1213,1222,1231],{"type":52,"tag":850,"props":1205,"children":1207},{"className":1206},[1149],[1208,1211],{"type":52,"tag":1152,"props":1209,"children":1210},{"disabled":1154,"type":1155},[],{"type":58,"value":1212}," Semantic text styles or UIFontMetrics-scaled custom fonts",{"type":52,"tag":850,"props":1214,"children":1216},{"className":1215},[1149],[1217,1220],{"type":52,"tag":1152,"props":1218,"children":1219},{"disabled":1154,"type":1155},[],{"type":58,"value":1221}," Dynamic Type supported up to accessibility sizes",{"type":52,"tag":850,"props":1223,"children":1225},{"className":1224},[1149],[1226,1229],{"type":52,"tag":1152,"props":1227,"children":1228},{"disabled":1154,"type":1155},[],{"type":58,"value":1230}," Layouts reflow at large sizes (no truncation)",{"type":52,"tag":850,"props":1232,"children":1234},{"className":1233},[1149],[1235,1238],{"type":52,"tag":1152,"props":1236,"children":1237},{"disabled":1154,"type":1155},[],{"type":58,"value":1239}," Minimum text size 11pt",{"type":52,"tag":74,"props":1241,"children":1243},{"id":1242},"colors-1",[1244],{"type":58,"value":963},{"type":52,"tag":846,"props":1246,"children":1248},{"className":1247},[1144],[1249,1258,1267,1276,1285],{"type":52,"tag":850,"props":1250,"children":1252},{"className":1251},[1149],[1253,1256],{"type":52,"tag":1152,"props":1254,"children":1255},{"disabled":1154,"type":1155},[],{"type":58,"value":1257}," Semantic system colors or light\u002Fdark asset variants",{"type":52,"tag":850,"props":1259,"children":1261},{"className":1260},[1149],[1262,1265],{"type":52,"tag":1152,"props":1263,"children":1264},{"disabled":1154,"type":1155},[],{"type":58,"value":1266}," Dark Mode is intentional (not just inverted)",{"type":52,"tag":850,"props":1268,"children":1270},{"className":1269},[1149],[1271,1274],{"type":52,"tag":1152,"props":1272,"children":1273},{"disabled":1154,"type":1155},[],{"type":58,"value":1275}," No color-only information",{"type":52,"tag":850,"props":1277,"children":1279},{"className":1278},[1149],[1280,1283],{"type":52,"tag":1152,"props":1281,"children":1282},{"disabled":1154,"type":1155},[],{"type":58,"value":1284}," Text contrast >= 4.5:1 (normal) \u002F 3:1 (large)",{"type":52,"tag":850,"props":1286,"children":1288},{"className":1287},[1149],[1289,1292],{"type":52,"tag":1152,"props":1290,"children":1291},{"disabled":1154,"type":1155},[],{"type":58,"value":1293}," Single accent color for interactive elements",{"type":52,"tag":74,"props":1295,"children":1297},{"id":1296},"accessibility-1",[1298],{"type":58,"value":18},{"type":52,"tag":846,"props":1300,"children":1302},{"className":1301},[1144],[1303,1312,1321,1330,1339],{"type":52,"tag":850,"props":1304,"children":1306},{"className":1305},[1149],[1307,1310],{"type":52,"tag":1152,"props":1308,"children":1309},{"disabled":1154,"type":1155},[],{"type":58,"value":1311}," VoiceOver labels on all interactive elements",{"type":52,"tag":850,"props":1313,"children":1315},{"className":1314},[1149],[1316,1319],{"type":52,"tag":1152,"props":1317,"children":1318},{"disabled":1154,"type":1155},[],{"type":58,"value":1320}," Logical reading order",{"type":52,"tag":850,"props":1322,"children":1324},{"className":1323},[1149],[1325,1328],{"type":52,"tag":1152,"props":1326,"children":1327},{"disabled":1154,"type":1155},[],{"type":58,"value":1329}," Bold Text preference respected",{"type":52,"tag":850,"props":1331,"children":1333},{"className":1332},[1149],[1334,1337],{"type":52,"tag":1152,"props":1335,"children":1336},{"disabled":1154,"type":1155},[],{"type":58,"value":1338}," Reduce Motion disables decorative animations",{"type":52,"tag":850,"props":1340,"children":1342},{"className":1341},[1149],[1343,1346],{"type":52,"tag":1152,"props":1344,"children":1345},{"disabled":1154,"type":1155},[],{"type":58,"value":1347}," All gestures have alternative access paths",{"type":52,"tag":74,"props":1349,"children":1351},{"id":1350},"navigation-1",[1352],{"type":58,"value":1063},{"type":52,"tag":846,"props":1354,"children":1356},{"className":1355},[1144],[1357,1366,1375,1384,1393],{"type":52,"tag":850,"props":1358,"children":1360},{"className":1359},[1149],[1361,1364],{"type":52,"tag":1152,"props":1362,"children":1363},{"disabled":1154,"type":1155},[],{"type":58,"value":1365}," Tab bar for 3-5 top-level sections",{"type":52,"tag":850,"props":1367,"children":1369},{"className":1368},[1149],[1370,1373],{"type":52,"tag":1152,"props":1371,"children":1372},{"disabled":1154,"type":1155},[],{"type":58,"value":1374}," No hamburger\u002Fdrawer menus",{"type":52,"tag":850,"props":1376,"children":1378},{"className":1377},[1149],[1379,1382],{"type":52,"tag":1152,"props":1380,"children":1381},{"disabled":1154,"type":1155},[],{"type":58,"value":1383}," Tab bar stays visible during navigation",{"type":52,"tag":850,"props":1385,"children":1387},{"className":1386},[1149],[1388,1391],{"type":52,"tag":1152,"props":1389,"children":1390},{"disabled":1154,"type":1155},[],{"type":58,"value":1392}," Back swipe works throughout",{"type":52,"tag":850,"props":1394,"children":1396},{"className":1395},[1149],[1397,1400],{"type":52,"tag":1152,"props":1398,"children":1399},{"disabled":1154,"type":1155},[],{"type":58,"value":1401}," State preserved across tabs",{"type":52,"tag":74,"props":1403,"children":1405},{"id":1404},"components",[1406],{"type":58,"value":1407},"Components",{"type":52,"tag":846,"props":1409,"children":1411},{"className":1410},[1144],[1412,1421,1430,1439],{"type":52,"tag":850,"props":1413,"children":1415},{"className":1414},[1149],[1416,1419],{"type":52,"tag":1152,"props":1417,"children":1418},{"disabled":1154,"type":1155},[],{"type":58,"value":1420}," Alerts for critical decisions only",{"type":52,"tag":850,"props":1422,"children":1424},{"className":1423},[1149],[1425,1428],{"type":52,"tag":1152,"props":1426,"children":1427},{"disabled":1154,"type":1155},[],{"type":58,"value":1429}," Sheets have dismiss path (button and\u002For swipe)",{"type":52,"tag":850,"props":1431,"children":1433},{"className":1432},[1149],[1434,1437],{"type":52,"tag":1152,"props":1435,"children":1436},{"disabled":1154,"type":1155},[],{"type":58,"value":1438}," List rows >= 44pt tall",{"type":52,"tag":850,"props":1440,"children":1442},{"className":1441},[1149],[1443,1446,1448,1454],{"type":52,"tag":1152,"props":1444,"children":1445},{"disabled":1154,"type":1155},[],{"type":58,"value":1447}," Destructive buttons use ",{"type":52,"tag":120,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":58,"value":1453},".destructive",{"type":58,"value":1455}," role",{"type":52,"tag":74,"props":1457,"children":1459},{"id":1458},"privacy",[1460],{"type":58,"value":1461},"Privacy",{"type":52,"tag":846,"props":1463,"children":1465},{"className":1464},[1144],[1466,1475,1484,1493,1502],{"type":52,"tag":850,"props":1467,"children":1469},{"className":1468},[1149],[1470,1473],{"type":52,"tag":1152,"props":1471,"children":1472},{"disabled":1154,"type":1155},[],{"type":58,"value":1474}," Permissions requested in context (not at launch)",{"type":52,"tag":850,"props":1476,"children":1478},{"className":1477},[1149],[1479,1482],{"type":52,"tag":1152,"props":1480,"children":1481},{"disabled":1154,"type":1155},[],{"type":58,"value":1483}," Custom explanation before system permission dialog",{"type":52,"tag":850,"props":1485,"children":1487},{"className":1486},[1149],[1488,1491],{"type":52,"tag":1152,"props":1489,"children":1490},{"disabled":1154,"type":1155},[],{"type":58,"value":1492}," Sign in with Apple offered with other providers",{"type":52,"tag":850,"props":1494,"children":1496},{"className":1495},[1149],[1497,1500],{"type":52,"tag":1152,"props":1498,"children":1499},{"disabled":1154,"type":1155},[],{"type":58,"value":1501}," Basic features usable without account",{"type":52,"tag":850,"props":1503,"children":1505},{"className":1504},[1149],[1506,1509],{"type":52,"tag":1152,"props":1507,"children":1508},{"disabled":1154,"type":1155},[],{"type":58,"value":1510}," ATT prompt shown if tracking, denial respected",{"type":52,"tag":74,"props":1512,"children":1514},{"id":1513},"system-integration",[1515],{"type":58,"value":1516},"System Integration",{"type":52,"tag":846,"props":1518,"children":1520},{"className":1519},[1144],[1521,1530,1539],{"type":52,"tag":850,"props":1522,"children":1524},{"className":1523},[1149],[1525,1528],{"type":52,"tag":1152,"props":1526,"children":1527},{"disabled":1154,"type":1155},[],{"type":58,"value":1529}," App handles interruptions gracefully (calls, background, Siri)",{"type":52,"tag":850,"props":1531,"children":1533},{"className":1532},[1149],[1534,1537],{"type":52,"tag":1152,"props":1535,"children":1536},{"disabled":1154,"type":1155},[],{"type":58,"value":1538}," App content indexed for Spotlight",{"type":52,"tag":850,"props":1540,"children":1542},{"className":1541},[1149],[1543,1546],{"type":52,"tag":1152,"props":1544,"children":1545},{"disabled":1154,"type":1155},[],{"type":58,"value":1547}," Share Sheet available for shareable content",{"type":52,"tag":67,"props":1549,"children":1551},{"id":1550},"references",[1552],{"type":58,"value":1553},"References",{"type":52,"tag":81,"props":1555,"children":1556},{},[1557,1573],{"type":52,"tag":85,"props":1558,"children":1559},{},[1560],{"type":52,"tag":89,"props":1561,"children":1562},{},[1563,1568],{"type":52,"tag":93,"props":1564,"children":1565},{},[1566],{"type":58,"value":1567},"Topic",{"type":52,"tag":93,"props":1569,"children":1570},{},[1571],{"type":58,"value":1572},"Reference",{"type":52,"tag":104,"props":1574,"children":1575},{},[1576,1594,1611,1628,1645,1661,1677,1694,1711],{"type":52,"tag":89,"props":1577,"children":1578},{},[1579,1584],{"type":52,"tag":111,"props":1580,"children":1581},{},[1582],{"type":58,"value":1583},"Touch Targets, Safe Area, CollectionView",{"type":52,"tag":111,"props":1585,"children":1586},{},[1587],{"type":52,"tag":1588,"props":1589,"children":1591},"a",{"href":1590},"references\u002Flayout-system.md",[1592],{"type":58,"value":1593},"Layout System",{"type":52,"tag":89,"props":1595,"children":1596},{},[1597,1602],{"type":52,"tag":111,"props":1598,"children":1599},{},[1600],{"type":58,"value":1601},"TabBar, NavigationController, Modal",{"type":52,"tag":111,"props":1603,"children":1604},{},[1605],{"type":52,"tag":1588,"props":1606,"children":1608},{"href":1607},"references\u002Fnavigation-patterns.md",[1609],{"type":58,"value":1610},"Navigation Patterns",{"type":52,"tag":89,"props":1612,"children":1613},{},[1614,1619],{"type":52,"tag":111,"props":1615,"children":1616},{},[1617],{"type":58,"value":1618},"StackView, Button, Alert, Search, ContextMenu",{"type":52,"tag":111,"props":1620,"children":1621},{},[1622],{"type":52,"tag":1588,"props":1623,"children":1625},{"href":1624},"references\u002Fuikit-components.md",[1626],{"type":58,"value":1627},"UIKit Components",{"type":52,"tag":89,"props":1629,"children":1630},{},[1631,1636],{"type":52,"tag":111,"props":1632,"children":1633},{},[1634],{"type":58,"value":1635},"CAShapeLayer, CAGradientLayer, Core Animation",{"type":52,"tag":111,"props":1637,"children":1638},{},[1639],{"type":52,"tag":1588,"props":1640,"children":1642},{"href":1641},"references\u002Fgraphics-animation.md",[1643],{"type":58,"value":1644},"Graphics & Animation",{"type":52,"tag":89,"props":1646,"children":1647},{},[1648,1653],{"type":52,"tag":111,"props":1649,"children":1650},{},[1651],{"type":58,"value":1652},"Dynamic Type, Semantic Colors, VoiceOver",{"type":52,"tag":111,"props":1654,"children":1655},{},[1656],{"type":52,"tag":1588,"props":1657,"children":1659},{"href":1658},"references\u002Faccessibility.md",[1660],{"type":58,"value":18},{"type":52,"tag":89,"props":1662,"children":1663},{},[1664,1669],{"type":52,"tag":111,"props":1665,"children":1666},{},[1667],{"type":58,"value":1668},"Permissions, Location, Share, Lifecycle, Haptics",{"type":52,"tag":111,"props":1670,"children":1671},{},[1672],{"type":52,"tag":1588,"props":1673,"children":1675},{"href":1674},"references\u002Fsystem-integration.md",[1676],{"type":58,"value":1516},{"type":52,"tag":89,"props":1678,"children":1679},{},[1680,1685],{"type":52,"tag":111,"props":1681,"children":1682},{},[1683],{"type":58,"value":1684},"Metal Shaders & GPU",{"type":52,"tag":111,"props":1686,"children":1687},{},[1688],{"type":52,"tag":1588,"props":1689,"children":1691},{"href":1690},"references\u002Fmetal-shader.md",[1692],{"type":58,"value":1693},"Metal Shader Reference",{"type":52,"tag":89,"props":1695,"children":1696},{},[1697,1702],{"type":52,"tag":111,"props":1698,"children":1699},{},[1700],{"type":58,"value":1701},"SwiftUI HIG, Components, Patterns, Anti-Patterns",{"type":52,"tag":111,"props":1703,"children":1704},{},[1705],{"type":52,"tag":1588,"props":1706,"children":1708},{"href":1707},"references\u002Fswiftui-design-guidelines.md",[1709],{"type":58,"value":1710},"SwiftUI Design Guidelines",{"type":52,"tag":89,"props":1712,"children":1713},{},[1714,1719],{"type":52,"tag":111,"props":1715,"children":1716},{},[1717],{"type":58,"value":1718},"Optionals, Protocols, async\u002Fawait, ARC, Error Handling",{"type":52,"tag":111,"props":1720,"children":1721},{},[1722],{"type":52,"tag":1588,"props":1723,"children":1725},{"href":1724},"references\u002Fswift-coding-standards.md",[1726],{"type":58,"value":1727},"Swift Coding Standards",{"type":52,"tag":1729,"props":1730,"children":1731},"hr",{},[],{"type":52,"tag":61,"props":1733,"children":1734},{},[1735],{"type":58,"value":1736},"Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.",{"items":1738,"total":1859},[1739,1755,1771,1788,1803,1823,1841],{"slug":1740,"name":1740,"fn":1741,"description":1742,"org":1743,"tags":1744,"stars":29,"repoUrl":30,"updatedAt":1754},"android-native-dev","develop Android native applications","Android native application development and UI design guide. Covers Material Design 3, Kotlin\u002FCompose development, project configuration, accessibility, and build troubleshooting. Read this before Android native application development.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1745,1746,1749,1752,1753],{"name":18,"slug":19,"type":16},{"name":1747,"slug":1748,"type":16},"Android","android",{"name":1750,"slug":1751,"type":16},"Kotlin","kotlin",{"name":24,"slug":25,"type":16},{"name":27,"slug":28,"type":16},"2026-07-13T06:16:54.247834",{"slug":1756,"name":1756,"fn":1757,"description":1758,"org":1759,"tags":1760,"stars":29,"repoUrl":30,"updatedAt":1770},"buddy-sings","generate singing performances for AI companions","Use when user wants their Claude Code pet (\u002Fbuddy) to sing a song. Triggers on any request that combines the concept of their Claude Code buddy, pet, or companion with singing or music. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1761,1764,1767],{"name":1762,"slug":1763,"type":16},"Agents","agents",{"name":1765,"slug":1766,"type":16},"Audio","audio",{"name":1768,"slug":1769,"type":16},"Creative","creative","2026-07-13T06:16:35.130644",{"slug":1772,"name":1772,"fn":1773,"description":1774,"org":1775,"tags":1776,"stars":29,"repoUrl":30,"updatedAt":1787},"color-font-skill","select color palettes and font pairings","Choose presentation-ready color palettes and font pairings for PPT\u002Fdesign tasks. Use when users ask for visual theme choices, brand-safe palettes, or font recommendations. Triggers include: 配色, 色板, 字体, color palette, font, PPT配色, 字体搭配.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1777,1780,1783,1786],{"name":1778,"slug":1779,"type":16},"Design","design",{"name":1781,"slug":1782,"type":16},"Presentations","presentations",{"name":1784,"slug":1785,"type":16},"Themes","themes",{"name":888,"slug":885,"type":16},"2026-07-13T06:17:02.785587",{"slug":1789,"name":1789,"fn":1790,"description":1791,"org":1792,"tags":1793,"stars":29,"repoUrl":30,"updatedAt":1802},"design-style-skill","select visual design systems for presentations","Select a consistent visual design system for PPT slides using radius\u002Fspacing style recipes. Use when users ask for overall style direction or component styling consistency. Includes Sharp\u002FSoft\u002FRounded\u002FPill recipes, component mappings, typography\u002Fspacing rules, and mixing guidance. Triggers: 风格, style, radius, spacing, 圆角, 间距, PPT风格, 视觉风格, design style, component style.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1794,1795,1798,1801],{"name":1778,"slug":1779,"type":16},{"name":1796,"slug":1797,"type":16},"Design System","design-system",{"name":1799,"slug":1800,"type":16},"PowerPoint","powerpoint",{"name":1781,"slug":1782,"type":16},"2026-07-13T06:17:10.398389",{"slug":1804,"name":1804,"fn":1805,"description":1806,"org":1807,"tags":1808,"stars":29,"repoUrl":30,"updatedAt":1822},"flutter-dev","build cross-platform apps with Flutter","Flutter cross-platform development guide covering widget patterns, Riverpod\u002FBloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling.\nUse when: building Flutter apps, implementing state management (Riverpod\u002FBloc), setting up GoRouter navigation, creating custom widgets, optimizing performance, writing widget tests, cross-platform development.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1809,1812,1815,1816,1819],{"name":1810,"slug":1811,"type":16},"Dart","dart",{"name":1813,"slug":1814,"type":16},"Flutter","flutter",{"name":24,"slug":25,"type":16},{"name":1817,"slug":1818,"type":16},"Performance","performance",{"name":1820,"slug":1821,"type":16},"State Management","state-management","2026-07-13T06:16:36.626679",{"slug":1824,"name":1824,"fn":1825,"description":1826,"org":1827,"tags":1828,"stars":29,"repoUrl":30,"updatedAt":1840},"frontend-dev","build visually striking frontend web pages","Full-stack frontend development combining premium UI design, cinematic animations,\nAI-generated media assets, persuasive copywriting, and visual art. Builds complete,\nvisually striking web pages with real media, advanced motion, and compelling copy.\nUse when: building landing pages, marketing sites, product pages, dashboards,\ngenerating media assets (image\u002Fvideo\u002Faudio\u002Fmusic), writing conversion copy,\ncreating generative art, or implementing cinematic scroll animations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1829,1832,1833,1834,1837],{"name":1830,"slug":1831,"type":16},"Animation","animation",{"name":1768,"slug":1769,"type":16},{"name":1778,"slug":1779,"type":16},{"name":1835,"slug":1836,"type":16},"Frontend","frontend",{"name":1838,"slug":1839,"type":16},"Web Development","web-development","2026-07-13T06:16:39.108827",{"slug":1842,"name":1842,"fn":1843,"description":1844,"org":1845,"tags":1846,"stars":29,"repoUrl":30,"updatedAt":1858},"fullstack-dev","build full-stack web applications","Full-stack backend architecture and frontend-backend integration guide.\nTRIGGER when: building a full-stack app, creating REST API with frontend, scaffolding backend service,\nbuilding todo app, building CRUD app, building real-time app, building chat app,\nExpress + React, Next.js API, Node.js backend, Python backend, Go backend,\ndesigning service layers, implementing error handling, managing config\u002Fauth,\nsetting up API clients, implementing auth flows, handling file uploads,\nadding real-time features (SSE\u002FWebSocket), hardening for production.\nDO NOT TRIGGER when: pure frontend UI work, pure CSS\u002Fstyling, database schema only.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1847,1850,1851,1854,1857],{"name":1848,"slug":1849,"type":16},"Backend","backend",{"name":1835,"slug":1836,"type":16},{"name":1852,"slug":1853,"type":16},"Full-stack","full-stack",{"name":1855,"slug":1856,"type":16},"REST API","rest-api",{"name":1838,"slug":1839,"type":16},"2026-07-13T06:16:43.219005",22,{"items":1861,"total":1976},[1862,1870,1876,1883,1890,1898,1906,1914,1929,1937,1956,1966],{"slug":1740,"name":1740,"fn":1741,"description":1742,"org":1863,"tags":1864,"stars":29,"repoUrl":30,"updatedAt":1754},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1865,1866,1867,1868,1869],{"name":18,"slug":19,"type":16},{"name":1747,"slug":1748,"type":16},{"name":1750,"slug":1751,"type":16},{"name":24,"slug":25,"type":16},{"name":27,"slug":28,"type":16},{"slug":1756,"name":1756,"fn":1757,"description":1758,"org":1871,"tags":1872,"stars":29,"repoUrl":30,"updatedAt":1770},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1873,1874,1875],{"name":1762,"slug":1763,"type":16},{"name":1765,"slug":1766,"type":16},{"name":1768,"slug":1769,"type":16},{"slug":1772,"name":1772,"fn":1773,"description":1774,"org":1877,"tags":1878,"stars":29,"repoUrl":30,"updatedAt":1787},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1879,1880,1881,1882],{"name":1778,"slug":1779,"type":16},{"name":1781,"slug":1782,"type":16},{"name":1784,"slug":1785,"type":16},{"name":888,"slug":885,"type":16},{"slug":1789,"name":1789,"fn":1790,"description":1791,"org":1884,"tags":1885,"stars":29,"repoUrl":30,"updatedAt":1802},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1886,1887,1888,1889],{"name":1778,"slug":1779,"type":16},{"name":1796,"slug":1797,"type":16},{"name":1799,"slug":1800,"type":16},{"name":1781,"slug":1782,"type":16},{"slug":1804,"name":1804,"fn":1805,"description":1806,"org":1891,"tags":1892,"stars":29,"repoUrl":30,"updatedAt":1822},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1893,1894,1895,1896,1897],{"name":1810,"slug":1811,"type":16},{"name":1813,"slug":1814,"type":16},{"name":24,"slug":25,"type":16},{"name":1817,"slug":1818,"type":16},{"name":1820,"slug":1821,"type":16},{"slug":1824,"name":1824,"fn":1825,"description":1826,"org":1899,"tags":1900,"stars":29,"repoUrl":30,"updatedAt":1840},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1901,1902,1903,1904,1905],{"name":1830,"slug":1831,"type":16},{"name":1768,"slug":1769,"type":16},{"name":1778,"slug":1779,"type":16},{"name":1835,"slug":1836,"type":16},{"name":1838,"slug":1839,"type":16},{"slug":1842,"name":1842,"fn":1843,"description":1844,"org":1907,"tags":1908,"stars":29,"repoUrl":30,"updatedAt":1858},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1909,1910,1911,1912,1913],{"name":1848,"slug":1849,"type":16},{"name":1835,"slug":1836,"type":16},{"name":1852,"slug":1853,"type":16},{"name":1855,"slug":1856,"type":16},{"name":1838,"slug":1839,"type":16},{"slug":1915,"name":1915,"fn":1916,"description":1917,"org":1918,"tags":1919,"stars":29,"repoUrl":30,"updatedAt":1928},"gif-sticker-maker","create animated GIF stickers from photos","Convert photos (people, pets, objects, logos) into 4 animated GIF stickers with captions.\nUse when: user wants to create cartoon stickers, GIF expressions, emoji packs, animated avatars,\nor convert photos to Funko Pop \u002F Pop Mart blind box style animations.\nTriggers: sticker, GIF, cartoon, emoji, expression pack, avatar animation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1920,1921,1922,1925],{"name":1830,"slug":1831,"type":16},{"name":1768,"slug":1769,"type":16},{"name":1923,"slug":1924,"type":16},"Images","images",{"name":1926,"slug":1927,"type":16},"Media","media","2026-07-13T06:16:51.74461",{"slug":4,"name":4,"fn":5,"description":6,"org":1930,"tags":1931,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1932,1933,1934,1935,1936],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},{"name":27,"slug":28,"type":16},{"slug":1938,"name":1938,"fn":1939,"description":1940,"org":1941,"tags":1942,"stars":29,"repoUrl":30,"updatedAt":1955},"minimax-docx","create and edit DOCX documents","Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET). Three pipelines: (A) create new documents from scratch, (B) fill\u002Fedit content in existing documents, (C) apply template formatting with XSD validation gate-check. MUST use this skill whenever the user wants to produce, modify, or format a Word document — including when they say \"write a report\", \"draft a proposal\", \"make a contract\", \"fill in this form\", \"reformat to match this template\", or any task whose final output is a .docx file. Even if the user doesn't mention \"docx\" explicitly, if the task implies a printable\u002Fformal document, use this skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1943,1946,1949,1952],{"name":1944,"slug":1945,"type":16},"Documents","documents",{"name":1947,"slug":1948,"type":16},"DOCX","docx",{"name":1950,"slug":1951,"type":16},"Office","office",{"name":1953,"slug":1954,"type":16},"Templates","templates","2026-07-13T06:16:40.461868",{"slug":1957,"name":1957,"fn":1958,"description":1959,"org":1960,"tags":1961,"stars":29,"repoUrl":30,"updatedAt":1965},"minimax-music-gen","generate music and audio tracks","Use when user wants to generate music, songs, or audio tracks. Triggers on any request involving music creation, song writing, lyrics generation, audio production, or covers. Also triggers when user provides lyrics and wants them turned into a song, or describes a mood\u002Fscene and wants background music. Supports multilingual triggers — match equivalent phrases in any language. Do NOT use for music playback of existing files, music theory questions, or music recommendation without generation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1962,1963,1964],{"name":1765,"slug":1766,"type":16},{"name":1768,"slug":1769,"type":16},{"name":1926,"slug":1927,"type":16},"2026-07-13T06:16:50.381758",{"slug":1967,"name":1967,"fn":1968,"description":1969,"org":1970,"tags":1971,"stars":29,"repoUrl":30,"updatedAt":1975},"minimax-music-playlist","generate personalized music playlists","Generate personalized music playlists by analyzing the user's music taste and generation feedback history. Triggers on any request involving playlist generation, music taste profiling, or personalized music recommendations. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1972,1973,1974],{"name":1765,"slug":1766,"type":16},{"name":1768,"slug":1769,"type":16},{"name":1926,"slug":1927,"type":16},"2026-07-13T06:16:57.002997",37]