Skip to content

Commit 23cdfb5

Browse files
committed
chore(ui): optimize style of checkbox and radio
1 parent 9b0b06a commit 23cdfb5

4 files changed

Lines changed: 69 additions & 53 deletions

File tree

packages/ui/src/components/checkbox/Checkbox.tsx

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -69,30 +69,32 @@ export const DCheckbox: {
6969
'is-disabled': disabled,
7070
})}
7171
>
72-
<div className={`${dPrefix}checkbox__state-container`}>
73-
<DBaseInput dFormControl={dFormControl} dLabelFor>
74-
{({ render: renderBaseInput }) => {
75-
const input = renderBaseInput(
76-
<input
77-
ref={dRef?.input}
78-
className={`${dPrefix}checkbox__input`}
79-
type="checkbox"
80-
disabled={disabled}
81-
aria-checked={dIndeterminate ? 'mixed' : checked}
82-
onChange={() => {
83-
changeChecked(!checked);
84-
}}
85-
/>
86-
);
72+
<div className={`${dPrefix}checkbox__state-container-wrapper`}>
73+
<div className={`${dPrefix}checkbox__state-container`}>
74+
<DBaseInput dFormControl={dFormControl} dLabelFor>
75+
{({ render: renderBaseInput }) => {
76+
const input = renderBaseInput(
77+
<input
78+
ref={dRef?.input}
79+
className={`${dPrefix}checkbox__input`}
80+
type="checkbox"
81+
disabled={disabled}
82+
aria-checked={dIndeterminate ? 'mixed' : checked}
83+
onChange={() => {
84+
changeChecked(!checked);
85+
}}
86+
/>
87+
);
8788

88-
return isUndefined(dInputRender) ? input : dInputRender(input);
89-
}}
90-
</DBaseInput>
91-
{dIndeterminate ? (
92-
<div className={`${dPrefix}checkbox__indeterminate`}></div>
93-
) : (
94-
checked && <div className={`${dPrefix}checkbox__tick`}></div>
95-
)}
89+
return isUndefined(dInputRender) ? input : dInputRender(input);
90+
}}
91+
</DBaseInput>
92+
{dIndeterminate ? (
93+
<div className={`${dPrefix}checkbox__indeterminate`}></div>
94+
) : (
95+
checked && <div className={`${dPrefix}checkbox__tick`}></div>
96+
)}
97+
</div>
9698
</div>
9799
{checkNodeExist(children) && <div className={`${dPrefix}checkbox__label`}>{children}</div>}
98100
</label>

packages/ui/src/components/radio/Radio.tsx

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -96,32 +96,34 @@ export const DRadio: {
9696
}
9797
}}
9898
>
99-
<div className={`${dPrefix}radio__input-wrapper`}>
100-
<DFocusVisible onFocusVisibleChange={setFocusVisible}>
101-
{({ render: renderFocusVisible }) => (
102-
<DBaseInput dFormControl={dFormControl} dLabelFor>
103-
{({ render: renderBaseInput }) => {
104-
const input = renderFocusVisible(
105-
renderBaseInput(
106-
<input
107-
ref={dRef?.input}
108-
className={`${dPrefix}radio__input`}
109-
type="radio"
110-
checked={checked}
111-
disabled={disabled}
112-
aria-checked={checked}
113-
onChange={() => {
114-
changeChecked(true);
115-
}}
116-
/>
117-
)
118-
);
119-
120-
return isUndefined(dInputRender) ? input : dInputRender(input);
121-
}}
122-
</DBaseInput>
123-
)}
124-
</DFocusVisible>
99+
<div className={`${dPrefix}radio__input-wrapper-wrapper`}>
100+
<div className={`${dPrefix}radio__input-wrapper`}>
101+
<DFocusVisible onFocusVisibleChange={setFocusVisible}>
102+
{({ render: renderFocusVisible }) => (
103+
<DBaseInput dFormControl={dFormControl} dLabelFor>
104+
{({ render: renderBaseInput }) => {
105+
const input = renderFocusVisible(
106+
renderBaseInput(
107+
<input
108+
ref={dRef?.input}
109+
className={`${dPrefix}radio__input`}
110+
type="radio"
111+
checked={checked}
112+
disabled={disabled}
113+
aria-checked={checked}
114+
onChange={() => {
115+
changeChecked(true);
116+
}}
117+
/>
118+
)
119+
);
120+
121+
return isUndefined(dInputRender) ? input : dInputRender(input);
122+
}}
123+
</DBaseInput>
124+
)}
125+
</DFocusVisible>
126+
</div>
125127
</div>
126128
{checkNodeExist(children) && <div className={`${dPrefix}radio__label`}>{children}</div>}
127129
{waveNode}

packages/ui/src/styles/components/checkbox.scss

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
position: relative;
2121
display: inline-flex;
22-
align-items: center;
22+
line-height: 1.25;
2323

2424
&:hover {
2525
@include e(input) {
@@ -96,9 +96,15 @@
9696
}
9797
}
9898

99+
@include e(state-container-wrapper) {
100+
display: inline-flex;
101+
flex-shrink: 0;
102+
align-items: center;
103+
height: 1.25em;
104+
}
105+
99106
@include e(state-container) {
100107
position: relative;
101-
flex-shrink: 0;
102108
width: 16px;
103109
height: 16px;
104110
cursor: pointer;

packages/ui/src/styles/components/radio.scss

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
@include b(radio) {
55
position: relative;
66
display: inline-flex;
7-
align-items: center;
7+
line-height: 1.25;
88

99
&:hover {
1010
@include e(input) {
@@ -114,9 +114,15 @@
114114
}
115115
}
116116

117+
@include e(input-wrapper-wrapper) {
118+
display: inline-flex;
119+
flex-shrink: 0;
120+
align-items: center;
121+
height: 1.25em;
122+
}
123+
117124
@include e(input-wrapper) {
118125
position: relative;
119-
flex-shrink: 0;
120126
width: 16px;
121127
height: 16px;
122128
margin-right: 8px;

0 commit comments

Comments
 (0)