Skip to content

[Suggestion] Don't overwrite base styles and unify everything within the shadui namespace #69

@CarlosEGuerraSilva

Description

@CarlosEGuerraSilva

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="&#57849;" />
    </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="&#57849;"
    IconClasses="LucideIcon" />

or

<shadui:Button
    Loading="{Binding IsBusy}"
    Variant="Outline"
    Command="{Binding SubmitCommand}"
    Content="Edit">
    <shadui:Button.Icon>
        <TextBlock
            Classes="LucideIcon"
            Text="&#57849;" />
    </shadui:Button.Icon>
</shadui:Button>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions