@douyinfe/semi-foundation 2.51.3 → 2.52.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/avatar/animation.scss +19 -0
  2. package/avatar/avatar.scss +313 -0
  3. package/avatar/variables.scss +66 -10
  4. package/datePicker/foundation.ts +7 -4
  5. package/input/input.scss +12 -3
  6. package/input/variables.scss +5 -0
  7. package/lib/cjs/avatar/animation.scss +19 -0
  8. package/lib/cjs/avatar/avatar.css +261 -0
  9. package/lib/cjs/avatar/avatar.scss +313 -0
  10. package/lib/cjs/avatar/variables.scss +66 -10
  11. package/lib/cjs/datePicker/foundation.d.ts +2 -2
  12. package/lib/cjs/datePicker/foundation.js +4 -2
  13. package/lib/cjs/input/input.css +12 -0
  14. package/lib/cjs/input/input.scss +12 -3
  15. package/lib/cjs/input/variables.scss +5 -0
  16. package/lib/cjs/modal/modal.css +3 -0
  17. package/lib/cjs/modal/modal.scss +5 -1
  18. package/lib/cjs/modal/modalFoundation.d.ts +1 -0
  19. package/lib/cjs/modal/variables.scss +4 -0
  20. package/lib/cjs/slider/constants.d.ts +1 -0
  21. package/lib/cjs/slider/constants.js +2 -1
  22. package/lib/cjs/slider/foundation.d.ts +7 -0
  23. package/lib/cjs/slider/slider.css +9 -0
  24. package/lib/cjs/slider/slider.scss +10 -0
  25. package/lib/cjs/slider/variables.scss +2 -0
  26. package/lib/cjs/treeSelect/foundation.d.ts +1 -0
  27. package/lib/cjs/treeSelect/foundation.js +1 -0
  28. package/lib/es/avatar/animation.scss +19 -0
  29. package/lib/es/avatar/avatar.css +261 -0
  30. package/lib/es/avatar/avatar.scss +313 -0
  31. package/lib/es/avatar/variables.scss +66 -10
  32. package/lib/es/datePicker/foundation.d.ts +2 -2
  33. package/lib/es/datePicker/foundation.js +4 -2
  34. package/lib/es/input/input.css +12 -0
  35. package/lib/es/input/input.scss +12 -3
  36. package/lib/es/input/variables.scss +5 -0
  37. package/lib/es/modal/modal.css +3 -0
  38. package/lib/es/modal/modal.scss +5 -1
  39. package/lib/es/modal/modalFoundation.d.ts +1 -0
  40. package/lib/es/modal/variables.scss +4 -0
  41. package/lib/es/slider/constants.d.ts +1 -0
  42. package/lib/es/slider/constants.js +2 -1
  43. package/lib/es/slider/foundation.d.ts +7 -0
  44. package/lib/es/slider/slider.css +9 -0
  45. package/lib/es/slider/slider.scss +10 -0
  46. package/lib/es/slider/variables.scss +2 -0
  47. package/lib/es/treeSelect/foundation.d.ts +1 -0
  48. package/lib/es/treeSelect/foundation.js +1 -0
  49. package/modal/modal.scss +5 -1
  50. package/modal/modalFoundation.ts +2 -1
  51. package/modal/variables.scss +4 -0
  52. package/package.json +3 -3
  53. package/slider/constants.ts +1 -0
  54. package/slider/foundation.ts +8 -1
  55. package/slider/slider.scss +10 -0
  56. package/slider/variables.scss +2 -0
  57. package/treeSelect/foundation.ts +2 -0
@@ -24,29 +24,85 @@ $font-avatar_extra_large-lineHeight: 77px; // 文本行高 - 超大
24
24
 
25
25
  $radius-avatar: var(--semi-border-radius-circle); // 头像圆角
26
26
 
27
- $width-avatar_extra_large-border: 3px; // 头像描边尺寸 - 超大
28
- $spacing-avatar_extra_large-marginLeft: -32px; // 头像左侧外边距 - 超大
27
+ $width-avatar_extra_large-border: 3px; // 头像组头像描边尺寸 - 超大
28
+ $spacing-avatar_extra_large-marginLeft: -32px; // 头像组头像左侧外边距 - 超大
29
29
 
