Repository navigation
Conversation
…able Theme Defaults - Documents breaking the `Theme.build` -> `InheritedCupertinoTheme` -> `Theme.of` -> `CupertinoBasedMaterialThemeData` -> `ColorScheme.fromSeed` retention cycle (`flutter/packages#13515`). - Documents migrating `ThemeData`'s 47 component theme properties to Type Flow Analysis (TFA)-foldable lazy backing fields (`flutter/packages#13516`) with zero breaking changes. - Reports controlled A/B binary size reductions across Native Linux x64 AOT (`libapp.so`: `-180.2 KB` / `-5.79%`), WebAssembly (`main.dart.wasm`: `-81.3 KB` raw / `-45.9 KB` code section), and Web JS (`main.dart.js`: `-34.2 KB`). - Outlines Phase 2 tree-shaking patterns (`!kIsWeb` operand order, `.adaptive` / variant enum switches, `PageTransitionsTheme`, `ServicesBinding`, and `Tween<T>.lerp` dynamic operator dispatch) and deterministic presubmit symbol-retention regression tests.
kevmoo
marked this pull request as ready for review
November 3, 2026 23:37
elliette
reviewed
Nov 11, 2026
elliette
left a comment
Member
There was a problem hiding this comment.
Did a quick first pass, left a few comments. Also there are some issues with the PR description:
- Looks like the tracking issue link is wrong (currently is flutter/flutter#188444, which is closed)
- None of the linked related issues seem related to this prosal
…d add DevTools benchmark - Align structure and tags (`310-design-systems`) with `000.0003-rfc-template.md`. - Scope proposal and CI guardrails exclusively to `package:material_ui` in `flutter/packages`, moving follow-up framework/engine/compiler items to `Non-goals`. - Add `flutter/devtools` (`packages/devtools_app`) Wasm (`-22 KB` / `-0.4%`) and `dart2js` (`+8 KB` / `+0.1%`) benchmark results and document the widget-coverage, `TextField`, and `debugFillProperties` boundaries.
Author
|
Addressed all feedback in ac5de47, filed open tracking issue flutter/flutter#196349, and fixed the PR description links — PTAL! |
…ference widening
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposes RFC 310.0000: Size-Aware Design Systems and Tree-Shakable Theme Defaults, eliminating whole-program tree-shaking retention cycles in
package:material_uiacross native AOT (gen_snapshot) and WebAssembly (dart2wasm) for apps using a subset of Material widgets, and introducing deterministic presubmit symbol-retention regression tests.package:material_uionly): Breaks theTheme.build->InheritedCupertinoTheme->Theme.of->CupertinoBasedMaterialThemeData->ColorScheme.fromSeedretention cycle (flutter/packages#13515) and migratesThemeData's 47 component themes to Type Flow Analysis (TFA)-foldable lazy backing fields (flutter/packages#13516) with zero breaking changes to public APIs or equality/interpolation invariants.-180 KB(-5.8%) on Linux x64 AOT (libapp.so),-81 KB(-3.3%) on WebAssembly (main.dart.wasm), and-34 KB(-1.6%) on JavaScript (main.dart.js). On widget-dense apps (flutter/devtools), they prune 16 unused*_theme.dartlibraries for-22 KB(-0.4%) on WebAssembly while adding+8 KB(+0.1%) ondart2js.flutter/packagesalongside postsubmit--wasmand native AOT size tracking formaterial_uicanary benchmarks.Tracking issue: flutter/flutter#196349 (related: flutter/flutter#91772, flutter/flutter#101479)
Pre-launch Checklist
design doc.dart run bin/assign_rfc_number.dartlocally when instructed).If you need help, consider asking for advice on the #hackers channel on Discord.