@3dsource/source-ui-native 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -19
- package/fesm2022/3dsource-source-ui-native.mjs +205 -136
- package/fesm2022/3dsource-source-ui-native.mjs.map +1 -1
- package/index.d.ts +80 -13
- package/package.json +2 -2
- package/styles/base.scss +3 -4
- package/styles/elements/_src-button.scss +391 -124
- package/styles/elements/_src-checkbox.scss +21 -7
- package/styles/elements/_src-form.scss +4 -0
- package/styles/elements/_src-icon-button.scss +361 -0
- package/styles/elements/_src-input.scss +144 -32
- package/styles/elements/_src-label.scss +16 -12
- package/styles/elements/_src-list.scss +4 -4
- package/styles/elements/_src-modal.scss +4 -4
- package/styles/elements/_src-popover.scss +5 -4
- package/styles/elements/_src-radio.scss +38 -21
- package/styles/elements/_src-select.scss +151 -26
- package/styles/elements/_src-textarea.scss +140 -25
- package/styles/elements/_src-toggle.scss +36 -10
- package/styles/elements/elements.scss +1 -0
- package/styles/mixins/button.scss +93 -0
- package/styles/source.ui.native.scss +2 -4
- package/styles/typography.scss +17 -12
- package/styles/variables/_form-aliases.scss +19 -13
- package/styles/variables/color/dark.scss +143 -0
- package/styles/variables/color/light.scss +143 -0
- package/styles/variables/index.scss +29 -6
- package/styles/variables/layout/_lg.scss +85 -0
- package/styles/variables/layout/_md.scss +85 -0
- package/styles/variables/layout/_sm.scss +85 -0
- package/styles/variables/layout/_xl.scss +85 -0
- package/styles/variables/primitives/primitives.scss +147 -0
- package/styles/variables/typeface/web.scss +35 -0
- package/styles/variables/ui/_lg.scss +35 -0
- package/styles/variables/ui/_md.scss +35 -0
- package/styles/variables/ui/_sm.scss +35 -0
- package/styles/variables/ui/_xl.scss +35 -0
- package/styles/variables-legacy/index.scss +6 -0
- /package/styles/{variables → variables-legacy}/_borders.scss +0 -0
- /package/styles/{variables → variables-legacy}/_colors-aliases.scss +0 -0
- /package/styles/{variables → variables-legacy}/_colors.scss +0 -0
- /package/styles/{variables → variables-legacy}/_shadows.scss +0 -0
- /package/styles/{variables → variables-legacy}/_typography.scss +0 -0
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
--srcRadioSize: 20px;
|
|
5
5
|
--srcRadioBgColor: var(--src-color-bg-default);
|
|
6
|
-
--srcRadioBorderColor: var(--src-
|
|
6
|
+
--srcRadioBorderColor: var(--src-border-input-basic, #d1d5db);
|
|
7
7
|
--srcRadioBorderWidth: 2px;
|
|
8
|
-
--srcRadioFocusRing: var(--
|
|
8
|
+
--srcRadioFocusRing: 0 0 0 var(--src-shadow-focused, 4px)
|
|
9
|
+
var(--src-shadow-accent-light, rgba(1, 123, 255, 0.16));
|
|
9
10
|
display: flex;
|
|
10
11
|
flex-direction: column;
|
|
11
12
|
gap: var(--srcRadioGroupGap);
|
|
@@ -22,28 +23,44 @@
|
|
|
22
23
|
align-items: center;
|
|
23
24
|
gap: 4px;
|
|
24
25
|
cursor: pointer;
|
|
25
|
-
}
|
|
26
|
-
input[type='radio'] {
|
|
27
|
-
position: relative;
|
|
28
|
-
appearance: none;
|
|
29
|
-
width: var(--srcRadioSize);
|
|
30
|
-
height: var(--srcRadioSize);
|
|
31
|
-
border-radius: 50%;
|
|
32
|
-
background-color: #fff;
|
|
33
|
-
border: var(--srcRadioBorderWidth) solid var(--srcRadioBorderColor);
|
|
34
|
-
cursor: pointer;
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
input[type='radio'] {
|
|
28
|
+
position: relative;
|
|
29
|
+
appearance: none;
|
|
30
|
+
width: var(--srcRadioSize);
|
|
31
|
+
height: var(--srcRadioSize);
|
|
32
|
+
border-radius: 50%;
|
|
33
|
+
background-color: #fff;
|
|
34
|
+
border: var(--srcRadioBorderWidth) solid var(--srcRadioBorderColor);
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
|
|
37
|
+
&:hover {
|
|
38
|
+
--srcRadioBorderColor: var(--src-border-input-hover, #9ca3af);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:checked {
|
|
42
|
+
--srcRadioBorderColor: var(--src-ui-accent-default, #017bff);
|
|
43
|
+
box-shadow: inset 0 0 0 3px var(--srcRadioBorderColor);
|
|
44
|
+
|
|
45
|
+
&:hover {
|
|
46
|
+
--srcRadioBorderColor: var(--src-ui-accent-default-hover, #016fe6);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
39
49
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
&[disabled] {
|
|
51
|
+
--srcRadioBorderColor: var(
|
|
52
|
+
--src-ui-accent-disabled,
|
|
53
|
+
rgba(148, 163, 184, 0.24)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
43
56
|
}
|
|
44
57
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
.src-radio__label {
|
|
59
|
+
padding-left: var(--src-gap-lg, var(--src-space-3));
|
|
60
|
+
font-size: var(--src-text-fontSize, var(--src-font-size-sm));
|
|
61
|
+
line-height: var(--src-text-lineHeight, var(--src-font-line-sm));
|
|
62
|
+
letter-spacing: 0;
|
|
63
|
+
font-weight: 500;
|
|
64
|
+
color: var(--src-text-body-main, #111827);
|
|
48
65
|
}
|
|
49
66
|
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
.src-select {
|
|
2
|
-
--srcSelectFontSize: var(--
|
|
3
|
-
--srcSelectLineHeight: var(--
|
|
4
|
-
--srcSelectFontColor: var(--
|
|
5
|
-
--srcSelectFieldBg: var(--
|
|
6
|
-
--srcSelectFieldBorderColor: var(--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--
|
|
2
|
+
--srcSelectFontSize: var(--src-text-fontSize, var(--src-font-size-sm));
|
|
3
|
+
--srcSelectLineHeight: var(--src-text-lineHeight, var(--src-font-line-sm));
|
|
4
|
+
--srcSelectFontColor: var(--src-text-ui-secondary-main, #111827);
|
|
5
|
+
--srcSelectFieldBg: var(--src-surface-container-main, #fff);
|
|
6
|
+
--srcSelectFieldBorderColor: var(--src-border-input-basic, #d1d5db);
|
|
7
|
+
--srcSelectFieldBorder: 1px solid var(--srcSelectFieldBorderColor);
|
|
8
|
+
--srcSelectHeight: 36px;
|
|
9
|
+
--srcSelectBorderRadius: var(--src-border-rounded, var(--src-space-1-5));
|
|
10
|
+
// --srcSelectBoxShadow: var(--srcFormElementBoxShadow);
|
|
10
11
|
// Focus ring it's a multiple box-shadow
|
|
11
|
-
--srcSelectFocusRing: var(--
|
|
12
|
+
--srcSelectFocusRing: 0 0 0 var(--src-shadow-focused, 4px)
|
|
13
|
+
var(--src-shadow-focus, rgba(1, 123, 255, 0.16));
|
|
12
14
|
|
|
13
15
|
-webkit-appearance: none;
|
|
14
16
|
appearance: none;
|
|
@@ -21,29 +23,50 @@
|
|
|
21
23
|
font-size: var(--srcSelectFontSize);
|
|
22
24
|
line-height: var(--srcSelectLineHeight);
|
|
23
25
|
color: var(--srcSelectFontColor);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
//7px 28px 7px 12px;
|
|
27
|
+
padding: var(--src-padding-xs, var(--src-space-2))
|
|
28
|
+
var(--src-padding-xs, var(--src-space-2))
|
|
29
|
+
var(--src-padding-xs, var(--src-space-2))
|
|
30
|
+
var(--src-padding-sm, var(--src-space-3));
|
|
31
|
+
font-family: var(--src-font-family-body);
|
|
26
32
|
font-style: normal;
|
|
27
|
-
font-weight: var(--src-
|
|
28
|
-
border:
|
|
33
|
+
font-weight: var(--src-font-weight-Medium, 500);
|
|
34
|
+
border: var(--srcSelectFieldBorder);
|
|
29
35
|
background-color: var(--srcSelectFieldBg);
|
|
30
36
|
background-image: url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.40573 4.3L0.805725 1.7C0.489058 1.38333 0.418392 1.021 0.593725 0.613C0.768392 0.204333 1.08073 0 1.53073 0H6.68072C7.13072 0 7.44306 0.204333 7.61772 0.613C7.79306 1.021 7.72239 1.38333 7.40573 1.7L4.80572 4.3C4.70572 4.4 4.59739 4.475 4.48073 4.525C4.36406 4.575 4.23906 4.6 4.10573 4.6C3.97239 4.6 3.84739 4.575 3.73073 4.525C3.61406 4.475 3.50573 4.4 3.40573 4.3Z' fill='%236B7280'/%3E%3C/svg%3E%0A");
|
|
31
37
|
background-repeat: no-repeat;
|
|
32
38
|
background-position: calc(100% - 12px) center;
|
|
33
39
|
|
|
34
|
-
box-shadow:
|
|
40
|
+
box-shadow: none;
|
|
41
|
+
|
|
42
|
+
&:hover {
|
|
43
|
+
--srcSelectFieldBorderColor: var(--src-border-input-hover, #9ca3af);
|
|
44
|
+
--srcSelectFieldBg: var(
|
|
45
|
+
--src-ui-input-secondary,
|
|
46
|
+
rgba(148, 163, 184, 0.08)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&:active {
|
|
51
|
+
--srcSelectFieldBorderColor: var(--src-border-input-active, #017bff);
|
|
52
|
+
}
|
|
35
53
|
|
|
36
54
|
&:focus {
|
|
55
|
+
--srcSelectFieldBorderColor: var(--src-border-input-active, #017bff);
|
|
56
|
+
--srcSelectFieldBg: var(--src-surface-container-main, #fff);
|
|
57
|
+
|
|
37
58
|
outline: none;
|
|
38
59
|
box-shadow: var(--srcSelectFocusRing);
|
|
60
|
+
&:hover {
|
|
61
|
+
--srcSelectFieldBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
62
|
+
}
|
|
39
63
|
}
|
|
40
64
|
|
|
41
65
|
&[disabled],
|
|
42
66
|
&:disabled {
|
|
43
|
-
--srcSelectFieldBg: var(--
|
|
44
|
-
--srcSelectFieldBorderColor:
|
|
45
|
-
--
|
|
46
|
-
color: var(--src-color-text-default-disabled);
|
|
67
|
+
--srcSelectFieldBg: var(--src-ui-input-disabled, rgba(148, 163, 184, 0.16));
|
|
68
|
+
--srcSelectFieldBorderColor: transparent;
|
|
69
|
+
--srcSelectFontColor: var(--src-text-ui-secondary-secondary, #4b5563);
|
|
47
70
|
|
|
48
71
|
pointer-events: none;
|
|
49
72
|
}
|
|
@@ -51,24 +74,126 @@
|
|
|
51
74
|
option {
|
|
52
75
|
background-color: #fff;
|
|
53
76
|
}
|
|
77
|
+
|
|
78
|
+
&[class*='--size-sm'] {
|
|
79
|
+
--srcSelectHeight: 28px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&[class*='--size-md'] {
|
|
83
|
+
--srcSelectHeight: 36px;
|
|
84
|
+
}
|
|
85
|
+
&[class*='--size-lg'] {
|
|
86
|
+
--srcSelectHeight: 44px;
|
|
87
|
+
}
|
|
88
|
+
&[class*='--size-xl'] {
|
|
89
|
+
--srcSelectHeight: 56px;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&.src-select--secondary {
|
|
93
|
+
--srcSelectFieldBg: var(
|
|
94
|
+
--src-ui-input-secondary,
|
|
95
|
+
rgba(148, 163, 184, 0.08)
|
|
96
|
+
);
|
|
97
|
+
--srcSelectFieldBorder: none;
|
|
98
|
+
--srcSelectFontColor: var(--src-text-ui-secondary-main, #111827);
|
|
99
|
+
|
|
100
|
+
&:hover {
|
|
101
|
+
--srcSelectFieldBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
102
|
+
--srcSelectFieldBorder: none;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
&.src-select--ghost {
|
|
106
|
+
--srcSelectFieldBg: transparent;
|
|
107
|
+
--srcSelectFieldBorder: none;
|
|
108
|
+
--srcSelectFontColor: var(--src-text-ui-secondary-main, #111827);
|
|
109
|
+
|
|
110
|
+
&:hover {
|
|
111
|
+
--srcSelectFieldBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
112
|
+
--srcSelectFieldBorder: none;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
54
115
|
}
|
|
55
116
|
|
|
56
117
|
.src-select--compact {
|
|
57
118
|
--srcSelectHeight: 32px;
|
|
58
|
-
--srcSelectFontSize: var(--src-
|
|
59
|
-
--srcSelectLineHeight: var(--src-
|
|
119
|
+
--srcSelectFontSize: var(--src-font-size-xs);
|
|
120
|
+
--srcSelectLineHeight: var(--src-font-line-xs);
|
|
60
121
|
}
|
|
61
122
|
/* Error State */
|
|
62
|
-
.src-select--
|
|
63
|
-
--
|
|
64
|
-
--
|
|
123
|
+
.src-select--state-error {
|
|
124
|
+
--srcSelectFieldBorderColor: var(--src-border-input-error, #f24122);
|
|
125
|
+
--srcSelectFocusRing: 0px 0px 0px var(--src-shadow-focused, 4px)
|
|
126
|
+
var(--src-shadow-error, rgba(239, 68, 68, 0.16));
|
|
127
|
+
--srcSelectFontColor: var(--src-text-ui-distruct-main, #c5280c);
|
|
128
|
+
|
|
129
|
+
&:hover {
|
|
130
|
+
--srcSelectFieldBorderColor: var(--src-border-input-error, #f24122);
|
|
131
|
+
--srcSelectFieldBg:
|
|
132
|
+
linear-gradient(
|
|
133
|
+
0deg,
|
|
134
|
+
var(--src-ui-input-error-hover, rgba(239, 68, 68, 0.08)) 0%,
|
|
135
|
+
var(--src-ui-input-error-hover, rgba(239, 68, 68, 0.08)) 100%
|
|
136
|
+
),
|
|
137
|
+
var(--src-surface-container-main, #fff);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&:active {
|
|
141
|
+
--srcSelectFieldBorderColor: var(--src-border-input-error, #f24122);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&:focus {
|
|
145
|
+
--srcSelectFieldBorderColor: var(--src-border-input-error, #f24122);
|
|
146
|
+
--srcSelectFieldBg: var(--src-surface-container-main, #fff);
|
|
147
|
+
|
|
148
|
+
&:hover {
|
|
149
|
+
--srcSelectFieldBg: var(
|
|
150
|
+
--src-ui-input-error-hover,
|
|
151
|
+
rgba(239, 68, 68, 0.08)
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* Success State */
|
|
158
|
+
.src-select--state-success {
|
|
159
|
+
--srcSelectFieldBorderColor: var(--src-border-input-success, #22c55e);
|
|
160
|
+
--srcSelectFocusRing: 0px 0px 0px var(--src-shadow-focused, 4px)
|
|
161
|
+
var(--src-shadow-success, rgba(22, 163, 74, 0.12));
|
|
162
|
+
--srcSelectFontColor: var(--src-text-ui-success-main, #16a34a);
|
|
163
|
+
|
|
164
|
+
&:hover {
|
|
165
|
+
--srcSelectFieldBorderColor: var(--src-border-input-success-hover, #16a34a);
|
|
166
|
+
--srcSelectFieldBg:
|
|
167
|
+
linear-gradient(
|
|
168
|
+
0deg,
|
|
169
|
+
var(--src-ui-input-success-hover, rgba(22, 163, 74, 0.08)) 0%,
|
|
170
|
+
var(--src-ui-input-success-hover, rgba(22, 163, 74, 0.08)) 100%
|
|
171
|
+
),
|
|
172
|
+
var(--src-surface-container-main, #fff);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
&:active {
|
|
176
|
+
--srcSelectFieldBorderColor: var(--src-border-input-success-hover, #16a34a);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
&:focus {
|
|
180
|
+
--srcSelectFieldBorderColor: var(--src-border-input-success, #22c55e);
|
|
181
|
+
--srcSelectFieldBg: var(--src-surface-container-main, #fff);
|
|
182
|
+
|
|
183
|
+
&:hover {
|
|
184
|
+
--srcSelectFieldBg: var(
|
|
185
|
+
--src-ui-input-success-hover,
|
|
186
|
+
rgba(22, 163, 74, 0.08)
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
65
190
|
}
|
|
66
191
|
|
|
67
192
|
/* Disabled State */
|
|
68
193
|
.src-select--disabled {
|
|
69
|
-
--srcSelectFieldBg: var(--
|
|
70
|
-
--
|
|
71
|
-
--
|
|
194
|
+
--srcSelectFieldBg: var(--src-ui-input-disabled, rgba(148, 163, 184, 0.16));
|
|
195
|
+
--srcSelectFieldBorder: none;
|
|
196
|
+
--srcSelectFontColor: var(--src-text-ui-secondary-secondary, #4b5563);
|
|
72
197
|
|
|
73
198
|
pointer-events: none;
|
|
74
199
|
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
.src-textarea {
|
|
2
|
-
--srcTexareaFontSize: var(--
|
|
3
|
-
--srcTexareaLineHeight: var(--
|
|
4
|
-
--srcTexareaFontColor: var(--
|
|
5
|
-
--srcTexareaBg: var(--
|
|
6
|
-
--srcTexareaBorderColor: var(--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--
|
|
2
|
+
--srcTexareaFontSize: var(--src-text-fontSize, var(--src-font-size-sm));
|
|
3
|
+
--srcTexareaLineHeight: var(--src-text-lineHeight, var(--src-font-line-sm));
|
|
4
|
+
--srcTexareaFontColor: var(--src-text-ui-secondary-main, #111827);
|
|
5
|
+
--srcTexareaBg: var(--src-surface-container-main, #fff);
|
|
6
|
+
--srcTexareaBorderColor: var(--src-border-input-basic, #d1d5db);
|
|
7
|
+
--srcTexareaBorder: 1px solid var(--srcTexareaBorderColor);
|
|
8
|
+
--srcTexareaMinHeight: 36px;
|
|
9
|
+
--srcTexareaBorderRadius: var(--src-border-rounded, var(--src-space-1-5));
|
|
10
|
+
--srcTexareaBoxShadow: none;
|
|
10
11
|
// Focus ring it's a multiple box-shadow
|
|
11
|
-
--srcTextareaFocusRing: var(--
|
|
12
|
+
--srcTextareaFocusRing: 0 0 0 var(--src-shadow-focused, 4px)
|
|
13
|
+
var(--src-shadow-focus, rgba(1, 123, 255, 0.16));
|
|
12
14
|
|
|
13
15
|
position: relative;
|
|
14
16
|
|
|
@@ -17,25 +19,47 @@
|
|
|
17
19
|
|
|
18
20
|
display: flex;
|
|
19
21
|
align-items: center;
|
|
20
|
-
padding:
|
|
22
|
+
padding: var(--src-padding-xs, var(--src-space-2))
|
|
23
|
+
var(--src-padding-xs, var(--src-space-2))
|
|
24
|
+
var(--src-padding-xs, var(--src-space-2))
|
|
25
|
+
var(--src-padding-sm, var(--src-space-3));
|
|
21
26
|
|
|
22
|
-
font-family: var(--src-font-family-
|
|
27
|
+
font-family: var(--src-font-family-body);
|
|
23
28
|
font-style: normal;
|
|
24
|
-
font-weight: var(--src-
|
|
29
|
+
font-weight: var(--src-font-weight-Medium, 500);
|
|
25
30
|
font-size: var(--srcTexareaFontSize);
|
|
26
31
|
line-height: var(--srcTexareaLineHeight);
|
|
27
32
|
color: var(--srcTexareaFontColor);
|
|
28
33
|
|
|
29
|
-
border:
|
|
34
|
+
border: var(--srcTexareaBorder);
|
|
30
35
|
border-radius: var(--srcTexareaBorderRadius);
|
|
31
|
-
background
|
|
36
|
+
background: var(--srcTexareaBg);
|
|
32
37
|
box-shadow: var(--srcTexareaBoxShadow);
|
|
33
38
|
|
|
34
39
|
resize: vertical;
|
|
40
|
+
&:hover {
|
|
41
|
+
--srcTexareaBorderColor: var(--src-border-input-hover, #9ca3af);
|
|
42
|
+
--srcTexareaBg:
|
|
43
|
+
linear-gradient(
|
|
44
|
+
0deg,
|
|
45
|
+
var(--src-ui-input-secondary, rgba(148, 163, 184, 0.08)) 0%,
|
|
46
|
+
var(--src-ui-input-secondary, rgba(148, 163, 184, 0.08)) 100%
|
|
47
|
+
),
|
|
48
|
+
var(--src-surface-container-main, #fff);
|
|
49
|
+
}
|
|
50
|
+
&:active {
|
|
51
|
+
--srcTexareaBorderColor: var(--src-border-input-active, #017bff);
|
|
52
|
+
}
|
|
35
53
|
|
|
36
54
|
&:focus {
|
|
55
|
+
--srcTexareaBorderColor: var(--src-border-input-active, #017bff);
|
|
56
|
+
--srcTexareaBg: var(--src-surface-container-main, #fff);
|
|
57
|
+
|
|
37
58
|
outline: none;
|
|
38
59
|
box-shadow: var(--srcTextareaFocusRing);
|
|
60
|
+
&:hover {
|
|
61
|
+
--srcTexareaBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
62
|
+
}
|
|
39
63
|
}
|
|
40
64
|
|
|
41
65
|
&[disabled],
|
|
@@ -47,24 +71,115 @@
|
|
|
47
71
|
|
|
48
72
|
pointer-events: none;
|
|
49
73
|
}
|
|
50
|
-
}
|
|
51
74
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
75
|
+
&[class*='--size-sm'] {
|
|
76
|
+
--srcTexareaMinHeight: 28px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&[class*='--size-md'] {
|
|
80
|
+
--srcTexareaMinHeight: 36px;
|
|
81
|
+
}
|
|
82
|
+
&[class*='--size-lg'] {
|
|
83
|
+
--srcTexareaMinHeight: 44px;
|
|
84
|
+
}
|
|
85
|
+
&[class*='--size-xl'] {
|
|
86
|
+
--srcTexareaMinHeight: 56px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&.src-input--secondary {
|
|
90
|
+
--srcTexareaBg: var(--src-ui-input-secondary, rgba(148, 163, 184, 0.08));
|
|
91
|
+
--srcTexareaBorder: none;
|
|
92
|
+
--srcTexareaColor: var(--src-text-ui-secondary-main, #111827);
|
|
93
|
+
|
|
94
|
+
&:hover {
|
|
95
|
+
--srcTexareaBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
96
|
+
--srcTexareaBorder: none;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
&.src-input--ghost {
|
|
100
|
+
--srcTexareaBg: transparent;
|
|
101
|
+
--srcTexareaBorder: none;
|
|
102
|
+
--srcTexareaColor: var(--src-text-ui-secondary-main, #111827);
|
|
103
|
+
|
|
104
|
+
&:hover {
|
|
105
|
+
--srcTexareaBg: var(--src-ui-input-hover, rgba(1, 123, 255, 0.08));
|
|
106
|
+
--srcTexareaBorder: none;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
56
109
|
}
|
|
110
|
+
|
|
57
111
|
/* Error State */
|
|
58
|
-
.src-textarea--
|
|
59
|
-
--
|
|
60
|
-
--
|
|
112
|
+
.src-textarea--state-error {
|
|
113
|
+
--srcTexareaBorderColor: var(--src-border-input-error, #f24122);
|
|
114
|
+
--srcTexareaRing: 0px 0px 0px var(--src-shadow-focused, 4px)
|
|
115
|
+
var(--src-shadow-error, rgba(239, 68, 68, 0.16));
|
|
116
|
+
--srcTexareaFontColor: var(--src-text-ui-distruct-main, #c5280c);
|
|
117
|
+
|
|
118
|
+
&:hover {
|
|
119
|
+
--srcTexareaBorderColor: var(--src-border-input-error, #f24122);
|
|
120
|
+
--srcTexareaBg:
|
|
121
|
+
linear-gradient(
|
|
122
|
+
0deg,
|
|
123
|
+
var(--src-ui-input-error-hover, rgba(239, 68, 68, 0.08)) 0%,
|
|
124
|
+
var(--src-ui-input-error-hover, rgba(239, 68, 68, 0.08)) 100%
|
|
125
|
+
),
|
|
126
|
+
var(--src-surface-container-main, #fff);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
&:active {
|
|
130
|
+
--srcTexareaBorderColor: var(--src-border-input-error, #f24122);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
&:focus {
|
|
134
|
+
--srcTexareaBorderColor: var(--src-border-input-error, #f24122);
|
|
135
|
+
--srcTexareaBg: var(--src-surface-container-main, #fff);
|
|
136
|
+
|
|
137
|
+
&:hover {
|
|
138
|
+
--srcTexareaBg: var(--src-ui-input-error-hover, rgba(239, 68, 68, 0.08));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* Success State */
|
|
144
|
+
.src-textarea--state-success {
|
|
145
|
+
--srcTexareaBorderColor: var(--src-border-input-success, #22c55e);
|
|
146
|
+
--srcTexareaFocusRing: 0px 0px 0px var(--src-shadow-focused, 4px)
|
|
147
|
+
var(--src-shadow-success, rgba(22, 163, 74, 0.12));
|
|
148
|
+
--srcTexareaFontColor: var(--src-text-ui-success-main, #16a34a);
|
|
149
|
+
|
|
150
|
+
&:hover {
|
|
151
|
+
--srcTexareaBorderColor: var(--src-border-input-success-hover, #16a34a);
|
|
152
|
+
--srcTexareaBg:
|
|
153
|
+
linear-gradient(
|
|
154
|
+
0deg,
|
|
155
|
+
var(--src-ui-input-success-hover, rgba(22, 163, 74, 0.08)) 0%,
|
|
156
|
+
var(--src-ui-input-success-hover, rgba(22, 163, 74, 0.08)) 100%
|
|
157
|
+
),
|
|
158
|
+
var(--src-surface-container-main, #fff);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
&:active {
|
|
162
|
+
--srcTexareaBorderColor: var(--src-border-input-success-hover, #16a34a);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
&:focus {
|
|
166
|
+
--srcTexareaBorderColor: var(--src-border-input-success, #22c55e);
|
|
167
|
+
--srcTexareaBg: var(--src-surface-container-main, #fff);
|
|
168
|
+
|
|
169
|
+
&:hover {
|
|
170
|
+
--srcTexareaBg: var(
|
|
171
|
+
--src-ui-input-success-hover,
|
|
172
|
+
rgba(22, 163, 74, 0.08)
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
61
176
|
}
|
|
62
177
|
|
|
63
178
|
/* Disabled State */
|
|
64
179
|
.src-textarea--disabled {
|
|
65
|
-
--srcTexareaBg: var(--src-
|
|
66
|
-
--
|
|
67
|
-
--
|
|
180
|
+
--srcTexareaBg: var(--src-ui-input-disabled, rgba(148, 163, 184, 0.16));
|
|
181
|
+
--srcTexareaBorder: none;
|
|
182
|
+
--srcTexareaFontColor: var(--src-text-ui-secondary-secondary, #4b5563);
|
|
68
183
|
|
|
69
184
|
pointer-events: none;
|
|
70
185
|
}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
--srcToggleWidth: 44px;
|
|
3
3
|
--srcToggleHeight: 24px;
|
|
4
4
|
--srcToggleThumbSize: 20px;
|
|
5
|
-
--srcToggleInputBg: var(
|
|
5
|
+
--srcToggleInputBg: var(
|
|
6
|
+
--src-ui-secondary-default,
|
|
7
|
+
rgba(148, 163, 184, 0.16)
|
|
8
|
+
);
|
|
6
9
|
--srcToggleThumbBg: var(--src-color-bg-default);
|
|
7
10
|
--srcToggleThumbShadow: var(--src-shadow-large);
|
|
8
11
|
--srcToggleLabelMargin: 20px;
|
|
@@ -22,8 +25,8 @@
|
|
|
22
25
|
padding: 0;
|
|
23
26
|
vertical-align: top;
|
|
24
27
|
background: var(--srcToggleInputBg);
|
|
25
|
-
border:
|
|
26
|
-
border-radius: var(--src-
|
|
28
|
+
border: 1px solid var(--src-border-input-basic, #d1d5db);
|
|
29
|
+
border-radius: var(--src-border-rounded-full, 9999px);
|
|
27
30
|
outline: none;
|
|
28
31
|
cursor: pointer;
|
|
29
32
|
transition: all 0.3s cubic-bezier(0.2, 0.85, 0.32, 1.2);
|
|
@@ -32,9 +35,22 @@
|
|
|
32
35
|
appearance: none;
|
|
33
36
|
overflow: hidden;
|
|
34
37
|
|
|
38
|
+
&:hover {
|
|
39
|
+
--srcToggleInputBg: var(
|
|
40
|
+
--src-ui-secondary-default-hover,
|
|
41
|
+
rgba(148, 163, 184, 0.08)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&:focus {
|
|
46
|
+
outline: none;
|
|
47
|
+
box-shadow: 0 0 0 var(--src-shadow-focused, 4px)
|
|
48
|
+
var(--src-shadow-light, rgba(148, 163, 184, 0.16));
|
|
49
|
+
}
|
|
50
|
+
|
|
35
51
|
&:disabled,
|
|
36
52
|
&[disabled] {
|
|
37
|
-
--srcToggleInputBg: var(--src-
|
|
53
|
+
--srcToggleInputBg: var(--src-surface-bg, rgba(71, 85, 105, 0.24));
|
|
38
54
|
cursor: default;
|
|
39
55
|
opacity: 1;
|
|
40
56
|
pointer-events: none;
|
|
@@ -42,8 +58,8 @@
|
|
|
42
58
|
&::after {
|
|
43
59
|
content: '';
|
|
44
60
|
position: absolute;
|
|
45
|
-
top:
|
|
46
|
-
left:
|
|
61
|
+
top: 1px;
|
|
62
|
+
left: 1px;
|
|
47
63
|
width: var(--srcToggleThumbSize);
|
|
48
64
|
height: var(--srcToggleThumbSize);
|
|
49
65
|
background-color: var(--srcToggleThumbBg);
|
|
@@ -61,11 +77,17 @@
|
|
|
61
77
|
}
|
|
62
78
|
|
|
63
79
|
&:checked {
|
|
64
|
-
--srcToggleInputBg: var(--src-
|
|
80
|
+
--srcToggleInputBg: var(--src-ui-accent-default, #017bff);
|
|
81
|
+
border-color: transparent;
|
|
82
|
+
|
|
83
|
+
&:focus {
|
|
84
|
+
box-shadow: 0 0 0 var(--src-shadow-focused, 4px)
|
|
85
|
+
var(--src-shadow-accent-light, rgba(1, 123, 255, 0.16));
|
|
86
|
+
}
|
|
65
87
|
|
|
66
88
|
&:disabled,
|
|
67
89
|
&[disabled] {
|
|
68
|
-
--srcToggleInputBg: var(--src-
|
|
90
|
+
--srcToggleInputBg: var(--src-surface-bg, rgba(71, 85, 105, 0.24));
|
|
69
91
|
cursor: default;
|
|
70
92
|
opacity: 1;
|
|
71
93
|
pointer-events: none;
|
|
@@ -73,8 +95,12 @@
|
|
|
73
95
|
}
|
|
74
96
|
}
|
|
75
97
|
|
|
76
|
-
.src-
|
|
98
|
+
.src-toggle__label {
|
|
77
99
|
margin-bottom: 0;
|
|
78
|
-
|
|
100
|
+
color: var(--src-text-body-main, #111827);
|
|
101
|
+
line-height: var(--src-text-lineHeight, var(--src-font-line-sm));
|
|
102
|
+
font-size: var(--src-text-fontSize, var(--src-font-size-sm));
|
|
103
|
+
letter-spacing: 0;
|
|
104
|
+
font-weight: 500;
|
|
79
105
|
}
|
|
80
106
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
$focus-ring-colors: (
|
|
3
|
+
default: var(--src-shadow-light, rgba(148, 163, 184, 0.16)),
|
|
4
|
+
info: var(--src-shadow-accent-light, rgba(1, 123, 255, 0.16)),
|
|
5
|
+
error: var(--src-shadow-error, rgba(239, 68, 68, 0.16)),
|
|
6
|
+
success: var(--src-shadow-success, rgba(22, 163, 74, 0.12)),
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
@mixin focusRing($type) {
|
|
10
|
+
$color: map.get($focus-ring-colors, $type);
|
|
11
|
+
|
|
12
|
+
@if $color {
|
|
13
|
+
--srcButtonFocusRing: 0 0 0 var(--src-shadow-focused, 4px) #{$color};
|
|
14
|
+
} @else {
|
|
15
|
+
@warn "srcFocusRing: type `#{$type}` is not defined!";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
$font-colors: (
|
|
19
|
+
white: var(--src-text-ui-primary-main, #fff),
|
|
20
|
+
white-hover: var(--src-text-ui-primary-main, #fff),
|
|
21
|
+
inverted: var(--src-text-ui-secondary-secondary-invert, #d1d5db),
|
|
22
|
+
inverted-hover: var(--src-text-ui-secondary-main-invert, #f9fafb),
|
|
23
|
+
disabled: var(--src-text-ui-secondary-disabled, #9ca3af),
|
|
24
|
+
info: var(--src-text-ui-accent-main, #016fe6),
|
|
25
|
+
error: var(--src-text-ui-distruct-main, #c5280c),
|
|
26
|
+
success: var(--src-text-ui-success-main, #16a34a),
|
|
27
|
+
info-hover: var(--src-text-ui-accent-hover, #0162cc),
|
|
28
|
+
error-hover: var(--src-text-ui-distruct-hover, #9f200a),
|
|
29
|
+
success-hover: var(--src-text-ui-success-hover, #15803d),
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
@mixin buttonText($type) {
|
|
33
|
+
$base-color: map.get($font-colors, $type);
|
|
34
|
+
$hover-color: map.get($font-colors, #{$type}-hover);
|
|
35
|
+
|
|
36
|
+
@if $base-color {
|
|
37
|
+
--srcButtonFontColor: #{$base-color};
|
|
38
|
+
|
|
39
|
+
@if $hover-color {
|
|
40
|
+
&:hover {
|
|
41
|
+
--srcButtonFontColor: #{$hover-color};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
} @else {
|
|
45
|
+
@warn "srcButtonText: type `#{$type}` is not defined!";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
@mixin cleanShadows() {
|
|
49
|
+
--srcButtonBoxShadow: none;
|
|
50
|
+
--srcButtonBorder: none;
|
|
51
|
+
--srcButtonBorderColor: transparent;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@mixin setShadow() {
|
|
55
|
+
--srcButtonBoxShadow:
|
|
56
|
+
0 -1px 0 0 var(--src-shadow-hard, rgba(71, 85, 105, 0.24)) inset,
|
|
57
|
+
0 var(--src-shadow-ambient-outer, 1px) 0 0
|
|
58
|
+
var(--src-shadow-light, rgba(148, 163, 184, 0.16));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@mixin pressedButton($light: false) {
|
|
62
|
+
@include cleanShadows();
|
|
63
|
+
|
|
64
|
+
@if ($light) {
|
|
65
|
+
--srcButtonFontColor: var(--src-text-ui-accent-main, #016fe6);
|
|
66
|
+
--srcButtonIconColor: var(--src-icon-info, #017bff);
|
|
67
|
+
--srcButtonBgColor: var(
|
|
68
|
+
--src-ui-secondary-default,
|
|
69
|
+
rgba(148, 163, 184, 0.16)
|
|
70
|
+
);
|
|
71
|
+
} @else {
|
|
72
|
+
--srcButtonFontColor: var(--src-text-ui-primary-main, #fff);
|
|
73
|
+
--srcButtonBgColor: var(--src-ui-accent-active, #374151);
|
|
74
|
+
--srcButtonIconColor: var(--src-icon-main-invert, #fff);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@media (pointer: fine) {
|
|
78
|
+
&:hover {
|
|
79
|
+
@if ($light) {
|
|
80
|
+
--srcButtonBgColor: var(
|
|
81
|
+
--src-ui-secondary-default-hover,
|
|
82
|
+
rgba(148, 163, 184, 0.08)
|
|
83
|
+
);
|
|
84
|
+
--srcButtonFontColor: var(--src-text-ui-accent-hover, #0162cc);
|
|
85
|
+
--srcButtonIconColor: var(--src-icon-info-hover, #016fe6);
|
|
86
|
+
} @else {
|
|
87
|
+
--srcButtonBgColor: var(--src-ui-accent-active-hover, #111827);
|
|
88
|
+
--srcButtonFontColor: var(--src-text-ui-primary-main, #fff);
|
|
89
|
+
--srcButtonIconColor: var(--src-icon-main-invert, #fff);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|