Refactor Button to improve Material Design 3 compliance, remove problematic children patterns, improve performance characteristics, and modernize the public API.
Problems
- Current API relies heavily on children composition in ways that are difficult to optimize
- Internal layout logic is tightly coupled to arbitrary child structures
- MD3 behaviors and visuals are not fully aligned with current Material guidelines
- Rendering performance can degrade in large lists or frequently updated screens
- Type safety and discoverability of the API can be improved
- The component has inconsistent behavior between platforms and edge cases
Focus Areas
- Remove implicit text child handling
- Improve icon + label composition
- Standardize loading and disabled states
- Improve ripple and state layer behavior
- Reduce nested render structure
- Improve accessibility semantics
Proposed API Direction
Instead of:
<Button icon="plus">Create</Button>
Prefer:
<Button label="Create" icon="plus" />
Performance Opportunities
- Memoize content container
- Avoid cloning children
- Reduce dynamic style allocations
- Optimize ripple rendering
Refactor Button to improve Material Design 3 compliance, remove problematic children patterns, improve performance characteristics, and modernize the public API.
Problems
Focus Areas
Proposed API Direction
Instead of:
<Button icon="plus">Create</Button>Prefer:
<Button label="Create" icon="plus" />Performance Opportunities