How to set the color of an icon in Angular Material?

后端 未结 7 1653
佛祖请我去吃肉
佛祖请我去吃肉 2021-02-04 23:48

I have this, which I would assume to work, but doesn\'t:

home


        
相关标签:
7条回答
  • 2021-02-04 23:54

    Since for some reason white isn't available for selection, I have found that mat-palette($mat-grey, 50) was close enough to white, for my needs at least.

    0 讨论(0)
  • 2021-02-04 23:55

    That's because the color input only accepts three attributes: "primary", "accent" or "warn". Hence, you'll have to style the icons the CSS way:

    1. Add a class to style your icon:

      .white-icon {
          color: white;
      }
      /* Note: If you're using an SVG icon, you should make the class target the `<svg>` element */
      .white-icon svg {
          fill: white;
      }
      
    2. Add the class to your icon:

      <mat-icon class="white-icon">menu</mat-icon>
      
    0 讨论(0)
  • color="white" is not a known attribute to Angular Material.

    color attribute can changed to primary, accent, and warn. as said in this doc

    your icon inside button works because its parent class button has css class of color:white, or may be your color="accent" is white. check the developer tools to find it.

    By default, icons will use the current font color

    0 讨论(0)
  • 2021-02-05 00:07

    In the component.css or app.css add Icon Color styles

    .material-icons.color_green { color: #00FF00; }
    .material-icons.color_white { color: #FFFFFF; }
    

    In the component.html set the icon class

    <mat-icon class="material-icons color_green">games</mat-icon>
    <mat-icon class="material-icons color_white">cloud</mat-icon>
    

    ng build

    0 讨论(0)
  • 2021-02-05 00:09

    Here's a move that I'm using to set the color dynamically, it defaults to primary theme if the variable is undefined.

    in your component define your color

      /**Sets the button colors - Defaults to primary them color */
      @Input('buttonsColor') _buttonsColor: string
    

    in your style (sass here) - this forces the icon to use the color of it's container

    .mat-custom{
      .mat-icon, .mat-icon-button{
         color:inherit !important;
      }  
    }
    

    in your html surround your button with a div

            <div [class.mat-custom]="!!_buttonsColor" [style.color]="_buttonsColor"> 
                <button mat-icon-button (click)="doSomething()">
                    <mat-icon [svgIcon]="'refresh'" color="primary"></mat-icon>
                </button>
            </div>
    
    0 讨论(0)
  • 2021-02-05 00:14
    <mat-icon style="-webkit-text-fill-color:blue">face</mat-icon>
    
    0 讨论(0)
提交回复
热议问题