codecheck
170 строк · 3.9 Кб
1// core
2.p-radiobutton {
3position: relative;
4display: inline-flex;
5user-select: none;
6vertical-align: bottom;
7}
8
9.p-radiobutton-input {
10cursor: pointer;
11}
12
13.p-radiobutton-box {
14display: flex;
15justify-content: center;
16align-items: center;
17}
18
19.p-radiobutton-icon {
20-webkit-backface-visibility: hidden;
21backface-visibility: hidden;
22transform: translateZ(0) scale(.1);
23border-radius: 50%;
24visibility: hidden;
25}
26
27.p-radiobutton.p-highlight .p-radiobutton-icon {
28transform: translateZ(0) scale(1.0, 1.0);
29visibility: visible;
30}
31
32// theme
33.p-radiobutton {
34width: $radiobuttonWidth;
35height: $radiobuttonHeight;
36
37.p-radiobutton-input {
38appearance: none;
39position: absolute;
40top: 0;
41left: 0;
42width: 100%;
43height: 100%;
44padding: 0;
45margin: 0;
46opacity: 0;
47z-index: 1;
48outline: 0 none;
49border: $radiobuttonBorder;
50border-radius: 50%;
51}
52
53.p-radiobutton-box {
54border: $radiobuttonBorder;
55background: $inputBg;
56width: $radiobuttonWidth;
57height: $radiobuttonHeight;
58color: $textColor;
59border-radius: 50%;
60transition: $formElementTransition;
61outline-color: transparent;
62
63.p-radiobutton-icon {
64width: $radiobuttonIconSize;
65height: $radiobuttonIconSize;
66transition-duration: $transitionDuration;
67background-color: $radiobuttonIconActiveColor;
68}
69}
70
71&.p-highlight {
72.p-radiobutton-box {
73border-color: $radiobuttonActiveBorderColor;
74background: $radiobuttonActiveBg;
75}
76}
77
78&:not(.p-disabled) {
79&:has(.p-radiobutton-input:hover) {
80.p-radiobutton-box {
81border-color: $inputHoverBorderColor;
82}
83
84&.p-highlight {
85.p-radiobutton-box {
86border-color: $radiobuttonActiveHoverBorderColor;
87background: $radiobuttonActiveHoverBg;
88
89.p-radiobutton-icon {
90background-color: $radiobuttonIconActiveHoverColor;
91}
92}
93}
94}
95
96&:has(.p-radiobutton-input:focus-visible) {
97.p-radiobutton-box {
98@include focused-input();
99}
100}
101}
102
103&.p-invalid > .p-radiobutton-box {
104@include invalid-input();
105}
106
107&.p-variant-filled {
108.p-radiobutton-box {
109background-color: $inputFilledBg;
110}
111
112&.p-highlight {
113.p-radiobutton-box {
114background: $radiobuttonActiveBg;
115}
116}
117
118&:not(.p-disabled) {
119&:has(.p-radiobutton-input:hover) {
120.p-radiobutton-box {
121background-color: $inputFilledHoverBg;
122}
123
124&.p-highlight {
125.p-radiobutton-box {
126background: $radiobuttonActiveHoverBg;
127}
128}
129}
130}
131}
132}
133
134.p-input-filled {
135.p-radiobutton {
136.p-radiobutton-box {
137background-color: $inputFilledBg;
138}
139
140&.p-highlight {
141.p-radiobutton-box {
142background: $radiobuttonActiveBg;
143}
144}
145
146&:not(.p-disabled) {
147&:has(.p-radiobutton-input:hover) {
148.p-radiobutton-box {
149background-color: $inputFilledHoverBg;
150}
151
152&.p-highlight {
153.p-radiobutton-box {
154background: $radiobuttonActiveHoverBg;
155}
156}
157}
158}
159}
160}
161
162@if ($highlightBg == $radiobuttonActiveBg) {
163.p-highlight {
164.p-radiobutton {
165.p-radiobutton-box {
166border-color: $radiobuttonIconActiveColor;
167}
168}
169}
170}
171