javascript - 使用material-ui中的mixins来自定义React中的组件

标签 javascript css reactjs sass material-ui

我正在尝试使用 React 在 Material-ui 中自定义文本字段组件。

根据this page的信息:

To customize the colors of any part of the text-field, use the following mixins. We recommend you apply these mixins within CSS selectors like .foo-text-field:not(.mdc-text-field--focused) to select your unfocused text fields, and .foo-text-field.mdc-text-field--focused to select your focused text-fields. To change the invalid state of your text fields, apply these mixins with CSS selectors such as .foo-text-field.mdc-text-field--invalid.

我尝试使用这个 mixin 来改变边框的颜色:

mdc-text-field-outline-color($color):自定义轮廓文本字段的边框颜色。

但是,我不知道如何使用它。我安装了scss,但我没有得到使用scss 将颜色设置为红色的语法。

@mixin mdc-text-field-outline-color($color) {

}

我似乎从这样的事情开始,但不确定如何在没有具体示例的情况下继续。

最佳答案

这会对你有帮助。 您可以将颜色作为 map 传递。或者传递单一颜色并使用 darkenlighten 函数;您可以选择如何传递属性值。

示例 1

@mixin mdc-text-field-outline-color() {
  & {
    &.mdc-text-field--focused {
      border-color: blue;
    }
    &.mdc-text-field--invalid {
      border-color: gray;
    }
    &:not(.mdc-text-field--focused) {
      border-color: black;
    }
  }
}


.foo-text-field {
  @include mdc-text-field-outline-color();
  border-width: 2px;
  border-style: solid;
}

示例 2

@mixin mdc-text-field-outline-color($color) {
  & {
    &:not(.mdc-text-field--focused) {
      border-color: #{$color};
    }
    &.mdc-text-field--focused {
      border-color: darken($color, 20%);
    }
    &.mdc-text-field--invalid {
      border-color: lighten($color, 20%);
    }
  }
}


.foo-text-field {
  @include mdc-text-field-outline-color(#C4C4);
  border-width: 2px;
  border-style: solid;
}

关于javascript - 使用material-ui中的mixins来自定义React中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50865084/

相关文章:

javascript - 如何将外部 DOM 附加到 React 组件?

javascript - 页面重定向后保存和使用信息

javascript - AppleScript : is it possible to limit string lengths that can be input in Safari text fields?

javascript - 使用 Javascript 根据用户选择更改悬停声音

javascript - 在 li 上添加叠加图像

javascript - 我可以在 document.getElementById() 中使用字符串变量吗?

css - 更改组件中的css值

如果已经在 window.open 中打开,Javascript 将窗口置于最前面?

javascript - 通过单击按钮获取当前行

javascript - 将回调与 Action 创建者一起使用