-
-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Is your feature request related to a problem? Please describe.
Having all available controls from this library listed under the shadui namespace (shadui:) just feels more intuitive. But most important, avoid frustration when you're building custom controls, you end up fighting against base styles/templates that this library already overwrites. That means repetitive code, extra wrapper controls, and unpredictable visual behavior.
Describe the solution you'd like
Keep the base controls completely unstyled (default style) with zero template modifications. Move all the custom styling (colors, templates, everything) into the shadui namespace. Controls like <Button/> or <ContextMenu/> would benefit hugely from this. You could ditch helpers like ButtonAssist.Icon and just use <shadui:Button><shadui:Button.Icon></shadui:Button.Icon></shadui:Button> instead.
Yeah, this is a breaking change, but the improvement to developer experience and overall best practices makes it worth it.
Describe alternatives you've considered
Maybe with duplicates like <SimpleButton/> that skip the styling entirely, but that's just bad practice. The solution above is the only approach that actually makes sense.
Add any other context or screenshots about the feature request here.
Current implementation:
<Button
shadui:ButtonAssist.ShowProgress="{Binding IsBusy}"
Classes="Outline"
Command="{Binding SubmitCommand}"
Content="Edit">
<shadui:ButtonAssist.Icon>
<TextBlock
Margin="0,0,6,0"
Classes="LucideIcon"
Text="" />
</shadui:ButtonAssist.Icon>
</Button>With the new syntax, it can be simplified to:
<shadui:Button
Loading="{Binding IsBusy}"
Variant="Outline"
Command="{Binding SubmitCommand}"
Content="Edit"
Icon=""
IconClasses="LucideIcon" />or
<shadui:Button
Loading="{Binding IsBusy}"
Variant="Outline"
Command="{Binding SubmitCommand}"
Content="Edit">
<shadui:Button.Icon>
<TextBlock
Classes="LucideIcon"
Text="" />
</shadui:Button.Icon>
</shadui:Button>