1 |
|
2 | %RadioAndCheckboxSpan {
|
3 | position: relative;
|
4 | user-select: none;
|
5 | cursor: pointer;
|
6 | }
|
7 | %RadioAndCheckboxIcon {
|
8 | display: none;
|
9 | position: absolute;
|
10 | height: 1em;
|
11 | width: 1em;
|
12 | }
|
13 |
|
14 | %XERadio {
|
15 | @extend %RadioAndCheckboxSpan;
|
16 | .vxe-radio--icon {
|
17 | @extend %RadioAndCheckboxIcon;
|
18 | font-size: $vxe-radio-font-size-default;
|
19 | &:before {
|
20 | content: "";
|
21 | position: absolute;
|
22 | height: 1em;
|
23 | width: 1em;
|
24 | top: 0;
|
25 | left: 0;
|
26 | border: $vxe-radio-border-width solid $vxe-input-border-color;
|
27 | background-color: $vxe-radio-icon-background-color;
|
28 | border-radius: 50%;
|
29 | }
|
30 | }
|
31 | .vxe-radio--unchecked-icon {
|
32 | display: inline-block;
|
33 | }
|
34 | .vxe-radio--checked-icon {
|
35 | &:after {
|
36 | content: "";
|
37 | position: absolute;
|
38 | height: 0.25em;
|
39 | width: 0.25em;
|
40 | top: 0.4em;
|
41 | left: 0.4em;
|
42 | border-radius: 50%;
|
43 | background-color: $vxe-radio-checked-icon-background-color;
|
44 | }
|
45 | }
|
46 | &.is--checked {
|
47 | color: $vxe-primary-color;
|
48 | .vxe-radio--unchecked-icon {
|
49 | display: none;
|
50 | }
|
51 | .vxe-radio--checked-icon {
|
52 | display: inline-block;
|
53 | &:before {
|
54 | border-color: $vxe-primary-color;
|
55 | background-color: $vxe-primary-color;
|
56 | }
|
57 | }
|
58 | }
|
59 | &:not(.is--disabled) {
|
60 | &:hover {
|
61 | .vxe-radio--icon {
|
62 | &:before {
|
63 | border-color: $vxe-primary-color;
|
64 | }
|
65 | }
|
66 | }
|
67 | }
|
68 | &.is--disabled {
|
69 | cursor: not-allowed;
|
70 | color: $vxe-disabled-color;
|
71 | .vxe-radio--icon {
|
72 | &:before {
|
73 | border-color: $vxe-input-disabled-color;
|
74 | background-color: $vxe-input-disabled-background-color;
|
75 | }
|
76 | &:after {
|
77 | background-color: $vxe-primary-disabled-color;
|
78 | }
|
79 | }
|
80 | }
|
81 | }
|
82 |
|
83 | %XECheckbox {
|
84 | @extend %RadioAndCheckboxSpan;
|
85 | .vxe-checkbox--icon {
|
86 | @extend %RadioAndCheckboxIcon;
|
87 | font-size: $vxe-checkbox-font-size-default;
|
88 | &:before {
|
89 | content: "";
|
90 | position: absolute;
|
91 | height: 1em;
|
92 | width: 1em;
|
93 | top: 0;
|
94 | left: 0;
|
95 | background-color: $vxe-checkbox-icon-background-color;
|
96 | border-radius: $vxe-checkbox-border-radius;
|
97 | border: $vxe-checkbox-border-width solid $vxe-input-border-color;
|
98 | }
|
99 | }
|
100 | .vxe-checkbox--unchecked-icon {
|
101 | display: inline-block;
|
102 | }
|
103 | .vxe-checkbox--checked-icon {
|
104 | &:after {
|
105 | content: "";
|
106 | position: absolute;
|
107 | height: $vxe-checkbox-checked-height;
|
108 | width: $vxe-checkbox-checked-width;
|
109 | top: 50%;
|
110 | left: 50%;
|
111 | border: $vxe-checkbox-border-width solid $vxe-checkbox-checked-icon-border-color;
|
112 | border-left: 0;
|
113 | border-top: 0;
|
114 | transform: translate(-50%, -50%) rotate(45deg);
|
115 | }
|
116 | }
|
117 | .vxe-checkbox--indeterminate-icon {
|
118 | &:after {
|
119 | content: "";
|
120 | position: absolute;
|
121 | top: 50%;
|
122 | left: 50%;
|
123 | height: $vxe-checkbox-indeterminate-height;
|
124 | width: $vxe-checkbox-indeterminate-width;
|
125 | background-color: $vxe-checkbox-indeterminate-icon-background-color;
|
126 | transform: translate(-50%, -50%);
|
127 | }
|
128 | }
|
129 | &.is--checked,
|
130 | &.is--indeterminate {
|
131 | color: $vxe-primary-color;
|
132 | .vxe-checkbox--unchecked-icon {
|
133 | display: none;
|
134 | }
|
135 | .vxe-checkbox--icon {
|
136 | &:before {
|
137 | border-color: $vxe-primary-color;
|
138 | background-color: $vxe-primary-color;
|
139 | }
|
140 | }
|
141 | }
|
142 | &.is--checked {
|
143 | .vxe-checkbox--checked-icon {
|
144 | display: inline-block;
|
145 | }
|
146 | }
|
147 | &.is--indeterminate {
|
148 | .vxe-checkbox--indeterminate-icon {
|
149 | display: inline-block;
|
150 | }
|
151 | }
|
152 | &:not(.is--disabled) {
|
153 | &:hover {
|
154 | .vxe-checkbox--icon {
|
155 | &:before {
|
156 | border-color: $vxe-primary-color;
|
157 | }
|
158 | }
|
159 | }
|
160 | }
|
161 | &.is--disabled {
|
162 | cursor: not-allowed;
|
163 | color: $vxe-disabled-color;
|
164 | .vxe-checkbox--icon {
|
165 | &:before {
|
166 | border-color: $vxe-input-disabled-color;
|
167 | background-color: $vxe-input-disabled-background-color;
|
168 | }
|
169 | &:after {
|
170 | border-color: $vxe-primary-disabled-color;
|
171 | }
|
172 | }
|
173 | }
|
174 | }
|