328 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			328 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
@import '../../style/themes/index';
 | 
						|
@import '../../style/mixins/index';
 | 
						|
 | 
						|
@radio-prefix-cls: ~'@{ant-prefix}-radio';
 | 
						|
@radio-group-prefix-cls: ~'@{radio-prefix-cls}-group';
 | 
						|
@radio-inner-prefix-cls: ~'@{radio-prefix-cls}-inner';
 | 
						|
@radio-duration: 0.3s;
 | 
						|
@radio-focused-outline: 3px solid fade(@radio-dot-color, 6%);
 | 
						|
 | 
						|
.@{radio-group-prefix-cls} {
 | 
						|
  .reset-component;
 | 
						|
 | 
						|
  display: inline-block;
 | 
						|
}
 | 
						|
 | 
						|
// ä¸čŦįļæ
 | 
						|
.@{radio-prefix-cls}-wrapper {
 | 
						|
  .reset-component;
 | 
						|
 | 
						|
  position: relative;
 | 
						|
  display: inline-block;
 | 
						|
  margin-right: 8px;
 | 
						|
  white-space: nowrap;
 | 
						|
  cursor: pointer;
 | 
						|
}
 | 
						|
 | 
						|
.@{radio-prefix-cls} {
 | 
						|
  .reset-component;
 | 
						|
 | 
						|
  position: relative;
 | 
						|
  display: inline-block;
 | 
						|
  line-height: 1;
 | 
						|
  white-space: nowrap;
 | 
						|
  vertical-align: sub;
 | 
						|
  outline: none;
 | 
						|
  cursor: pointer;
 | 
						|
 | 
						|
  .@{radio-prefix-cls}-wrapper:hover &,
 | 
						|
  &:hover .@{radio-inner-prefix-cls},
 | 
						|
  &-input:focus + .@{radio-inner-prefix-cls} {
 | 
						|
    border-color: @radio-dot-color;
 | 
						|
  }
 | 
						|
 | 
						|
  &-input:focus + .@{radio-inner-prefix-cls} {
 | 
						|
    box-shadow: 0 0 0 3px fade(@radio-dot-color, 8%);
 | 
						|
  }
 | 
						|
 | 
						|
  &-checked::after {
 | 
						|
    position: absolute;
 | 
						|
    top: 0;
 | 
						|
    left: 0;
 | 
						|
    width: 100%;
 | 
						|
    height: 100%;
 | 
						|
    border: 1px solid @radio-dot-color;
 | 
						|
    border-radius: 50%;
 | 
						|
    visibility: hidden;
 | 
						|
    animation: antRadioEffect 0.36s ease-in-out;
 | 
						|
    animation-fill-mode: both;
 | 
						|
    content: '';
 | 
						|
  }
 | 
						|
 | 
						|
  &:hover::after,
 | 
						|
  .@{radio-prefix-cls}-wrapper:hover &::after {
 | 
						|
    visibility: visible;
 | 
						|
  }
 | 
						|
 | 
						|
  &-inner {
 | 
						|
    &::after {
 | 
						|
      @radio-dot-size: @radio-size - 8px;
 | 
						|
 | 
						|
      position: absolute;
 | 
						|
      top: (@radio-size - @radio-dot-size) / 2 - 1px;
 | 
						|
      left: (@radio-size - @radio-dot-size) / 2 - 1px;
 | 
						|
      display: table;
 | 
						|
      width: @radio-dot-size;
 | 
						|
      height: @radio-dot-size;
 | 
						|
      background-color: @radio-dot-color;
 | 
						|
      border-top: 0;
 | 
						|
      border-left: 0;
 | 
						|
      border-radius: @radio-dot-size;
 | 
						|
      transform: scale(0);
 | 
						|
      opacity: 0;
 | 
						|
      transition: all @radio-duration @ease-in-out-circ;
 | 
						|
      content: ' ';
 | 
						|
    }
 | 
						|
 | 
						|
    position: relative;
 | 
						|
    top: 0;
 | 
						|
    left: 0;
 | 
						|
    display: block;
 | 
						|
    width: @radio-size;
 | 
						|
    height: @radio-size;
 | 
						|
    background-color: @radio-button-bg;
 | 
						|
    border-color: @border-color-base;
 | 
						|
    border-style: solid;
 | 
						|
    border-width: 1px;
 | 
						|
    border-radius: 100px;
 | 
						|
    transition: all @radio-duration;
 | 
						|
  }
 | 
						|
 | 
						|
  &-input {
 | 
						|
    position: absolute;
 | 
						|
    top: 0;
 | 
						|
    right: 0;
 | 
						|
    bottom: 0;
 | 
						|
    left: 0;
 | 
						|
    z-index: 1;
 | 
						|
    cursor: pointer;
 | 
						|
    opacity: 0;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// éä¸įļæ
 | 
						|
.@{radio-prefix-cls}-checked {
 | 
						|
  .@{radio-inner-prefix-cls} {
 | 
						|
    border-color: @radio-dot-color;
 | 
						|
    &::after {
 | 
						|
      transform: scale(1);
 | 
						|
      opacity: 1;
 | 
						|
      transition: all @radio-duration @ease-in-out-circ;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.@{radio-prefix-cls}-disabled {
 | 
						|
  .@{radio-inner-prefix-cls} {
 | 
						|
    background-color: @input-disabled-bg;
 | 
						|
    border-color: @border-color-base !important;
 | 
						|
    cursor: not-allowed;
 | 
						|
    &::after {
 | 
						|
      background-color: fade(@black, 20%);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  .@{radio-prefix-cls}-input {
 | 
						|
    cursor: not-allowed;
 | 
						|
  }
 | 
						|
 | 
						|
  & + span {
 | 
						|
    color: @disabled-color;
 | 
						|
    cursor: not-allowed;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
span.@{radio-prefix-cls} + * {
 | 
						|
  padding-right: 8px;
 | 
						|
  padding-left: 8px;
 | 
						|
}
 | 
						|
 | 
						|
.@{radio-prefix-cls}-button-wrapper {
 | 
						|
  position: relative;
 | 
						|
  display: inline-block;
 | 
						|
  height: @btn-height-base;
 | 
						|
  margin: 0;
 | 
						|
  padding: 0 @padding-md - 1px;
 | 
						|
  color: @radio-button-color;
 | 
						|
  line-height: @btn-height-base - 2px;
 | 
						|
  background: @radio-button-bg;
 | 
						|
  border: @border-width-base @border-style-base @border-color-base;
 | 
						|
  // strange align fix for chrome but works
 | 
						|
  // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif
 | 
						|
  border-top-width: @border-width-base + 0.02px;
 | 
						|
  border-left: 0;
 | 
						|
  cursor: pointer;
 | 
						|
  transition: color 0.3s, background 0.3s, border-color 0.3s;
 | 
						|
 | 
						|
  a {
 | 
						|
    color: @radio-button-color;
 | 
						|
  }
 | 
						|
 | 
						|
  > .@{radio-prefix-cls}-button {
 | 
						|
    display: block;
 | 
						|
    width: 0;
 | 
						|
    height: 0;
 | 
						|
    margin-left: 0;
 | 
						|
  }
 | 
						|
 | 
						|
  .@{radio-group-prefix-cls}-large & {
 | 
						|
    height: @input-height-lg;
 | 
						|
    font-size: @font-size-lg;
 | 
						|
    line-height: @input-height-lg - 2px;
 | 
						|
  }
 | 
						|
 | 
						|
  .@{radio-group-prefix-cls}-small & {
 | 
						|
    height: @input-height-sm;
 | 
						|
    padding: 0 @control-padding-horizontal-sm - 1px;
 | 
						|
    line-height: @input-height-sm - 2px;
 | 
						|
  }
 | 
						|
 | 
						|
  &:not(:first-child) {
 | 
						|
    &::before {
 | 
						|
      position: absolute;
 | 
						|
      top: 0;
 | 
						|
      left: -1px;
 | 
						|
      display: block;
 | 
						|
      width: 1px;
 | 
						|
      height: 100%;
 | 
						|
      background-color: @border-color-base;
 | 
						|
      content: '';
 | 
						|
    }
 | 
						|
  }
 | 
						|
  &:first-child {
 | 
						|
    border-left: @border-width-base @border-style-base @border-color-base;
 | 
						|
    border-radius: @border-radius-base 0 0 @border-radius-base;
 | 
						|
  }
 | 
						|
 | 
						|
  &:last-child {
 | 
						|
    border-radius: 0 @border-radius-base @border-radius-base 0;
 | 
						|
  }
 | 
						|
 | 
						|
  &:first-child:last-child {
 | 
						|
    border-radius: @border-radius-base;
 | 
						|
  }
 | 
						|
 | 
						|
  &:hover {
 | 
						|
    position: relative;
 | 
						|
    color: @radio-dot-color;
 | 
						|
  }
 | 
						|
 | 
						|
  &:focus-within {
 | 
						|
    outline: @radio-focused-outline;
 | 
						|
  }
 | 
						|
 | 
						|
  .@{radio-prefix-cls}-inner,
 | 
						|
  input[type='checkbox'],
 | 
						|
  input[type='radio'] {
 | 
						|
    width: 0;
 | 
						|
    height: 0;
 | 
						|
    opacity: 0;
 | 
						|
    pointer-events: none;
 | 
						|
  }
 | 
						|
 | 
						|
  &-checked:not(&-disabled) {
 | 
						|
    z-index: 1;
 | 
						|
    color: @radio-dot-color;
 | 
						|
    background: @radio-button-checked-bg;
 | 
						|
    border-color: @radio-dot-color;
 | 
						|
    box-shadow: -1px 0 0 0 @radio-dot-color;
 | 
						|
 | 
						|
    &::before {
 | 
						|
      background-color: @radio-dot-color !important;
 | 
						|
      opacity: 0.1;
 | 
						|
    }
 | 
						|
 | 
						|
    &:first-child {
 | 
						|
      border-color: @radio-dot-color;
 | 
						|
      box-shadow: none !important;
 | 
						|
    }
 | 
						|
 | 
						|
    &:hover {
 | 
						|
      color: @radio-button-hover-color;
 | 
						|
      border-color: @radio-button-hover-color;
 | 
						|
      box-shadow: -1px 0 0 0 @radio-button-hover-color;
 | 
						|
    }
 | 
						|
 | 
						|
    &:active {
 | 
						|
      color: @radio-button-active-color;
 | 
						|
      border-color: @radio-button-active-color;
 | 
						|
      box-shadow: -1px 0 0 0 @radio-button-active-color;
 | 
						|
    }
 | 
						|
 | 
						|
    &:focus-within {
 | 
						|
      outline: @radio-focused-outline;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  .@{radio-group-prefix-cls}-solid &-checked:not(&-disabled) {
 | 
						|
    color: @component-background;
 | 
						|
    background: @radio-dot-color;
 | 
						|
    border-color: @radio-dot-color;
 | 
						|
    &:hover {
 | 
						|
      color: @component-background;
 | 
						|
      background: @radio-button-hover-color;
 | 
						|
      border-color: @radio-button-hover-color;
 | 
						|
    }
 | 
						|
    &:active {
 | 
						|
      color: @component-background;
 | 
						|
      background: @radio-button-active-color;
 | 
						|
      border-color: @radio-button-active-color;
 | 
						|
    }
 | 
						|
    &:focus-within {
 | 
						|
      outline: @radio-focused-outline;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  &-disabled {
 | 
						|
    color: @disabled-color;
 | 
						|
    background-color: @input-disabled-bg;
 | 
						|
    border-color: @border-color-base;
 | 
						|
    cursor: not-allowed;
 | 
						|
 | 
						|
    &:first-child,
 | 
						|
    &:hover {
 | 
						|
      color: @disabled-color;
 | 
						|
      background-color: @input-disabled-bg;
 | 
						|
      border-color: @border-color-base;
 | 
						|
    }
 | 
						|
    &:first-child {
 | 
						|
      border-left-color: @border-color-base;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  &-disabled&-checked {
 | 
						|
    color: @text-color-inverse;
 | 
						|
    background-color: tint(@black, 90%);
 | 
						|
    border-color: @border-color-base;
 | 
						|
    box-shadow: none;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
@keyframes antRadioEffect {
 | 
						|
  0% {
 | 
						|
    transform: scale(1);
 | 
						|
    opacity: 0.5;
 | 
						|
  }
 | 
						|
  100% {
 | 
						|
    transform: scale(1.6);
 | 
						|
    opacity: 0;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// Firefox hack
 | 
						|
@supports (-moz-appearance: meterbar) and (background-blend-mode: difference, normal) {
 | 
						|
  .@{radio-prefix-cls} {
 | 
						|
    vertical-align: text-bottom;
 | 
						|
  }
 | 
						|
}
 |