Skip to content

Commit

Permalink
add buttonVariantVGrouped and buttonVariantHGrouped props to toggle g…
Browse files Browse the repository at this point in the history
…roup style

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
  • Loading branch information
Julien Veyssier committed Jun 20, 2022
1 parent 6732a91 commit 16d87a8
Showing 1 changed file with 37 additions and 7 deletions.
44 changes: 37 additions & 7 deletions src/components/CheckboxRadioSwitch/CheckboxRadioSwitch.vue
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ export default {
```vue
<template>
<div>
<CheckboxRadioSwitch :checked.sync="sharingPermission" value="r" name="sharing_permission_radio" type="radio" :button-variant="true">Default permission read</CheckboxRadioSwitch>
<CheckboxRadioSwitch :checked.sync="sharingPermission" value="rw" name="sharing_permission_radio" type="radio" :button-variant="true">Default permission read+write</CheckboxRadioSwitch>
<CheckboxRadioSwitch :checked.sync="sharingPermission" value="r" name="sharing_permission_radio" type="radio" :button-variant="true" :button-variant-v-grouped="true">Default permission read</CheckboxRadioSwitch>
<CheckboxRadioSwitch :checked.sync="sharingPermission" value="rw" name="sharing_permission_radio" type="radio" :button-variant="true" :button-variant-v-grouped="true">Default permission read+write</CheckboxRadioSwitch>
<br>
sharingPermission: {{ sharingPermission }}
</div>
Expand Down Expand Up @@ -155,7 +155,8 @@ export default {
'checkbox-radio-switch--disabled': disabled,
'checkbox-radio-switch--indeterminate': indeterminate,
'checkbox-radio-switch--button-variant': buttonVariant,
'checkbox-radio-switch--button-variant-grouped': buttonVariantGrouped,
'checkbox-radio-switch--button-variant-v-grouped': buttonVariantVGrouped,
'checkbox-radio-switch--button-variant-h-grouped': buttonVariantHGrouped,
}"
:style="cssVars"
class="checkbox-radio-switch">
Expand Down Expand Up @@ -242,9 +243,17 @@ export default {
},
/**
* If the elements are all direct successors
* If the elements are all direct successors and grouped horizontally
*/
buttonVariantGrouped: {
buttonVariantHGrouped: {
type: Boolean,
default: false,
},
/**
* If the elements are all direct successors and grouped vertically
*/
buttonVariantVGrouped: {
type: Boolean,
default: false,
},
Expand Down Expand Up @@ -509,11 +518,11 @@ $spacing: 4px;
margin: 0;
}
&--button-variant:not(&--button-variant-grouped) {
&--button-variant:not(&--button-variant-v-grouped):not(&--button-variant-h-grouped) {
border-radius: var(--border-radius-large);
}
&--button-variant-grouped {
&--button-variant-v-grouped {
&:first-of-type {
border-top-left-radius: var(--border-radius-large);
border-top-right-radius: var(--border-radius-large);
Expand All @@ -534,6 +543,27 @@ $spacing: 4px;
}
}
&--button-variant-h-grouped {
&:first-of-type {
border-top-left-radius: var(--border-radius-large);
border-bottom-left-radius: var(--border-radius-large);
}
&:last-of-type {
border-top-right-radius: var(--border-radius-large);
border-bottom-right-radius: var(--border-radius-large);
}
// avoid double borders between elements
& + &:not(&.checkbox-radio-switch--checked) {
border-left: 0;
}
& + &.checkbox-radio-switch--checked {
// as the selected element has all borders:
// small trick to cover the previous bottom border (only if there is one)
margin-left: -2px;
}
}
&--button-variant.checkbox-radio-switch {
border: 2px solid var(--color-border-dark);
// better than setting border-radius on labels (producing a small gap)
Expand Down

0 comments on commit 16d87a8

Please sign in to comment.