diff --git a/packages/devui-vue/devui/radio/src/radio-button.scss b/packages/devui-vue/devui/radio/src/radio-button.scss
index cc6a245bd3..36b3ba94cd 100644
--- a/packages/devui-vue/devui/radio/src/radio-button.scss
+++ b/packages/devui-vue/devui/radio/src/radio-button.scss
@@ -1,32 +1,42 @@
@import '../../styles-var/devui-var.scss';
+$devui-btn-sm-padding: var(--devui-btn-sm-padding, 0 16px);
+$devui-btn-padding: var(--devui-btn-padding, 0 20px);
+$devui-btn-lg-padding: var(--devui-btn-lg-padding, 0 24px);
+
$font-size-map: (
lg: $devui-font-size-lg,
- md: $devui-font-size-lg,
+ md: $devui-font-size-md,
sm: $devui-font-size-sm,
- xs: $devui-font-size-sm,
+);
+$radio-label-height-map: (
+ lg: $devui-size-lg,
+ md: $devui-size-md,
+ sm: $devui-size-sm,
);
$button-padding-map: (
- lg: 12px 20px,
- md: 10px 20px,
- sm: 9px 15px,
- xs: 7px 15px,
+ lg: $devui-btn-lg-padding,
+ md: $devui-btn-padding,
+ sm: $devui-btn-sm-padding,
);
.#{$devui-prefix}-radio-button {
- display: inline-block;
+ display: flex;
+ align-items: center;
position: relative;
- font-size: 14px;
+ padding: $devui-btn-padding;
+ height: $devui-size-md;
+ font-size: $devui-font-size-md;
color: $devui-text;
- padding: 10px 20px;
cursor: pointer;
border: 1px solid $devui-line;
border-left: none;
- line-height: 1;
user-select: none;
- @each $size in ('lg', 'md', 'sm', 'xs') {
+ @each $size in ('lg', 'md', 'sm') {
&.#{$devui-prefix}-radio-button--#{$size} {
font-size: map-get($font-size-map, #{$size});
padding: map-get($button-padding-map, #{$size});
+ height: map-get($radio-label-height-map, #{$size});
+ line-height: map-get($radio-label-height-map, #{$size});
}
}
diff --git a/packages/devui-vue/devui/radio/src/radio-types.ts b/packages/devui-vue/devui/radio/src/radio-types.ts
index ccde5ba0ab..7ab79f763b 100644
--- a/packages/devui-vue/devui/radio/src/radio-types.ts
+++ b/packages/devui-vue/devui/radio/src/radio-types.ts
@@ -1,6 +1,6 @@
import type { InjectionKey, PropType, Ref, ExtractPropTypes, ComputedRef } from 'vue';
export type valueTypes = string | number | boolean;
-export type sizeTypes = 'lg' | 'md' | 'sm' | 'xs';
+export type sizeTypes = 'lg' | 'md' | 'sm';
/** radio、radio-group 共用 props */
const radioCommonProps = {
diff --git a/packages/devui-vue/devui/radio/src/radio.scss b/packages/devui-vue/devui/radio/src/radio.scss
index 54a4ffc256..06e4b192f4 100644
--- a/packages/devui-vue/devui/radio/src/radio.scss
+++ b/packages/devui-vue/devui/radio/src/radio.scss
@@ -2,21 +2,18 @@
$font-size-map: (
lg: $devui-font-size-lg,
- md: $devui-font-size-lg,
+ md: $devui-font-size-md,
sm: $devui-font-size-sm,
- xs: $devui-font-size-sm,
);
$radio-width-map: (
- lg: 16px,
+ lg: 18px,
md: 16px,
sm: 14px,
- xs: 14px,
);
$radio-label-height-map: (
- lg: 40px,
- md: 36px,
- sm: 32px,
- xs: 28px,
+ lg: $devui-size-lg,
+ md: $devui-size-md,
+ sm: $devui-size-sm,
);
.#{$devui-prefix}-radio {
@@ -65,7 +62,8 @@ $radio-label-height-map: (
.#{$devui-prefix}-radio__material-inner {
opacity: 1;
transform: scale(1);
- transition: transform $devui-animation-duration-base $devui-animation-ease-in-out,
+ transition:
+ transform $devui-animation-duration-base $devui-animation-ease-in-out,
opacity $devui-animation-duration-base $devui-animation-ease-in-out;
&.disabled {
@@ -154,8 +152,11 @@ $radio-label-height-map: (
border-radius: $devui-border-radius;
padding: 0 15px 0 10px;
}
- @each $size in ('lg', 'md', 'sm', 'xs') {
+ @each $size in ('lg', 'md', 'sm') {
&.#{$devui-prefix}-radio--#{$size} {
+ display: flex;
+ align-items: center;
+
.#{$devui-prefix}-radio__label {
font-size: map-get($font-size-map, #{$size});
}
@@ -163,7 +164,6 @@ $radio-label-height-map: (
.#{$devui-prefix}-radio__material {
width: map-get($radio-width-map, #{$size});
height: map-get($radio-width-map, #{$size});
- line-height: map-get($radio-width-map, #{$size});
& > svg {
width: map-get($radio-width-map, #{$size});
@@ -173,7 +173,6 @@ $radio-label-height-map: (
&.#{$devui-prefix}-radio--bordered {
height: map-get($radio-label-height-map, #{$size});
- line-height: map-get($radio-label-height-map, #{$size});
}
}
}
diff --git a/packages/devui-vue/docs/components/radio/index.md b/packages/devui-vue/docs/components/radio/index.md
index 97beebc3ce..dbe11d2c09 100644
--- a/packages/devui-vue/docs/components/radio/index.md
+++ b/packages/devui-vue/docs/components/radio/index.md
@@ -166,7 +166,7 @@ export default defineComponent({
```vue
- The Radio value is: {{ item }}
+ The Radio value is: {{ item }}
@@ -226,10 +226,11 @@ export default defineComponent({
```vue
- The Radio value is: {{ item }}
+ The Radio value is: {{ item }}
- The Radio value is: {{ item.name }}
+ The Radio value is: {{ item.name }}
+
@@ -263,14 +264,17 @@ export default defineComponent({
```vue
+ Small
+
+ Middle
+
+ Large
-
- {{ item }}
-