Skip to content

Commit 4334e50

Browse files
authored
fix: align radio-button on label baseline (#10469)
1 parent d7935c4 commit 4334e50

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

packages/field-base/src/styles/checkable-base-styles.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { css, unsafeCSS } from 'lit';
99
// postcss-lit-disable-next-line
1010
export const checkable = (part, propName = part) => css`
1111
:host {
12-
align-items: center;
12+
align-items: baseline;
1313
column-gap: var(--vaadin-${unsafeCSS(propName)}-gap, var(--vaadin-gap-s));
1414
grid-template-columns: auto 1fr;
1515
/*
@@ -103,6 +103,9 @@ export const checkable = (part, propName = part) => css`
103103
width: var(--vaadin-${unsafeCSS(propName)}-size, 1lh);
104104
position: relative;
105105
cursor: var(--_cursor);
106+
display: flex;
107+
align-items: center;
108+
justify-content: center;
106109
}
107110
108111
:host(:is([checked], [indeterminate])) {
@@ -135,14 +138,15 @@ export const checkable = (part, propName = part) => css`
135138
136139
/* Checked indicator (checkmark, dot) */
137140
[part='${unsafeCSS(part)}']::after {
138-
content: '';
139-
position: absolute;
141+
content: '\\2003' / '';
140142
background: currentColor;
141143
border-radius: inherit;
144+
display: flex;
145+
align-items: center;
142146
}
143147
144148
:host(:not([checked], [indeterminate])) [part='${unsafeCSS(part)}']::after {
145-
display: none;
149+
opacity: 0;
146150
}
147151
148152
@media (forced-colors: active) {

packages/radio-group/src/styles/vaadin-radio-button-base-styles.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ const radioButton = css`
1717
}
1818
1919
[part='radio']::after {
20-
top: 50%;
21-
left: 50%;
22-
translate: -50% -50%;
2320
width: var(--vaadin-radio-button-dot-size, var(--vaadin-radio-button-marker-size, 50%));
2421
height: var(--vaadin-radio-button-dot-size, var(--vaadin-radio-button-marker-size, 50%));
2522
border-radius: 50%;

packages/radio-group/test/visual/base/radio-button.test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ describe('radio-button', () => {
2929
await visualDiff(div, 'state-empty');
3030
});
3131

32+
it('multi-line', async () => {
33+
element.label = 'Long label that wraps into multiple lines';
34+
element.style.maxWidth = '150px';
35+
await visualDiff(div, 'state-multi-line');
36+
});
37+
3238
describe('disabled', () => {
3339
beforeEach(() => {
3440
element.disabled = true;
2.05 KB
Loading

0 commit comments

Comments
 (0)