@@ -75,22 +75,26 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
7575 } ;
7676
7777 return (
78- < div className = "bg-white rounded-lg shadow-lg p-6" >
79- < h2 className = "text-2xl font-semibold text-gray-800 mb-6" > { isReadOnly ? "Your Saved Preferences" : "Your Preferences" } </ h2 >
78+ < div className = "bg-white/90 backdrop-blur-md rounded-2xl shadow-lg p-8 border border-pink-100" >
79+ < h2 className = "text-3xl font-bold bg-gradient-to-r from-pink-600 to-purple-600 bg-clip-text text-transparent mb-6" >
80+ { isReadOnly ? "Your Saved Preferences" : "Your Preferences" }
81+ </ h2 >
8082 { isReadOnly && (
81- < div className = "mb-6 p-4 bg-purple-50 text-purple-700 rounded-md " >
83+ < div className = "mb-6 p-4 bg-gradient-to-r from-pink-50 to- purple-50 text-purple-700 rounded-xl border border-pink-100 " >
8284 Your preferences have been saved. You can view them below, but they cannot be modified.
8385 </ div >
8486 ) }
85- < form onSubmit = { handleSubmit } className = "space-y-6 " >
86- < div className = "grid grid-cols-1 md:grid-cols-2 gap-6 " >
87+ < form onSubmit = { handleSubmit } className = "space-y-8 " >
88+ < div className = "grid grid-cols-1 md:grid-cols-2 gap-8 " >
8789 < div >
8890 < label className = "block text-sm font-medium text-gray-700 mb-2" > Your Age</ label >
8991 < input
9092 type = "number"
9193 value = { preferences . age }
9294 onChange = { ( e ) => ! isReadOnly && setPreferences ( { ...preferences , age : parseInt ( e . target . value ) } ) }
93- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
95+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
96+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
97+ } `}
9498 min = "18"
9599 max = "100"
96100 disabled = { isReadOnly }
@@ -102,7 +106,9 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
102106 < select
103107 value = { preferences . gender }
104108 onChange = { ( e ) => ! isReadOnly && setPreferences ( { ...preferences , gender : parseInt ( e . target . value ) } ) }
105- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
109+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
110+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
111+ } `}
106112 disabled = { isReadOnly }
107113 >
108114 < option value = { 0 } > ZK Researcher 🤓</ option >
@@ -115,7 +121,9 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
115121 < select
116122 value = { preferences . region }
117123 onChange = { ( e ) => ! isReadOnly && setPreferences ( { ...preferences , region : parseInt ( e . target . value ) } ) }
118- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
124+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
125+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
126+ } `}
119127 disabled = { isReadOnly }
120128 >
121129 { REGIONS . map ( ( region ) => (
@@ -139,7 +147,9 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
139147 preferences : { ...preferences . preferences , age_min : parseInt ( e . target . value ) } ,
140148 } )
141149 }
142- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
150+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
151+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
152+ } `}
143153 min = "18"
144154 max = "100"
145155 placeholder = "Min"
@@ -155,7 +165,9 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
155165 preferences : { ...preferences . preferences , age_max : parseInt ( e . target . value ) } ,
156166 } )
157167 }
158- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
168+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
169+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
170+ } `}
159171 min = "18"
160172 max = "100"
161173 placeholder = "Max"
@@ -175,7 +187,9 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
175187 preferences : { ...preferences . preferences , gender : parseInt ( e . target . value ) } ,
176188 } )
177189 }
178- className = { `w-full px-3 py-2 border border-gray-300 rounded-md ${ isReadOnly ? "bg-gray-50" : "" } ` }
190+ className = { `w-full px-4 py-3 border border-gray-200 rounded-xl focus:ring-2 focus:ring-purple-500 focus:border-transparent transition-all ${
191+ isReadOnly ? "bg-gray-50" : "hover:border-purple-300"
192+ } `}
179193 disabled = { isReadOnly }
180194 >
181195 < option value = { 0 } > ZK Researcher 🤓</ option >
@@ -190,16 +204,16 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
190204 Your Interests (Select up to 3)
191205 < span className = "ml-2 text-sm text-gray-500" > { preferences . interests . length } /3 selected</ span >
192206 </ label >
193- < div className = "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-3 " >
207+ < div className = "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4 " >
194208 { INTERESTS . map ( ( interest ) => (
195209 < label
196210 key = { interest . id }
197- className = { `flex items-center space-x-2 p-2 border rounded-md cursor-pointer ${
211+ className = { `flex items-center space-x-2 p-3 border rounded-xl cursor-pointer transition-all ${
198212 isReadOnly
199213 ? "bg-gray-50"
200214 : ! preferences . interests . includes ( interest . id ) && preferences . interests . length >= 3
201215 ? "opacity-50 cursor-not-allowed"
202- : "hover:bg-gray -50"
216+ : "hover:bg-purple -50 hover:border-purple-300 "
203217 } `}
204218 >
205219 < input
@@ -219,10 +233,10 @@ export default function Preferences({ onSubmit }: PreferencesProps) {
219233 < button
220234 type = "submit"
221235 disabled = { preferences . interests . length !== 3 }
222- className = { `w-full py-2 px-4 rounded-md transition-colors ${
236+ className = { `w-full py-3 px-6 rounded-xl transition-all duration-300 ${
223237 preferences . interests . length !== 3
224238 ? "bg-gray-100 text-gray-400 cursor-not-allowed"
225- : "bg-purple-600 text-white hover:bg- purple-700 "
239+ : "bg-gradient-to-r from-pink-500 to- purple-500 text-white hover:from-pink-600 hover:to- purple-600 shadow-md hover:shadow-lg transform hover:-translate-y-0.5 "
226240 } `}
227241 >
228242 { preferences . interests . length === 3
0 commit comments