30
- $width-avatar_large-border: 3px; // 头像描边尺寸 - 大
30
+ $width-avatar_large-border: 3px; // 头像组头像描边尺寸 - 大
31
31
  $spacing-avatar_large-marginLeft: -18px; // 头像左侧外边距 - 大
32
32
 
33
- $width-avatar_medium-border: 2px; // 头像描边尺寸 - 中
33
+ $width-avatar_medium-border: 2px; // 头像组头像描边尺寸 - 中
34
34
  $spacing-avatar_medium-marginLeft: -12px; // 头像左侧外边距 - 中
35
35
 
36
- $width-avatar_default-border: 2px; // 头像描边尺寸 - 默认
36
+ $width-avatar_default-border: 2px; // 头像组头像描边尺寸 - 默认
37
37
  $spacing-avatar_default-marginLeft: -12px; // 头像左侧外边距 - 默认
38
38
 
39
- $width-avatar_small-border: 2px; // 头像描边尺寸 - 小
39
+ $width-avatar_small-border: 2px; // 头像组头像描边尺寸 - 小
40
40
  $spacing-avatar_small-marginLeft: -12px; // 头像左侧外边距 - 小
41
41
 
42
- $width-avatar_extra_small-border: 1px; // 头像描边尺寸 - 超小
42
+ $width-avatar_extra_small-border: 1px; // 头像组头像描边尺寸 - 超小
43
43
  $spacing-avatar_extra_small-marginLeft: -10px; // 头像左侧外边距 - 超小
44
44
 
45
- $width-avatar_extra_extra_small-border: 1px; // 头像描边尺寸 - 极小
45
+ $width-avatar_extra_extra_small-border: 1px; // 头像组头像描边尺寸 - 极小
46
46
  $spacing-avatar_extra_extra_small-marginLeft: -4px; // 头像左侧外边距 - 极小
47
-
48
47
  $width-avatar-outline: 2px; //头像聚焦轮廓宽度
49
48
 
