Skip to content

fix: resolve container decoration and button layout crashes#12

Closed
Ryanditko wants to merge 25 commits intomainfrom
fix/container-decoration-and-button-layout
Closed

fix: resolve container decoration and button layout crashes#12
Ryanditko wants to merge 25 commits intomainfrom
fix/container-decoration-and-button-layout

Conversation

@Ryanditko
Copy link
Copy Markdown
Owner

Summary

  • Fix _buildContainer to parse the decoration prop (gradient, borderRadius, color, border, boxShadow) instead of only reading backgroundColor
  • Remove SizedBox(width: double.infinity) from buildServerButton that caused infinite-width crashes when buttons were placed inside Row widgets
  • Add support for width, height, and tap action on container components

Test plan

  • All 210 unit/widget tests pass
  • flutter analyze reports zero errors
  • Container decoration renders correctly on home, profile, and onboarding screens
  • Buttons render correctly inside both Column (full-width) and Row (natural-width) contexts

Ryanditko added 25 commits April 1, 2026 13:48
- Wrap buildServerTextButton with Semantics(button: true, label: ...)
- Wrap buildServerOutlinedButton with Semantics(button: true, label: ...)

Made-with: Cursor
- Wrap buildServerInkWell with Semantics(button: node.action != null)
- Wrap buildServerGestureDetector with Semantics for accessibility

Made-with: Cursor
- Wrap selectableText with Semantics(label: content)
- Wrap richText with Semantics using concatenated span text

Made-with: Cursor
- Wrap placeholder with Semantics(label: 'Placeholder')
- Wrap circleAvatar with Semantics(label: label, image: imageUrl != null)

Made-with: Cursor
- Replace snackbar placeholder with actual URL launching
- Use launchUrl with LaunchMode.externalApplication

Made-with: Cursor
- Add url_launcher ^6.3.2 to pubspec.yaml

Made-with: Cursor
- Cover parsePadding, parseAlignment, parseAxis, parseTextAlign
- Cover parseFontWeight, parseFontStyle, parseTextDecoration
- Cover parseBoxFit, parseBorderRadius, parseBoxConstraints
- Cover parseDuration, parseCurve, parseScrollPhysics

Made-with: Cursor
- Test center, align, padding, sizedBox, opacity, clipRRect
- Test safeArea, rotatedBox, ignorePointer, offstage

Made-with: Cursor
- Test textButton, outlinedButton, iconButton, FAB rendering
- Verify Semantics wrappers and label display

Made-with: Cursor
- Test listTile, expansionTile, switchListTile, checkboxListTile
- Verify toggle callbacks report correct id and value

Made-with: Cursor
- Test selectableText, richText rendering and Semantics

Made-with: Cursor
- Test slider rendering and value clamping
- Test radio widget rendering

Made-with: Cursor
- Test placeholder, circleAvatar, verticalDivider
- Verify Semantics wrappers on placeholder and avatar

Made-with: Cursor
- Test inkWell, gestureDetector, tooltip, dismissible
- Verify Semantics and action dispatch on tap

Made-with: Cursor
- Test scrollView, gridView, pageView rendering

Made-with: Cursor
- Test material, hero, indexedStack, transform, banner

Made-with: Cursor
- Test animatedContainer, animatedOpacity, animatedCrossFade
- Test animatedSwitcher and animatedSize rendering

Made-with: Cursor
- Test table with rows and dataTable with columns and rows

Made-with: Cursor
- Full listing of all 103 component types with props and children support
- Organized by category: layout, wrappers, decorators, scrollables, etc.
- Include action types reference table

Made-with: Cursor
- Add new component categories: wrappers, decorators, scrollables, animated
- Update openUrl action description to reflect url_launcher integration
- Expand accessibility section with new Semantics-wrapped components

Made-with: Cursor
- Expand component table from 22 to 103 types across 13 categories
- Add advanced_components to demo screens table
- Add link to COMPONENTS.md reference catalog

Made-with: Cursor
- Showcase layout wrappers, decorators, tiles, button variants
- Demo opacity levels, transforms, rich text, and circle avatars

Made-with: Cursor
- Add Advanced Components button between New Components and Expressions Demo

Made-with: Cursor
- Parse 'decoration' prop with gradient, border, borderRadius and boxShadow
- Support width and height props on containers
- Add GestureDetector wrapping for containers with actions
- Import parsing_utils for BoxDecoration parsing

Made-with: Cursor
- Remove SizedBox(width: double.infinity) that crashed inside Row widgets
- Use natural button sizing with symmetric padding instead
- Buttons still stretch to full width via Column crossAxisAlignment.stretch

Made-with: Cursor
@Ryanditko Ryanditko added the bug Something isn't working label Apr 1, 2026
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
flutter-backend-driven-ui Ready Ready Preview, Comment Apr 1, 2026 6:18pm

@Ryanditko Ryanditko closed this Apr 1, 2026
@Ryanditko Ryanditko deleted the fix/container-decoration-and-button-layout branch April 1, 2026 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant