Skip to content

Commit ea13f10

Browse files
authored
refactor: enhanced clickable area on the inline-end (#839)
1 parent 1809e09 commit ea13f10

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

source/_patterns/01-elements/_form-elements.scss

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,18 @@
134134
padding: to-rem($pxValue: 6) to-rem($pxValue: 10);
135135
}
136136
}
137+
138+
// enhance the clickable area for checkbox and radio elements
139+
%form-element-enhanced-clickable-area {
140+
&:has(+ label) {
141+
&::after {
142+
content: "";
143+
width: calc(
144+
var(--db-form-element-dimensions) + #{to-rem($pxValue: 4)}
145+
);
146+
height: var(--db-form-element-dimensions);
147+
transform: translateX(#{to-rem($pxValue: 4)});
148+
position: absolute;
149+
}
150+
}
151+
}

source/_patterns/01-elements/checkbox/checkbox.scss

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
@import "../form-elements";
66

77
.elm-checkbox {
8+
--db-form-element-dimensions: var(
9+
--db-checkbox-dimensions,
10+
#{to-rem($pxValue: 24)}
11+
);
12+
13+
@extend %form-element-enhanced-clickable-area;
14+
815
@include icon("\00A0", 24, "outline", $partial: $partial);
916
align-content: center;
1017

@@ -15,9 +22,9 @@
1522
color: $checkbox---color;
1623

1724
display: inline-flex;
18-
height: to-rem($pxValue: 24);
25+
height: var(--db-form-element-dimensions);
1926
justify-content: center;
20-
width: to-rem($pxValue: 24);
27+
width: var(--db-form-element-dimensions);
2128

2229
&[type="checkbox"] {
2330
vertical-align: top;
@@ -67,6 +74,6 @@
6774
& + label {
6875
@extend %form-label;
6976

70-
margin-left: $db-spacing-xs;
77+
padding-inline-start: $db-spacing-xs;
7178
}
7279
}

source/_patterns/01-elements/radio/radio.scss

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55
@import "../form-elements";
66

77
.elm-radio {
8+
--db-form-element-dimensions: var(
9+
--db-radio-dimensions,
10+
#{to-em($pxValue: 20)}
11+
);
12+
13+
@extend %form-element-enhanced-clickable-area;
14+
815
appearance: none;
916

1017
background-color: rgba(255, 255, 255, 0.1);
@@ -15,11 +22,11 @@
1522
display: inline-block;
1623

1724
font-size: to-rem($pxValue: 16);
18-
height: to-em($pxValue: 20);
25+
height: var(--db-form-element-dimensions);
1926

2027
transition: border-width 0.5s ease;
2128

22-
width: to-em($pxValue: 20);
29+
width: var(--db-form-element-dimensions);
2330

2431
&[type="radio"] {
2532
vertical-align: sub;
@@ -56,7 +63,7 @@
5663
& + label {
5764
@extend %form-label;
5865

59-
margin-left: $db-spacing-xs;
66+
padding-inline-start: $db-spacing-xs;
6067
}
6168

6269
&:disabled {

0 commit comments

Comments
 (0)