49
+ $width-avatar_additional-border: 1.5px; // 额外描边尺寸
50
+ $color-avatar_additional-border: var(--semi-color-primary); // 额外描边颜色
51
+ $spacing-avatar_additional-borderGap: 2px; // 额外描边与内侧间距
52
+
53
+ $width-avatar-bottom_slot_circle_small: 12px; // small 头像底部 slot 圆形半径
54
+ $width-avatar-bottom_slot_circle_default: 16px; // default 头像底部 slot 圆形半径
55
+ $width-avatar-bottom_slot_circle_medium: 18px; // medium 头像底部 slot 圆形半径
56
+ $width-avatar-bottom_slot_circle_large: 28px; // large 头像底部 slot 圆形半径
57
+ $width-avatar-bottom_slot_circle_extra_large: 28px; // extra large 头像底部 slot 圆形半径
58
+ $color-avatar-bottom_slot_bg:var(--semi-color-primary); // 头像底部 slot 背景色
59
+
60
+ $radius-avatar-bottom_slot_square:4px; // 底部 slot square 圆角
61
+ $font-avatar_bottom_slot-small-fontSize: 5px; // small 底部 slot 文字大小
62
+ $font-avatar_bottom_slot-default-fontSize: 12px; // default 底部 slot 文字大小
63
+ $font-avatar_bottom_slot-medium-fontSize: 12px; // medium 底部 slot 文字大小
64
+ $font-avatar_bottom_slot-large-fontSize: 12px; // large 底部 slot 文字大小
65
+ $font-avatar_bottom_slot-extra_large-fontSize: 14px; // extra large 底部 slot 文字大小
66
+ $spacing-avatar-bottom_slot_square-paddingX:4px; // 底部 slot square 形状左边距
67
+ $spacing-avatar-bottom_slot_square-paddingY:1px; //底部 slot square 形状右边距
68
+
69
+ $font-avatar_top_slot-small-fontSize: 5px; // small 顶部 slot 文字大小
70
+ $font-avatar_top_slot-default-fontSize: 6px; // default 顶部 slot 文字大小
71
+ $font-avatar_top_slot-medium-fontSize: 8px; // medium 顶部 slot 文字大小
72
+ $font-avatar_top_slot-large-fontSize: 14px; // large 顶部 slot 文字大小
73
+ $font-avatar_top_slot-extra_large-fontSize: 16px; // extra large 顶部 slot 文字大小
74
+
75
+ $spacing-avatar-top_slot_small-content-marginTop: 0px; // small 顶部文字 marginTop
76
+ $spacing-avatar-top_slot_default-content-marginTop: -2px; // default 顶部文字 marginTop
77
+ $spacing-avatar-top_slot_medium-content-marginTop: 0px; // medium 顶部文字 marginTop
78
+ $spacing-avatar-top_slot_large-content-marginTop: 0px; // large 顶部文字 marginTop
79
+ $spacing-avatar-top_slot_extra_large-content-marginTop: 0px; // extra large 顶部文字 marginTop
80
+
81
+ $color-avatar-bottom_slot_square-border:var(--semi-color-bg-0); // 底部 square 边框颜色
82
+ $width-avatar-bottom_slot_square_small-border:2px; // small 头像底部 square 边框宽度
83
+ $width-avatar-bottom_slot_square_default-border:2px; // default 头像底部 square 边框宽度
84
+ $width-avatar-bottom_slot_square_medium-border:2px; // medium 头像底部 square 边框宽度
85
+ $width-avatar-bottom_slot_square_large-border:2px; // large 头像底部 square 边框宽度
86
+ $width-avatar-bottom_slot_square_extra_large-border:2px; // extra large 头像底部 square 边框宽度
87
+
88
+ $color-avatar-top_slot_text:var(--semi-color-bg-0); //顶部 Slot 文字颜色
89
+ $color-avatar-top_slot_gradient_start: var(--semi-color-primary); // 顶部 slot 渐变起始色
90
+ $color-avatar-top_slot_gradient_end: var(--semi-color-primary); // 顶部 slot 渐变结束色
91
+
92
+
93
+ $spacing-avatar-top_slot_small-shift: -28px; // small 顶部 slot 偏移量, 和 scale 一起控制 slot 的位置
94
+ $spacing-avatar-top_slot_default-shift: -32px; // default 顶部 slot 偏移量, 和 scale 一起控制 slot 的位置
95
+ $spacing-avatar-top_slot_medium-shift: -30px; // medium 顶部 slot 偏移量, 和 scale 一起控制 slot 的位置
96
+ $spacing-avatar-top_slot_large-shift: -30px; // large 顶部 slot 偏移量, 和 scale 一起控制 slot 的位置
97
+ $spacing-avatar-top_slot_extra_large-shift: -32px; // extra large 顶部 slot 偏移量, 和 scale 一起控制 slot 的位置
98
+
99
+ $spacing-avatar-top_slot_small-scale: 0.4; // small 顶部 slot 缩放比例
100
+ $spacing-avatar-top_slot_default-scale: 0.7; // default 顶部 slot 缩放比例
101
+ $spacing-avatar-top_slot_medium-scale: 0.8; // medium 顶部 slot 缩放比例
102
+ $spacing-avatar-top_slot_large-scale: 1.1; // large 顶部 slot 缩放比例
103
+ $spacing-avatar-top_slot_extra_large-scale: 1.4; // large 顶部 slot 缩放比例
104
+
105
+
50
106
  // radius
51
107
  $radius-avatar_extra_extra_small: 3px; // 极小尺寸头像的圆角
52
108
  $radius-avatar_extra_small: 3px; // 超小尺寸头像的圆角
@@ -54,4 +110,4 @@ $radius-avatar_small: 3px; // 小尺寸头像的圆角
54
110
  $radius-avatar_default: 3px; // 默认尺寸头像的圆角
55
111
  $radius-avatar_medium: 3px; // 中尺寸头像的圆角
56
112
  $radius-avatar_large: 6px; // 大尺寸头像的圆角
57
- $radius-avatar_extra_large: 12px; // 超大尺寸头像的圆角
113
+ $radius-avatar_extra_large: 12px; // 超大尺寸头像的圆角
@@ -30,8 +30,8 @@ export type DisabledDateOptions = {
30
30
  rangeInputFocus?: 'rangeStart' | 'rangeEnd' | false;
31
31
  };
