diff --git a/packages/main/src/themes/RadioButton.css b/packages/main/src/themes/RadioButton.css
index 2cf1e9379006..c54f4d385386 100644
--- a/packages/main/src/themes/RadioButton.css
+++ b/packages/main/src/themes/RadioButton.css
@@ -6,12 +6,48 @@
}
:host {
- min-width: var(--_ui5_radio_button_min_width);
+ /* min-width: var(--_ui5_radio_button_min_width); */
max-width: 100%;
text-overflow: ellipsis;
overflow: hidden;
color: var(--_ui5_radio_button_color);
border-radius: var(--_ui5_radio_button_border_radius);
+ font-size: 1rem;
+ /* line-height: 12px; To Do - check if this can be fixed better. Issue - RB is 48px instead 44px height. This causes cutting */
+ box-sizing: border-box;
+ overflow: visible;
+ /* Vertical: (2.75em - 1.375em) / 2 = 0.6875em, Horizontal: 0.625em */
+ padding-block: var(--_ui5_radio_button_padding_block);
+ padding-inline-start: var(--_ui5_radio_button_padding_inline);
+
+ /* Enable font-size based scaling - all em values below are relative to font-size */
+ --_ui5_radio_button_inner_size: 2.75em;
+ --_ui5_radio_button_svg_size: 1.375em;
+ --_ui5_radio_button_height: 2.75em;
+ --_ui5_radio_button_padding_block: 0.6875em;
+ --_ui5_radio_button_padding_inline: 0.625em;
+ --_ui5_radio_button_padding_inline_with_label: 0.6875em;
+ --_ui5_radio_button_outer_ring_padding: 0 0.625em;
+ --_ui5_radio_button_outer_ring_padding_with_label: 0 0.6875em;
+ --_ui5_radio_button_label_offset: 0.125em;
+ --_ui5_radio_button_focus_dist: 0.375em;
+ --_ui5_radio_button_label_font_size: 0.875em;
+}
+
+/* Compact mode - override em values */
+@container style(--ui5_content_density: compact) {
+ :host {
+ /* Vertical: (2em - 1em) / 2 = 0.5em, Horizontal: 0.5em */
+ --_ui5_radio_button_inner_size: 2em;
+ --_ui5_radio_button_svg_size: 1em;
+ --_ui5_radio_button_height: 2em;
+ --_ui5_radio_button_padding_block: 0.5em;
+ --_ui5_radio_button_padding_inline: 0.5em;
+ --_ui5_radio_button_padding_inline_with_label: 0.5em;
+ --_ui5_radio_button_outer_ring_padding: 0 0.5em;
+ --_ui5_radio_button_outer_ring_padding_with_label: 0 0.5em;
+ --_ui5_radio_button_focus_dist: 0.375em;
+ }
}
:host(:not([disabled])) .ui5-radio-root {
@@ -47,7 +83,9 @@
content: "";
display: var(--_ui5_radio_button_focus_outline);
position: absolute;
- inset: var(--_ui5_radio_button_focus_dist);
+ /* Extend focus to cover :host padding: -padding + focus_dist */
+ inset-block: calc(-1 * var(--_ui5_radio_button_padding_block) + var(--_ui5_radio_button_focus_dist));
+ inset-inline: calc(-1 * var(--_ui5_radio_button_padding_inline) + var(--_ui5_radio_button_focus_dist));
pointer-events: none;
border: var(--_ui5_radio_button_border_width) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);
border-radius: var(--_ui5_radio_button_border_radius);
@@ -78,19 +116,20 @@
}
/* with label */
+:host([text]) {
+ padding-inline-start: var(--_ui5_radio_button_padding_inline_with_label);
+}
+
:host([text]) .ui5-radio-root {
padding-inline-end: var(--_ui5_radio_button_border_width);
}
:host([text][desktop]) .ui5-radio-root:focus::before,
:host([text]) .ui5-radio-root:focus-visible::before {
+ inset-inline-start: calc(-1 * var(--_ui5_radio_button_padding_inline_with_label) + var(--_ui5_radio_button_focus_dist));
inset-inline-end: 0px;
}
-:host([text]) .ui5-radio-inner {
- padding: var(--_ui5_radio_button_outer_ring_padding_with_label);
-}
-
/* readonly */
:host([checked][readonly]) .ui5-radio-svg-inner {
fill: var(--_ui5_radio_button_read_only_inner_ring_color);
@@ -190,15 +229,16 @@
/* Inner */
.ui5-radio-inner {
display: flex;
- align-items: center;
- padding: var(--_ui5_radio_button_outer_ring_padding);
+ align-items: start;
flex-shrink: 0;
- height: var(--_ui5_radio_button_inner_size);
- font-size: 1rem; /* override font size of the message dialog */
pointer-events: none;
vertical-align: top;
}
+:host([text]) .ui5-radio-inner {
+ padding-inline-end: 11px; /* To Do add a parameter for this */
+}
+
.ui5-radio-inner {
outline: none;
}
@@ -218,16 +258,12 @@
display: flex;
align-items: center;
padding-inline-end: var(--_ui5_radio_button_label_offset);
- padding-block: var(--_ui5_radio_button_label_side_padding);
vertical-align: top;
max-width: 100%;
pointer-events: none;
color: var(--_ui5_radio_button_label_color);
overflow-wrap: break-word;
-}
-
-:host([wrapping-type="None"][text]) .ui5-radio-root {
- height: var(--_ui5_radio_button_height);
+ font-size: var(--_ui5_radio_button_label_font_size);
}
:host([wrapping-type="None"][text]) [ui5-label].ui5-radio-label {
diff --git a/packages/main/src/themes/base/sizes-parameters.css b/packages/main/src/themes/base/sizes-parameters.css
index 839beba0dd2d..5a81788b7613 100644
--- a/packages/main/src/themes/base/sizes-parameters.css
+++ b/packages/main/src/themes/base/sizes-parameters.css
@@ -123,7 +123,7 @@
/* Radio Button */
--_ui5_radio_button_height: 2.75rem;
- --_ui5_radio_button_label_side_padding: .875rem;
+
--_ui5_radio_button_inner_size: 2.75rem;
--_ui5_radio_button_svg_size: 1.375rem;
@@ -322,7 +322,6 @@
/* Radio Button */
--_ui5_radio_button_height: 2rem;
- --_ui5_radio_button_label_side_padding: .5rem;
--_ui5_radio_button_inner_size: 2rem;
--_ui5_radio_button_svg_size: 1rem;
diff --git a/packages/main/test/pages/RadioButton.html b/packages/main/test/pages/RadioButton.html
index 11376127dcb4..992ce39f6f0e 100644
--- a/packages/main/test/pages/RadioButton.html
+++ b/packages/main/test/pages/RadioButton.html
@@ -172,6 +172,12 @@
+
+
+
+
+
+