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 @@ -226,10 +226,11 @@ export default defineComponent({ ```vue @@ -263,14 +264,17 @@ export default defineComponent({ ```vue