diff --git a/src/styles/button.scss b/src/styles/button.scss index 7ae74de3..dfc3a805 100644 --- a/src/styles/button.scss +++ b/src/styles/button.scss @@ -69,6 +69,18 @@ $s-color-button-tertiary-background-focused--dark: var(--s-color-base-background padding-top: 3px; padding-bottom: 3px; } + &--mini { + $mini-button-height: var(--s-size-mini); + $mini-button-font-size: var(--s-font-size-mini); + $mini-button-vertical-padding: calc(calc(#{$mini-button-height} - #{$mini-button-font-size}) / 2); + padding-top: $mini-button-vertical-padding; + padding-bottom: $mini-button-vertical-padding; + font-size: $mini-button-font-size; + line-height: 1; + i { + font-size: inherit !important; + } + } &.s-primary { background-color: var(--s-color-theme-accent); border-color: var(--s-color-theme-accent); diff --git a/src/styles/checkbox.scss b/src/styles/checkbox.scss index 67cab530..4d5ade9f 100644 --- a/src/styles/checkbox.scss +++ b/src/styles/checkbox.scss @@ -6,9 +6,7 @@ &-#{$suffix} { border-radius: 0; &.is-bordered { - border-radius: $border-radius; - } - .el-checkbox__inner { + // Only bordered checkbox container has border radius border-radius: $border-radius; } } @@ -61,17 +59,25 @@ padding: 9px 0 7px 0; } } - &.s-small { + &.s-small, + &.s-mini { + &, + &.is-bordered { + .el-checkbox__inner { + height: 14px; + width: 14px; + } + } @extend .s-small; .el-checkbox__label { font-size: var(--s-font-size-mini); } + } + &.s-small { &, &.is-bordered { padding: 5px 15px 5px 10px; .el-checkbox__inner { - height: 14px; - width: 14px; &::after { top: 1px; left: 4px; diff --git a/src/styles/neumorphism/radio.scss b/src/styles/neumorphism/radio.scss index 7923d8f2..3d174d90 100644 --- a/src/styles/neumorphism/radio.scss +++ b/src/styles/neumorphism/radio.scss @@ -1,17 +1,25 @@ -@mixin inner-size ($size: 'big', $value: 32px) { - &.s-#{$size} { +$radio-button-border-width: 1px; + +@mixin inner-size ($size-label: 'big', $size: var(--s-size-small)) { + $vertical-padding: calc(calc(var(--s-size-#{$size-label}) - #{$size} - #{$radio-button-border-width * 2}) / 2); + &.s-#{$size-label} { > .el-radio__input { .el-radio__inner { - width: $value; - height: $value; + width: $size; + height: $size; &::after { - width: $value - 10; - height: $value - 10; + $mark-size: calc(#{$size} - 10px); + width: $mark-size; + height: $mark-size; } } } } + &.is-bordered.s-#{$size-label} { + padding-top: $vertical-padding; + padding-bottom: $vertical-padding; + } } .s-radio.neumorphic { @@ -27,7 +35,7 @@ } } - @include inner-size('big', 32px); + @include inner-size; @include inner-size('medium', 28px); @include inner-size('small', 24px); @include inner-size('mini', 20px); diff --git a/src/styles/radio.scss b/src/styles/radio.scss index b9c13c32..e2491a25 100644 --- a/src/styles/radio.scss +++ b/src/styles/radio.scss @@ -1,6 +1,9 @@ $radio-button-class: ".el-radio-button"; $radio-button-border-width: 1px; $radio-button-border-color: var(--s-color-theme-accent); +$radio-button-font-size: var(--s-font-size-small); +$radio-button-line-height: var(--s-line-height-big); +$radio-small-label-font-size: var(--s-font-size-mini); @mixin radio-button-size( $modifier: "small", @@ -21,17 +24,27 @@ $radio-button-border-color: var(--s-color-theme-accent); } } +@mixin radio-button-vertical-padding( + $size: 'small', + $font-size: $radio-button-font-size, + $line-height: $radio-button-line-height +) { + $vertical-padding: calc(calc(var(--s-size-#{$size}) - #{$font-size} * #{$line-height} - #{$radio-button-border-width * 2}) / 2); + &.is-bordered { + padding-top: $vertical-padding; + padding-bottom: $vertical-padding; + } +} + .el-radio { color: var(--s-color-base-content-primary); &__label { - line-height: var(--s-line-height-big); + line-height: $radio-button-line-height; } &.s-big { @extend .s-big; line-height: $s-size-big; - &.is-bordered { - padding-top: 18px; - } + @include radio-button-vertical-padding('big'); > .el-radio__input .el-radio__inner { width: 20px; height: 20px; @@ -45,6 +58,7 @@ $radio-button-border-color: var(--s-color-theme-accent); &.s-medium { @extend .s-medium; line-height: $s-size-medium; + @include radio-button-vertical-padding('medium'); > .el-radio__input .el-radio__inner { width: 16px; height: 16px; @@ -55,14 +69,10 @@ $radio-button-border-color: var(--s-color-theme-accent); } } } - &.s-small { - @extend .s-small; - line-height: $s-size-small; - &.is-bordered { - padding-top: 9px; - } + &.s-small, + &.s-mini { > .el-radio__label { - font-size: var(--s-font-size-mini); + font-size: $radio-small-label-font-size; } > .el-radio__input .el-radio__inner { width: 14px; @@ -74,6 +84,15 @@ $radio-button-border-color: var(--s-color-theme-accent); } } } + &.s-small { + @extend .s-small; + line-height: $s-size-small; + @include radio-button-vertical-padding($font-size: $radio-small-label-font-size); + } + &.s-mini { + height: var(--s-size-mini); + @include radio-button-vertical-padding('mini'); + } &.is-bordered { border-color: var(--s-color-base-border-primary); line-height: 0;