Skip to content

Commit f6bd59b

Browse files
committed
Migrate Radio style to PostCSS
1 parent 47c2621 commit f6bd59b

File tree

5 files changed

+114
-106
lines changed

5 files changed

+114
-106
lines changed

components/radio/_config.scss

Lines changed: 0 additions & 9 deletions
This file was deleted.

components/radio/config.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
:root {
2+
--radio-field-margin-bottom: calc(1.5 * var(--unit));
3+
--radio-button-size: calc(1.6 * var(--unit));
4+
--radio-inner-margin: calc(var(--radio-button-size) / 4);
5+
--radio-inner-color: var(--color-primary);
6+
--radio-focus-color: color(var(--color-black) a(10%));
7+
--radio-checked-focus-color: color(var(--color-primary) a(26%));
8+
--radio-text-color: var(--color-black);
9+
--radio-disabled-color: color(var(--color-black) a(26%));
10+
--radio-text-font-size: calc(1.4 * var(--unit));
11+
}

components/radio/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import themedRippleFactory from '../ripple';
44
import radioFactory from './Radio.js';
55
import { radioButtonFactory } from './RadioButton.js';
66
import { radioGroupFactory } from './RadioGroup.js';
7-
import theme from './theme.scss';
7+
import theme from './theme.css';
88

99
const ThemedRadio = radioFactory(themedRippleFactory({ centered: true, spread: 2.6}));
1010
const ThemedRadioButton = themr(RADIO, theme)(radioButtonFactory(ThemedRadio));

components/radio/theme.css

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
@import '../colors.css';
2+
@import '../variables.css';
3+
@import './config.css';
4+
5+
.radio {
6+
border: calc(0.2 * var(--unit)) solid var(--radio-text-color);
7+
border-radius: 50%;
8+
cursor: pointer;
9+
display: inline-block;
10+
height: var(--radio-button-size);
11+
position: relative;
12+
vertical-align: top;
13+
width: var(--radio-button-size);
14+
15+
&::before {
16+
background-color: var(--radio-inner-color);
17+
border-radius: 50%;
18+
content: '';
19+
height: calc(var(--radio-button-size) - var(--radio-inner-margin) * 2);
20+
left: calc(var(--radio-inner-margin) - 0.2 * var(--unit));
21+
position: absolute;
22+
top: calc(var(--radio-inner-margin) - 0.2 * var(--unit));
23+
transform: scale(0);
24+
transition: transform;
25+
transition-duration: 0.2s;
26+
transition-timing-function: var(--animation-curve-default);
27+
width: calc(var(--radio-button-size) - var(--radio-inner-margin) * 2);
28+
}
29+
30+
& .ripple {
31+
background-color: var(--radio-inner-color);
32+
opacity: 0.3;
33+
transition-duration: 650ms;
34+
}
35+
}
36+
37+
.radioChecked {
38+
border: calc(0.2 * var(--unit)) solid var(--radio-inner-color);
39+
composes: radio;
40+
41+
&::before {
42+
transform: scale(1);
43+
}
44+
}
45+
46+
.field {
47+
display: block;
48+
height: var(--radio-button-size);
49+
margin-bottom: var(--radio-field-margin-bottom);
50+
position: relative;
51+
white-space: nowrap;
52+
}
53+
54+
.text {
55+
color: var(--radio-text-color);
56+
display: inline-block;
57+
font-size: var(--radio-text-font-size);
58+
line-height: var(--radio-button-size);
59+
padding-left: var(--unit);
60+
vertical-align: top;
61+
white-space: nowrap;
62+
}
63+
64+
.input {
65+
appearance: none;
66+
border: 0;
67+
height: 0;
68+
margin: 0;
69+
opacity: 0;
70+
padding: 0;
71+
position: absolute;
72+
width: 0;
73+
74+
&:focus ~ .radio {
75+
box-shadow: 0 0 0 var(--unit) var(--radio-focus-color);
76+
}
77+
&:focus ~ .radioChecked {
78+
box-shadow: 0 0 0 var(--unit) var(--radio-checked-focus-color);
79+
}
80+
}
81+
82+
.disabled {
83+
composes: field;
84+
85+
& .text {
86+
color: var(--radio-disabled-color);
87+
}
88+
89+
& .radio {
90+
border-color: var(--radio-disabled-color);
91+
cursor: auto;
92+
}
93+
94+
& .radioChecked {
95+
border-color: var(--radio-disabled-color);
96+
cursor: auto;
97+
98+
&::before {
99+
background-color: var(--radio-disabled-color);
100+
}
101+
}
102+
}

components/radio/theme.scss

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)