Implements SwiftUI views and screens using iOS 26/Swift 6.2 modular MVVM-C architecture and Apple design principles from Creative Selection and Design Like Apple. Use for new greenfield UI builds respecting domain/data boundaries and accessibility.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin pproenca-dot-skills-1This skill uses the workspace's default tool permissions.
A builder's guide for implementing Apple-quality iOS interfaces in SwiftUI, grounded in two foundational design texts:
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
A builder's guide for implementing Apple-quality iOS interfaces in SwiftUI, grounded in two foundational design texts:
Contains 62 rules across 8 principle-based categories. Each rule identifies a specific anti-pattern, grounds the fix in a named principle, and provides the correct iOS 26 / Swift 6.2 SwiftUI implementation.
This skill is the building and implementation guide — it teaches how to construct new SwiftUI interfaces from scratch using Apple-quality patterns. When loaded alongside ios-ui-refactor (reviewing/refactoring existing UI), this skill covers the greenfield implementation that ios-ui-refactor later audits. Use this skill for building new screens; use the sibling for evaluating and improving existing ones.
All guidance in this skill assumes the clinic modular MVVM-C architecture:
Domain + DesignSystem only (never Data, never sibling features)DependencyContainer, concrete coordinators, and Route Shell wiringDomain stays pure Swift and defines models plus repository, *Coordinating, ErrorRouting, and AppError contractsData owns SwiftData/network/sync/retry/background I/O and implements Domain protocolsReference these guidelines when:
| Priority | Category | Principle | Impact | Prefix | Rules |
|---|---|---|---|---|---|
| 1 | Empathy in Every Pixel | Kocienda "Empathy" · Edson "Design Is About People" | CRITICAL | empathy- | 8 |
| 2 | The Visual System | Edson "Systems Thinking" · Kocienda "Convergence" | CRITICAL | system- | 8 |
| 3 | Craft: State as Foundation | Kocienda "Craft" | CRITICAL | craft- | 7 |
| 4 | Creative Composition | Kocienda "Creative Selection" | HIGH | compose- | 6 |
| 5 | Taste: The Right Choice | Kocienda "Taste" · Edson "Design with Conviction" | HIGH | taste- | 8 |
| 6 | Navigation as Conversation | Edson "Design Is a Conversation" · Kocienda "The Demo" | HIGH | converse- | 9 |
| 7 | Design Out Loud: Layout | Edson "Design Out Loud" · Kocienda "Intersection" | HIGH | layout- | 8 |
| 8 | The Product Speaks | Edson "Product Is the Marketing" · Kocienda "Demo Culture" | MEDIUM | product- | 8 |
Kocienda: "Empathy — trying to see the world from other people's perspectives." Edson: design begins with the person holding the device.
empathy-semantic-colors - Use semantic colors, never hard-coded valuesempathy-dark-mode - Support Dark Mode from day oneempathy-foreground-style - Use foregroundStyle over foregroundColorempathy-safe-areas - Always respect safe areas for contentempathy-voiceover-labels - Add VoiceOver labels to every interactive elementempathy-touch-targets - Ensure 44x44 point minimum touch targetsempathy-reduce-motion - Always provide reduce motion fallbackempathy-readable-width - Constrain text to readable width on iPadEdson: "Zoom out to see relationships between objects." Kocienda: convergence — many decisions narrowing toward one coherent whole.
system-typography - Use system typography styles, never fixed sizessystem-visual-hierarchy - Establish clear visual hierarchy through size, weight, and colorsystem-spacing-grid - Use a 4pt base unit for all spacingsystem-material-backgrounds - Use material backgrounds for depth and layeringsystem-sf-symbols - Use SF Symbols for consistent iconographysystem-gradients - Apply gradients for visual depth, not decorationsystem-standard-margins - Use system standard margins consistentlysystem-stack-config - Configure stack alignment and spacing explicitlyKocienda: "Craft — applying skill to achieve a high-quality result."
craft-state-local - Use @State for view-local value typescraft-state-binding - Use @Binding for child view mutationscraft-state-environment - Use @Environment for shared app-wide datacraft-state-observable - Use @Observable for model classescraft-avoid-body-state - Never create state inside the view bodycraft-minimize-scope - Minimize state scope to reduce re-renderscraft-state-bindable - Use @Bindable for @Observable bindingsKocienda: "Creative selection — great software is built through composition and recombination."
compose-body-some-view - Return some View from body, never concrete typescompose-custom-properties - Use properties to make views configurablecompose-modifier-order - Apply view modifiers in the correct ordercompose-viewbuilder - Use @ViewBuilder for flexible slot-based compositioncompose-prefer-value-types - Prefer value types for view datacompose-prefer-composition - Prefer composition over inheritance for view reuseKocienda: "Taste — refined judgment, the ability to choose the one right solution." Edson: commit to one approach and perfect it.
taste-list-vs-lazyvstack - Choose List for system features, LazyVStack for custom layoutstaste-sheet-vs-fullscreen - Choose sheet for tasks, fullScreenCover for immersiontaste-picker - Choose the right picker style for the data typetaste-grid-vs-lazygrid - Choose Grid for aligned data, LazyVGrid for scrollable collectionstaste-button - Use button styles that match the action's importancetaste-textfield - Configure text input with the right keyboard and content typetaste-alerts - Use alerts only for critical, blocking informationtaste-action-sheets - Use confirmation dialogs for contextual multi-choice actionsEdson: "Design is a conversation between the product and the person." Kocienda: demos as conversations about whether the interface speaks clearly.
converse-navigationstack - Use NavigationStack for programmatic, type-safe navigationconverse-tabview - Organize app sections with TabView for parallel navigationconverse-sheet-item - Use item binding for data-driven sheet presentationconverse-dismiss - Use environment dismiss for modal closureconverse-toolbar - Place toolbar items in the correct semantic positionsconverse-tab-bar - Use tab bar for top-level section navigationconverse-nav-bar - Configure navigation bar to communicate contextconverse-hierarchy - Design clear navigation hierarchy before writing codeconverse-search - Integrate search with the searchable modifierEdson: "Design Out Loud — prototype relentlessly until layout feels inevitable." Kocienda: the intersection of technology and liberal arts.
layout-stacks - Use stacks instead of manual positioninglayout-spacer - Use Spacer for flexible space distributionlayout-frame-sizing - Use frame() for explicit size constraintslayout-zstack - Use ZStack for purposeful layered compositionlayout-grid - Use Grid for aligned non-scrolling tabular contentlayout-lazy-grids - Use LazyVGrid for scrollable multi-column layoutslayout-adaptive - Use adaptive layouts for different size classeslayout-scroll-indicators - Show scroll indicators for long scrollable contentEdson: "The product itself is the marketing." Kocienda: every animation and loading state built to survive Steve Jobs' scrutiny.
product-transitions - Use semantic transitions for appearing viewsproduct-loading-states - Show honest loading states, not indefinite spinnersproduct-with-animation - Use withAnimation for explicit state-driven animationproduct-matched-geometry - Use matchedGeometryEffect for contextual origin transitionsproduct-list-cells - Design list cells with standard layoutsproduct-content-unavailable - Use ContentUnavailableView for empty and error statesproduct-segmented - Use segmented controls for visible, mutually exclusive optionsproduct-menus - Use menus for secondary actions without cluttering the interfaceRead individual reference files for detailed explanations and code examples:
| File | Description |
|---|---|
| references/_sections.md | Category definitions and principle grounding |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |