@import "./tab-button";
@import "./tab-button.md.vars";

// Material Design Tab Button
// --------------------------------------------------------------

:host {
  --padding-top: #{$tab-button-md-padding-top};
  --padding-end: #{$tab-button-md-padding-end};
  --padding-bottom: #{$tab-button-md-padding-bottom};
  --padding-start: #{$tab-button-md-padding-start};

  max-width: 168px;

  font-size: $tab-button-md-font-size;
  font-weight: $tab-button-md-font-weight;

  letter-spacing: $tab-button-md-letter-spacing;
}


// Material Design Tab Button: Label
// --------------------------------------------------------------

::slotted(ion-label) {
  @include margin($tab-button-md-text-margin-top, $tab-button-md-text-margin-end, $tab-button-md-text-margin-bottom, $tab-button-md-text-margin-start);

  text-transform: $tab-button-md-text-capitalization;
}


// Material Design Tab Button: Icon
// --------------------------------------------------------------

::slotted(ion-icon) {
  @include margin($tab-button-md-icon-margin-top, $tab-button-md-icon-margin-end, $tab-button-md-icon-margin-bottom, $tab-button-md-icon-margin-start);
  @include transform-origin(center, center);

  font-size: $tab-button-md-icon-size;
}

// Material Design Tab Button: Badge
// --------------------------------------------------------------

::slotted(ion-badge) {
  @include border-radius($tab-button-md-badge-border-radius);
  @include padding($tab-button-md-badge-padding-top, $tab-button-md-badge-padding-end, $tab-button-md-badge-padding-bottom, $tab-button-md-badge-padding-start);
  @include position(8px, null, null, calc(50% + 6px));

  min-width: $tab-button-md-badge-min-width;

  font-size: $tab-button-md-badge-font-size;

  font-weight: normal;
}

::slotted(ion-badge:empty) {
  display: block;

  min-width: $tab-button-md-badge-size-empty;

  height: $tab-button-md-badge-size-empty;
}


// Material Design Tab Button: Icon Top Layout
// --------------------------------------------------------------

// Icon
:host(.tab-layout-icon-top) ::slotted(ion-icon) {
  @include margin(6px, null, 2px, null);
}

// Label
:host(.tab-layout-icon-top) ::slotted(ion-label) {
  @include margin(0, null, 6px, null);
}


// Material Design Tab Button: Icon Bottom Layout
// --------------------------------------------------------------

// Badge
:host(.tab-layout-icon-bottom) ::slotted(ion-badge) {
  @include position(8px, null, null, 70%);
}

// Icon
:host(.tab-layout-icon-bottom) ::slotted(ion-icon) {
  @include margin(0, null, 6px, null);
}

// Label
:host(.tab-layout-icon-bottom) ::slotted(ion-label) {
  @include margin(6px, null, 0, null);
}


// Material Design Tab Button: Icon Start / Icon End Layout
// --------------------------------------------------------------

// Badge
:host(.tab-layout-icon-start) ::slotted(ion-badge),
:host(.tab-layout-icon-end) ::slotted(ion-badge) {
  @include position(16px, null, null, 80%);
}

// Icon
:host(.tab-layout-icon-start) ::slotted(ion-icon) {
  @include margin(null, 6px, null, null);
}

// Icon
:host(.tab-layout-icon-end) ::slotted(ion-icon) {
  @include margin(null, null, null, 6px);
}


// Material Design Tab Button: Icon Hide / Label Only Layout
// --------------------------------------------------------------

// Badge
:host(.tab-layout-icon-hide) ::slotted(ion-badge),
:host(.tab-has-label-only) ::slotted(ion-badge) {
  @include position(16px, null, null, 70%);
}

// Label
:host(.tab-layout-icon-hide) ::slotted(ion-label),
:host(.tab-has-label-only) ::slotted(ion-label) {
  @include margin(0, null, 0, null);
}


// Material Design Tab Button: Icon Only / Label Hide Layout
// --------------------------------------------------------------

// Badge
:host(.tab-layout-label-hide) ::slotted(ion-badge),
:host(.tab-has-icon-only) ::slotted(ion-badge) {
  @include position(16px, null, null, null);
}

// Icon
:host(.tab-layout-label-hide) ::slotted(ion-icon),
:host(.tab-has-icon-only) ::slotted(ion-icon) {
  @include margin(0, null, 0, null);

  font-size: 24px;
}