Skip to content

Commit 044ee51

Browse files
asynclizcopybara-github
authored andcommitted
refactor(radio): reduce CSS size
Reduces the size by removing private (`--_*`) custom properties. These are not needed since the component does not share styles across variants. Size before: 4568b / 1034b gzip Size after: 3245b (-29%) / 907b gzip (-12%) PiperOrigin-RevId: 600928780
1 parent a2721c3 commit 044ee51

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

radio/internal/_radio.scss

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,39 +32,38 @@ $_md-sys-motion: tokens.md-sys-motion-values();
3232

3333
@mixin styles() {
3434
$tokens: tokens.md-comp-radio-values();
35+
@each $token, $value in $tokens {
36+
$tokens: map.set($tokens, $token, var(--md-radio-#{$token}, #{$value}));
37+
}
3538

3639
@layer {
3740
:host {
38-
@each $token, $value in $tokens {
39-
--_#{$token}: var(--md-radio-#{$token}, #{$value});
40-
}
41-
42-
@include ripple.theme(
43-
(
44-
hover-color: var(--_hover-state-layer-color),
45-
hover-opacity: var(--_hover-state-layer-opacity),
46-
pressed-color: var(--_pressed-state-layer-color),
47-
pressed-opacity: var(--_pressed-state-layer-opacity),
48-
)
49-
);
50-
5141
display: inline-flex;
52-
height: var(--_icon-size);
42+
height: map.get($tokens, 'icon-size');
5343
outline: none;
5444
position: relative;
5545
vertical-align: top; // Fix extra space when placed inside display: block
56-
width: var(--_icon-size);
46+
width: map.get($tokens, 'icon-size');
5747
// Remove highlight color for mobile Safari
5848
-webkit-tap-highlight-color: transparent;
5949
cursor: pointer;
50+
51+
@include ripple.theme(
52+
(
53+
hover-color: map.get($tokens, 'hover-state-layer-color'),
54+
hover-opacity: map.get($tokens, 'hover-state-layer-opacity'),
55+
pressed-color: map.get($tokens, 'pressed-state-layer-color'),
56+
pressed-opacity: map.get($tokens, 'pressed-state-layer-opacity'),
57+
)
58+
);
6059
}
6160

6261
:host([disabled]) {
6362
cursor: default;
6463
}
6564

6665
:host([touch-target='wrapper']) {
67-
margin: max(0px, ((48px - var(--_icon-size)) / 2));
66+
margin: max(0px, ((48px - map.get($tokens, 'icon-size')) / 2));
6867
}
6968

7069
.container {
@@ -84,10 +83,11 @@ $_md-sys-motion: tokens.md-sys-motion-values();
8483
.checked {
8584
@include ripple.theme(
8685
(
87-
hover-color: var(--_selected-hover-state-layer-color),
88-
hover-opacity: var(--_selected-hover-state-layer-opacity),
89-
pressed-color: var(--_selected-pressed-state-layer-color),
90-
pressed-opacity: var(--_selected-pressed-state-layer-opacity),
86+
hover-color: map.get($tokens, 'selected-hover-state-layer-color'),
87+
hover-opacity: map.get($tokens, 'selected-hover-state-layer-opacity'),
88+
pressed-color: map.get($tokens, 'selected-pressed-state-layer-color'),
89+
pressed-opacity:
90+
map.get($tokens, 'selected-pressed-state-layer-opacity'),
9191
)
9292
);
9393
}
@@ -109,13 +109,13 @@ $_md-sys-motion: tokens.md-sys-motion-values();
109109

110110
md-ripple {
111111
border-radius: 50%;
112-
height: var(--_state-layer-size);
112+
height: map.get($tokens, 'state-layer-size');
113113
inset: unset;
114-
width: var(--_state-layer-size);
114+
width: map.get($tokens, 'state-layer-size');
115115
}
116116

117117
.icon {
118-
fill: var(--_icon-color);
118+
fill: map.get($tokens, 'icon-color');
119119
inset: 0;
120120
position: absolute;
121121
}
@@ -132,7 +132,7 @@ $_md-sys-motion: tokens.md-sys-motion-values();
132132
}
133133

134134
.checked .icon {
135-
fill: var(--_selected-icon-color);
135+
fill: map.get($tokens, 'selected-icon-color');
136136
}
137137

138138
.checked .inner.circle {
@@ -157,37 +157,37 @@ $_md-sys-motion: tokens.md-sys-motion-values();
157157
}
158158

159159
:host(:hover) .icon {
160-
fill: var(--_hover-icon-color);
160+
fill: map.get($tokens, 'hover-icon-color');
161161
}
162162

163163
:host(:focus-within) .icon {
164-
fill: var(--_focus-icon-color);
164+
fill: map.get($tokens, 'focus-icon-color');
165165
}
166166

167167
:host(:active) .icon {
168-
fill: var(--_pressed-icon-color);
168+
fill: map.get($tokens, 'pressed-icon-color');
169169
}
170170

171171
:host([disabled]) .icon {
172-
fill: var(--_disabled-unselected-icon-color);
173-
opacity: var(--_disabled-unselected-icon-opacity);
172+
fill: map.get($tokens, 'disabled-unselected-icon-color');
173+
opacity: map.get($tokens, 'disabled-unselected-icon-opacity');
174174
}
175175

176176
:host(:hover) .checked .icon {
177-
fill: var(--_selected-hover-icon-color);
177+
fill: map.get($tokens, 'selected-hover-icon-color');
178178
}
179179

180180
:host(:focus-within) .checked .icon {
181-
fill: var(--_selected-focus-icon-color);
181+
fill: map.get($tokens, 'selected-focus-icon-color');
182182
}
183183

184184
:host(:active) .checked .icon {
185-
fill: var(--_selected-pressed-icon-color);
185+
fill: map.get($tokens, 'selected-pressed-icon-color');
186186
}
187187

188188
:host([disabled]) .checked .icon {
189-
fill: var(--_disabled-selected-icon-color);
190-
opacity: var(--_disabled-selected-icon-opacity);
189+
fill: map.get($tokens, 'disabled-selected-icon-color');
190+
opacity: map.get($tokens, 'disabled-selected-icon-opacity');
191191
}
192192
}
193193

0 commit comments

Comments
 (0)