// When color definition differs for dark and light variant,
// it gets @if ed depending on $variant

@import 'color-palette';

@function gtkalpha($c, $a) {
  @return unquote("alpha(#{$c}, #{$a})");
}

// Foreground colors
$dark_fg_color:  %FG%;
$light_fg_color: %BG%;

$fg_color:                    %FG%;
$button_fg_color:             %BTN_FG%; // extra fg color for raised buttons
$secondary_fg_color:          rgba(%FG%, 0.7);
$hint_fg_color:               rgba(%FG%, 0.5);
$disabled_fg_color:           rgba(%FG%, 0.5);
$disabled_secondary_fg_color: rgba(%FG%, 0.3);
$track_color:                 rgba(%FG%, 0.3);
$divider_color:               rgba(%FG%, 0.12);

$titlebar_fg_color:                    %MENU_FG%;
$titlebar_secondary_fg_color:          rgba(%MENU_FG%, 0.7);
$titlebar_hint_fg_color:               rgba(%MENU_FG%, 0.5);
$titlebar_disabled_fg_color:           rgba(%MENU_FG%, 0.5);
$titlebar_disabled_secondary_fg_color: rgba(%MENU_FG%, 0.3);
$titlebar_track_color:                 rgba(%MENU_FG%, 0.3);
$titlebar_divider_color:               rgba(%MENU_FG%, 0.12);

$inverse_fg_color:                    %SEL_FG%;
$inverse_secondary_fg_color:          rgba(%SEL_FG%, 0.7);
$inverse_hint_fg_color:               rgba(%SEL_FG%, 0.5);
$inverse_disabled_fg_color:           rgba(%SEL_FG%, 0.5);
$inverse_disabled_secondary_fg_color: rgba(%SEL_FG%, 0.3);
$inverse_track_color:                 rgba(%SEL_FG%, 0.3);
$inverse_divider_color:               rgba(%SEL_FG%, 0.12);

// Background colors
$bg_color:             %BG%;
$base_color:           %TXT_BG%;
$alt_base_color:       %INACTIVE_TXT_BG%;
$popup_bg_color:       %TXT_BG%;
$alt_lighter_bg_color: if($variant == 'light', %BG2%, %MENU_BG%); // for gnome-shell sub menu
$button_bg_color:      %BTN_BG%;

$titlebar_bg_color: %MENU_BG%;

$panel_bg_color:         rgba(black, %GNOME_SHELL_PANEL_OPACITY%);
$alt_panel_bg_color:     rgba(black, 0.3);
$inverse_panel_bg_color: rgba(white, 0.1);
$solid_panel_bg_color:   if($titlebar == 'dark', %MENU_BG3%, $panel_bg_color);
$opaque_panel_bg_color:  %MENU_BG3%; // for Unity panel which cannot use translucent colors

$gdm_bg_color: %MENU_BG3%;

$fill_color:      gtkalpha(currentColor, 0.24);
$semi_fill_color: gtkalpha(currentColor, 0.12);
$row_fill_color:  gtkalpha(currentColor, 0.06);

// Misc colors
$primary_color:            %SEL_BG%;
$alt_primary_color:        %SEL_BG2%;
$secondary_color:          %ACCENT_BG%;
$disabled_secondary_color: rgba($secondary_color, 0.5);

$link_color:         %TERMINAL_COLOR4%;
$visited_link_color: %TERMINAL_COLOR5%;

$warning_color: %TERMINAL_COLOR11%;
$error_color:   %TERMINAL_COLOR9%;
$success_color: %TERMINAL_COLOR10%;

$suggested_color:   $secondary_color;
$destructive_color: $error_color;

$info_bg_color:     %TERMINAL_COLOR12%;
$question_bg_color: $info_bg_color;
$warning_bg_color:  $warning_color;
$error_bg_color:    $error_color;

$tooltip_bg_color: rgba(%MENU_BG%, 0.9);
$tooltip_fg_color: %MENU_FG%;

$border_color:             if($variant == 'light', rgba(black, 0.12), rgba(black, 0.26));
$alt_border_color:         rgba(black, 0.26); // for non-native GTK+ apps (e.g. Firefox and Chrome)
$highlight_color:          if($variant == 'light', rgba(white, 0.4),  rgba(white, 0.1));
$titlebar_highlight_color: if($titlebar == 'dark', rgba(white, 0.1),  rgba(white, 0.4));
$alt_highlight_color:      rgba(white, 0.2); // for selection-mode headerbar which colored with $primary_color
$titlebar_indicator_color: if($titlebar == 'dark', currentColor, $primary_color);

// FIXME: Electron/Atom menu does not allow translucent colors
$opaque_fg_color:           %FG%;
$opaque_secondary_fg_color: mix(%FG%, $popup_bg_color, percentage(0.7));
$opaque_disabled_fg_color:  mix(%FG%, $popup_bg_color, percentage(0.5));
$opaque_divider_color:      mix(%FG%, $popup_bg_color, percentage(0.12));

// FIXME: gtk @placeholder_text_color does not allow translucent colors
$placeholder_text_color: mix(%FG%, $base_color, percentage(0.7));
