style: radio
parent
c9188ec276
commit
788ee2f64a
|
@ -16,7 +16,6 @@ export const radioProps = {
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
id: PropTypes.string,
|
id: PropTypes.string,
|
||||||
autofocus: PropTypes.looseBool,
|
autofocus: PropTypes.looseBool,
|
||||||
type: PropTypes.string.def('radio'),
|
|
||||||
onChange: PropTypes.func,
|
onChange: PropTypes.func,
|
||||||
onFocus: PropTypes.func,
|
onFocus: PropTypes.func,
|
||||||
onBlur: PropTypes.func,
|
onBlur: PropTypes.func,
|
||||||
|
@ -92,7 +91,7 @@ export default defineComponent({
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<label class={wrapperClassString} onClick={onClick}>
|
<label class={wrapperClassString} onClick={onClick}>
|
||||||
<VcCheckbox {...rProps} ref={vcCheckbox} />
|
<VcCheckbox {...rProps} type="radio" ref={vcCheckbox} />
|
||||||
{slots.default && <span>{slots.default()}</span>}
|
{slots.default && <span>{slots.default()}</span>}
|
||||||
</label>
|
</label>
|
||||||
);
|
);
|
||||||
|
|
|
@ -28,12 +28,14 @@
|
||||||
.reset-component();
|
.reset-component();
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: baseline;
|
||||||
margin-right: @radio-wrapper-margin-right;
|
margin-right: @radio-wrapper-margin-right;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
&-disabled {
|
&-disabled {
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 0;
|
width: 0;
|
||||||
|
@ -83,15 +85,17 @@
|
||||||
&-inner {
|
&-inner {
|
||||||
&::after {
|
&::after {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: ((@radio-size - @radio-dot-size) / 2) - @radio-border-width;
|
top: 50%;
|
||||||
left: ((@radio-size - @radio-dot-size) / 2) - @radio-border-width;
|
left: 50%;
|
||||||
display: block;
|
display: block;
|
||||||
width: @radio-dot-size;
|
width: @radio-size;
|
||||||
height: @radio-dot-size;
|
height: @radio-size;
|
||||||
|
margin-top: -(@radio-size / 2);
|
||||||
|
margin-left: -(@radio-size / 2);
|
||||||
background-color: @radio-dot-color;
|
background-color: @radio-dot-color;
|
||||||
border-top: 0;
|
border-top: 0;
|
||||||
border-left: 0;
|
border-left: 0;
|
||||||
border-radius: @radio-dot-size;
|
border-radius: @radio-size;
|
||||||
transform: scale(0);
|
transform: scale(0);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: all @radio-duration @ease-in-out-circ;
|
transition: all @radio-duration @ease-in-out-circ;
|
||||||
|
@ -128,8 +132,9 @@
|
||||||
.@{radio-prefix-cls}-checked {
|
.@{radio-prefix-cls}-checked {
|
||||||
.@{radio-inner-prefix-cls} {
|
.@{radio-inner-prefix-cls} {
|
||||||
border-color: @radio-dot-color;
|
border-color: @radio-dot-color;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
transform: scale(1);
|
transform: scale((unit(@radio-dot-size) / unit(@radio-size)));
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: all @radio-duration @ease-in-out-circ;
|
transition: all @radio-duration @ease-in-out-circ;
|
||||||
}
|
}
|
||||||
|
@ -143,6 +148,7 @@
|
||||||
background-color: @input-disabled-bg;
|
background-color: @input-disabled-bg;
|
||||||
border-color: @border-color-base !important;
|
border-color: @border-color-base !important;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
background-color: @radio-dot-disabled-color;
|
background-color: @radio-dot-disabled-color;
|
||||||
}
|
}
|
||||||
|
@ -270,6 +276,7 @@ span.@{radio-prefix-cls} + * {
|
||||||
&:hover {
|
&:hover {
|
||||||
color: @radio-button-hover-color;
|
color: @radio-button-hover-color;
|
||||||
border-color: @radio-button-hover-color;
|
border-color: @radio-button-hover-color;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
background-color: @radio-button-hover-color;
|
background-color: @radio-button-hover-color;
|
||||||
}
|
}
|
||||||
|
@ -278,6 +285,7 @@ span.@{radio-prefix-cls} + * {
|
||||||
&:active {
|
&:active {
|
||||||
color: @radio-button-active-color;
|
color: @radio-button-active-color;
|
||||||
border-color: @radio-button-active-color;
|
border-color: @radio-button-active-color;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
background-color: @radio-button-active-color;
|
background-color: @radio-button-active-color;
|
||||||
}
|
}
|
||||||
|
@ -292,16 +300,19 @@ span.@{radio-prefix-cls} + * {
|
||||||
color: @radio-solid-checked-color;
|
color: @radio-solid-checked-color;
|
||||||
background: @radio-dot-color;
|
background: @radio-dot-color;
|
||||||
border-color: @radio-dot-color;
|
border-color: @radio-dot-color;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: @radio-solid-checked-color;
|
color: @radio-solid-checked-color;
|
||||||
background: @radio-button-hover-color;
|
background: @radio-button-hover-color;
|
||||||
border-color: @radio-button-hover-color;
|
border-color: @radio-button-hover-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
color: @radio-solid-checked-color;
|
color: @radio-solid-checked-color;
|
||||||
background: @radio-button-active-color;
|
background: @radio-button-active-color;
|
||||||
border-color: @radio-button-active-color;
|
border-color: @radio-button-active-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus-within {
|
&:focus-within {
|
||||||
box-shadow: @radio-button-focus-shadow;
|
box-shadow: @radio-button-focus-shadow;
|
||||||
}
|
}
|
||||||
|
@ -319,6 +330,7 @@ span.@{radio-prefix-cls} + * {
|
||||||
background-color: @input-disabled-bg;
|
background-color: @input-disabled-bg;
|
||||||
border-color: @border-color-base;
|
border-color: @border-color-base;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
border-left-color: @border-color-base;
|
border-left-color: @border-color-base;
|
||||||
}
|
}
|
||||||
|
@ -337,6 +349,7 @@ span.@{radio-prefix-cls} + * {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform: scale(1.6);
|
transform: scale(1.6);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
|
|
@ -166,6 +166,7 @@
|
||||||
// Disabled states
|
// Disabled states
|
||||||
@disabled-color: fade(#000, 25%);
|
@disabled-color: fade(#000, 25%);
|
||||||
@disabled-bg: @background-color-base;
|
@disabled-bg: @background-color-base;
|
||||||
|
@disabled-active-bg: tint(@black, 90%);
|
||||||
@disabled-color-dark: fade(#fff, 35%);
|
@disabled-color-dark: fade(#fff, 35%);
|
||||||
|
|
||||||
// Shadow
|
// Shadow
|
||||||
|
@ -270,7 +271,7 @@
|
||||||
|
|
||||||
// Radio
|
// Radio
|
||||||
@radio-size: 16px;
|
@radio-size: 16px;
|
||||||
@radio-top: 0px;
|
@radio-top: 0.2em;
|
||||||
@radio-border-width: 1px;
|
@radio-border-width: 1px;
|
||||||
@radio-dot-size: @radio-size - 8px;
|
@radio-dot-size: @radio-size - 8px;
|
||||||
@radio-dot-color: @primary-color;
|
@radio-dot-color: @primary-color;
|
||||||
|
@ -283,7 +284,7 @@
|
||||||
@radio-button-color: @btn-default-color;
|
@radio-button-color: @btn-default-color;
|
||||||
@radio-button-hover-color: @primary-5;
|
@radio-button-hover-color: @primary-5;
|
||||||
@radio-button-active-color: @primary-7;
|
@radio-button-active-color: @primary-7;
|
||||||
@radio-disabled-button-checked-bg: tint(@black, 90%);
|
@radio-disabled-button-checked-bg: @disabled-active-bg;
|
||||||
@radio-disabled-button-checked-color: @disabled-color;
|
@radio-disabled-button-checked-color: @disabled-color;
|
||||||
@radio-wrapper-margin-right: 8px;
|
@radio-wrapper-margin-right: 8px;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue