Repository navigation
feat(mix): add BoxStyler.pressable() - #1088
Open
leoafarias wants to merge 9 commits into
Open
leoafarias wants to merge 9 commits into
leoafarias wants to merge 9 commits into
Conversation
leoafarias
marked this pull request as ready for review
October 3, 2026 18:22
…ecords Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
Co-authored-by: Leo Farias <leoafarias@users.noreply.github.com>
cursor
Bot
force-pushed
the
feat/boxstyler-pressable
branch
from
October 20, 2026 15:35
0811d72 to
2525770
Compare
This branch has not been deployed
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.
Related issue
No linked issue.
Description
Add
compose → .pressable() → callfor interactive Box, Text, Icon, Image, FlexBox, StackBox, WrapBox, and GridBox styles.Changes
Pressableand styled child per call.@MixWidgetfactories still return styles.Review Checklist
btwld/mix-docsmigration remains a release follow-up.Validation and release follow-ups
melos run gen:build,melos run ci, andmelos run format:checkpassed: 3,023 core tests, 383 generator tests and all dependent suites, including 129 showcase tests. Generated output has no further changes.melos run analyze: schema and Dart stages passed. DCM still reports four pre-existing findings in unchanged files: member ordering and sealed-switch wildcard instyle_animation_builder.dart:81,90; argument ordering indecoration_style_mixin.dart:273,359. Full analysis remains non-green; no new DCM findings.Callable builders are unreleased and absent from Mix 2.2.1. Hosted showcase and standalone Snacks retain published-compatible constructors until release. The migration audit maps all 22 PressableBox and 9 Pressable sites, including hit areas, nested controls, keyboard access and semantics. The October 19 GitHub workflow passed against current
main, including repository analysis/tests and published-dependency showcase analysis/tests/web build.Plan and review records
Plans and review records are committed with the implementation. Repository instructions require these records to be committed and pushed with future PRs.
Related issue
No linked issue.
Description
Add
BoxStyler.pressable(...)so a composedBoxStylercan construct aPressableBoxdirectly:The five
Pressable*Builderclasses and per-styler.pressable()methods were dropped:button(...),label('Save')), so introducing a second callable wrapper layer was redundant.Pressablemust sit outsideBox/StyleBuilderso itsWidgetStateProvideris visible to.onHovered,.onPressed,.onFocused, and.onDisabledon the style itself (which is why.wrap(...)modifiers cannot be used).PressableBox(style: this, ...)fromBoxStyler.pressable(...)avoids duplicatingPressable's parameter list across seven places. Follow-ups like Add semantics identifier support to Pressable #1092 (semanticsIdentifier) only need to add the parameter toPressable,PressableBox, and this one method.Changes
BoxStyler.pressable(...)forwarding allPressableBoxparameters and defaults toPressableBox(style: this, ...).pressable_builders.dart, the fivePressable*Builderclasses, the_...StylerPressableMixinhooks, and.pressable()onTextStyler,IconStyler,ImageStyler,FlexBoxStyler,StackBoxStyler,WrapBoxStyler, andGridBoxStyler.packages/mix/test/src/specs/pressable/box_styler_pressable_test.dartcovering default values, parameter forwarding, and tap/onPressedinteraction.CHANGELOG.md,README.md, composition guidelines,packages/mix/example, and Mix skill docs.Review Checklist