diff --git a/packages/components/radio/__screenshots__/01-dark.png b/packages/components/radio/__screenshots__/01-dark.png index 5909a41c66..fa1ecf0b5a 100644 Binary files a/packages/components/radio/__screenshots__/01-dark.png and b/packages/components/radio/__screenshots__/01-dark.png differ diff --git a/packages/components/radio/__screenshots__/01-light.png b/packages/components/radio/__screenshots__/01-light.png index b35db75da3..4c53cc6880 100644 Binary files a/packages/components/radio/__screenshots__/01-light.png and b/packages/components/radio/__screenshots__/01-light.png differ diff --git a/packages/components/radio/e2e.ts b/packages/components/radio/e2e.ts index 8ae09e2c03..0ac5b883b3 100644 --- a/packages/components/radio/e2e.ts +++ b/packages/components/radio/e2e.ts @@ -78,6 +78,16 @@ export class E2eRadioStateAndStyle { { size: 'big', labelPosition: 'after', hovered: true }, { size: 'normal', labelPosition: 'after', color: ThemePalette.Error, hovered: true } ], + [ + { size: 'normal', labelPosition: 'before' }, + { size: 'big', labelPosition: 'before' }, + { size: 'normal', labelPosition: 'before', color: ThemePalette.Error } + ], + [ + { size: 'normal', labelPosition: 'before', hovered: true }, + { size: 'big', labelPosition: 'before', hovered: true }, + { size: 'normal', labelPosition: 'before', color: ThemePalette.Error, hovered: true } + ], [ { size: 'normal', hint: true, labelPosition: 'after' }, { size: 'big', hint: true, labelPosition: 'after' }, @@ -92,6 +102,11 @@ export class E2eRadioStateAndStyle { { size: 'normal', hint: true, labelPosition: 'after', disabled: true }, { size: 'big', hint: true, labelPosition: 'after', disabled: true }, { size: 'normal', hint: true, labelPosition: 'after', color: ThemePalette.Error, disabled: true } + ], + [ + { size: 'normal', hint: true, labelPosition: 'before', disabled: true }, + { size: 'big', hint: true, labelPosition: 'before', disabled: true }, + { size: 'normal', hint: true, labelPosition: 'before', color: ThemePalette.Error, disabled: true } ] ]; protected readonly kbqComponentColors = KbqComponentColors; diff --git a/packages/components/radio/radio.component.ts b/packages/components/radio/radio.component.ts index a2bf2dbbc5..6bfa08079b 100644 --- a/packages/components/radio/radio.component.ts +++ b/packages/components/radio/radio.component.ts @@ -411,11 +411,7 @@ export class KbqRadioButton extends KbqColorDirective implements OnInit, AfterVi /** Whether this radio is required. */ private _required: boolean; - /** - * Whether the label should appear after or before the radio button. Defaults to 'after' - * @TODO: doesn't affect anything. Should be removed or implemented (#DS-4571) - * @docs-private - */ + /** Whether the label should appear after or before the radio button. Defaults to 'after' */ // TODO: Skipped for migration because: // Accessor inputs cannot be migrated as they are too complex. @Input() diff --git a/packages/components/radio/radio.scss b/packages/components/radio/radio.scss index 7fcb4a863d..042d7ffe99 100644 --- a/packages/components/radio/radio.scss +++ b/packages/components/radio/radio.scss @@ -92,9 +92,18 @@ margin-top: var(--kbq-radio-size-normal-vertical-content-padding); } - [dir='rtl'] & { - padding-right: var(--kbq-radio-size-normal-horizontal-content-padding); + &.kbq-radio-label-before { padding-left: 0; + padding-right: kbq-sum-series-css-variables( + [radio-size-normal-outer-size, + radio-size-normal-horizontal-content-padding, + calc(var(--kbq-radio-size-normal-outer-circle-border-width) * 2)] + ); + + .kbq-radio-button__outer-circle { + left: unset; + right: 0; + } } } @@ -128,8 +137,13 @@ margin-top: var(--kbq-radio-size-big-vertical-content-padding); } - [dir='rtl'] & { - padding-right: var(--kbq-radio-size-big-horizontal-content-padding); + &.kbq-radio-label-before { + padding-left: 0; + padding-right: kbq-sum-series-css-variables( + [radio-size-big-outer-size, + radio-size-big-horizontal-content-padding, + calc(var(--kbq-radio-size-big-outer-circle-border-width) * 2)] + ); } } }