32
32
  export type PresetType = {
33
- start?: string | Date | number;
34
- end?: string | Date | number;
33
+ start?: BaseValueType | (() => BaseValueType);
34
+ end?: BaseValueType | (() => BaseValueType);
35
35
  text?: string;
36
36
  };
37
37
  export type TriggerRenderProps = {
@@ -884,17 +884,19 @@ class DatePickerFoundation extends _foundation.default {
884
884
  timeZone
885
885
  } = this.getProps();
886
886
  const prevTimeZone = this.getState('prevTimezone');
887
+ const start = typeof item.start === 'function' ? item.start() : item.start;
888
+ const end = typeof item.end === 'function' ? item.end() : item.end;
887
889
  let value;
888
890
  switch (type) {
889
891
  case 'month':
890
892
  case 'dateTime':
891
893
  case 'date':
892
- value = this.parseWithTimezone([item.start], timeZone, prevTimeZone);
894
+ value = this.parseWithTimezone([start], timeZone, prevTimeZone);
893
895
  this.handleSelectedChange(value);
894
896
  break;
895
897
  case 'dateTimeRange':
896
898
  case 'dateRange':
897
- value = this.parseWithTimezone([item.start, item.end], timeZone, prevTimeZone);
899
+ value = this.parseWithTimezone([start, end], timeZone, prevTimeZone);
898
900
  this.handleSelectedChange(value, {
899
901
  needCheckFocusRecord: false
900
902
  });
@@ -553,6 +553,18 @@
553
553
  margin-bottom: 0;
554
554
  }
555
555
 
556
+ .semi-input-only_border {
557
+ background: transparent;
558
+ border-color: var(--semi-color-border);
559
+ }
560
+ .semi-input-only_border:hover {
561
+ background: transparent;
562
+ border-color: var(--semi-color-border);
563
+ }
564
+ .semi-input-only_border:focus-within {
565
+ background: transparent;
566
+ }
567
+
556
568
  .semi-input-borderless:not(:focus-within):not(:hover) {
557
569
  background-color: transparent;
558
570
  border-color: transparent;
@@ -85,7 +85,7 @@ $module: #{$prefix}-input;
85
85
  border: $color-input_default-border-focus solid $width-input_wrapper_focus-border;
86
86
 
87
87
  &:hover {
88
- background-color: $color-input_default-bg-focus;
88
+ background-color: $color-input_default-bg-focus-hover;
89
89
  border-color: $color-input_default-border-focus;
90
90
  }
91
91
 
@@ -690,7 +690,18 @@ $module: #{$prefix}-input;
690
690
  }
691
691
  }
692
692
 
693
+ .#{$module}-only_border{
694
+ background: transparent;
695
+ &:hover{
696
+ background: transparent;
697
+ border-color: $color_input-default-border-only_border-hover;
698
+ }
699
+ &:focus-within{
700
+ background: transparent;
701
+ }
702
+ border-color: $color_input-default-border-only_border-default;
693
703
 
704
+ }
694
705
 
695
706
  .#{$module}-borderless{
696
707
 
@@ -713,8 +724,6 @@ $module: #{$prefix}-input;
713
724
  }
714
725
 
715
726
 
716
-
717
-
718
727
  }
719
728
 
720
729
  @import "./rtl.scss";
@@ -13,6 +13,8 @@ $color-input_default-bg-focus: var(--semi-color-fill-0); // 输入框背景颜
13
13
  $color-input_default-border-focus: var(--semi-color-focus-border); // 输入框描边颜色 - 选中
14
14
  $color-input_icon-outline: var(--semi-color-primary-light-active); // 输入框 icon outline 颜色
15
15
 
16
+ $color-input_default-bg-focus-hover: $color-input_default-bg-focus; // 输入框背景颜色 - 选中悬浮
17
+
16
18
  // error
17
19
  $color-input_danger-bg-default: var(--semi-color-danger-light-default); // 错误输入框背景颜色 - 默认
18
20
  $color-input_danger-border-default: var(--semi-color-danger-light-default); // 错误输入框描边颜色 - 默认
@@ -57,6 +59,9 @@ $color-input_counter_danger-text-default: var(--semi-color-danger); // 多行文
57
59
 
58
60
  $color-input_group-border-default: var(--semi-color-border); // 输入框组合分割线颜色
59
61
 
