Skip to content

Commit 05dab17

Browse files
authored
feat(radio): improve radio theme (#15680)
1 parent b3fa2a6 commit 05dab17

File tree

1 file changed

+54
-10
lines changed

1 file changed

+54
-10
lines changed

projects/igniteui-angular/src/lib/core/styles/components/radio/_radio-theme.scss

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
/// @param {Color} $hover-color [null] - The border and dot colors on hover.
2525
/// @param {Color} $fill-color-hover [null] - The checked dot color on hover.
2626
/// @param {Color} $fill-hover-border-color [null] - The checked border color on hover.
27+
/// @param {Color} $focus-border-color [null] - The focus border color.
2728
/// @param {Color} $focus-outline-color [null] - The focus outlined color.
2829
/// @param {Color} $focus-outline-color-filled [null] - The focus outline color when radio is filled.
2930
/// @param {Color} $error-color [null] - The label, border and dot color in invalid state.
@@ -46,6 +47,7 @@
4647
$empty-fill-color: null,
4748
$fill-color: null,
4849
$fill-hover-border-color: null,
50+
$focus-border-color: null,
4951
$focus-outline-color: null,
5052
$focus-outline-color-filled: null,
5153
$disabled-color: null,
@@ -67,7 +69,53 @@
6769
}
6870

6971
$theme: digest-schema($radio-schema);
70-
$meta: map.get($theme, '_meta');
72+
$variant: map.get($theme, '_meta', 'theme');
73+
74+
@if not($hover-color) and $empty-color {
75+
$hover-color: hsl(from var(--empty-color) h s calc(l * 0.9));
76+
}
77+
78+
@if not($fill-color-hover) and $fill-color {
79+
$fill-color-hover: hsl(from var(--fill-color) h s calc(l * 0.9));
80+
}
81+
82+
@if $variant != 'bootstrap' {
83+
@if not($fill-hover-border-color) and $fill-color-hover {
84+
$fill-hover-border-color: var(--fill-color-hover);
85+
}
86+
}
87+
88+
@if not($label-color-hover) and $label-color {
89+
$label-color-hover: hsl(from var(--label-color) h s calc(l * 0.9));
90+
}
91+
92+
@if not($error-color-hover) and $error-color {
93+
$error-color-hover: hsl(from var(--error-color) h s calc(l * 0.9));
94+
}
95+
96+
@if not($focus-outline-color-error) and $error-color {
97+
$focus-outline-color-error: hsla(from var(--error-color) h s l / .5);
98+
}
99+
100+
@if $variant == 'bootstrap' {
101+
@if not($focus-border-color) and $fill-color {
102+
$focus-border-color: var(--fill-color);
103+
}
104+
105+
@if not($focus-outline-color) and $fill-color {
106+
$focus-outline-color: hsla(from var(--fill-color) h s l / .5);
107+
}
108+
}
109+
110+
@if $variant == 'indigo' {
111+
@if not($focus-outline-color) and $empty-color {
112+
$focus-outline-color: hsla(from var(--empty-color) h s l / .5);
113+
}
114+
115+
@if not($focus-outline-color-filled) and $fill-color {
116+
$focus-outline-color-filled: hsla(from var(--fill-color) h s l / .5);
117+
}
118+
}
71119

72120
@return extend($theme, (
73121
name: $name,
@@ -82,16 +130,12 @@
82130
disabled-fill-color: $disabled-fill-color,
83131
hover-color: $hover-color,
84132
fill-color-hover: $fill-color-hover,
133+
focus-border-color: $focus-border-color,
85134
focus-outline-color: $focus-outline-color,
86135
focus-outline-color-filled: $focus-outline-color-filled,
87136
error-color: $error-color,
88137
error-color-hover: $error-color-hover,
89138
focus-outline-color-error: $focus-outline-color-error,
90-
theme: map.get($schema, '_meta', 'theme'),
91-
_meta: map.merge(if($meta, $meta, ()), (
92-
variant: map.get($schema, '_meta', 'theme'),
93-
theme-variant: map.get($schema, '_meta', 'variant')
94-
)),
95139
));
96140
}
97141

@@ -102,8 +146,8 @@
102146
@include css-vars($theme);
103147
@include scale-in-out($start-scale: .9);
104148

105-
$theme-variant: map.get($theme, '_meta', 'theme-variant');
106-
$variant: map.get($theme, '_meta', 'variant');
149+
$theme-variant: map.get($theme, '_meta', 'variant');
150+
$variant: map.get($theme, '_meta', 'theme');
107151
$material-theme: $variant == 'material';
108152
$bootstrap-theme: $variant == 'bootstrap';
109153
$not-bootstrap-theme: $variant != 'bootstrap';
@@ -462,7 +506,7 @@
462506
box-shadow: 0 0 0 rem(4px) var-get($theme, 'focus-outline-color');
463507

464508
&::after {
465-
border-color: color($color: 'primary', $variant: 200);
509+
border-color: var-get($theme, 'focus-border-color');
466510
}
467511
}
468512
}
@@ -478,7 +522,7 @@
478522
%igx-checkbox--focused-hovered {
479523
@if $variant == 'bootstrap' {
480524
%radio-composite:after {
481-
border-color: color($color: 'primary', $variant: 300);
525+
border-color: hsl(from var-get($theme, 'focus-border-color') h calc(s * 1.12) calc(l * 0.82));
482526
}
483527
}
484528
}

0 commit comments

Comments
 (0)