diff --git a/Wave/Components/InputLabelComponent.razor b/Wave/Components/InputLabelComponent.razor
new file mode 100644
index 0000000..3232801
--- /dev/null
+++ b/Wave/Components/InputLabelComponent.razor
@@ -0,0 +1,43 @@
+@using System.Linq.Expressions
+@using System.Reflection
+@using System.ComponentModel
+@using System.ComponentModel.DataAnnotations
+
+
+
+@code {
+ [Parameter]
+ public string? LabelText { get; set; }
+ [Parameter]
+ public RenderFragment? Label { get; set; }
+ [Parameter]
+ public required RenderFragment ChildContent { get; set; }
+ [Parameter]
+ public Expression>? For { get; set; }
+
+ private string GetDisplayName() {
+ if (For is null) return string.Empty;
+ var expression = (MemberExpression)For.Body;
+ var display = expression.Member.GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute;
+ var displayName = expression.Member.GetCustomAttribute(typeof(DisplayNameAttribute)) as DisplayNameAttribute;
+ return display?.GetName() ?? displayName?.DisplayName ?? expression.Member.Name;
+ }
+}