
用 Material Design 3 打造原生 Android 设计impeccable 的 Android 平台规则参考指南【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccable本文基于开源项目 impeccable 的 Android 平台参考文档 android.md源码维护版本见 skill/reference/android.md展开。impeccable 是一套面向 AI 编码助手的设计技能skill当工作区的 PRODUCT.md 将平台记录为android时这套规则会在每次设计、评审与打磨任务中被注入上下文约束 AI 在 Jetpack Compose、Android Views、React Native、Expo、Flutter 等原生 Android 交付物上的设计决策。读完本文你将掌握Android slop贴错平台皮肤的识别方法、Material 3 在布局/触控/排版/色彩/动效上的落地清单以及用 adb 在模拟器或真机上完成可复核截图证据的完整验证流程。impeccable 用一个与 ModePersuade / Operate / Read / Experience正交的 Platform 轴web / ios / android / adaptive来回答交付目标是什么、该遵守哪套原生约定。android平台自动加载本参考文件adaptive同一套代码同时发往 iOS 与 Android如 Flutter、React Native、KMP则同时加载 ios 与 android 两份参考。对两端一套皮的 Material-everywhere Flutter/RN 应用项目不将其判定为 adaptive而是只取对应单一平台的规则见 CLAUDE.md 的 Platform 段。原生场景下的核心立场模式收窄表达让位于规范参考文档开篇即给出 Android 平台的最高原则在原生平台上访问者模式visitor mode进一步收窄了什么可以被表达覆盖的空间。无论当前任务处于哪种模式Material Design 3 都统治结构、导航与交互品牌只能通过 Material 允许的通道来表达——色彩角色color roles、字体尺度type scale、形状shape与动效motion。反过来说一个既发往 Android 又发往 iPhone 的 Material-everywhere 跨平台应用只要运行在 Apple 硬件上就仍欠 iOS 以该操作系统的保证项安全区、Reduce Motion、边缘右滑返回这正是 ios.md 的管辖范围。从工程组织上可以印证这套按平台内联规则的设计impeccable 的 Setup 流程会读取 PRODUCT.md 中的## Platform字段缺省为 web当值为android、ios或adaptive时把对应原生参考文件直接内联进上下文避免模型二次跳读参见 CLAUDE.md Platform 段同时init命令在访谈确认平台后、进入任何设计工作前也会加载对应参考。而audit.native.md则明确要求评审者对照平台参考文件打分而非使用任何浏览器工具链。Android slop 测试先识别穿了 Android 皮的 iOS 应用文档用一个高度可操作的检验锚定了最常见的失败模式——The Android slop test一个熟练的 Android 用户会信任这个应用吗还是会被不合规格的组件绊倒最典型的穿帮是给 iOS 应用穿上 Android 皮肤从 iPhone 照搬的底部导航独占没有侧边导航、没有抽屉忽略系统返回手势的自绘返回箭头Back 箭头不响应系统 Back 手势Cupertino 形状的开关与对话框iOS 风格控件直接移植。结论很干脆Material 3 就是规则书跟随它的组件体系然后通过它去主题化品牌而不是反向造一套仿 iOS控件。这项判断与 impeccable 对跨文件 slop 的检出思路一脉相承web 侧由detect.mjs/ 反模式规则引擎在 HTML/CSS 层检测原生侧则由本参考约束源码评审live 模式与 HTML 规则引擎对原生项目不生效见 CLAUDE.md。布局与结构导航、返回、边到边与系统栏规则要点Material 导航随尺寸匹配窄屏用底部导航栏3–5 个目的地宽屏切换为导航 rail 或抽屉。绝不允许把手机版底部栏原样搬到平板上系统 Back 永远可用尊重 predictive Back 手势与 Back 键绝不困住用户或劫持手势Edge-to-edge 配合窗口 insets处理状态栏、导航栏、刘海/挖孔display cutout与 IME insets让内容永不躲在系统栏或键盘后面顶部应用栏提供屏幕语境当屏幕只有一个主操作时与 FAB 成对出现其中导航匹配尺寸呼应了 Material 3 的 adaptive 布局思想同样的目的地集合在不同宽度下应切换不同的容器形态bottom nav → rail → drawer而不是让手机竖屏的视觉直接等比放大。系统 Back 永远可用在 Android 13 尤其关键——预测性返回predictive Back是系统级动画与手势任何自绘返回栈都会与它冲突。触控目标48×48 dp 是硬下限每个触控目标至少48×48 dp相邻目标之间至少留8 dp间距。这是 Material 3 无障碍与误触的双重底线。与 ios.md 的 44×44 pt 相比Android 触控目标更大因为 dp 与密度无关的语义与实际物理尺寸在目标人群上存在差异实现时不应为视觉紧凑感而缩水也不应让目标仅靠 padding 撑大而可点区域仍停留在文字上。排版用 Material 类型尺度而不是手挑字号Material type scaleDisplay、Headline、Title、Body、Label 五类角色每类又分 large / medium / small。把文本映射到角色上绝不逐屏手挑字号。Roboto 是系统字体品牌字体应通过类型尺度注入主题同时保证正文、标签与控件可读且一致。一律使用 sp 而非固定 px让文字跟随系统字体大小设置。类型尺度是可编程的 token 集合在 Compose 中对应Typography/TextStyle在 RN/Flutter 中对应各自的 TextTheme。之所以禁止手挑字号是因为 Material 3 的类型系统在字体缩放系统 font_scale与无障碍放大下需要协同伸缩——这正是后文验证环节里把字号拉到 1.3 再截图能抓出截断文案的原因。色彩与主题角色 token、动态取色与明暗一等公民Material 色彩角色primary、on-primary、surface、surface-variant、secondary-container、outline、error。角色 token 会自动解析 light/dark 与对比度变体裸 hex 在这些场景下会失联。Dynamic ColorMaterial You合适时从 Android 12 用户的壁纸派生配色方案scheme并必须有静态兜底static fallback。深色主题是一等公民方案设计与测试都要做绝不允许快速反相充数。Tonal elevation用标准 surface 色调层级传达高度必要时加阴影不要任意投影。语义角色的价值在于换肤免改码同一套 primary 在 light 与 dark 下自动产生可用的 on-primary深色下自动提升 surface 的色调一旦写成 hex 直填深浅两套与动态取色就全部失效。Material You 的落地路径是用户壁纸 → 系统生成动态 scheme → 应用读取因此测试时应同时覆盖动态色可用与静态兜底路径两种设备状态。组件与动效Material 组件 受约束的动效语汇只用 Material 组件按钮filled / tonal / outlined / text、FAB、开关、chip、snackbar、bottom sheet、Material 对话框、navigation bar/rail/drawer。绝不移植 iOS 控件或自造等价物。一个 FAB 对应一个主操作不堆叠 FAB也不把 FAB 花在次要任务上。Snackbar 负责瞬时反馈有用时带操作项但不用它替代 toast 的位置语义对话框只留给必须打断用户的决策。Material 动效模式container transform、shared-axis、fade-through配合标准缓动与时长并遵守系统的移除动画设置——检测到时应退化为交叉淡入或直接硬切。最后一条与 iOS 参考的 Reduce Motion 是同一哲学在两家平台的落地动效是表达层但不能凌驾于系统无障碍偏好之上。impeccable 的 animate 命令参考 对原生平台即明确跟随平台参考的 Motion 段处理动效不套用 web 工具链而 layout、typeset 等命令在原生场景同样回指本文件而非 web 规则。验证构建截图证据必须来自模拟器或真机参考文档的收官章节给出了原生 Android 上用证据说话的完整流程这也是 impeccable 有界评审bounded passes纪律在原生平台的落点——一次批量截图、一轮修复、至多再确认一轮然后停止打磨。① 截图永不来自浏览器构建安装完成后用 adb 截屏adb exec-out screencap -p path # 多台设备同时连接时用序列号锁定目标 adb -s serial exec-out screencap -p path覆盖应用要发布的每一种设备形态至少一部手机当平板是交付目标时再补一部平板。文件要写到评审流程期望的位置web 评审是desktop.png/mobile.png原生评审使用phone.png/tablet.png这类按设备形态命名的截图详见 plugin/agents/impeccable-finish-reviewer.md 中关于.impeccable/review/目录的约定。② 深色主题与字体缩放必须进验证清单# 切到深色模式结束后用 uimode night no 恢复 adb shell cmd uimode night yes # 把系统字体缩放到 1.3抓出固定布局藏起来的截断文案验完恢复 1.0 adb shell settings put system font_scale 1.3 adb shell settings put system font_scale 1.0如果同时挂着多台目标设备上述命令同样要带上截图所用的-s serial保证主题与字号的切换作用在正确的设备上。font_scale 1.3 相当于系统级大字模式是验证 sp 单位是否真正生效、文案是否会被固定高度裁掉的最高性价比手段。③ 证据来源要诚实模拟器给出广度多种设备形态、系统版本覆盖而手势、刷新率与真实性能表现必须依赖硬件真机。产出证据时必须说明它来自哪一种载体——模拟器结论不能冒充真机性能证据。这套截图入评审流、深浅/字重入验证、模拟器与真机分工并披露来源的纪律与 impeccable 其它原生入口polish 参考 要求按平台参考的 Verifying the build 章节在目标设备形态上验证、new-work 参考 要求按该章节批量截图一轮定稿保持一致共同构成闭环的质量证据链。资料来源与延伸阅读本文主体规则源.hermes/skills/impeccable/reference/android.md内容带 machine-readable 规则锚点注释的源码版本为 skill/reference/android.mdiOS 平台对照规则skill/reference/ios.mdPlatform 轴与规则路由设计CLAUDE.md原生评审与截图契约skill/agents/impeccable-finish-reviewer.md、plugin/skills/impeccable/reference/audit.native.md设计理念与命令总表README.md、plugin/skills/impeccable/SKILL.md归属声明ios.md/android.md由 MIT 许可的 ehmo/platform-design-skills 提炼改写署名详见 NOTICE.md适用前提说明以上 adb 命令与截图命名面向 Android 原生交付流程规则版本以当前仓库记载为准若你的交付物属于 iOS 单平台或跨端 adaptive请分别依据 ios.md 或两平台参考文件的组合执行。【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccable创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考