diff --git a/ash/style/ash_color_mixer.cc b/ash/style/ash_color_mixer.cc index 342994d1732af2..db634fef288f71 100644 --- a/ash/style/ash_color_mixer.cc +++ b/ash/style/ash_color_mixer.cc @@ -97,23 +97,6 @@ void AddControlsColors(ui::ColorMixer& mixer, mixer[ui::kColorAshFocusRing] = use_dark_color ? ui::ColorTransform(gfx::kGoogleBlue300) : ui::ColorTransform(gfx::kGoogleBlue600); - - mixer[ui::kColorAshSystemUIBorderColor1] = - use_dark_color ? ui::ColorTransform(kColorAshShieldAndBase80) - : ui::ColorTransform(SkColorSetA(SK_ColorBLACK, 0x0F)); - mixer[ui::kColorAshSystemUIBorderColor2] = - use_dark_color ? ui::ColorTransform(kColorAshShieldAndBase60) - : ui::ColorTransform(SkColorSetA(SK_ColorBLACK, 0x0F)); - mixer[ui::kColorAshSystemUIBorderColor3] = {SkColorSetA(SK_ColorBLACK, 0x0F)}; - - mixer[ui::kColorAshSystemUIHighlightColor1] = - use_dark_color ? ui::ColorTransform(SkColorSetA(SK_ColorWHITE, 0x14)) - : ui::ColorTransform(SkColorSetA(SK_ColorWHITE, 0x4C)); - mixer[ui::kColorAshSystemUIHighlightColor2] = - use_dark_color ? ui::ColorTransform(SkColorSetA(SK_ColorWHITE, 0x0F)) - : ui::ColorTransform(SkColorSetA(SK_ColorWHITE, 0x33)); - mixer[ui::kColorAshSystemUIHighlightColor3] = { - ui::kColorAshSystemUIHighlightColor1}; } // Mappings the Content layer colors for Material 2. @@ -416,13 +399,13 @@ void AddAshColorMixer(ui::ColorProvider* provider, if (!features::IsDarkLightModeEnabled()) { ash::ScopedLightModeAsDefault scoped_light_mode_as_default; mixer[ui::kColorAshSystemUILightBorderColor1] = { - ui::kColorAshSystemUIBorderColor1}; + ui::kColorHighlightBorderBorder1}; mixer[ui::kColorAshSystemUILightBorderColor2] = { - ui::kColorAshSystemUIBorderColor2}; + ui::kColorHighlightBorderBorder2}; mixer[ui::kColorAshSystemUILightHighlightColor1] = { - ui::kColorAshSystemUIHighlightColor1}; + ui::kColorHighlightBorderHighlight1}; mixer[ui::kColorAshSystemUILightHighlightColor2] = { - ui::kColorAshSystemUIHighlightColor2}; + ui::kColorHighlightBorderHighlight2}; return; } diff --git a/ash/style/ash_color_provider.cc b/ash/style/ash_color_provider.cc index 4537bb7449a6fe..7b74c44e1fb840 100644 --- a/ash/style/ash_color_provider.cc +++ b/ash/style/ash_color_provider.cc @@ -181,17 +181,17 @@ SkColor AshColorProvider::GetControlsLayerColor(ControlsLayerType type) const { case ControlsLayerType::kFocusRingColor: return color_provider->GetColor(ui::kColorAshFocusRing); case ControlsLayerType::kHighlightColor1: - return color_provider->GetColor(ui::kColorAshSystemUIHighlightColor1); + return color_provider->GetColor(ui::kColorHighlightBorderHighlight1); case ControlsLayerType::kHighlightColor2: - return color_provider->GetColor(ui::kColorAshSystemUIHighlightColor2); + return color_provider->GetColor(ui::kColorHighlightBorderHighlight2); case ControlsLayerType::kHighlightColor3: - return color_provider->GetColor(ui::kColorAshSystemUIHighlightColor3); + return color_provider->GetColor(ui::kColorHighlightBorderHighlight3); case ControlsLayerType::kBorderColor1: - return color_provider->GetColor(ui::kColorAshSystemUIBorderColor1); + return color_provider->GetColor(ui::kColorHighlightBorderBorder1); case ControlsLayerType::kBorderColor2: - return color_provider->GetColor(ui::kColorAshSystemUIBorderColor2); + return color_provider->GetColor(ui::kColorHighlightBorderBorder2); case ControlsLayerType::kBorderColor3: - return color_provider->GetColor(ui::kColorAshSystemUIBorderColor3); + return color_provider->GetColor(ui::kColorHighlightBorderBorder3); } } diff --git a/ui/color/chromeos/native_color_mixers_chromeos.cc b/ui/color/chromeos/native_color_mixers_chromeos.cc index 80f5f58ca70e4c..5d16ffff39a681 100644 --- a/ui/color/chromeos/native_color_mixers_chromeos.cc +++ b/ui/color/chromeos/native_color_mixers_chromeos.cc @@ -23,7 +23,32 @@ void AddNativeCoreColorMixer(ColorProvider* provider, mixer[kColorAshSystemUIMenuItemBackgroundSelected] = { kColorMenuItemBackgroundSelected}; mixer[kColorAshSystemUIMenuSeparator] = {kColorMenuSeparator}; - if (key.color_mode == ColorProviderManager::ColorMode::kDark) { + bool dark_mode = key.color_mode == ColorProviderManager::ColorMode::kDark; + + // Add color initializations for highlight border. + { + const ui::ColorTransform light_border = {SkColorSetA(SK_ColorBLACK, 0x0F)}; + const auto default_background_color = + ui::GetEndpointColorWithMinContrast({ui::kColorPrimaryBackground}); + const auto background_color = + key.user_color.has_value() ? ui::ColorTransform(key.user_color.value()) + : default_background_color; + mixer[kColorHighlightBorderBorder1] = + dark_mode ? SetAlpha(background_color, SK_AlphaOPAQUE * 0.8f) + : light_border; + mixer[kColorHighlightBorderBorder2] = + dark_mode ? SetAlpha(background_color, SK_AlphaOPAQUE * 0.6f) + : light_border; + mixer[kColorHighlightBorderBorder3] = light_border; + + mixer[kColorHighlightBorderHighlight1] = { + SkColorSetA(SK_ColorWHITE, dark_mode ? 0x14 : 0x4C)}; + mixer[kColorHighlightBorderHighlight2] = { + SkColorSetA(SK_ColorWHITE, dark_mode ? 0x0F : 0x33)}; + mixer[kColorHighlightBorderHighlight3] = {kColorHighlightBorderHighlight1}; + } + + if (dark_mode) { const bool high_elevation = key.elevation_mode == ColorProviderManager::ElevationMode::kHigh; const SkColor base_color = diff --git a/ui/color/color_id.h b/ui/color/color_id.h index f7269231e8a529..277c93b46025fc 100644 --- a/ui/color/color_id.h +++ b/ui/color/color_id.h @@ -210,13 +210,6 @@ \ E_CPONLY(kColorAshOnboardingFocusRing) \ \ - E_CPONLY(kColorAshSystemUIBorderColor1) \ - E_CPONLY(kColorAshSystemUIBorderColor2) \ - E_CPONLY(kColorAshSystemUIBorderColor3) \ - E_CPONLY(kColorAshSystemUIHighlightColor1) \ - E_CPONLY(kColorAshSystemUIHighlightColor2) \ - E_CPONLY(kColorAshSystemUIHighlightColor3) \ - \ /* TODO(crbug/1319917): Remove these when dark light mode is launched. */ \ E_CPONLY(kColorAshSystemUILightBorderColor1) \ E_CPONLY(kColorAshSystemUILightBorderColor2) \ @@ -228,6 +221,13 @@ E_CPONLY(kColorAshSystemUIMenuItemBackgroundSelected) \ E_CPONLY(kColorAshSystemUIMenuSeparator) \ \ + E_CPONLY(kColorHighlightBorderBorder1) \ + E_CPONLY(kColorHighlightBorderBorder2) \ + E_CPONLY(kColorHighlightBorderBorder3) \ + E_CPONLY(kColorHighlightBorderHighlight1) \ + E_CPONLY(kColorHighlightBorderHighlight2) \ + E_CPONLY(kColorHighlightBorderHighlight3) \ + \ E_CPONLY(kColorNativeColor1) \ E_CPONLY(kColorNativeColor1Shade1) \ E_CPONLY(kColorNativeColor1Shade2) \ diff --git a/ui/color/color_transform.cc b/ui/color/color_transform.cc index 8bee7e49c206c4..0b232d60588f6e 100644 --- a/ui/color/color_transform.cc +++ b/ui/color/color_transform.cc @@ -205,6 +205,21 @@ ColorTransform GetColorWithMaxContrast(ColorTransform transform) { return base::BindRepeating(generator, std::move(transform)); } +ColorTransform GetEndpointColorWithMinContrast(ColorTransform transform) { + const auto generator = [](ColorTransform transform, SkColor input_color, + const ColorMixer& mixer) { + const SkColor transform_color = transform.Run(input_color, mixer); + const SkColor result_color = + color_utils::GetEndpointColorWithMinContrast(transform_color); + DVLOG(2) << "ColorTransform GetEndPointColorWithMinContrast:" + << " Input Color: " << SkColorName(input_color) + << " Transform Color: " << SkColorName(transform_color) + << " Result Color: " << SkColorName(result_color); + return result_color; + }; + return base::BindRepeating(generator, std::move(transform)); +} + ColorTransform GetResultingPaintColor(ColorTransform foreground_transform, ColorTransform background_transform) { const auto generator = [](ColorTransform foreground_transform, diff --git a/ui/color/color_transform.h b/ui/color/color_transform.h index c3a49d7c259268..4057e4bbfce0e5 100644 --- a/ui/color/color_transform.h +++ b/ui/color/color_transform.h @@ -95,6 +95,11 @@ COMPONENT_EXPORT(COLOR) ColorTransform FromTransformInput(); COMPONENT_EXPORT(COLOR) ColorTransform GetColorWithMaxContrast(ColorTransform transform); +// A transform which returns the end point color with min contrast against the +// result of |transform|. +COMPONENT_EXPORT(COLOR) +ColorTransform GetEndpointColorWithMinContrast(ColorTransform transform); + // A transform which returns the resulting paint color of the result of // |foreground_transform| over the result of |background_transform|. COMPONENT_EXPORT(COLOR) diff --git a/ui/views/highlight_border.cc b/ui/views/highlight_border.cc index 1cb34f676aaee4..30a38ce3e9708e 100644 --- a/ui/views/highlight_border.cc +++ b/ui/views/highlight_border.cc @@ -80,13 +80,13 @@ SkColor HighlightBorder::GetHighlightColor(const views::View& view, } else { switch (type) { case HighlightBorder::Type::kHighlightBorder1: - highlight_color_id = ui::kColorAshSystemUIHighlightColor1; + highlight_color_id = ui::kColorHighlightBorderHighlight1; break; case HighlightBorder::Type::kHighlightBorder2: - highlight_color_id = ui::kColorAshSystemUIHighlightColor2; + highlight_color_id = ui::kColorHighlightBorderHighlight2; break; case HighlightBorder::Type::kHighlightBorder3: - highlight_color_id = ui::kColorAshSystemUIHighlightColor3; + highlight_color_id = ui::kColorHighlightBorderHighlight3; break; } } @@ -114,13 +114,13 @@ SkColor HighlightBorder::GetBorderColor(const views::View& view, } else { switch (type) { case HighlightBorder::Type::kHighlightBorder1: - border_color_id = ui::kColorAshSystemUIBorderColor1; + border_color_id = ui::kColorHighlightBorderBorder1; break; case HighlightBorder::Type::kHighlightBorder2: - border_color_id = ui::kColorAshSystemUIBorderColor2; + border_color_id = ui::kColorHighlightBorderBorder2; break; case HighlightBorder::Type::kHighlightBorder3: - border_color_id = ui::kColorAshSystemUIBorderColor3; + border_color_id = ui::kColorHighlightBorderBorder3; break; } }