@@ -15,67 +15,68 @@ import {
1515 dividerVariants ,
1616} from '@/styles/Animations' ;
1717
18+ const theme = {
19+ colors : {
20+ primary : '#1E3A8A' , // A deeper blue, assuming a primary brand color
21+ secondary : '#3B82F6' , // A vibrant blue for accents
22+ textDark : '#1F2937' , // Darker text for readability
23+ textLight : '#E5E7EB' , // Light text for dark backgrounds
24+ bgLight : '#F9FAFB' , // Very light background
25+ bgDark : '#111827' , // Dark background for contrast sections
26+ border : '#D1D5DB' , // Light border color
27+ } ,
28+ typography : {
29+ heading : 'font-extrabold tracking-tight' , // More impactful headings
30+ subheading : 'font-semibold tracking-wide' ,
31+ body : 'font-normal leading-relaxed' ,
32+ } ,
33+ } ;
34+
1835const ContactUs : React . FC = ( ) => {
1936 return (
2037 < >
2138 < Header />
22- < div className = " min-h-screen bg-gray-50" >
39+ < div className = { ` min-h-screen ${ theme . colors . bgLight } ` } >
2340 { /* Hero Section */ }
2441 < motion . section
2542 variants = { fadeIn }
2643 initial = "hidden"
2744 animate = "visible"
28- className = "relative w-full bg-gradient-to-r from-blue-900 via-slate-800 to-slate -900 py-32 overflow-hidden"
45+ className = "relative w-full bg-gradient-to-br from-blue-900 to-indigo -900 py-24 md: py-32 overflow-hidden"
2946 >
30- < div className = "absolute inset-0 overflow-hidden" >
31- < svg
32- className = "absolute w-full h-full opacity-5"
33- viewBox = "0 0 100 100"
34- preserveAspectRatio = "none"
35- aria-hidden = "true"
36- >
37- < defs >
38- < pattern
39- id = "grid"
40- width = "8"
41- height = "8"
42- patternUnits = "userSpaceOnUse"
43- >
44- < path
45- d = "M 8 0 L 0 0 0 8"
46- fill = "none"
47- stroke = "white"
48- strokeWidth = "0.5"
49- />
50- </ pattern >
51- </ defs >
52- < rect x = "0" y = "0" width = "100%" height = "100%" fill = "url(#grid)" />
47+ < div className = "absolute inset-0 z-0 opacity-10" >
48+ < svg className = "w-full h-full" fill = "none" viewBox = "0 0 960 540" >
49+ < pattern id = "pattern-zigzag" x = "0" y = "0" width = "20" height = "20" patternUnits = "userSpaceOnUse" >
50+ < path d = "M0 10L10 0L20 10M10 20L0 10" stroke = "white" strokeWidth = "0.5" />
51+ </ pattern >
52+ < rect x = "0" y = "0" width = "100%" height = "100%" fill = "url(#pattern-zigzag)" />
5353 </ svg >
5454 </ div >
5555
56- < div className = "container mx-auto px-4 sm:px-6 lg:px-8 relative z-10" >
56+
57+ < div className = "container mx-auto px-4 sm:px-6 lg:px-8 relative z-10 text-center" >
5758 < motion . div
58- className = "max-w-3xl "
59+ className = "max-w-4xl mx-auto "
5960 variants = { slideInBottom }
6061 initial = "hidden"
6162 animate = "visible"
6263 >
6364 < motion . h1
64- className = " text-4xl md:text-5xl font-bold text-white mb-4 tracking-tight"
65+ className = { ` text-4xl md:text-6xl ${ theme . typography . heading } text-white mb-4` }
6566 variants = { slideInBottom }
6667 initial = "hidden"
6768 animate = "visible"
6869 >
6970 Contact < span className = "text-blue-200" > Sugar Labs</ span >
7071 </ motion . h1 >
7172 < motion . div
72- className = "w-20 h-1 bg-blue-400 mb-6"
73+ className = "w-24 h-1.5 bg-blue-400 mx-auto mb-6 rounded-full "
7374 variants = { dividerVariants }
7475 initial = "hidden"
7576 animate = "visible"
7677 > </ motion . div >
7778 < motion . p
78- className = " text-base md:text-lg text-gray-200 max-w-2xl leading-relaxed"
79+ className = { ` text-lg md:text-xl ${ theme . typography . body } text-gray-200 max-w-3xl mx-auto leading-relaxed` }
7980 variants = { fadeIn }
8081 initial = "hidden"
8182 animate = "visible"
@@ -89,30 +90,30 @@ const ContactUs: React.FC = () => {
8990 </ motion . section >
9091
9192 { /* Main Content */ }
92- < section className = "container mx-auto px-4 sm:px-6 lg:px-8 py-12 md:py-20 " >
93- < div className = "grid grid-cols-1 lg:grid-cols-12 gap-6 md:gap-8 " >
93+ < section className = "container mx-auto px-4 sm:px-6 lg:px-8 py-16 md:py-24 " >
94+ < div className = "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-12 " >
9495 { /* Contact Information Card */ }
9596 < motion . div
96- className = "lg:col-span-7 bg-white rounded-xl shadow-md overflow-hidden border border-gray-200 transition-shadow duration-300 hover:shadow-lg "
97+ className = "bg-white rounded-2xl shadow-xl border border-gray-100 transition-all duration-300 hover:shadow-2xl overflow-hidden "
9798 variants = { slideInLeft }
9899 initial = "hidden"
99100 animate = "visible"
100101 whileHover = { { y : - 5 } }
101102 transition = { { duration : 0.3 } }
102103 >
103- < div className = "p-6 md:p-8 lg:p-10 " >
104+ < div className = "p-8 md:p-10 lg:p-12 " >
104105 < motion . h2
105- className = " text-2xl font-bold text-gray-800 mb-8 flex items-center"
106+ className = { ` text-3xl ${ theme . typography . heading } text-gray-800 mb-8 flex items-center` }
106107 variants = { fadeIn }
107108 initial = "hidden"
108109 animate = "visible"
109110 >
110- < span className = "w-1.5 h-6 bg-blue-600 mr-3 rounded-sm" > </ span >
111+ < span className = "w-2 h-8 bg-blue-600 mr-4 rounded-sm" > </ span >
111112 How to Reach Us
112113 </ motion . h2 >
113114
114115 < motion . div
115- className = "grid grid-cols-1 md :grid-cols-2 gap-y-8 gap-x-6 lg:gap-x-8 "
116+ className = "grid grid-cols-1 sm :grid-cols-2 gap-y-8 gap-x-6"
116117 variants = { staggerContainer }
117118 initial = "hidden"
118119 animate = "visible"
@@ -122,7 +123,7 @@ const ContactUs: React.FC = () => {
122123 iconSrc = "assets/Icons/mail.svg"
123124 title = "By Mail"
124125 description = {
125- < address className = " mt-2 not-italic text-gray-600 leading-relaxed text-sm" >
126+ < address className = { ` mt-2 not-italic ${ theme . typography . body } text-gray-600 text-sm` } >
126127 Sugar Labs
127128 < br />
128129 2028 E Ben White Blvd < b > STE 240 PMB 1271</ b >
@@ -136,12 +137,12 @@ const ContactUs: React.FC = () => {
136137
137138 { /* Phone */ }
138139 < ContactMethod
139- iconSrc = "assets/Icons/phone.svg"
140+ iconSrc = "/ assets/Icons/phone.svg" // Ensure correct path
140141 title = "By Phone"
141142 description = {
142143 < a
143144 href = "tel:+16177024088"
144- className = " mt-2 text-gray -600 hover:text-blue-600 transition duration-200 block text-sm"
145+ className = { ` mt-2 ${ theme . typography . body } text-blue -600 hover:text-blue-800 transition duration-200 block text-sm` }
145146 >
146147 +1 (617) 702-4088
147148 </ a >
@@ -150,12 +151,12 @@ const ContactUs: React.FC = () => {
150151
151152 { /* Email */ }
152153 < ContactMethod
153- iconSrc = "assets/Icons/email.svg"
154+ iconSrc = "/ assets/Icons/email.svg"
154155 title = "By Email"
155156 description = {
156- < a
157+ < a
157158158- className = " mt-2 text-gray -600 hover:text-blue-600 transition duration-200 block text-sm"
159+ className = { ` mt-2 ${ theme . typography . body } text-blue -600 hover:text-blue-800 transition duration-200 block text-sm` }
159160 >
160161161162 </ a >
@@ -169,7 +170,7 @@ const ContactUs: React.FC = () => {
169170 description = {
170171 < Link
171172 to = "matrix"
172- className = " mt-2 text-gray-600 hover:text -blue-600 transition duration-200 block text-sm"
173+ className = { ` mt-2 px-4 py-2 bg-blue-100 text-blue-700 rounded-md hover:bg -blue-200 transition duration-200 text-sm inline-block ${ theme . typography . subheading } ` }
173174 >
174175 Go to Matrix Chat
175176 </ Link >
@@ -181,16 +182,16 @@ const ContactUs: React.FC = () => {
181182
182183 { /* Social Connect Card */ }
183184 < motion . div
184- className = "lg:col-span-5 rounded -xl overflow-hidden shadow-md "
185+ className = "rounded-2xl shadow -xl overflow-hidden bg-gradient-to-br from-gray-900 to-gray-800 border border-gray-700/50 "
185186 variants = { slideInRight }
186187 initial = "hidden"
187188 animate = "visible"
188189 whileHover = { { y : - 5 } }
189190 transition = { { duration : 0.3 } }
190191 >
191- < div className = "bg-gradient-to-br from-gray-800 via-gray-850 to-gray-900 p-6 md:p-8 lg:p-10 " >
192+ < div className = "p-8 md:p-10 lg:p-12 " >
192193 < motion . h2
193- className = " text-2xl font-bold text-white mb-6 flex items-center"
194+ className = { ` text-3xl ${ theme . typography . heading } text-white mb-6 flex items-center` }
194195 variants = { fadeIn }
195196 initial = "hidden"
196197 animate = "visible"
@@ -200,7 +201,7 @@ const ContactUs: React.FC = () => {
200201 </ motion . h2 >
201202
202203 < motion . p
203- className = " text-gray-300 text-sm leading-relaxed mb-8"
204+ className = { ` ${ theme . typography . body } text-gray-300 text-base leading-relaxed mb-10` }
204205 variants = { fadeIn }
205206 initial = "hidden"
206207 animate = "visible"
@@ -212,7 +213,7 @@ const ContactUs: React.FC = () => {
212213 </ motion . p >
213214
214215 < motion . div
215- className = "grid grid-cols-2 sm:grid-cols-3 gap-4 mb-6 "
216+ className = "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-6 mb-8 "
216217 variants = { staggerContainer }
217218 initial = "hidden"
218219 animate = "visible"
@@ -224,23 +225,23 @@ const ContactUs: React.FC = () => {
224225 target = "_blank"
225226 rel = "noopener noreferrer"
226227 aria-label = { `Visit our ${ social . name } page` }
227- className = "group flex flex-col items-center"
228+ className = "group flex flex-col items-center p-4 bg-white/5 hover:bg-white/10 rounded-xl transition-all duration-300 ease-in-out transform hover:-translate-y-2 hover:shadow-lg "
228229 variants = { bounce }
229230 whileHover = "hover"
230231 whileTap = "tap"
231232 custom = { index }
232233 >
233- < div className = "flex items-center justify-center w-12 h-12 bg-white/10 group-hover:bg-white/20 rounded-lg backdrop-blur-sm transition-all duration-300 ease-in-out mb-2 border border-gray-700/50 shadow-sm group-hover:shadow-blue-500/10 group-hover:shadow-md " >
234+ < div className = "flex items-center justify-center w-14 h-14 bg-blue-600/20 group-hover:bg-blue-500/30 rounded-full backdrop-blur-sm transition-all duration-300 ease-in-out mb-3 shadow-lg " >
234235 < img
235236 src = { social . icon }
236237 alt = ""
237- width = { 20 }
238- height = { 20 }
239- className = "filter brightness-0 invert opacity-90"
238+ width = { 24 }
239+ height = { 24 }
240+ className = "filter brightness-0 invert opacity-90 group-hover:opacity-100 transition-opacity duration-300 "
240241 aria-hidden = "true"
241242 />
242243 </ div >
243- < span className = " text-xs text-gray-300 group-hover:text-gray -200 transition-colors duration-200" >
244+ < span className = { ` text-sm ${ theme . typography . subheading } text-gray-100 group-hover:text-blue -200 transition-colors duration-200 text-center` } >
244245 { social . name }
245246 </ span >
246247 </ motion . a >
@@ -255,10 +256,10 @@ const ContactUs: React.FC = () => {
255256 animate = "visible"
256257 transition = { { delay : 0.4 } }
257258 >
258- < h3 className = " text-xs uppercase font-bold text-gray-300 tracking-wider mb-2" >
259+ < h3 className = { ` text-sm uppercase ${ theme . typography . subheading } text-gray-300 tracking-wider mb-2` } >
259260 Follow Our Progress
260261 </ h3 >
261- < p className = " text-xs text-gray-400 leading-relaxed" >
262+ < p className = { ` text-xs ${ theme . typography . body } text-gray-400 leading-relaxed` } >
262263 Stay updated with our latest developments and educational
263264 initiatives.
264265 </ p >
@@ -285,19 +286,19 @@ const ContactMethod: React.FC<ContactMethodProps> = ({
285286} ) => (
286287 < motion . div className = "flex items-start" variants = { subtleRise } >
287288 < motion . div
288- className = "flex-shrink-0 p-3 bg-blue-50 rounded-lg text-blue-600 border border-blue-100"
289- whileHover = { { scale : 1.1 } }
289+ className = "flex-shrink-0 p-3 bg-blue-50 rounded-xl text-blue-600 border border-blue-100 shadow-sm "
290+ whileHover = { { scale : 1.05 , rotate : 5 } }
290291 transition = { { type : 'spring' , stiffness : 400 , damping : 10 } }
291292 >
292293 < img src = { iconSrc } alt = "" className = "h-5 w-5" aria-hidden = "true" />
293294 </ motion . div >
294295 < div className = "ml-4" >
295- < h3 className = " text-sm font-bold text-gray-800 uppercase tracking-wider" >
296+ < h3 className = { ` text-base font-bold text-gray-800 uppercase tracking-wider mb-1 ${ theme . typography . subheading } ` } >
296297 { title }
297298 </ h3 >
298299 { description }
299300 </ div >
300301 </ motion . div >
301302) ;
302303
303- export default ContactUs ;
304+ export default ContactUs ;
0 commit comments