Skip to content

Commit db91227

Browse files
authored
feat(checkbox): support right aligned position of checkbox variants
It was not supported to have any kind of checkbox positioned to the right of the label. This PR now introduces right aligned checkbox variants
1 parent 59d9b40 commit db91227

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed

src/definitions/modules/checkbox.less

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,17 @@
217217
color: @checkboxColor;
218218
transition: @checkboxTransition;
219219
}
220-
220+
& when (@variationCheckboxRightAligned) {
221+
.ui.right.aligned.checkbox label {
222+
padding-left: 0;
223+
padding-right: @labelDistance;
224+
&:after,
225+
&:before {
226+
right: 0;
227+
left: auto;
228+
}
229+
}
230+
}
221231
/*--------------
222232
Label
223233
---------------*/
@@ -317,6 +327,12 @@
317327
left: @toggleCenterOffset;
318328
}
319329
}
330+
& when (@variationCheckboxRightAligned) {
331+
.ui.right.aligned.indeterminate.toggle.checkbox input:not([type=radio]) ~ label:after {
332+
left: auto;
333+
right: @toggleCenterOffset;
334+
}
335+
}
320336
}
321337

322338
/*--------------
@@ -542,6 +558,22 @@
542558
.ui.slider.checkbox input:focus:checked ~ label:before {
543559
background-color: @sliderOnFocusLineColor !important;
544560
}
561+
562+
& when (@variationCheckboxRightAligned) {
563+
.ui.right.aligned.slider.checkbox label {
564+
padding-left: 0;
565+
padding-right: @sliderLabelDistance;
566+
}
567+
.ui.right.aligned.slider.checkbox label:after {
568+
left: auto;
569+
right: @sliderTravelDistance;
570+
transition: @sliderHandleTransitionRightAligned;
571+
}
572+
.ui.right.aligned.slider.checkbox input:checked ~ label:after {
573+
left: auto;
574+
right: 0;
575+
}
576+
}
545577
}
546578

547579
& when (@variationCheckboxToggle) {
@@ -643,6 +675,22 @@
643675
.ui.toggle.checkbox input:focus:checked ~ label:before {
644676
background-color: @toggleOnFocusLaneColor !important;
645677
}
678+
679+
& when (@variationCheckboxRightAligned) {
680+
.ui.right.aligned.toggle.checkbox label {
681+
padding-left: 0;
682+
padding-right: @toggleLabelDistance;
683+
}
684+
.ui.right.aligned.toggle.checkbox input ~ label:after {
685+
left: auto;
686+
right: @toggleOnOffset;
687+
transition: @toggleHandleTransitionRightAligned;
688+
}
689+
.ui.right.aligned.toggle.checkbox input:checked ~ label:after {
690+
left: auto;
691+
right: @toggleOffOffset;
692+
}
693+
}
646694
}
647695

648696
/*******************************

src/themes/default/globals/variation.variables

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,7 @@
379379
@variationCheckboxToggle: true;
380380
@variationCheckboxIndeterminate: true;
381381
@variationCheckboxFitted: true;
382+
@variationCheckboxRightAligned: true;
382383
@variationCheckboxSizes: @variationAllSizes;
383384

384385
/* Dimmer */

src/themes/default/modules/checkbox.variables

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116

117117
@sliderHandleOffset: (1rem - @sliderHandleSize) / 2;
118118
@sliderHandleTransition: left @sliderTransitionDuration @defaultEasing;
119+
@sliderHandleTransitionRightAligned: right @sliderTransitionDuration @defaultEasing;
119120

120121
@sliderWidth: @sliderLineWidth;
121122
@sliderHeight: (@sliderHandleSize + @sliderHandleOffset);
@@ -159,6 +160,10 @@
159160
background @sliderTransitionDuration @defaultEasing,
160161
left @sliderTransitionDuration @defaultEasing
161162
;
163+
@toggleHandleTransitionRightAligned:
164+
background @sliderTransitionDuration @defaultEasing,
165+
right @sliderTransitionDuration @defaultEasing
166+
;
162167

163168
@toggleLaneBackground: @transparentBlack;
164169
@toggleLaneHeight: @toggleHandleSize;

0 commit comments

Comments
 (0)