zu 0.3.3

Yew web components, implementing Material Design
Documentation
// Copyright (c) 2024 Xu Shaohua <shaohua@biofan.org>. All rights reserved.
// Use of this source is governed by Lesser General Public License
// that can be found in the LICENSE file.


/* Styles for ButtonGroup */

// Styles applied to the root element.
.ZuButtonGroup-root {
  display: inline-flex;
  border-radius: $zu-shape-borderRadius;

  // Styles applied to the root element if variant="contained".
  &.ZuButtonGroup-contained {
    box-shadow: $zu-shadow-2;
  }

  // Styles applied to the root element if variant="outlined".
  &.ZuButtonGroup-outlined {

  }

  // Styles applied to the root element if variant="text".
  &.ZuButtonGroup-text {

  }


  // Styles applied to the root element if disableElevation={true}.
  &.ZuButtonGroup-disableElevation {
    box-shadow: none;
  }

  // Styles applied to the root element if fullWidth={true}.
  &.ZuButtonGroup-fullWidth {
    width: 100%;
  }


  // Styles applied to the root element if orientation="vertical".
  &.ZuButtonGroup-vertical {
    flex-direction: column;
  }

  // Styles applied to the children.
  & .ZuButtonGroup-grouped {
    min-width: 40px;

    // State class applied to the child elements if disabled={true}.
    &.ZuButtonGroup-disabled {

    }

    &:not(:first-of-type) {
      &.ZuButtonGroup-groupedHorizontal {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
      }

      &.ZuButtonGroup-groupedVertical {
        border-top-right-radius: 0;
        border-top-left-radius: 0;
      }

      &.ZuButtonGroup-groupedOutlined {
        &.ZuButtonGroup-groupedHorizontal {
          margin-left: -1px;
        }

        &.ZuButtonGroup-groupedVertical {
          margin-top: -1px;
        }
      }
    }

    &:not(:last-of-type) {
      &.ZuButtonGroup-groupedHorizontal {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
      }

      &.ZuButtonGroup-groupedVertical {
        border-bottom-right-radius: 0;
        border-bottom-left-radius: 0;
      }

      &.ZuButtonGroup-groupedText {
        &.ZuButtonGroup-groupedHorizontal {
          // TODO(Shaohua): Support dark  theme.
          border-right: 1px solid rgba(0, 0, 0, 0.23);

          &.ZuButtonGroup-disabled {
            border-right: 1px solid $zu-palette-action-disabled;
          }
        }

        &.ZuButtonGroup-groupedVertical {
          // TODO(Shaohua): Support dark  theme.
          border-bottom: 1px solid rgba(0, 0, 0, 0.23);

          &.ZuButtonGroup-disabled {
            border-bottom: 1px solid $zu-palette-action-disabled;
          }
        }

        // colors
        &.ZuButtonGroup-groupedTextPrimary {
          border-color: change-color($zu-palette-primary-main, $alpha: 0.5);
        }

        &.ZuButtonGroup-groupedTextSecondary {
          border-color: change-color($zu-palette-secondary-main, $alpha: 0.5);
        }

        &.ZuButtonGroup-groupedTextSuccess {
          border-color: change-color($zu-palette-success-main, $alpha: 0.5);
        }

        &.ZuButtonGroup-groupedTextInfo {
          border-color: change-color($zu-palette-info-main, $alpha: 0.5);
        }

        &.ZuButtonGroup-groupedTextWarning {
          border-color: change-color($zu-palette-warning-main, $alpha: 0.5);
        }

        &.ZuButtonGroup-groupedTextError {
          border-color: change-color($zu-palette-error-main, $alpha: 0.5);
        }
      }

      &.ZuButtonGroup-groupedOutlined {
        &.ZuButtonGroup-groupedHorizontal {
          border-right-color: transparent;
        }

        &.ZuButtonGroup-groupedVertical {
          border-bottom-color: transparent;
        }
      }

      &.ZuButtonGroup-groupedContained {
        &.ZuButtonGroup-groupedHorizontal {
          border-right: 1px solid $zu-colors-grey-400;

          &.ZuButtonGroup-disabled {
            border-right: 1px solid $zu-palette-action-disabled;
          }
        }

        &.ZuButtonGroup-groupedVertical {
          border-bottom: 1px solid $zu-colors-grey-400;

          &.ZuButtonGroup-disabled {
            border-bottom: 1px solid $zu-palette-action-disabled;
          }
        }
      }

      &:hover {
        &.ZuButtonGroup-groupedOutlined {
          &.ZuButtonGroup-groupedHorizontal {
            border-right-color: currentColor;
          }

          &.ZuButtonGroup-groupedVertical {
            border-bottom-color: currentColor;
          }
        }
      }
    }

    &:hover {
      &.ZuButtonGroup-groupedContained {
        box-shadow: none;
      }
    }

    &.ZuButtonGroup-groupedContained {
      box-shadow: none;
    }
  }
}