62
+ $color_input-default-border-only_border-default: var(--semi-color-border); // 只有描边的输入框描边颜色 - 默认
63
+ $color_input-default-border-only_border-hover: var(--semi-color-border); // 只有描边的输入框描边颜色 - 默认
64
+
60
65
  $height-input_large: $height-control-large - 2px; // 输入框高度 & 行高 - 大尺寸
61
66
  $height-input_small: $height-control-small - 2px; // 输入框高度 & 行高 - 小尺寸
62
67
  $height-input_default: $height-control-default - 2px; // 输入框高度 & 行高 - 默认尺寸
@@ -64,6 +64,9 @@
64
64
  overflow: hidden;
65
65
  box-shadow: var(--semi-shadow-elevated);
66
66
  }
67
+ .semi-modal-footerfill {
68
+ display: flex;
69
+ }
67
70
  .semi-modal-content-fullScreen {
68
71
  border-radius: 0;
69
72
  border: none;
@@ -70,7 +70,11 @@ $module: #{$prefix}-modal;
70
70
  padding: $spacing-modal_content-paddingY $spacing-modal_content-paddingX;
71
71
  background-clip: padding-box;
72
72
  overflow: hidden;
73
- @include shadow-elevated;
73
+ box-shadow: $shadow-modal_content;
74
+ }
75
+
76
+ &-footerfill{
77
+ display: flex;
74
78
  }
75
79
 
