////
/// @group root/variables-osbp
////

@import "components/functions.scss";

 /***************************/
/** Vaadin/Valo-Variables **/

$v-app-loading-text: "OSBP";
$v-unit-size: 24px;

$v-textfield-disabled-opacity: 1;

/* $v-luminance-threshold: 150 !default; */

$v-background-color: #3d3b3c;
$v-app-background-color: #3d3b3c;

/// Main color accent of theme; not available as valo variable.
$os-base-color: #949396;
$valo-menu-background-color: $os-base-color;	//scale-color($v-app-background-color, $lightness: if(color-luminance($v-app-background-color) < 10, 15%, -70%)) !default;
$v-table-background-color: $v-app-background-color;
$v-focus-color: #5D737E;
$v-font-family: Arial;
$v-font-size: 12px;
$v-line-height: $v-font-size * 1.75; //$os-line-height-factor: 1.6;

$v-loading-indicator-bar-height: $v-unit-size;
$v-loading-indicator-color: $v-focus-color;
$v-error-indicator-color: #E3DC95;

$v-table-row-height: $v-unit-size;
$v-default-field-width: make_even($v-unit-size * 11.4); //$v-unit-size * 5 !default;


/// Overriding default-value 0.75 (affects v-grid)
$v-scaling-factor--tiny: 1 !default; //0.75
$v-scaling-factor--small: 0.85 !default;
$v-scaling-factor--large: 1.4 !default;	//1.2
$v-scaling-factor--huge: 1.8 !default; //1.6
/* $os-l-font-factor: 1.4; */
/* $os-xl-font-factor: 1.8; */

/* $v-border: $os-border-width $os-border-style $os-border-color !default; */
/// $v-border default is useless, v-shade doesn't compile for some reason
$v-border: 1px solid get_contrast($strength: 17, $v-app-background-color, $desaturate: false) !default;
$v-border-radius: 0px;

/// Set this for v-layout-margin-* when you're too lazy to type the same value four times.
$os-layout-margin: $v-unit-size * 0.5;
$v-layout-margin-top:    $os-layout-margin;
$v-layout-margin-left:   $os-layout-margin;
$v-layout-margin-right:  $os-layout-margin;
$v-layout-margin-bottom: $os-layout-margin;
$v-layout-spacing-vertical: make_even($v-unit-size/3) !default;
$v-layout-spacing-horizontal: make_even($v-unit-size/3) !default;

$v-tabsheet-content-animation-enabled: false; //default: true

/// When v-gradient is set to false, still set a gradient in some places.
$os-gradient: v-linear 5%;
$v-gradient: false;
$v-bevel: false;
$v-shadow: 1px 3px 7px  transparentize(#000, 0.9);
$v-textfield-shadow: false;
$v-shadow-opacity: 20% !default;
$v-focus-style: 0 0 0 1px transparent;	//Focus-shadow/glow-color. Default = glow  // 0 0 0 2px rgba($v-focus-color, .5) !default;
/*$v-hover-styles-enabled: false /*true !default;*/

 /****************************************/
/*** ADDITIONAL OS-SPECIFIC VARIABLES ***/

/// Can be set and used in places where a theme-variant needs deviating style definitions.
$os-theme-desig: "steel";

$os-loading-animation: url('load_bar_2.gif');
$os-login-background-image: url('U68NITW3EI_s.jpg');

/** Switches **/
$os-button-uppercase: true;
$os-img-size-override: false;
$os-bordered: true;
$os-cash-zoom-factor: 2;

$os-odd-highlight: $v-focus-color;
$os-button-as-tab: $v-focus-color;	//header

$os-light-contrast: get_contrast($strength: 7, $v-app-background-color, $desaturate: false);
$os-mid-contrast: get_contrast($strength: 37, $v-app-background-color, $desaturate: false);
$os-dark-contrast: get_contrast($strength: 67, $v-app-background-color, $desaturate: false);

/* textfield background, table background */

$os-button-color: $os-base-color;
$os-color-contrast: $os-light-contrast;
$os-textfield-shade: $os-light-contrast;

/// Lighter version of $v-focus-color as textfield background.
$os-focus-color: get_color_mix($v-focus-color, #fff, 50);
$os-base-color-light: get_color_mix($os-base-color, #fff, 50);

$os-splitter-shade: $os-light-contrast;
$os-main-header-bg: $os-light-contrast;
$os-sub-header-bg: $os-light-contrast;

/// Used to determine the correct size of font icons according to unit.
$os-font-unit: px;

/// Valo default is border-width. Not enough.
$os-splitter-size: make_even($v-unit-size/2.75);

/// Override valo defaults.
$os-button-height: $v-unit-size + floor($v-unit-size/3);
/// @todo figure out if this is needed.
$os-button-width: $v-unit-size*7;

/// Only used once so far, but probably still useful.
$os-shadow-reversed: 0px -2px 2px  transparentize(#000, 0.65);
/// @todo replace with valo-text-shadow;
$os-text-shadow: 0px 1px 1px transparentize(#000, 0.8);
