How to set color of toggle buttons

后端 未结 5 681
春和景丽
春和景丽 2020-12-24 14:10

I have group of toggle buttons. They are very light and disappear in the background on poor monitors with a high brightness level.

How can I properly style

相关标签:
5条回答
  • 2020-12-24 14:32

    matButtonToggle does not support the color property like matButton.

    You can use the css classes .mat-button-toggle and .mat-button-toggle-checked to style the different states.

    With material theming you can extract whichever individual palettes you need from the theme and apply the backgrounds default-contrast color to the text color to achieve optimal contrast with light or dark colors.

    Here is a Stackblitz with your mat-button-toggle-group example: Stackblitz angular-t1k1x6

    Theming used:

    @import '~@angular/material/theming';
    
    @include mat-core();
    
    $app-primary: mat-palette($mat-indigo);
    $app-accent:  mat-palette($mat-pink, A200, A100, A400);
    
    $app-theme: mat-light-theme($app-primary, $app-accent);
    
    @mixin mix-app-theme($app-theme) {
      $primary: map-get($app-theme, primary);
      $accent: map-get($app-theme, accent);
    
      .mat-button-toggle {
        background-color: mat-color($primary);
        color: mat-color($primary, default-contrast);
      }
    
      .mat-button-toggle-checked {
        background-color: mat-color($accent);
        color: mat-color($accent, default-contrast);
      }
    }
    
    // Include the mixin
    @include mix-app-theme($app-theme);
    

    Documents: Theming your Angular Material app

    0 讨论(0)
  • 2020-12-24 14:33

    A workaround may be something like:

    <mat-button-toggle-group>
      <mat-button-toggle value="letter">
        <button mat-button color="primary" style="pointer-events:none;">
          Letter
        </button>
      </mat-button-toggle>
      <mat-button-toggle value="legal">
        <button mat-button color="accent" style="pointer-events:none;">
          Legal
        </button>
      </mat-button-toggle>
    </mat-button-toggle-group>
    
    0 讨论(0)
  • 2020-12-24 14:40

    Customizing the presentation using your own theme SASS, as the other answer shows, is a great short-term solution and gives you a lot of power over the presentation. Ideally, this would become part of the core theme declarations, so that <mat-button-toggle-group color="primary"> (perhaps also <mat-button-toggle color="primary">) just works without additional steps.

    If you want to make this simpler in the future, give a thumbs-up to this issue.

    0 讨论(0)
  • 2020-12-24 14:41

    mat-button-toggle-group {
      box-shadow: none;
    }
    
    mat-button-toggle {
        border: 1px rgba(0,0,0,0) solid !important;
        margin-top: 5px !important;
        padding: 0 5px !important;
        z-index: 3 !important;
    }
    
    mat-button-toggle:hover {
        border: 1px #000 solid !important;
        background-color: #FFF !important;
        border-radius: 5px !important;
    }
    
    .mat-button-toggle-checked {
    	  box-shadow: 0 0 30px #000 !important;
        border: 1px #000 solid !important;
        border-radius: 5px !important;
        background-color: #FFF !important;
    }
    
    .mat-button-toggle-input {
        background-color: none !important;
        padding-left: 32px !important;
    }

    if you only want to change the style of checked

    0 讨论(0)
  • 2020-12-24 14:51

    Add the following styles in styles.scss

    @import '~@angular/material/theming';
    @include mat-core();
    
    $primary: mat-palette($mat-indigo);
    $accent: mat-palette($mat-yellow, A200, A100, A400);
    
    $theme: mat-light-theme($primary, $accent);
    
    @include angular-material-theme($theme);
    
    html,
    body {
      height: 100%;
    }
    body {
      margin: 0;
      font-family: Roboto, 'Helvetica Neue', sans-serif;
      .mat-button-toggle-checked {
        background-color: mat-color($primary);
        color: mat-color($primary, default-contrast);
      }
    }
    

    ps: I assumed you have selected scss and custom theme

    0 讨论(0)
提交回复
热议问题