Commit a646fc36fe18e876109f0c6932623b8a617f6b84

Authored by 梁灏
1 parent 2e14b458

optimize box-shadow

use two box-shadow when focus, and a :after to make focus style looks better
Showing 1 changed file with 46 additions and 7 deletions   Show diff stats
src/styles/components/radio.less
@@ -178,34 +178,45 @@ span.@{radio-prefix-cls} + * { @@ -178,34 +178,45 @@ span.@{radio-prefix-cls} + * {
178 height: @btn-circle-size; 178 height: @btn-circle-size;
179 line-height: @btn-circle-size - 2px; 179 line-height: @btn-circle-size - 2px;
180 margin: 0; 180 margin: 0;
181 - padding: 0 16px; 181 + padding: 0 16px - 1px;
182 font-size: @font-size-small; 182 font-size: @font-size-small;
183 color: @btn-default-color; 183 color: @btn-default-color;
184 transition: all @transition-time ease-in-out; 184 transition: all @transition-time ease-in-out;
185 cursor: pointer; 185 cursor: pointer;
186 border: 1px solid @border-color-base; 186 border: 1px solid @border-color-base;
187 - //border-left: 0; 187 + border-left: 0;
188 background: #fff; 188 background: #fff;
  189 + position: relative;
189 190
190 > span { 191 > span {
191 margin-left: 0; 192 margin-left: 0;
192 } 193 }
193 194
194 - &:before { 195 + &:before, &:after {
195 content: ''; 196 content: '';
  197 + display: block;
196 position: absolute; 198 position: absolute;
197 width: 1px; 199 width: 1px;
198 height: 100%; 200 height: 100%;
199 left: -1px; 201 left: -1px;
  202 + top: 0;
200 background: @border-color-base; 203 background: @border-color-base;
201 - visibility: hidden; 204 + //visibility: hidden;
202 transition: all @transition-time ease-in-out; 205 transition: all @transition-time ease-in-out;
203 } 206 }
204 207
  208 + &:after{
  209 + height: @btn-circle-size + 4px;
  210 + left: -1px;
  211 + top: -3px;
  212 + background: fade(@primary-color, 20%);
  213 + opacity: 0;
  214 + }
  215 +
205 &:first-child { 216 &:first-child {
206 border-radius: @btn-border-radius 0 0 @btn-border-radius; 217 border-radius: @btn-border-radius 0 0 @btn-border-radius;
207 border-left: 1px solid @border-color-base; 218 border-left: 1px solid @border-color-base;
208 - &:before { 219 + &:before, &:after {
209 display: none; 220 display: none;
210 } 221 }
211 } 222 }
@@ -237,11 +248,31 @@ span.@{radio-prefix-cls} + * { @@ -237,11 +248,31 @@ span.@{radio-prefix-cls} + * {
237 background: #fff; 248 background: #fff;
238 border-color: @primary-color; 249 border-color: @primary-color;
239 color: @primary-color; 250 color: @primary-color;
240 - //box-shadow: -1px 0 0 0 @primary-color; 251 + box-shadow: -1px 0 0 0 @primary-color;
  252 + z-index: 1;
  253 +
  254 + &:before{
  255 + background: @primary-color;
  256 + opacity: 0.1;
  257 + }
  258 +
  259 + &.@{radio-prefix-cls}-focus{
  260 + box-shadow: -1px 0 0 0 @primary-color, 0 0 0 2px fade(@primary-color, 20%);
  261 + transition: all @transition-time ease-in-out;
  262 + &:after{
  263 + left: -3px;
  264 + top: -3px;
  265 + opacity: 1;
  266 + background: fade(@primary-color, 20%);
  267 + }
  268 + &:first-child{
  269 + box-shadow: 0 0 0 2px fade(@primary-color, 20%);
  270 + }
  271 + }
241 272
242 &:first-child { 273 &:first-child {
243 border-color: @primary-color; 274 border-color: @primary-color;
244 - //box-shadow: none!important; 275 + box-shadow: none;
245 } 276 }
246 277
247 &:hover { 278 &:hover {
@@ -287,6 +318,9 @@ span.@{radio-prefix-cls} + * { @@ -287,6 +318,9 @@ span.@{radio-prefix-cls} + * {
287 height: @btn-circle-size-large; 318 height: @btn-circle-size-large;
288 line-height: @btn-circle-size-large - 2px; 319 line-height: @btn-circle-size-large - 2px;
289 font-size: @font-size-base; 320 font-size: @font-size-base;
  321 + &:after{
  322 + height: @btn-circle-size-large + 4px;
  323 + }
290 } 324 }
291 325
292 .@{radio-group-button-prefix-cls}.@{radio-group-prefix-cls}-small .@{radio-prefix-cls}-wrapper{ 326 .@{radio-group-button-prefix-cls}.@{radio-group-prefix-cls}-small .@{radio-prefix-cls}-wrapper{
@@ -294,6 +328,11 @@ span.@{radio-prefix-cls} + * { @@ -294,6 +328,11 @@ span.@{radio-prefix-cls} + * {
294 line-height: @btn-circle-size-small - 2px; 328 line-height: @btn-circle-size-small - 2px;
295 padding: 0 12px; 329 padding: 0 12px;
296 font-size: @font-size-small; 330 font-size: @font-size-small;
  331 +
  332 + &:after{
  333 + height: @btn-circle-size-small + 4px;
  334 + }
  335 +
297 &:first-child { 336 &:first-child {
298 border-radius: @btn-border-radius-small 0 0 @btn-border-radius-small; 337 border-radius: @btn-border-radius-small 0 0 @btn-border-radius-small;
299 } 338 }