【问题标题】:How to create a "danger" button in fluentui (office ui fabric)?如何在fluentui(office ui fabric)中创建一个“危险”按钮?
【发布时间】:2021-01-24 18:06:44
【问题描述】:

如何在微软 fluentui 库中创建一个“危险”(红色)按钮? 就像在其他 ui 框架中一样,如 bootstrap 等。

<DefaultButton><PrimaryButton> 但我没有找到类似<DangerButton> 的东西?

另外,您如何指定样式以使按钮使用主题指定的“危险”颜色?

【问题讨论】:

    标签: office-ui-fabric office-ui-fabric-react fluent-ui fluentui-react


    【解决方案1】:

    您可以从以下默认按钮组件属性更改button style样式、样式、类名、主题

    DefaultButton 组件的

    属性style

    <DefaultButton style={{ backgroundColor: '#f00' }} />
    
    DefaultButton 组件的

    属性styles

    <DefaultButton
      styles={{
        root: {
          backgroundColor: '#f00',
          color: '#fff',
        }        
      }}
    />
    
    DefaultButton 组件的

    属性className

    // CSS 
    .btn-danger { background-color: #f00; }
    
    // Component
    <DefaultButton className="btn-danger" />
    
    DefaultButton 组件的

    属性theme

    import { createTheme, DefaultButton, ITheme } from 'office-ui-fabric-react'
    
    ...
    
    const dangerButtonTheme: ITheme = createTheme({
      palette: {
        white: '#f00',
        neutralPrimary: '#fff',
      },
    })
    
    <DefaultButton theme={dangerButtonTheme} />
    

    代码笔working example

    有用的链接:

    【讨论】:

    • 对不起,我没有正确提及我想,我想使用现有的主题(我正在创建一个 SharePoint 扩展,所以所有颜色都已经由 SharePoint 主题预定义)。我不想覆盖它们或创建我的自定义颜色主题。
    • 我试图理解,您想将现有主题中的颜色应用于 Button 组件对吗? github.com/callstack/react-theme-provider/blob/master/…
    • 我正在使用 fluentui 库构建 SPFx SharePoint 扩展。并且 wuold 喜欢添加一个“危险”按钮,该按钮具有与 SharePoint 基本相同的样式。请注意,主题颜色是由 SharePoint 而非我选择的。
    • 请注意,一些 FluentUI 组件接受函数作为“样式”的参数。但是“按钮”需要一个常量,而不是作为“样式”值的函数
    【解决方案2】:

    fluent ui 中没有“危险”按钮类型,您必须自己设置样式。

    参见here 的示例(您也可以基本上只为按钮添加一个类名并设置您喜欢的样式)。

    【讨论】:

    • 这就是我所怀疑的......如何使用主题颜色将按钮设置为“危险”?按钮的样式属性不是一个函数,而是一个常量。我应该对颜色进行硬编码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2017-12-14
    • 2020-06-30
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    相关资源
    最近更新 更多