index.scss 2.83 KB
.zui-button {
  color: #323233;
  background-color: #fff;
  padding: $h-gap-md $v-gap-md;
  font-size: $font-md;
  font-weight: normal;
  font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, sans-serif;
  cursor: pointer;
  transition: all 70ms ease 20ms;
	border-radius: 0.3125rem;
  position: relative;
  display: inline-block;
  text-align: center;
  border: none;
  outline: none;
  line-height: 1.5;
	&::after {
    line-height: 1.5;
		padding: 0;
		margin: 0;
		border: none;
		content: "";
		pointer-events: none; /* 防止点击触发 */
		box-sizing: border-box;
		position: absolute;
		width: 200%;
		height: 200%;
		left: 0;
		top: 0;
		border: 1px solid $color-border;
		border-radius: 0.625rem;
		transform: scale(0.5);
		transform-origin: 0 0;
  }
  &.block {
    display: block;
    width: 100%;
  }
	&.sm {
		padding: $h-gap-sm $v-gap-sm;
		font-size: $font-sm;
  }
  &.md {
		padding: $h-gap-md $v-gap-md;
		font-size: $font-md;
	}
	&.lg {
		padding: $h-gap-lg $v-gap-lg;
		font-size: $font-lg;
	}
	&:active {
		background-color: $bg-active;
		&, &::after {
			border-color: $bg-active;
		}
	}
	&.primary {
		background-color: $color-primary;
		color: #FFF;
		&:active {
			background-color: darken($color-primary, 3%);
			&, &::after {
				border-color: darken($color-primary, 3%);
			}
		}
		&, &::after {
			border-color: $color-primary;
		}
	}
	&.secondary {
		background-color: lighten($color-primary, 40%);
		color: $color-primary;
		&:active {
			background-color: lighten($color-primary, 30%);
			color: darken($color-primary, 3%);
			&, &::after {
				border-color: lighten($color-primary, 30%);
			}
		}
		&, &::after {
			border-color: lighten($color-primary, 40%);
		}
	}
  &.plain {
    &.primary {
      color: $color-primary;
      background-color: transparent;
      &:active {
      	background-color: rgba($color-primary, 0.1);
      }
    }
    &.disabled {
      background-color: rgba($bg-disabled, 0.1);
    	color: $color-disabled;
    	cursor: not-allowed;
    	&:active {
    		color: $color-disabled;
        background-color: rgba($bg-disabled, 0.1);
    		&, &::after {
    			border-color: $bg-disabled;
    		}
    	}
    	&, &::after {
    		border-color: $bg-disabled;
    	}
    }
  }
	&.link {
		padding: $h-gap-sm $v-gap-sm;
		background: inherit;
		border: inherit;
		color: $color-primary;
		&:active {
			color: darken($color-primary, 5%);
		}
    &::after {
      display: none;
    }
	}
	&.disabled {
		background-color: $bg-disabled;
		color: $color-disabled;
		cursor: not-allowed;
		&:active {
			background-color: $bg-disabled;
			&, &::after {
				border-color: $bg-disabled;
			}
		}
		&, &::after {
			border-color: $bg-disabled;
		}
	}
	&.round {
		border-radius: 1.5rem;
		&::after {
			border-radius: 3rem;
		}
	}
	&.square {
		border-radius: 0;
		&::after {
			border-radius: 0;
		}
	}
}