首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MudBlazor UI库颜色

MudBlazor UI库颜色
EN

Stack Overflow用户
提问于 2021-01-19 23:53:07
回答 3查看 11.5K关注 0票数 7

我真的很想改变MudBlazor UI组件的颜色。但是,我似乎不能覆盖默认样式。有人能帮帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2021-01-20 13:04:59

在详细介绍如何使用CSS对MudBlazor组件进行样式设计之前,让我向您介绍一下主题文档

如果主题化对您来说还不够,那么您有多个选项可以使用CSS更改MudBlazor元素的样式。注意,您可能必须应用!important来覆盖MudBlazor的默认样式。

一种方法是在主CSS文件中定义自己的CSS类,并将类名传递给如下组件:

代码语言:javascript
复制
<MudButton Class="my-class">Button with custom class</MudButton>

第二种方法是通过Style属性就像这里记录的那样直接传递CSS样式。

代码语言:javascript
复制
<MudButton Variant="Variant.Filled" EndIcon="@Icons.Material.ArrowDownward" Style="background-color: yellowgreen; color: white; width: 200px; height: 60px;">
    Download Now
</MudButton>

另一种方法是在剃须刀中嵌入<style>标记,甚至可以使用C#变量动态修改CSS。下面的示例可以试试这把小提琴

代码语言:javascript
复制
<style>
    button {
       background-color: yellowgreen !important; 
       color: white !important; 
       height: @(height)px;
    }
</style>
<MudSlider @bind-Value="height" Min="30" Max="300"/>
<MudButton Variant="Variant.Filled">
    Use Slider to change my height
</MudButton>

@code {
  int height=100;
}

最后但并非最不重要的一点是,如果您想要利用的CSS隔离,您必须确保页面/组件顶层元素是html元素,并且使用::deep 如这里所讨论的。这将将组件或页面中所有按钮的文本更改为红色:

代码语言:javascript
复制
::deep .mud-button-text { color: red !important; }
票数 19
EN

Stack Overflow用户

发布于 2022-02-15 13:58:39

如果您想要更改整个颜色主题,但同时希望保持何时以及如何应用颜色组合的一致性(根据.mud-*类),则可以为整个解决方案覆盖MudBlazor的CSS变量(--mud-*)。

例如,当您使用<MudButton Color="Color.Primary"> </MudButton>时,按钮元素将自动得到应用的类组合.mud-button-text.mud-button-text-primary。然后,这个类组合应用样式:color: var(--mud-palette-primary);。通过在根级别重写--mud-palette-primary的值,您将为整个解决方案更改它;例如,使用Color.Primary为您的MudButton元素生成另一个文本颜色。

在全局CSS文件中,可以按以下方式重写CSS变量:

代码语言:javascript
复制
:root {
    --mud-palette-primary: violet;
    --mud-palette-primary-text: yellow;
}

也可以使用十六进制值,就像任何其他CSS颜色属性值一样。

如果要更改整个调色板,这可能是一项艰巨的工作,但这样就不需要定制类或!important了。

缺点是,MudBlazor保证用更新的版本更改它们对CSS变量的使用(很可能是它们的选择);因此,随着时间的推移,这个变量重写将需要维护。(再说一遍,我能想到的任何其他可能的解决方案也是如此。)

示例片段,以快速地尝试它的这里

(注意:在示例片段中,除了Variant之外,MudButton元素还设置了属性Color;这设置了一组不同的类,它们再次以不同的方式使用MudBlazor CSS变量应用样式。)

票数 5
EN

Stack Overflow用户

发布于 2022-11-10 04:14:44

要覆盖默认的Mudblazor颜色,可以使用自定义Palette创建主题,如下所示。然后,您可以访问覆盖所有您想要的调色板颜色属性。

MainLayout.razor

代码语言:javascript
复制
@inherits LayoutComponentBase

<MudThemeProvider Theme="myTheme"/>
<MudDialogProvider/>
<MudSnackbarProvider/>

<MudLayout...>

@code {
    private MudTheme myTheme = new()
    {
        Palette = new Palette
        {
            Primary = "#0074D9",
            Secondary = "#3D9970",
            Info = "#001f3f",
            Success = "#2ECC40",
            Warning = "#FF851B",
            Error = "#F012BE",
            AppbarBackground = "#85144b",
            // more color properties
        }
    };
}

myTheme默认颜色:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65801224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档