[data-component~="components/button"] {
  display: inline-block;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: var(--btn-font-size);
  line-height: var(--btn-line-height);
  background-color: var(--btn-bg-color);
  border-width: 0;
  border-radius: 0.25rem;
  color: white !important;
  text-decoration: none !important;
  cursor: pointer;
  font-family: var(--font-family-sans-serif);
  transition: color .1s ease-in-out, background-color .1s ease-in-out, box-shadow .1s ease-in-out;
  user-select: none;
  &.extra_small {
    --btn-font-size: var(--font-size-xs);
    --btn-line-height: var(--line-height-xs);
  }
  &.small {
    --btn-font-size: var(--font-size-sm);
    --btn-line-height: var(--line-height-sm);
  }
  &.medium {
    --btn-font-size: var(--font-size-md);
    --btn-line-height: var(--line-height-md);
  }
  &.large {
    --btn-font-size: var(--font-size-lg);
    --btn-line-height: var(--line-height-lg);
  }
  &.primary {
    --btn-bg-color: var(--color-sky-900);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-sky-950);
    }
  }
  &.secondary {
    --btn-bg-color: var(--color-slate-700);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-slate-800);
    }
  }
  &.success {
    --btn-bg-color: var(--color-green-900);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-green-950);
    }
  }
  &.info {
    --btn-bg-color: var(--color-yellow-900);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-yellow-950);
    }
  }
  &.warning {
    --btn-bg-color: var(--color-orange-900);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-orange-950);
    }
  }
  &.danger {
    --btn-bg-color: var(--color-red-900);
    &.active:not(:disabled), &:hover:not(:disabled) {
      --btn-bg-color: var(--color-red-950);
    }
  }
  &:disabled {
    opacity: 0.5;
  }
}