Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate Outdated Widgets #559

Open
3 tasks
tilucasoli opened this issue Feb 28, 2025 · 0 comments
Open
3 tasks

Deprecate Outdated Widgets #559

tilucasoli opened this issue Feb 28, 2025 · 0 comments
Labels

Comments

@tilucasoli
Copy link
Collaborator

tilucasoli commented Feb 28, 2025

Description

The current Mix includes several specialized layout components (StyledRow, StyledContainer, StyledColumn, StyledFlex, StyledStack). These components introduce redundancy since their functionalities can be achieved using Box, FlexBox, HBox, and VBox. Maintaining these Widgets increases API surface, decreasing the readability and maintainability.

Proposed Changes

Deprecate StyledRow, StyledContainer, StyledColumn, StyledFlex, and StyledStack, encouraging developers to transition to Box, FlexBox, ZBox, HBox, and VBox.

Impact Analysis

Benefits

  • Simplified API Surface: Reducing the number of layout
  • Better Maintainability: Fewer components to maintain, reducing the potential for inconsistencies and technical debt.

Potential Drawbacks:

  • Breaking Changes for Existing Users: Some projects may rely heavily on these specific components, making the transition more challenging.
  • Learning Curve for Existing Users: Users may need time to adjust to the new layout system.

Implementation Plan

Tasks

  • Deprecate the listed widgets
  • Update documentation with all new best practices
  • Delete the deprecated Widgets

Testing Strategy

Because it is just a deprecation there is no extra tests

Additional Considerations

Box-derived Widgets

This proposal advocates for using box-derived widgets in our development framework. We need to evaluate whether all Mix components should transition to this format and consider how StyledIcon fits into this new approach. Should we introduce a BoxIcon?

If we proceed with box-derived widgets, we must carefully handle attribute conflicts. For instance, in FlexBox, both Box and StyledFlex include the clipBehavior property. While this is a simple case, creating an IconBox could lead to conflicts between Box’s shadows and StyledIcon’s shadows.

@tilucasoli tilucasoli changed the title Deprecate outdated widgets Deprecate Outdated Widgets Feb 28, 2025
@tilucasoli tilucasoli added the mix label Feb 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant