@import "../../themes/ionic.globals.ios";

// iOS Tabs
// --------------------------------------------------

/// @prop - Border on the tabbar (border-top when [tabsPlacement=bottom] and border-bottom when [tabsPlacement=top])
$tabs-ios-border:                   $hairlines-width solid $tabs-ios-border-color !default;

// deprecated
$tabs-ios-tab-padding:              null !default;

/// @prop - Padding top on the tab button
$tabs-ios-tab-padding-top:          0 !default;

/// @prop - Padding end on the tab button
$tabs-ios-tab-padding-end:          2px !default;

/// @prop - Padding bottom on the tab button
$tabs-ios-tab-padding-bottom:       $tabs-ios-tab-padding-top !default;

/// @prop - Padding start on the tab button
$tabs-ios-tab-padding-start:        $tabs-ios-tab-padding-end !default;

/// @prop - Max width of the tab button
$tabs-ios-tab-max-width:            240px !default;

/// @prop - Minimum height of the tab button
$tabs-ios-tab-min-height:           49px !default;

/// @prop - Text color of the inactive tab button
$tabs-ios-tab-text-color:           $tabs-ios-tab-color-inactive !default;

/// @prop - Text color of the active tab button
$tabs-ios-tab-text-color-active:    $tabs-ios-tab-color-active !default;

/// @prop - Icon color of the inactive tab button
$tabs-ios-tab-icon-color:           $tabs-ios-tab-color-inactive !default;

/// @prop - Icon color of the active tab button
$tabs-ios-tab-icon-color-active:    $tabs-ios-tab-color-active !default;

/// @prop - Font size of the tab button text
$tabs-ios-tab-font-size:            10px !default;

/// @prop - Font weight of the tab button text
$tabs-ios-tab-font-weight:          500 !default;

/// @prop - Size of the tab button icon
$tabs-ios-tab-icon-size:            30px !default;


.tabs-ios .tabbar {
  justify-content: center;

  border-top: $tabs-ios-border;
  background: $tabs-ios-background;
}

.tabs-ios[tabsPlacement=top] .tabbar {
  border-top: 0;
  border-bottom: $tabs-ios-border;
}

.tabs-ios .tab-button {
  max-width: $tabs-ios-tab-max-width;
  min-height: $tabs-ios-tab-min-height;

  font-size: $tabs-ios-tab-font-size;
  font-weight: $tabs-ios-tab-font-weight;
  color: $tabs-ios-tab-text-color;

  @include deprecated-variable(padding, $tabs-ios-tab-padding) {
    @include padding($tabs-ios-tab-padding-top, $tabs-ios-tab-padding-end, $tabs-ios-tab-padding-bottom, $tabs-ios-tab-padding-start);
  }
}

.tabs-ios .tab-button:hover:not(.disable-hover),
.tabs-ios .tab-button[aria-selected=true] {
  color: $tabs-ios-tab-text-color-active;
}

.tabs-ios .tab-button[aria-selected=true] .tab-button-icon {
  color: $tabs-ios-tab-icon-color-active;
}

.tabs-ios .tab-button-text {
  @include margin(0, null, 1px, null);

  min-height: $tabs-ios-tab-font-size + 1;
}

.tabs-ios .has-title-only .tab-button-text {
  font-size: $tabs-ios-tab-font-size + 2;
}

.tabs-ios .tab-button-icon {
  @include margin(4px, null, 1px, null);

  min-width: $tabs-ios-tab-icon-size + 5;
  height: $tabs-ios-tab-icon-size;

  font-size: $tabs-ios-tab-icon-size;

  color: $tabs-ios-tab-icon-color;
}

.tabs-ios .tab-button-icon::before {
  vertical-align: top;
}

.tabs-ios[tabsLayout=icon-right] .tab-button .tab-button-text, // deprecated
.tabs-ios[tabsLayout=icon-left] .tab-button .tab-button-text, // deprecated
.tabs-ios[tabsLayout=icon-end] .tab-button .tab-button-text,
.tabs-ios[tabsLayout=icon-start] .tab-button .tab-button-text {
  font-size: 1.4rem;
  line-height: 1.1;
}

.tabs-ios[tabsLayout=icon-right] .tab-button ion-icon, // deprecated
.tabs-ios[tabsLayout=icon-left] .tab-button ion-icon, // deprecated
.tabs-ios[tabsLayout=icon-end] .tab-button ion-icon,
.tabs-ios[tabsLayout=icon-start] .tab-button ion-icon {
  min-width: 24px;
  height: 26px;

  font-size: 24px;
}

.tabs-ios[tabsLayout=icon-hide] .tab-button,
.tabs-ios .tab-button.has-title-only {
  min-height: $tabs-ios-tab-min-height - 8;
}

.tabs-ios[tabsLayout=icon-hide] .tab-button .tab-button-text,
.tabs-ios .tab-button.has-title-only .tab-button-text {
  @include margin(2px, 0);

  font-size: 1.4rem;
  line-height: 1.1;
}

.tabs-ios[tabsLayout=title-hide] .tab-button,
.tabs-ios .tab-button.icon-only {
  min-height: $tabs-ios-tab-min-height - 8;
}


// iOS Tabbar Color Mixin
// --------------------------------------------------

@mixin tabbar-ios($color-name, $color-base, $color-contrast) {

  .tabs-ios-#{$color-name} .tabbar {
    border-color: darken($color-base, 10%);
    background-color: $color-base;
  }

  .tabs-ios-#{$color-name} .tab-button,
  .tabs-ios-#{$color-name} .tab-button-icon,
  .tabs-ios-#{$color-name} .tab-button:hover:not(.disable-hover),
  .tabs-ios-#{$color-name} .tab-button:hover:not(.disable-hover) .tab-button-icon {
    color: rgba($color-contrast, .7);
  }

  .tabs-ios-#{$color-name} .tab-button[aria-selected=true],
  .tabs-ios-#{$color-name} .tab-button[aria-selected=true] .tab-button-icon {
    color: $color-contrast;
  }

}


// iOS Tabbar Color Generation
// --------------------------------------------------

@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
  @include tabbar-ios($color-name, $color-base, $color-contrast);
}
