mcpField
M
material3-expressive-flutter

material3-expressive-flutter

github.com/mic-360设计与 UI342 次安装37 周前更新
代码仓库

关于 material3-expressive-flutter

Material 3 Expressive Flutter 是一项技能,提供在 Flutter 中实现 Material 3 Expressive 的模式、脚本和规则。它指导组件开发,并依据设计原则检查动效、形状、反馈和无障碍性。

主要功能

  1. 01Material 3 Expressive 实现模式
  2. 02基于物理效果的动效指引
  3. 03形状变换模式
  4. 04组件模板脚本
  5. 05设计原则验证
  6. 06无障碍要求

适用场景

  1. 01构建富有表现力的 Flutter 组件
  2. 02更新标准 Material 3 应用
  3. 03添加弹簧式转场动画
  4. 04依据 M3 Expressive 审查界面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mic-360/material3-expressive-flutter --skill material3-expressive-flutter

安装后在 Claude Code 中输入/material3-expressive-flutter确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CLAUDE.md
references/
color-schemes.md
external-docs.md
motion-guide.md
packages.md
shape-guide.md
typography-guide.md
references/components/
app-bars.md
button-groups.md
buttons.md
fab-menu.md
icon-buttons.md
loading-indicators.md
navigation-bar.md
navigation-rail.md
progress-indicators.md
split-buttons.md
toolbars.md
rules/
_sections.md
color-philosophy.md
motion-physics.md
shape-morphing.md
typography-editorial.md
scripts/
component_template.dart
generate_theme.dart

详细介绍

Material 3 Expressive Flutter

此技能提供了在 Flutter 中实现 Material 3 Expressive 设计系统的全面模式、脚本和规则,重点关注基于物理的动效、有机形状和以提升参与度为导向的组件。

工作原理

  1. 需求分析:当你询问 M3E 时,Agent 会分析上下文(组件类型、状态、重要性)。
  2. 应用规则:应用 rules/ 中的规则(动效物理、形状变形),确保符合设计规范。
  3. 生成代码:以 scripts/component_template.dart 为基础,生成高品质、易于访问且高性能的组件。
  4. 验证:根据 M3E 原则审核输出,例如“空间弹簧与效果弹簧”和“形状对比”。

适用场景

  • 开发新功能:创建需要高度用户参与度的组件(促销内容、引导流程、关键操作)时。
  • 设计现代化:将标准 M3 应用更新为更流畅、更具表现力的风格。
  • 表现力动效:实现基于弹簧的动画,营造自然的观感。
  • 自定义形状:实现可变形容器或非标准圆角形状。

用法

1. 搭建新组件

使用模板创建健壮、能感知状态的 Widget。

# Path to script
flutter run scripts/component_template.dart
2. 实现策略

触发短语:

  • “用 M3 Expressive 风格实现一个 [组件]”
  • “为此过渡添加表现力动效”
  • “将这个标准 M3 按钮现代化”
  • “根据 M3 Expressive 原则审核我的 UI”

示例

空间弹簧动效(示例)
// Use for movement and position
Curves.elasticOut; // Strong, tactile response
Cubic(0.34, 1.56, 0.64, 1); // Expressive overshoot
形状变形容器
AnimatedContainer(
  duration: const Duration(milliseconds: 500),
  curve: Curves.elasticOut,
  decoration: ShapeDecoration(
    shape: M3ExpressiveShape.teardrop, // Custom token
    color: theme.colorScheme.primaryContainer,
  ),
);

参考指南

规则与标准

  1. 优先使用物理效果而非时长:使用弹簧(空间/效果),而非固定时长。
  2. 充分圆润:为按钮和主要指示器使用 StadiumBorder()。
  3. 提供有意义的反馈:表现力操作始终包含 HapticFeedback.lightImpact()。
  4. 无障碍:确保最小触控目标为 48x48dp,并正确使用 Semantics。

故障排除

  • “动画感觉抖动”:确保没有使用 Curves.linear,也没有在弹簧动画中设置过短的时长(<200ms)。
  • “形状无法正确变形”:确保使用了 ShapeDecoration,并搭配支持插值的自定义 ShapeBorder。
  • “UI 感觉平淡”:检查颜色对比度,并确保主要操作使用填充容器。

向用户展示结果

完成 M3E 任务时,总结新增的表现力特性:

  • ✅ 动效:为 [操作] 应用了 [空间/效果] 弹簧。
  • ✅ 形状:为 [组件] 使用了 [胶囊形/泪滴形/方圆形]。
  • ✅ 触觉反馈:集成了触觉反馈。
  • ✅ 颜色:使用了动态 M3 颜色令牌。
  • ✅ 无障碍:已验证触控目标和语义。

评论

支持 Markdown