76
80
  &-content-fullScreen {
@@ -51,6 +51,7 @@ export interface ModalProps {
51
51
  direction?: any;
52
52
  fullScreen?: boolean;
53
53
  preventScroll?: boolean;
54
+ footerFill?: boolean;
54
55
  }
55
56
  export interface ModalState {
56
57
  displayNone: boolean;
@@ -71,3 +71,7 @@ $color-modal_footer-border:transparent; // 模态框 footer 顶部描边颜色
71
71
  $width-modal_footer-border:0; // 模态框 footer 顶部描边宽度
72
72
 
73
73
 
74
+ //shadow
75
+ $shadow-modal_content: var(--semi-shadow-elevated)
76
+
77
+
@@ -6,6 +6,7 @@ declare const cssClasses: {
6
6
  DOTS: string;
7
7
  MARKS: string;
8
8
  HANDLE: string;
9
+ HANDLE_DOT: string;
9
10
  };
10
11
  declare const strings: {
11
12
  SIZE: string[];
@@ -12,7 +12,8 @@ const cssClasses = {
12
12
  TRACK: `${_constants.BASE_CLASS_PREFIX}-slider-track`,
13
13
  DOTS: `${_constants.BASE_CLASS_PREFIX}-slider-dots`,
14
14
  MARKS: `${_constants.BASE_CLASS_PREFIX}-slider-marks`,
15
- HANDLE: `${_constants.BASE_CLASS_PREFIX}-slider-handle`
15
+ HANDLE: `${_constants.BASE_CLASS_PREFIX}-slider-handle`,
16
+ HANDLE_DOT: `${_constants.BASE_CLASS_PREFIX}-slider-handle-dot`
16
17
  };
17
18
  exports.cssClasses = cssClasses;
18
19
  const strings = {
@@ -31,6 +31,13 @@ export interface SliderProps {
31
31
  'aria-labelledby'?: string;
32
32
  'aria-valuetext'?: string;
33
33
  getAriaValueText?: (value: number, index?: number) => string;
34
+ handleDot?: {
35
+ size?: string;
36
+ color?: string;
37
+ } & ({
38
+ size?: string;
39
+ color?: string;
40
+ }[]);
34
41
  }
35
42
  export interface SliderState {
36
43
  currentValue: number | number[];
@@ -46,10 +46,19 @@
46
46
  cursor: pointer;
47
47
  transition: background-color var(--semi-transition_duration-none) var(--semi-transition_function-easeIn) var(--semi-transition_delay-none);
48
48
  transform: var(--semi-transform_scale-small) translateX(-50%) translateY(0px);
49
+ display: inline-flex;
50
+ justify-content: center;
51
+ align-items: center;
49
52
  }
50
53
  .semi-slider-handle:focus-visible {
51
54
  outline: 2px solid var(--semi-color-primary-light-active);
52
55
  }
56
+ .semi-slider-handle-dot {
57
+ background: var(--semi-color-primary);
58
+ width: 4px;
59
+ height: 4px;
60
+ border-radius: var(--semi-border-radius-circle);
61
+ }
53
62
  .semi-slider-handle:hover {
54
63
  background-color: var(--semi-color-white);
55
64
  }
@@ -58,9 +58,19 @@ $module: #{$prefix}-slider;
58
58
  cursor: pointer;
59
59
  transition: background-color $transition_duration_slider_handle-bg $transition_function-slider-handle-bg $transition_delay-slider_handle-bg;
60
60
  transform: $transform_scale-slider_handle translateX(-50%) translateY($spacing-slider_handle-translateY);
61
+ display: inline-flex;
62
+ justify-content: center;
63
+ align-items: center;
61
64
  &:focus-visible {
62
65
  outline: $width-slider_handle-focus solid $color-slider_handle-focus;
63
66
  }
67
+
68
+ &-dot{
69
+ background:$color-slider_handle_dot;
70
+ width:$width-slider_handle_dot;
71
+ height: $width-slider_handle_dot;
72
+ border-radius: var(--semi-border-radius-circle);
73
+ }
64
74
  }
65
75
 
66
76
  &-handle:hover {
@@ -15,6 +15,7 @@ $color-slider_rail: rgba(0, 0, 0, 0.65);
15
15
  $color-slider_track-bg-default: var(--semi-color-primary); // 滑动条轨道颜色 - 已填充
16
16
  $color-slider_track_disabled-bg: var(--semi-color-primary-disabled); // 禁用滑动条轨道颜色 - 已填充
17
17
  $color-slider_handle-focus: var(--semi-color-primary-light-active); // 圆形按钮轮廓 - 聚焦
18
+ $color-slider_handle_dot: var(--semi-color-primary); // 圆形按钮内部圆点颜色
18
19
 
19
20
  // Spacing
20
21
  $spacing-slider-paddingX: 13px; // 滑动条整体水平内边距
@@ -57,6 +58,7 @@ $height-slider_track: 4px; // 滚动条已填充轨道高度
57
58
  $width-slider_dot: 4px; // 滚动条圆形刻度点宽度
58
59
  $width-slider_handle_border_disabled: 1px; // 禁用滚动条圆形按钮按下后描边宽度
59
60
  $width-slider_handle-focus: 2px; // 圆形按钮轮廓 - 聚焦
61
+ $width-slider_handle_dot: 4px; // 圆形按钮内部圆点宽度
60
62
 
61
63
  // Font
62
64
  $font-slider_rail-fontSize: 14px; // 滚动条轨道文本字号
@@ -96,6 +96,7 @@ export interface TreeSelectAdapter<P = Record<string, any>, S = Record<string, a
96
96
  closeMenu: (cb?: () => void) => void;
97
97
  getTriggerWidth: () => boolean | number;
98
98
  setOptionWrapperWidth: (width: null | number) => void;
99
+ notifyClear: (e: any) => void;
99
100
  notifyChange: BasicOnChangeWithBasic;
100
101
  notifyChangeWithObject: BasicOnChangeWithObject;
101
102
  notifyExpand: (expandedKeys: Set<string>, expandedOtherProps: BasicExpandedOtherProps) => void;
@@ -385,6 +385,7 @@ class TreeSelectFoundation extends _foundation.default {
385
385
  }
386
386
  }
387
387
  }
388
+ this._adapter.notifyClear(e);
388
389
  }
389
390
  /**
390
391
  * A11y: simulate clear button click
@@ -0,0 +1,19 @@
1
+ $animation_duration-additionalBorder: 800ms; // 边框动画持续时间
2
+ $animation_duration-content: 1000ms; // 内容动画持续时间
3
+
4
+
5
+ $animation_opacity-additionalBorder-start: 1; // 边框动画起始透明度
6
+ $animation_opacity-additionalBorder-end: 0; // 边框动画结束透明度
7
+
8
+
9
+ $animation_width-additionalBorder-end:0; // 边框动画结束宽度
10
+
11
+
12
+ $animation_scale-additionalBorder-start: 1; // 边框动画起始缩放比例
13
+ $animation_scale-additionalBorder-end: 1.15; // 边框动画结束缩放比例
14
+
15
+ $animation_scale-content-start: 1; // 边框动画起始缩放比例
16
+ $animation_scale-content-middle: 0.9; // 边框动画中间态缩放比例
17
+ $animation_scale-content-end: 1; // 边框动画结束缩放比例
18
+
19
+
@@ -129,6 +129,170 @@
129
129
  cursor: pointer;
130
130
  }
131
131
 
132
+ .semi-avatar-wrapper {
133
+ position: relative;
134
+ display: inline-flex;
135
+ flex-direction: column;
136
+ align-items: center;
137
+ width: fit-content;
138
+ }
139
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg {
140
+ position: absolute;
141
+ display: flex;
142
+ justify-content: center;
143
+ border-radius: 50%;
144
+ overflow: hidden;
145
+ }
146
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-small {
147
+ width: 32px;
148
+ height: 32px;
149
+ }
150
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-default {
151
+ width: 40px;
152
+ height: 40px;
153
+ }
154
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-medium {
155
+ width: 48px;
156
+ height: 48px;
157
+ }
158
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-large {
159
+ width: 72px;
160
+ height: 72px;
161
+ }
162
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-extra-large {
163
+ width: 128px;
164
+ height: 128px;
165
+ }
166
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg {
167
+ position: absolute;
168
+ }
169
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg-small {
170
+ top: -28px;
171
+ scale: 0.4;
172
+ }
173
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg-default {
174
+ top: -32px;
175
+ scale: 0.7;
176
+ }
177
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg-medium {
178
+ top: -30px;
179
+ scale: 0.8;
180
+ }
181
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg-large {
182
+ top: -30px;
183
+ scale: 1.1;
184
+ }
185
+ .semi-avatar-wrapper .semi-avatar-top_slot-bg-svg-extra-large {
186
+ top: -32px;
187
+ scale: 1.4;
188
+ }
189
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper {
190
+ position: absolute;
191
+ display: flex;
192
+ justify-content: center;
193
+ }
194
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot {
195
+ color: var(--semi-color-bg-0);
196
+ font-weight: 600;
197
+ }
198
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content {
199
+ user-select: none;
200
+ position: relative;
201
+ line-height: normal;
202
+ }
203
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content-small {
204
+ font-size: 5px;
205
+ margin-top: 0px;
206
+ }
207
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content-default {
208
+ font-size: 6px;
209
+ margin-top: -2px;
210
+ }
211
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content-medium {
212
+ font-size: 8px;
213
+ margin-top: 0px;
214
+ }
215
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content-large {
216
+ font-size: 14px;
217
+ margin-top: 0px;
218
+ }
219
+ .semi-avatar-wrapper .semi-avatar-top_slot-wrapper .semi-avatar-top_slot-content-extra-large {
220
+ font-size: 16px;
221
+ margin-top: 0px;
222
+ }
223
+ .semi-avatar-wrapper .semi-avatar-bottom_slot {
224
+ color: var(--semi-color-bg-0);
225
+ position: absolute;
226
+ cursor: pointer;
227
+ bottom: 3.5px;
228
+ transform: translateY(50%);
229
+ user-select: none;
230
+ }
231
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle {
232
+ display: flex;
233
+ justify-content: center;
234
+ align-items: center;
235
+ background: var(--semi-color-primary);
236
+ border-radius: var(--semi-border-radius-circle);
237
+ line-height: normal;
238
+ }
239
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle-small {
240
+ width: 12px;
241
+ height: 12px;
242
+ font-size: 5px;
243
+ }
244
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle-default {
245
+ width: 16px;
246
+ height: 16px;
247
+ font-size: 12px;
248
+ }
249
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle-medium {
250
+ width: 18px;
251
+ height: 18px;
252
+ font-size: 12px;
253
+ }
254
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle-large {
255
+ width: 28px;
256
+ height: 28px;
257
+ font-size: 12px;
258
+ }
259
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_circle-extra-large {
260
+ width: 28px;
261
+ height: 28px;
262
+ font-size: 14px;
263
+ }
264
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square {
265
+ display: flex;
266
+ justify-content: center;
267
+ align-items: center;
268
+ background: var(--semi-color-primary);
269
+ border-radius: 4px;
270
+ padding: 1px 4px;
271
+ font-weight: 600;
272
+ border-style: solid;
273
+ border-color: var(--semi-color-bg-0);
274
+ }
275
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square-small {
276
+ font-size: 5px;
277
+ border-width: 2px;
278
+ }
279
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square-default {
280
+ font-size: 12px;
281
+ border-width: 2px;
282
+ }
283
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square-medium {
284
+ font-size: 12px;
285
+ border-width: 2px;
286
+ }
287
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square-large {
288
+ font-size: 12px;
289
+ border-width: 2px;
290
+ }
291
+ .semi-avatar-wrapper .semi-avatar-bottom_slot-shape_square-extra-large {
292
+ font-size: 14px;
293
+ border-width: 2px;
294
+ }
295
+
132
296
  .semi-avatar-group {
133
297
  display: inline-block;
134
298
  }
@@ -376,6 +540,103 @@
376
540
  color: rgba(var(--semi-white), 1);
377
541
  }
378
542
 
543
+ .semi-avatar-additionalBorder {
544
+ border-style: solid;
545
+ border-color: var(--semi-color-primary);
546
+ display: inline-block;
547
+ box-sizing: border-box;
548
+ position: absolute;
549
+ border-width: 1.5px;
550
+ top: -3.5px;
551
+ left: -3.5px;
552
+ }
553
+ .semi-avatar-additionalBorder-extra-extra-small {
554
+ width: 27px;
555
+ height: 27px;
556
+ }
557
+ .semi-avatar-additionalBorder-extra-small {
558
+ width: 31px;
559
+ height: 31px;
560
+ }
561
+ .semi-avatar-additionalBorder-small {
562
+ width: 39px;
563
+ height: 39px;
564
+ }
565
+ .semi-avatar-additionalBorder-default {
566
+ width: 47px;
567
+ height: 47px;
568
+ }
569
+ .semi-avatar-additionalBorder-medium {
570
+ width: 55px;
571
+ height: 55px;
572
+ }
573
+ .semi-avatar-additionalBorder-large {
574
+ width: 79px;
575
+ height: 79px;
576
+ }
577
+ .semi-avatar-additionalBorder-extra-large {
578
+ width: 135px;
579
+ height: 135px;
580
+ }
581
+
582
+ .semi-avatar-square.semi-avatar-additionalBorder-extra_extra_small {
583
+ border-radius: 3px;
584
+ }
585
+
586
+ .semi-avatar-square.semi-avatar-additionalBorder-extra_small {
587
+ border-radius: 3px;
588
+ }
589
+
590
+ .semi-avatar-square.semi-avatar-additionalBorder-small {
591
+ border-radius: 3px;
592
+ }
593
+
594
+ .semi-avatar-square.semi-avatar-additionalBorder-default {
595
+ border-radius: 3px;
596
+ }
597
+
598
+ .semi-avatar-square.semi-avatar-additionalBorder-medium {
599
+ border-radius: 3px;
600
+ }
601
+
602
+ .semi-avatar-square.semi-avatar-additionalBorder-large {
603
+ border-radius: 6px;
604
+ }
605
+
606
+ .semi-avatar-additionalBorder-circle {
607
+ border-radius: var(--semi-border-radius-circle);
608
+ }
609
+
610
+ .semi-avatar-additionalBorder-animated {
611
+ animation: 800ms linear infinite semi-avatar-additionalBorder;
612
+ }
613
+
614
+ .semi-avatar-animated {
615
+ animation: 1000ms linear infinite semi-avatar-content;
616
+ }
617
+
618
+ @keyframes semi-avatar-additionalBorder {
619
+ 0% {
620
+ opacity: 1;
621
+ transform: scale(1);
622
+ }
623
+ to {
624
+ border-width: 0;
625
+ opacity: 0;
626
+ transform: scale(1.15);
627
+ }
628
+ }
629
+ @keyframes semi-avatar-content {
630
+ 0% {
631
+ transform: scale(1);
632
+ }
633
+ 50% {
634
+ transform: scale(0.9);
635
+ }
636
+ to {
637
+ transform: scale(1);
638
+ }
639
+ }
379
640
  .semi-rtl .semi-avatar,
380
641
  .semi-portal-rtl .semi-avatar {
381
642
  direction: rtl;