Skip to content

[material_ui] Migrate M3 Motion template to use new gen_defaults - #13058

Merged
auto-submit[bot] merged 5 commits into
flutter:mainfrom
QuncCccccc:motion_m3_defaults_migration
Oct 2, 2026
Merged

auto-submit[bot] merged 5 commits into
flutter:mainfrom
QuncCccccc:motion_m3_defaults_migration

Conversation

@QuncCccccc

Copy link
Copy Markdown
Contributor

Work toward flutter/flutter#187899.
Fixes flutter/flutter#188422.

This PR migrates the M3 Motion defaults template to use the new gen_defaults in material_ui.
The generated defaults remain unchanged.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the gemini-code-assist bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2

@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 28, 2026
@QuncCccccc QuncCccccc added override: no versioning needed Override the check requiring version bumps for most changes override: no changelog needed Override the check requiring CHANGELOG updates for most changes labels Sep 28, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the Material 3 motion defaults to a template-based generator (MotionTemplateM3), moving the hardcoded tokens from motion.dart into a generated file and introducing a helper Cubic struct. The generation tool and tests are updated to support this template. The review feedback suggests improving the formatting of the generated code templates in motion_template.dart by using .trimRight() to place the closing braces of the generated classes on separate lines.

${_durationTokenString('extralong1', TokenMotionStandard.durationExtraLong1)}
${_durationTokenString('extralong2', TokenMotionStandard.durationExtraLong2)}
${_durationTokenString('extralong3', TokenMotionStandard.durationExtraLong3)}
${_durationTokenString('extralong4', TokenMotionStandard.durationExtraLong4)}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The closing brace } is placed directly after the string interpolation as }}, which can be hard to read and error-prone during future edits. Using .trimRight() on the last token string allows placing the closing brace on its own line without introducing an extra blank line.

Suggested change
${_durationTokenString('extralong4', TokenMotionStandard.durationExtraLong4)}}
${_durationTokenString('extralong4', TokenMotionStandard.durationExtraLong4).trimRight()}
}

${_easingCurveTokenString('standardDecelerate', TokenMotionStandard.easingStandardDecelerate)}
${_easingCurveTokenString('legacyDecelerate', TokenMotionStandard.easingLegacyDecelerate)}
${_easingCurveTokenString('legacyAccelerate', TokenMotionStandard.easingLegacyAccelerate)}
${_easingCurveTokenString('legacy', TokenMotionStandard.easingLegacy)}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The closing brace } is placed directly after the string interpolation as }}, which can be hard to read and error-prone during future edits. Using .trimRight() on the last token string allows placing the closing brace on its own line without introducing an extra blank line.

${_easingCurveTokenString('legacy', TokenMotionStandard.easingLegacy).trimRight()}
}

@github-actions github-actions Bot added p: material_ui triage-design Should be looked at in design triage labels Sep 28, 2026
@elliette
elliette self-requested a review September 29, 2026 21:18

@elliette elliette left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but we should use the new CubicStruct added in #13082 instead

…migration

# Conflicts:
#	packages/material_ui/tool/gen_defaults/data/cubic_struct.dart
#	packages/material_ui/tool/gen_defaults/data/motion_expressive.dart
…migration

# Conflicts:
#	packages/material_ui/tool/gen_defaults/bin/gen_defaults.dart
#	packages/material_ui/tool/gen_defaults/test/gen_defaults_test.dart
@QuncCccccc QuncCccccc added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 2, 2026
@auto-submit
auto-submit Bot merged commit 10cde9a into flutter:main Oct 2, 2026
13 checks passed
ZhuJHua pushed a commit to ZhuJHua/flutter that referenced this pull request Oct 6, 2026
…er#193840)

flutter/packages@5620e65...951f2f7

2026-10-05 Hamidrezash1384@gmail.com [material_ui] Add scrollPadding
property to DropdownMenuFormField (flutter/packages#12735)
2026-10-02 36861262+QuncCccccc@users.noreply.github.com [material_ui]
Migrate M3 Motion template to use new gen_defaults
(flutter/packages#13058)
2026-10-02 44747303+theprantadutta@users.noreply.github.com
[cupertino_ui] Forward showDragHandle from showCupertinoSheet to
CupertinoSheetRoute (flutter/packages#13011)
2026-10-02 105214765+HibaChamkhi@users.noreply.github.com [cupertino_ui]
Fix CupertinoMagnifier focal point with custom size
(flutter/packages#13029)
2026-10-02 katelovett@google.com [ci] Add material_ui and cupertino_ui
to customer testing (flutter/packages#13114)
2026-10-02 36861262+QuncCccccc@users.noreply.github.com [material_ui]
Add Material 3 Expressive migration skill (flutter/packages#12818)
2026-10-02 sethineelansh@gmail.com [video_player] Ignore late position
updates after disposal (flutter/packages#12971)
2026-10-02 46639812+Gyeony95@users.noreply.github.com [material_ui]
Remove unconditional dart:io import from about.dart
(flutter/packages#12774)
2026-10-02 50643541+Mairramer@users.noreply.github.com [material_ui] Fix
DropdownButtonFormField underline alignment at bottom
(flutter/packages#12606)
2026-10-02 engine-flutter-autoroll@skia.org Roll Flutter from
e89fd0a to d03768e (23 revisions) (flutter/packages#13111)
2026-10-02 dkwingsmt@users.noreply.github.com [material_ui] Migrate
`Switch` API doc snippets to {@example} (batch 8)
(flutter/packages#13052)
2026-10-02 45616602+NikhilKukreja26@users.noreply.github.com
[url_launcher] Fix supportsCloseForLaunchMode to query close support
(flutter/packages#12926)
2026-10-02 15619084+vashworth@users.noreply.github.com Redistribute
iOS/macOS Suggested Reviewers (flutter/packages#13076)
2026-10-02 anilcan.cakir@gmail.com [image_picker] Subsample large images
when resizing on Android (flutter/packages#13038)
2026-10-02 kevmoo@users.noreply.github.com [cupertino_ui] Remove
redundant null arguments in Completer.complete (flutter/packages#13008)
2026-10-02 269567208+reidbaker-agent@users.noreply.github.com [repo]
Update AGENTS.md with dependency allowance and versioning guidance
(flutter/packages#12579)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: material_ui triage-design Should be looked at in design triage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

motion_template.dart

2 participants