.pf-c-chip {
  --pf-c-chip--PaddingLeft: var(--pf-global--spacer--sm);
  --pf-c-chip--BackgroundColor: var(--pf-global--Color--light-100);
  --pf-c-chip--BorderColor: var(--pf-global--secondary-color--100);
  --pf-c-chip--BorderWidth: var(--pf-global--BorderWidth--sm);
  --pf-c-chip--BorderRadius: var(--pf-global--BorderRadius--sm);

  // overflow chip
  --pf-c-chip--m-overflow--BackgroundColor: var(--pf-global--BackgroundColor--300);
  --pf-c-chip--m-overflow--PaddingLeft: 0;
  --pf-c-chip--m-overflow--BorderWidth: 0;

  // overflow chip button
  --pf-c-chip--m-overflow--c-button--BorderRadius: var(--pf-global--BorderRadius--sm);
  --pf-c-chip--m-overflow--c-button--BorderWidth: 0;
  --pf-c-chip--m-overflow--c-button--PaddingLeft: var(--pf-global--spacer--sm);
  --pf-c-chip--m-overflow--c-button--PaddingRight: var(--pf-global--spacer--sm);
  --pf-c-chip--m-overflow--c-button--hover--BorderWidth: var(--pf-global--BorderWidth--sm);
  --pf-c-chip--m-overflow--c-button--hover--BorderColor: var(--pf-global--secondary-color--100);
  --pf-c-chip--m-overflow--c-button--active--BorderWidth: var(--pf-global--BorderWidth--sm);
  --pf-c-chip--m-overflow--c-button--active--BorderColor: var(--pf-global--secondary-color--100);
  --pf-c-chip--m-overflow--c-button--focus--BorderWidth: var(--pf-global--BorderWidth--sm);
  --pf-c-chip--m-overflow--c-button--focus--BorderColor: var(--pf-global--secondary-color--100);

  // read-only chip
  --pf-c-chip--m-read-only--PaddingTop: var(--pf-global--spacer--form-element);
  --pf-c-chip--m-read-only--PaddingRight: var(--pf-global--spacer--sm);
  --pf-c-chip--m-read-only--PaddingBottom: var(--pf-global--spacer--form-element);

  // chip text
  --pf-c-chip__text--FontSize: var(--pf-global--FontSize--xs);
  --pf-c-chip__text--Color: var(--pf-global--Color--100);
  --pf-c-chip__text--MaxWidth: #{pf-size-prem(120px)};

  // chip button
  --pf-c-chip--c-button--PaddingLeft: var(--pf-global--spacer--sm);
  --pf-c-chip--c-button--PaddingRight: var(--pf-global--spacer--sm);
  --pf-c-chip--c-button--FontSize: var(--pf-global--FontSize--xs);

  // chip badge
  --pf-c-chip--c-badge--MarginLeft: var(--pf-global--spacer--xs);

  @include pf-t-light;  // This component always needs to be light

  position: relative;
  display: inline-flex;
  align-items: center;
  padding-left: var(--pf-c-chip--PaddingLeft);
  list-style: none;
  background-color: var(--pf-c-chip--BackgroundColor);
  border-radius: var(--pf-c-chip--BorderRadius);

  &::before {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    content: "";
    border: var(--pf-c-chip--BorderWidth) solid var(--pf-c-chip--BorderColor);
    border-radius: var(--pf-c-chip--BorderRadius);
  }

  // Chip overflow modifier
  &.pf-m-overflow {
    --pf-c-chip--PaddingLeft: var(--pf-c-chip--m-overflow--PaddingLeft);
    --pf-c-chip--BackgroundColor: var(--pf-c-chip--m-overflow--BackgroundColor);

    // Remove chip border
    &::before {
      --pf-c-chip--BorderWidth: var(--pf-c-chip--m-overflow--BorderWidth);
    }

    .pf-c-button {
      padding-right: var(--pf-c-chip--m-overflow--c-button--PaddingRight);
      padding-left: var(--pf-c-chip--m-overflow--c-button--PaddingLeft);

      &::after {
        border: var(--pf-c-chip--m-overflow--c-button--BorderWidth) solid var(--pf-c-chip--m-overflow--c-button--active--BorderColor);
        border-radius: var(--pf-c-chip--m-overflow--c-button--BorderRadius);
      }

      &.pf-m-hover,
      &:hover {
        // stylelint-disable-next-line
        &::after {
          --pf-c-chip--m-overflow--c-button--BorderWidth: var(--pf-c-chip--m-overflow--c-button--hover--BorderWidth);
          --pf-c-chip--m-overflow--c-button--BorderColor: var(--pf-c-chip--m-overflow--c-button--hover--BorderColor);
        }
      }

      &.pf-m-active,
      &:active {
        // stylelint-disable-next-line
        &::after {
          --pf-c-chip--m-overflow--c-button--BorderWidth: var(--pf-c-chip--m-overflow--c-button--active--BorderWidth);
          --pf-c-chip--m-overflow--c-button--BorderColor: var(--pf-c-chip--m-overflow--c-button--active--BorderColor);
        }
      }

      &.pf-m-focus,
      &:focus {
        // stylelint-disable-next-line
        &::after {
          --pf-c-chip--m-overflow--c-button--BorderWidth: var(--pf-c-chip--m-overflow--c-button--focus--BorderWidth);
          --pf-c-chip--m-overflow--c-button--BorderColor: var(--pf-c-chip--m-overflow--c-button--focus--BorderColor);
        }
      }
    }
  }

  &.pf-m-read-only {
    padding-top: var(--pf-c-chip--m-read-only--PaddingTop);
    padding-right: var(--pf-c-chip--m-read-only--PaddingRight);
    padding-bottom: var(--pf-c-chip--m-read-only--PaddingBottom);
  }

  // Button
  .pf-c-button {
    padding-right: var(--pf-c-chip--c-button--PaddingRight);
    padding-left: var(--pf-c-chip--c-button--PaddingLeft);
    font-size: var(--pf-c-chip--c-button--FontSize);
  }

  // badge
  .pf-c-badge {
    margin-left: var(--pf-c-chip--c-badge--MarginLeft);
  }
}

// Text element
.pf-c-chip__text {
  @include pf-text-overflow;

  max-width: var(--pf-c-chip__text--MaxWidth);
  font-size: var(--pf-c-chip__text--FontSize);
  color: var(--pf-c-chip__text--Color);
}
