> For the complete documentation index, see [llms.txt](https://playermaker.gitbook.io/componentbuilder/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://playermaker.gitbook.io/componentbuilder/english/css-class/buildcssclass-method.md).

# BuildCssClass Method

This method can be override for customization css string with logical code

Override `BuildCssClass` method to create component CSS string with logical code

{% code title="Button.razor" %}

```cshtml
@inherits BlazorComponentBase

<button @attributes="@AdditionalAttributes">@ChildContent</button>

@code{
    [Parameter]public RenderFragment? ChildContent { get; set; }
    
    [CascadingParameter]EditContext? CascadedEditContext { get; set; }
    
    protected override void BuildCssClass(ICssClassBuilder builder)
    {
        if(CascadedEditContext is not null)
        {
            builder.Append("modified");
            
            var valid = CascadedEditContext.GetValidationMessages().Any();
            if(valid)
            {
                builder.Remove("invalid");
            }
        }
    }
}
```

{% endcode %}

{% code title="Button.cs" %}

```csharp
public class Button : BlazorComponentBase, IHasChildContent
{
    [Parameter]public RenderFragment? ChildContent { get; set; }
    
    [CascadingParameter]EditContext? CascadedEditContext { get; set; }
    
    protected override void BuildCssClass(ICssClassBuilder builder)
    {
        if(CascadedEditContext is not null)
        {
            builder.Append("modified");
            
            var valid = CascadedEditContext.GetValidationMessages().Any();
            if(valid)
            {
                builder.Remove("invalid");
            }
        }
    }
}
```

{% endcode %}
