apps/ios/DESIGN.md
OpenClaw follows the native iOS 26 design language while keeping an iOS 18 deployment target. Use SwiftUI system structure first, Liquid Glass for interactive chrome, and quiet opaque surfaces for content.
NavigationStack, TabView, List, Form, toolbars, sheets, and system controls. They adopt the current platform appearance automatically.Apple references: Adopting Liquid Glass, Applying Liquid Glass to custom views, and Build a SwiftUI app with the new design.
OpenClawProMetric in Sources/Design/OpenClawProComponents.swift is the source of truth for shared geometry:
pagePadding: standard page guttercardRadius: content group radiuscontrolRadius: inset control radiuscompactControlSize: compact circular control sizebottomScrollInset: clearance above persistent navigationFeature-local layout enums may define row heights and grid dimensions, but should reference the shared radius instead of introducing a new card shape.
OpenClawProBackground: grouped page backgroundProCard: quiet content grouping; never Liquid GlassProIconBadge, ProValuePill: compact semantic indicatorsOpenClawNoticeBanner: shared connection and runtime noticesOpenClawAdaptiveHeaderRow: responsive destination headingOpenClawGlassControlGroup: performance and morphing boundary for nearby glass controlsopenClawGlassButton(prominent:tint:): iOS 26 glass button with an iOS 18 bordered fallbackopenClawTabBarBehavior(): iOS 26 tab-bar minimization with an earlier-system no-opUse openClawGlassButton for primary actions, compact header controls, and navigation-adjacent controls. Use the prominent style for one primary action per region. Wrap nearby controls in OpenClawGlassControlGroup.
Do not place Liquid Glass behind reading content, forms, metrics, or every card in a scroll view. Excess glass weakens hierarchy, increases rendering cost, and competes with the system tab bar and navigation chrome.
Keep new iOS APIs behind #available(iOS 26.0, *). The fallback must preserve the same label, action, tint meaning, accessibility, and approximate hit target.