141 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SCSS
		
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			SCSS
		
	
	
| /* ==================
 | |
|           边框
 | |
|  ==================== */
 | |
| /* -- 实线 -- */
 | |
| .border {
 | |
|   overflow: initial !important;
 | |
|   @at-root [class*='border'],
 | |
|     [class*='dashed'] {
 | |
|     position: relative;
 | |
|     &.dline {
 | |
|       --ui-Border: var(--ui-BG-3);
 | |
|     }
 | |
|     &::after {
 | |
|       content: ' ';
 | |
|       width: 200%;
 | |
|       height: 200%;
 | |
|       position: absolute;
 | |
|       z-index: 0;
 | |
|       top: 0;
 | |
|       left: 0;
 | |
|       transform: scale(0.5);
 | |
|       transform-origin: 0 0;
 | |
|       pointer-events: none;
 | |
|       box-sizing: border-box;
 | |
|       border-radius: inherit;
 | |
|     }
 | |
|     &.radius::after {
 | |
|       border-radius: calc(#{$radius} * 2);
 | |
|     }
 | |
|     &.round::after {
 | |
|       border-radius: #{$round-pill};
 | |
|     }
 | |
|   }
 | |
|   &::after {
 | |
|     border: 1px solid var(--ui-Border);
 | |
|   }
 | |
|   &s::after {
 | |
|     border: 4rpx solid var(--ui-Border);
 | |
|   }
 | |
|   &ss::after {
 | |
|     border: 8rpx solid var(--ui-Border);
 | |
|   }
 | |
|   @each $value in (top, right, bottom, left) {
 | |
|     &-#{$value}::after {
 | |
|       border-#{$value}: 1px solid var(--ui-Border);
 | |
|     }
 | |
|     &s-#{$value}::after {
 | |
|       border-#{$value}: 4rpx solid var(--ui-Border);
 | |
|     }
 | |
|     &ss-#{$value}::after {
 | |
|       border-#{$value}: 8rpx solid var(--ui-Border);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| /* -- 虚线 -- */
 | |
| .dashed {
 | |
|   &::after {
 | |
|     border: 4rpx dashed var(--ui-Border);
 | |
|   }
 | |
|   &s::after {
 | |
|     border: 6rpx dashed var(--ui-Border);
 | |
|   }
 | |
|   @each $value in (top, right, bottom, left) {
 | |
|     &-#{$value}::after {
 | |
|       border-#{$value}: 4rpx dashed var(--ui-Border);
 | |
|     }
 | |
|     &s-#{$value}::after {
 | |
|       border-#{$value}: 6rpx dashed var(--ui-Border);
 | |
|     }
 | |
|   }
 | |
| }
 | |
| @each $color, $value in map-merge($colors, map-merge($darks, $grays)) {
 | |
|   .border-#{$color}::after,
 | |
|   .border-#{$color}[class*='-shine']::before {
 | |
|     border-color: $value !important;
 | |
|   }
 | |
| }
 | |
| @each $value in (a, b, c, d, e) {
 | |
|   .main-#{$value}-border::after,
 | |
|   .main-#{$value}-border[class*='-shine']::before {
 | |
|     border-color: var(--main-#{$value}) !important;
 | |
|   }
 | |
| }
 | |
| .dashed-shine,
 | |
| .dasheds-shine {
 | |
|   position: relative;
 | |
|   overflow: hidden;
 | |
|   &::after,
 | |
|   &::before {
 | |
|     border-style: dashed;
 | |
|     border-color: var(--ui-Border);
 | |
|     animation: shineafter 1s infinite linear;
 | |
|     width: calc(200% + 40px);
 | |
|     height: 200%;
 | |
|     border-width: 2px 0;
 | |
|   }
 | |
|   &::before {
 | |
|     content: ' ';
 | |
|     position: absolute;
 | |
|     transform: scale(0.5);
 | |
|     transform-origin: 0 0;
 | |
|     pointer-events: none;
 | |
|     box-sizing: border-box;
 | |
|     animation: shinebefore 1s infinite linear;
 | |
|     width: 200%;
 | |
|     height: calc(200% + 40px);
 | |
|     border-width: 0 2px;
 | |
|   }
 | |
| }
 | |
| .dasheds-shine {
 | |
|   &::after,
 | |
|   &::before {
 | |
|     border-width: 4px 0;
 | |
|   }
 | |
|   &::before {
 | |
|     border-width: 0 4px;
 | |
|   }
 | |
| }
 | |
| 
 | |
| @keyframes shineafter {
 | |
|   0% {
 | |
|     top: 0;
 | |
|     left: -22px;
 | |
|   }
 | |
|   100% {
 | |
|     top: 0px;
 | |
|     left: 0px;
 | |
|   }
 | |
| }
 | |
| 
 | |
| @keyframes shinebefore {
 | |
|   0% {
 | |
|     top: -22px;
 | |
|     left: 0;
 | |
|   }
 | |
|   100% {
 | |
|     top: 0px;
 | |
|     left: 0px;
 | |
|   }
 | |
| }
 |