components icon indicating copy to clipboard operation
components copied to clipboard

Wrong checkbox checkmark color when palettes are set with CSS variables

Open stephenrca opened this issue 2 years ago • 2 comments

Is this a regression?

  • [X] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was

No response

Description

When defining palettes (accent or primary) with CSS variables, the chekmark color of mdc checkboxes is not the right one.

Indeed, on this line, type-of($value) == 'color' is always false when palettes are defined with CSS variables. When palettes are defined directly with web or hex colors, the mdc checkbox chekmark color is correct.

Reproduction

Steps to reproduce:

  1. Create an Angular project with angular 16
  2. Run the command ng add @angular/material @angular/cdk.
  3. Ad custom theme by defininng palette with CSS variables
  4. Add material mdc checkbox to a template

You can reproduce the problem with this demo on Stackblitz.

Expected Behavior

When color 500 of the accent palette is dark, the checkmark of the checkboxes must be white.

Actual Behavior

When color 500 of the accent palette is define by a CSS variable, the checkmark of the checkboxes is always black in a light-theme.

Environment

  • Angular: v16.0.0
  • CDK/Material: v16.0.1
  • Browser(s): all
  • Operating System : Ubuntu

stephenrca avatar May 31 '23 15:05 stephenrca

Hi all,

Any chance this get merged starting v16 of Angular ?

tinesoft avatar Nov 20 '23 12:11 tinesoft

For anyone else having the problem on Angular Material 17+, I managed to solve it by adding this line in my custom theme.scss file:

// custom theme here....

// Include theme styles for core and each component used in your app.
// Alternatively, you can import and @include the theme mixins for each component
// that you are using.
@include mat.all-component-themes($your-theme);
+@include mat.all-component-colors($your-theme);

tinesoft avatar Feb 05 '24 16:02 tinesoft