Skip to content

Commit f8e1b63

Browse files
committed
feat(button): add new IconOnly parameter
1 parent ee1c390 commit f8e1b63

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

src/LumexUI/Components/Button/LumexButton.razor.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,15 @@ public partial class LumexButton : LumexComponentBase
8282
/// </summary>
8383
[Parameter] public bool FullWidth { get; set; }
8484

85-
/// <summary>
86-
/// Gets or sets a callback that is fired whenever the button is clicked.
87-
/// </summary>
88-
[Parameter] public EventCallback<MouseEventArgs> OnClick { get; set; }
85+
/// <summary>
86+
/// Gets or sets a value indicating whether the button should have the same width and height.
87+
/// </summary>
88+
[Parameter] public bool IconOnly { get; set; }
89+
90+
/// <summary>
91+
/// Gets or sets a callback that is fired whenever the button is clicked.
92+
/// </summary>
93+
[Parameter] public EventCallback<MouseEventArgs> OnClick { get; set; }
8994

9095
private protected override string? RootClass =>
9196
TwMerge.Merge( Button.GetStyles( this ) );

src/LumexUI/Styles/Button.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,24 @@ private static ElementClass GetHoverStyles( Variant variant, ThemeColor color )
105105
};
106106
}
107107

108+
private static ElementClass GetIconOnlyStyles( bool isIconOnly )
109+
{
110+
return ElementClass.Empty()
111+
.Add( "px-0 !gap-0", when: isIconOnly is true )
112+
.Add( "[&>svg]:max-w-8", when: isIconOnly is false );
113+
}
114+
115+
private static ElementClass GetCompoundStyles( Size size )
116+
{
117+
return size switch
118+
{
119+
Size.Small => new ElementClass( "min-w-8 w-8 h-8" ),
120+
Size.Medium => new ElementClass( "min-w-10 w-10 h-10" ),
121+
Size.Large => new ElementClass( "min-w-12 w-12 h-12" ),
122+
_ => ElementClass.Empty()
123+
};
124+
}
125+
108126
public static string GetStyles( LumexButton button )
109127
{
110128
return ElementClass.Empty()
@@ -114,8 +132,10 @@ public static string GetStyles( LumexButton button )
114132
.Add( GetSizeStyles( button.Size ) )
115133
.Add( GetRadiusStyles( button.Radius ) )
116134
.Add( GetVariantStyles( button.Variant ) )
135+
.Add( GetIconOnlyStyles( button.IconOnly ) )
117136
.Add( GetColorStyles( button.Variant, button.Color ) )
118137
.Add( GetHoverStyles( button.Variant, button.Color ) )
138+
.Add( GetCompoundStyles( button.Size ), when: button.IconOnly )
119139
.Add( button.Class )
120140
.ToString();
121141
}

0 commit comments

Comments
 (0)