1
- import { transparentize , mode } from '../tools' ;
2
-
1
+ import { transparentize } from '../tools' ;
3
2
const baseStyle = ( props : any ) => {
4
- const { primary } = props . theme . colors ;
5
- const focusRing = mode (
6
- {
7
- outlineWidth : '1px' ,
8
- outlineColor : `${ primary [ 600 ] } ` ,
9
- outlineStyle : 'solid' ,
10
- } ,
11
- {
12
- outlineWidth : '1px' ,
13
- outlineColor : `${ primary [ 500 ] } ` ,
14
- outlineStyle : 'solid' ,
15
- }
16
- ) ( props ) ;
3
+ const { primary, error } = props . theme . colors ;
4
+
17
5
return {
18
6
fontFamily : 'body' ,
19
7
py : '2' ,
@@ -49,9 +37,25 @@ const baseStyle = (props: any) => {
49
37
} ,
50
38
_focus : {
51
39
borderColor : 'primary.600' ,
40
+ _hover : { borderColor : 'primary.600' } ,
41
+ _stack : {
42
+ style : {
43
+ outlineWidth : '1px' ,
44
+ outlineColor : `${ props . focusOutlineColor || primary [ 600 ] } ` ,
45
+ outlineStyle : 'solid' ,
46
+ } ,
47
+ } ,
52
48
} ,
53
49
_invalid : {
54
50
borderColor : 'error.600' ,
51
+ _hover : { borderColor : 'error.600' } ,
52
+ _stack : {
53
+ style : {
54
+ outlineWidth : '1px' ,
55
+ outlineColor : `${ props . inValidOutlineColor || error [ 600 ] } ` ,
56
+ outlineStyle : 'solid' ,
57
+ } ,
58
+ } ,
55
59
} ,
56
60
_ios : {
57
61
selectionColor : 'coolGray.800' ,
@@ -70,9 +74,6 @@ const baseStyle = (props: any) => {
70
74
alignItems : 'center' ,
71
75
// justifyContent: 'space-between',
72
76
overflow : 'hidden' ,
73
- _focus : {
74
- style : { ...focusRing } ,
75
- } ,
76
77
} ,
77
78
} ,
78
79
_dark : {
@@ -84,9 +85,25 @@ const baseStyle = (props: any) => {
84
85
} ,
85
86
_focus : {
86
87
borderColor : 'primary.500' ,
88
+ _hover : { borderColor : 'primary.500' } ,
89
+ _stack : {
90
+ style : {
91
+ outlineWidth : '1px' ,
92
+ outlineColor : `${ props . focusOutlineColor || primary [ 500 ] } ` ,
93
+ outlineStyle : 'solid' ,
94
+ } ,
95
+ } ,
87
96
} ,
88
97
_invalid : {
89
98
borderColor : 'error.500' ,
99
+ _stack : {
100
+ style : {
101
+ outlineWidth : '1px' ,
102
+ outlineColor : `${ props . inValidOutlineColor || error [ 500 ] } ` ,
103
+ outlineStyle : 'solid' ,
104
+ } ,
105
+ } ,
106
+ _hover : { borderColor : 'error.500' } ,
90
107
} ,
91
108
_ios : {
92
109
selectionColor : 'warmGray.50' ,
@@ -105,9 +122,6 @@ const baseStyle = (props: any) => {
105
122
alignItems : 'center' ,
106
123
// justifyContent: 'space-between',
107
124
overflow : 'hidden' ,
108
- _focus : {
109
- style : { ...focusRing } ,
110
- } ,
111
125
} ,
112
126
} ,
113
127
} ;
@@ -121,9 +135,6 @@ function roundedStyle(props: Record<string, any>) {
121
135
_focus : {
122
136
bg : transparentize ( 'primary.600' , 0.1 ) ( theme ) ,
123
137
} ,
124
- _invalid : {
125
- borderWidth : '2' ,
126
- } ,
127
138
} ;
128
139
}
129
140
function outlineStyle ( props : Record < string , any > ) {
@@ -133,9 +144,6 @@ function outlineStyle(props: Record<string, any>) {
133
144
_focus : {
134
145
bg : transparentize ( 'primary.600' , 0.1 ) ( theme ) ,
135
146
} ,
136
- _invalid : {
137
- borderWidth : '2' ,
138
- } ,
139
147
} ;
140
148
}
141
149
function filledStyle ( props : Record < string , any > ) {
@@ -151,9 +159,6 @@ function filledStyle(props: Record<string, any>) {
151
159
borderWidth : 0 ,
152
160
} ,
153
161
} ,
154
- _invalid : {
155
- borderWidth : '2' ,
156
- } ,
157
162
_light : {
158
163
bg : 'muted.100' ,
159
164
borderColor : 'muted.100' ,
@@ -176,6 +181,13 @@ function unstyledStyle() {
176
181
_focus : {
177
182
bg : 'transparent' ,
178
183
} ,
184
+ _invalid : {
185
+ _stack : {
186
+ style : {
187
+ outlineWidth : 0 ,
188
+ } ,
189
+ } ,
190
+ } ,
179
191
_stack : {
180
192
_focus : {
181
193
style : {
@@ -185,21 +197,48 @@ function unstyledStyle() {
185
197
} ,
186
198
} ;
187
199
}
188
- function underlinedStyle ( ) {
200
+ function underlinedStyle ( props : Record < string , any > ) {
201
+ const { primary, error } = props . theme . colors ;
202
+
189
203
return {
190
204
borderWidth : '0' ,
191
205
pl : '0' ,
192
206
borderBottomWidth : '1' ,
193
- _stack : {
207
+ _light : {
194
208
_focus : {
195
- style : {
196
- outlineWidth : '0' ,
197
- boxShadow : '0 1px 0 0 #0891B2' ,
209
+ _stack : {
210
+ style : {
211
+ outlineWidth : '0' ,
212
+ boxShadow : `0 1px 0 0 ${ props . focusOutlineColor || primary [ 600 ] } ` ,
213
+ } ,
214
+ } ,
215
+ } ,
216
+ _invalid : {
217
+ _stack : {
218
+ style : {
219
+ outlineWidth : 0 ,
220
+ boxShadow : `0 1px 0 0 ${ props . inValidOutlineColor || error [ 600 ] } ` ,
221
+ } ,
198
222
} ,
199
223
} ,
200
224
} ,
201
- _invalid : {
202
- borderBottomWidth : '2' ,
225
+ _dark : {
226
+ _focus : {
227
+ _stack : {
228
+ style : {
229
+ outlineWidth : '0' ,
230
+ boxShadow : `0 1px 0 0 ${ props . focusOutlineColor || primary [ 500 ] } ` ,
231
+ } ,
232
+ } ,
233
+ } ,
234
+ _invalid : {
235
+ _stack : {
236
+ style : {
237
+ outlineWidth : 0 ,
238
+ boxShadow : `0 1px 0 0 ${ props . focusOutlineColor || error [ 500 ] } ` ,
239
+ } ,
240
+ } ,
241
+ } ,
203
242
} ,
204
243
borderRadius : 0 ,
205
244
} ;
0 commit comments