|
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 { |
| 71 | + &__ribbon-left, |
| 72 | + &__triangle-left { |
| 73 | + &-outer { |
| 74 | + left: 0; |
| 75 | + } |
| 76 | + } |
| 77 | + |
| 78 | + &--ribbon, |
| 79 | + &--ribbon-right, |
| 80 | + &--ribbon-left { |
61 | 81 | position: relative; |
62 | 82 | display: inline-block; |
63 | 83 | transform-origin: center center; |
64 | | - transform: translate(calc(50% - @badge-basic-height + 1rpx), calc(-50% + @badge-basic-height - 1rpx)) rotate(45deg); |
65 | 84 | border-radius: 0; |
66 | | - // padding: 0; |
67 | 85 |
|
68 | 86 | &::before, |
69 | 87 | &::after { |
|
87 | 105 | } |
88 | 106 | } |
89 | 107 |
|
| 108 | + &--ribbon, |
| 109 | + &--ribbon-right { |
| 110 | + transform: translate(calc(50% - @badge-basic-height + 1rpx), calc(-50% + @badge-basic-height - 1rpx)) rotate(45deg); |
| 111 | + } |
| 112 | + |
| 113 | + &--ribbon-left { |
| 114 | + transform: translate(calc(-50% + @badge-basic-height - 1rpx), calc(-50% + @badge-basic-height - 1rpx)) |
| 115 | + rotate(-45deg); |
| 116 | + } |
| 117 | + |
90 | 118 | &--bubble { |
91 | 119 | border-radius: @border-bubble-border-radius; |
92 | 120 | } |
93 | 121 |
|
| 122 | + &--triangle-left, |
| 123 | + &--triangle-right { |
| 124 | + width: calc(@badge-basic-height * 2); |
| 125 | + height: calc(@badge-basic-height * 2); |
| 126 | + padding: 0; |
| 127 | + position: absolute; |
| 128 | + top: 0; |
| 129 | + display: flex; |
| 130 | + align-items: center; |
| 131 | + justify-content: center; |
| 132 | + overflow: hidden; |
| 133 | + } |
| 134 | + |
| 135 | + &--triangle-right { |
| 136 | + background: linear-gradient(45deg, transparent 50%, @badge-color 50%); |
| 137 | + right: 0; |
| 138 | + |
| 139 | + .@{prefix}-badge__count { |
| 140 | + transform: rotate(45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall, 32rpx) / 2)); |
| 141 | + } |
| 142 | + } |
| 143 | + |
| 144 | + &--triangle-left { |
| 145 | + background: linear-gradient(-45deg, transparent 50%, @badge-color 50%); |
| 146 | + left: 0; |
| 147 | + |
| 148 | + .@{prefix}-badge__count { |
| 149 | + transform: rotate(-45deg) translateY(calc(-1 * var(--td-line-height-mark-extraSmall, 32rpx) / 2)); |
| 150 | + } |
| 151 | + } |
| 152 | + |
94 | 153 | // size |
95 | 154 | &--large { |
96 | 155 | font: @badge-large-font; |
|
103 | 162 | border-radius: calc(@badge-large-height / 2); |
104 | 163 | } |
105 | 164 |
|
106 | | - &__content:not(:empty) + .t-has-count { |
| 165 | + &--large&--triangle-right, |
| 166 | + &--large&--triangle-left { |
| 167 | + width: calc(@badge-large-height * 2); |
| 168 | + height: calc(@badge-large-height * 2); |
| 169 | + } |
| 170 | + |
| 171 | + &__content:not(:empty) + &--ribbon.@{prefix}-has-count, |
| 172 | + &__content:not(:empty) + &--ribbon-right.@{prefix}-has-count, |
| 173 | + &__content:not(:empty) + &--ribbon-left.@{prefix}-has-count, |
| 174 | + &__content:not(:empty) + &--bubble.@{prefix}-has-count, |
| 175 | + &__content:not(:empty) + &--circle.@{prefix}-has-count, |
| 176 | + &__content:not(:empty) + &--square.@{prefix}-has-count { |
107 | 177 | transform-origin: center center; |
108 | 178 | transform: translate(-50%, -50%); |
109 | 179 | position: absolute; |
110 | | - left: 100%; |
111 | 180 | top: 0; |
112 | 181 | } |
113 | 182 |
|
| 183 | + &__content:not(:empty) + &--ribbon.@{prefix}-has-count, |
| 184 | + &__content:not(:empty) + &--ribbon-right.@{prefix}-has-count, |
| 185 | + &__content:not(:empty) + &--bubble.@{prefix}-has-count, |
| 186 | + &__content:not(:empty) + &--circle.@{prefix}-has-count, |
| 187 | + &__content:not(:empty) + &--square.@{prefix}-has-count { |
| 188 | + left: 100%; |
| 189 | + } |
| 190 | + |
| 191 | + &__content:not(:empty) + &--ribbon-left.@{prefix}-has-count { |
| 192 | + right: 100%; |
| 193 | + } |
| 194 | + |
114 | 195 | &__content-text { |
115 | 196 | display: block; |
116 | 197 | font: @font-body-large; |
117 | 198 | color: @badge-content-text-color; |
118 | 199 | } |
| 200 | + |
| 201 | + &__count { |
| 202 | + display: inline-block; |
| 203 | + font: @font-mark-extraSmall; |
| 204 | + } |
119 | 205 | } |
0 commit comments