|
49 | 49 | border-radius: calc(@badge-basic-height / 2); |
50 | 50 | } |
51 | 51 |
|
52 | | - &__ribbon { |
| 52 | + &__ribbon, |
| 53 | + &__ribbon-right, |
| 54 | + &__triangle-right, |
| 55 | + &__ribbon-left, |
| 56 | + &__triangle-left { |
53 | 57 | &-outer { |
54 | 58 | position: absolute; |
55 | 59 | top: 0; |
| 60 | + } |
| 61 | + } |
| 62 | + |
| 63 | + &__ribbon, |
| 64 | + &__ribbon-right, |
| 65 | + &__triangle-right { |
| 66 | + &-outer { |
56 | 67 | right: 0; |
57 | 68 | } |
58 | 69 | } |
59 | 70 |
|
60 | | - &--ribbon { |
61 | | - position: relative; |
62 | | - display: inline-block; |
63 | | - transform-origin: center center; |
64 | | - transform: translate(calc(50% - @badge-basic-height + 1rpx), calc(-50% + @badge-basic-height - 1rpx)) rotate(45deg); |
| 71 | + &__ribbon-left, |
| 72 | + &__triangle-left { |
| 73 | + &-outer { |
| 74 | + left: 0; |
| 75 | + } |
| 76 | + } |
| 77 | + |
| 78 | + &--bubble { |
| 79 | + border-radius: @border-bubble-border-radius; |
| 80 | + } |
| 81 | + |
| 82 | + &--ribbon, |
| 83 | + &--ribbon-right, |
| 84 | + &--ribbon-left, |
| 85 | + &--triangle-left, |
| 86 | + &--triangle-right { |
| 87 | + width: calc(@badge-basic-height * 2); |
| 88 | + height: calc(@badge-basic-height * 2); |
65 | 89 | border-radius: 0; |
66 | | - // padding: 0; |
| 90 | + padding: 0; |
| 91 | + position: absolute; |
| 92 | + top: 0; |
| 93 | + display: flex; |
| 94 | + align-items: center; |
| 95 | + justify-content: center; |
| 96 | + overflow: hidden; |
| 97 | + } |
67 | 98 |
|
68 | | - &::before, |
69 | | - &::after { |
70 | | - content: ''; |
71 | | - position: absolute; |
72 | | - width: 0; |
73 | | - height: 0; |
74 | | - bottom: 0; |
75 | | - border-bottom: @badge-basic-height solid @badge-color; |
76 | | - font-size: 0; |
77 | | - } |
| 99 | + &--ribbon, |
| 100 | + &--ribbon-right { |
| 101 | + background: linear-gradient(45deg, transparent 50%, @badge-color 50%, @badge-color 85%, transparent 85%); |
| 102 | + } |
78 | 103 |
|
79 | | - &::before { |
80 | | - left: calc(-1 * @badge-basic-height + 1rpx); |
81 | | - border-left: @badge-basic-height solid transparent; |
82 | | - } |
| 104 | + &--triangle-right { |
| 105 | + background: linear-gradient(45deg, transparent 50%, @badge-color 50%); |
| 106 | + } |
| 107 | + |
| 108 | + &--ribbon, |
| 109 | + &--ribbon-right, |
| 110 | + &--triangle-right { |
| 111 | + right: 0; |
83 | 112 |
|
84 | | - &::after { |
85 | | - right: calc(-1 * @badge-basic-height + 1rpx); |
86 | | - border-right: @badge-basic-height solid transparent; |
| 113 | + .@{prefix}-badge__count { |
| 114 | + transform: rotate(45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall, 32rpx) / 2 + 1rpx)); |
87 | 115 | } |
88 | 116 | } |
89 | 117 |
|
90 | | - &--bubble { |
91 | | - border-radius: @border-bubble-border-radius; |
| 118 | + &--ribbon-left { |
| 119 | + background: linear-gradient(-45deg, transparent 50%, @badge-color 50%, @badge-color 85%, transparent 85%); |
| 120 | + } |
| 121 | + |
| 122 | + &--triangle-left { |
| 123 | + background: linear-gradient(-45deg, transparent 50%, @badge-color 50%); |
| 124 | + } |
| 125 | + |
| 126 | + &--ribbon-left, |
| 127 | + &--triangle-left { |
| 128 | + left: 0; |
| 129 | + |
| 130 | + .@{prefix}-badge__count { |
| 131 | + transform: rotate(-45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall, 32rpx) / 2 + 1rpx)); |
| 132 | + } |
92 | 133 | } |
93 | 134 |
|
94 | 135 | // size |
|
103 | 144 | border-radius: calc(@badge-large-height / 2); |
104 | 145 | } |
105 | 146 |
|
106 | | - &__content:not(:empty) + .t-has-count { |
| 147 | + &--large&--ribbon, |
| 148 | + &--large&--ribbon-right, |
| 149 | + &--large&--ribbon-left, |
| 150 | + &--large&--triangle-right, |
| 151 | + &--large&--triangle-left { |
| 152 | + width: calc(@badge-large-height * 2); |
| 153 | + height: calc(@badge-large-height * 2); |
| 154 | + padding: 0; |
| 155 | + } |
| 156 | + |
| 157 | + &--large&--ribbon, |
| 158 | + &--large&--ribbon-right, |
| 159 | + &--large&--triangle-right { |
| 160 | + .@{prefix}-badge__count { |
| 161 | + transform: rotate(45deg) translateY(calc(-1 * var(--td-line-height-mark-small, 40rpx) / 2 + 3rpx)); |
| 162 | + } |
| 163 | + } |
| 164 | + |
| 165 | + &--large&--ribbon-left, |
| 166 | + &--large&--triangle-left { |
| 167 | + .@{prefix}-badge__count { |
| 168 | + transform: rotate(-45deg) translateY(calc(-1 * var(--td-line-height-mark-small, 40rpx) / 2 + 3rpx)); |
| 169 | + } |
| 170 | + } |
| 171 | + |
| 172 | + &__content:not(:empty) + &--bubble.@{prefix}-has-count, |
| 173 | + &__content:not(:empty) + &--circle.@{prefix}-has-count, |
| 174 | + &__content:not(:empty) + &--square.@{prefix}-has-count { |
107 | 175 | transform-origin: center center; |
108 | 176 | transform: translate(-50%, -50%); |
109 | 177 | position: absolute; |
110 | | - left: 100%; |
111 | 178 | top: 0; |
| 179 | + left: 100%; |
112 | 180 | } |
113 | 181 |
|
114 | 182 | &__content-text { |
115 | 183 | display: block; |
116 | 184 | font: @font-body-large; |
117 | 185 | color: @badge-content-text-color; |
118 | 186 | } |
| 187 | + |
| 188 | + &__count { |
| 189 | + &:empty { |
| 190 | + display: none; |
| 191 | + } |
| 192 | + } |
119 | 193 | } |
0 commit comments