diff --git a/packages/devui-vue/devui/checkbox/src/checkbox-button.scss b/packages/devui-vue/devui/checkbox/src/checkbox-button.scss index 382ffcd6d0..83bdeb3747 100644 --- a/packages/devui-vue/devui/checkbox/src/checkbox-button.scss +++ b/packages/devui-vue/devui/checkbox/src/checkbox-button.scss @@ -1,19 +1,27 @@ @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, ); $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, +); +$checkbox-label-height-map: ( + lg: $devui-size-lg, + md: $devui-size-md, + sm: $devui-size-sm, ); .#{$devui-prefix}-checkbox-button { - display: inline-block; + display: flex; + align-items: center; position: relative; &__input { @@ -39,10 +47,12 @@ $button-padding-map: ( line-height: 1; user-select: none; box-shadow: -1px 0 0 0 $devui-disabled-line; - @each $size in ('lg', 'md', 'sm', 'xs') { + @each $size in ('lg', 'md', 'sm') { &.#{$devui-prefix}-checkbox-button--#{$size} { font-size: map-get($font-size-map, #{$size}); padding: map-get($button-padding-map, #{$size}); + height: map-get($checkbox-label-height-map, #{$size}); + line-height: map-get($checkbox-label-height-map, #{$size}); } } } diff --git a/packages/devui-vue/devui/checkbox/src/checkbox-group.scss b/packages/devui-vue/devui/checkbox/src/checkbox-group.scss index b02345dba7..7cbe2622ee 100644 --- a/packages/devui-vue/devui/checkbox/src/checkbox-group.scss +++ b/packages/devui-vue/devui/checkbox/src/checkbox-group.scss @@ -1,23 +1,24 @@ @import '../../styles-var/devui-var.scss'; .#{$devui-prefix}-checkbox__group { - display: inline-block; -} - -.#{$devui-prefix}-checkbox--list-inline { - min-height: 28px; - line-height: 28px; - display: flex; + display: inline-flex; flex-wrap: wrap; justify-content: flex-start; - align-items: center; - margin: -8px 0 0 0; - - & div:not(:last-child) { - margin-right: 20px; - } + align-items: flex-start; & > * { margin-top: 8px; } + + &.is-row { + flex-direction: row; + + & div:not(:last-child) { + margin-right: 20px; + } + } + + &.is-column { + flex-direction: column; + } } diff --git a/packages/devui-vue/devui/checkbox/src/checkbox-group.tsx b/packages/devui-vue/devui/checkbox/src/checkbox-group.tsx index f8756447e2..a7c29db57b 100644 --- a/packages/devui-vue/devui/checkbox/src/checkbox-group.tsx +++ b/packages/devui-vue/devui/checkbox/src/checkbox-group.tsx @@ -41,9 +41,18 @@ export default defineComponent({ } }; + return ( -