x-fab {
  position: relative;
  transition: 0.4s transform, 0.4s opacity, 0.4s box-shadow, 0.4s background-color, 0.4s padding;
  transition-timing-function: ease-in;
  box-sizing: border-box;
  text-decoration: none;
  color: var(--color-primary, #4275F2);
  width: 50px;
  height: 50px;
  border: none;
  text-align: center;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 5px;
  line-height: 1em;
  margin: 0px;
  outline: none;
  font-weight: 700;
  appearance: none;
  user-select: none;
}
x-fab x-button {
  border-radius: 50%;
}
x-fab x-button button, x-fab x-button a {
  border-radius: 50%;
}
.translucent x-fab x-button button.button-default, .translucent x-fab x-button a.button-default {
  background: rgba(var(--background-body-rgb), 0.7);
  backdrop-filter: var(--translucent-backdrop-filter);
}
x-fab.fab-fixed {
  position: fixed !important;
}
x-fab.fab-float, x-fab.fab-fixed {
  position: absolute;
}
x-fab.fab-float.fab-position-top-left, x-fab.fab-fixed.fab-position-top-left {
  top: 1rem;
  left: 1rem;
}
x-fab.fab-float.fab-position-top-right, x-fab.fab-fixed.fab-position-top-right {
  top: 1rem;
  right: 1rem;
}
x-fab.fab-float.fab-position-bottom-left, x-fab.fab-fixed.fab-position-bottom-left {
  bottom: 1rem;
  left: 1rem;
}
x-fab.fab-float.fab-position-bottom-right, x-fab.fab-fixed.fab-position-bottom-right {
  bottom: 1rem;
  right: 1rem;
}
x-fab.fab-loading x-icon {
  animation: cycle 0.8s infinite linear reverse;
}

@keyframes cycle {
  0% {
    animation-timing-function: cubic-bezier(0.3333, 0.3333, 0.6667, 0.6667);
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}