Skip to content

Commit 6a5c885

Browse files
authored
Update Design to Modern White Theme
1 parent 091df98 commit 6a5c885

4 files changed

Lines changed: 117 additions & 106 deletions

File tree

app/globals.css

Lines changed: 58 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,43 @@
22
@tailwind components;
33
@tailwind utilities;
44

5-
/* Critical CSS for hero section - loaded immediately */
5+
/* Critical CSS for hero section - loaded immediately with modern white theme */
6+
:root {
7+
--primary: #0070f3;
8+
--primary-light: #3291ff;
9+
--primary-dark: #0761d1;
10+
--text-primary: #111827;
11+
--text-secondary: #4b5563;
12+
--background: #ffffff;
13+
--background-secondary: #f9fafb;
14+
--border-light: #e5e7eb;
15+
--border-medium: #d1d5db;
16+
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
17+
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
18+
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
19+
}
20+
621
#home {
722
min-height: 100vh;
823
display: flex;
924
align-items: center;
1025
justify-content: center;
26+
background-color: var(--background);
1127
}
1228

1329
.hero-title {
1430
font-size: clamp(2.5rem, 8vw, 6rem);
1531
font-weight: 700;
1632
line-height: 1.1;
1733
margin-bottom: 1.5rem;
34+
color: var(--text-primary);
1835
}
1936

2037
.glass {
21-
background: rgba(255, 255, 255, 0.05);
38+
background: rgba(255, 255, 255, 0.9);
2239
backdrop-filter: blur(12px);
23-
border: 1px solid rgba(255, 255, 255, 0.1);
40+
border: 1px solid var(--border-light);
41+
box-shadow: var(--shadow-sm);
2442
}
2543

2644
.btn-accessible {
@@ -30,35 +48,35 @@
3048
}
3149

3250
.btn-accessible:focus {
33-
outline: 2px solid #00e5ff;
51+
outline: 2px solid var(--primary);
3452
outline-offset: 2px;
35-
}
53+
}
3654

37-
.bg-gradient-neon {
38-
background: linear-gradient(135deg, #00e5ff 0%, #00b8d4 100%);
39-
}
40-
41-
.text-neon {
42-
color: #00e5ff;
55+
.bg-gradient-primary {
56+
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
4357
}
4458

45-
.border-neon {
46-
border-color: #00e5ff;
59+
.text-primary {
60+
color: var(--primary);
4761
}
4862

49-
.shadow-neon {
50-
box-shadow: 0 0 20px rgba(0, 229, 255, 0.3);
51-
}
52-
53-
.gradient-neon {
54-
background: linear-gradient(135deg, #00e5ff 0%, #00b8d4 100%);
55-
}
63+
.border-primary {
64+
border-color: var(--primary);
65+
}
66+
67+
.shadow-primary {
68+
box-shadow: 0 0 20px rgba(0, 112, 243, 0.3);
69+
}
70+
71+
.gradient-primary {
72+
background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
73+
}
5674

5775
/* Optimized CSS Animations - replacing framer-motion */
5876
@keyframes slideIn {
5977
from {
60-
opacity: 0;
61-
transform: translateY(30px);
78+
opacity: 0.2;
79+
transform: translateY(20px);
6280
}
6381
to {
6482
opacity: 1;
@@ -68,8 +86,8 @@
6886

6987
@keyframes heroTitle {
7088
from {
71-
opacity: 0;
72-
transform: translateY(50px) scale(0.9);
89+
opacity: 0.2;
90+
transform: translateY(30px) scale(0.95);
7391
}
7492
to {
7593
opacity: 1;
@@ -79,8 +97,8 @@
7997

8098
@keyframes heroSubtitle {
8199
from {
82-
opacity: 0;
83-
transform: translateY(30px);
100+
opacity: 0.2;
101+
transform: translateY(20px);
84102
}
85103
to {
86104
opacity: 1;
@@ -90,8 +108,8 @@
90108

91109
@keyframes heroButton {
92110
from {
93-
opacity: 0;
94-
transform: translateY(20px);
111+
opacity: 0.2;
112+
transform: translateY(15px);
95113
}
96114
to {
97115
opacity: 1;
@@ -162,32 +180,32 @@
162180
/* CSS Animation Classes */
163181
.animate-slide-in {
164182
animation: slideIn 0.6s ease-out forwards;
165-
opacity: 0;
183+
opacity: 0.2;
166184
}
167185

168186
.animate-hero-title {
169187
animation: heroTitle 0.8s ease-out forwards;
170-
opacity: 0;
188+
opacity: 0.2;
171189
}
172190

173191
.animate-hero-subtitle {
174192
animation: heroSubtitle 0.6s ease-out 0.3s forwards;
175-
opacity: 0;
193+
opacity: 0.2;
176194
}
177195

178196
.animate-hero-button-1 {
179197
animation: heroButton 0.5s ease-out 0.6s forwards;
180-
opacity: 0;
198+
opacity: 0.2;
181199
}
182200

183201
.animate-hero-button-2 {
184202
animation: heroButton 0.5s ease-out 0.7s forwards;
185-
opacity: 0;
203+
opacity: 0.2;
186204
}
187205

188206
.animate-hero-scroll {
189207
animation: heroButton 0.5s ease-out 1.2s forwards;
190-
opacity: 0;
208+
opacity: 0.2;
191209
}
192210

193211
.animate-scroll-bounce {
@@ -214,11 +232,13 @@
214232
/* 3D card effects with CSS */
215233
.card-3d {
216234
transform-style: preserve-3d;
217-
transition: transform 0.3s ease;
235+
transition: transform 0.4s ease, box-shadow 0.4s ease;
236+
box-shadow: var(--shadow-sm);
218237
}
219238

220239
.card-3d:hover {
221-
transform: scale(1.02) rotateX(2deg) rotateY(2deg);
240+
transform: scale(1.03) rotateX(1deg) rotateY(1deg);
241+
box-shadow: var(--shadow-lg);
222242
}
223243

224244
/* Performance optimizations */
@@ -311,8 +331,8 @@ img {
311331

312332
/* Dark theme optimizations */
313333
body {
314-
background-color: #0f1729;
315-
color: #ffffff;
334+
background-color: var(--background);
335+
color: var(--text-primary);
316336
text-rendering: optimizeLegibility;
317337
-webkit-font-smoothing: antialiased;
318338
-moz-osx-font-smoothing: grayscale;

components/enhanced-header-heavy.tsx

Lines changed: 33 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,8 @@ export default function EnhancedHeader() {
246246
animate="animate"
247247
className={`fixed top-0 w-full z-50 transition-all duration-300 ${
248248
isScrolled || isMenuOpen
249-
? 'bg-black/90 backdrop-blur-md border-b border-gray-800/50'
250-
: 'bg-transparent'
249+
? 'bg-white/95 backdrop-blur-md border-b border-gray-200 shadow-sm'
250+
: 'bg-white/80 backdrop-blur-sm'
251251
}`}
252252
style={isScrolled ? headerVariants.scrolled : {}}
253253
>
@@ -257,7 +257,7 @@ export default function EnhancedHeader() {
257257
e.preventDefault();
258258
smoothScrollTo('home');
259259
}} className="flex items-center space-x-3 group cursor-pointer relative">
260-
{/* Enhanced logo container with better background for mobile */}
260+
{/* Modern logo container with subtle shadow */}
261261
<div className="relative">
262262
<Image
263263
src="/logo.avif"
@@ -266,31 +266,29 @@ export default function EnhancedHeader() {
266266
height={48}
267267
priority
268268
fetchPriority="high"
269-
className="w-12 h-12 object-contain relative z-10"
269+
className="w-10 h-10 object-contain relative z-10 rounded-lg"
270270
sizes="48px"
271271
/>
272-
{/* Logo glow effect for better visibility */}
273-
<div className="absolute inset-0 bg-gradient-to-r from-cyan-500/20 to-blue-500/20 rounded-lg blur-lg opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
272+
{/* Subtle shadow effect for better visibility */}
273+
<div className="absolute inset-0 bg-gradient-to-r from-blue-100 to-blue-50 rounded-lg shadow-md opacity-0 group-hover:opacity-100 transition-opacity duration-300" />
274274
</div>
275275

276-
{/* Enhanced logo text with better contrast */}
276+
{/* Modern logo text with better contrast */}
277277
<motion.span
278-
className="text-xl font-bold relative z-10"
278+
className="text-xl font-bold relative z-10 text-gray-900"
279279
style={{
280-
color: '#ffffff',
281-
textShadow: '0 2px 8px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(0, 0, 0, 0.5)',
282-
background: 'linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.3) 100%)',
283-
backgroundClip: 'padding-box',
284-
WebkitBackgroundClip: 'padding-box',
285-
padding: '4px 8px',
286-
borderRadius: '6px',
287-
backdropFilter: 'blur(8px)'
280+
fontWeight: '700',
281+
background: 'linear-gradient(135deg, #0070f3 0%, #0761d1 100%)',
282+
WebkitBackgroundClip: 'text',
283+
WebkitTextFillColor: 'transparent',
284+
padding: '4px 0',
285+
borderRadius: '6px'
288286
}}
289287
initial={{ opacity: 0, x: -20 }}
290288
animate={{ opacity: 1, x: 0 }}
291289
transition={{ delay: 0.4, duration: 0.7 }}
292290
whileHover={{
293-
textShadow: '0 0 20px rgba(0, 229, 255, 0.6), 0 2px 8px rgba(0, 0, 0, 0.8)',
291+
scale: 1.05,
294292
transition: { duration: 0.3 }
295293
}}
296294
>
@@ -314,32 +312,32 @@ export default function EnhancedHeader() {
314312
custom={index}
315313
>
316314
<NavigationMenuTrigger
317-
className="text-gray-300 hover:text-neon transition-colors duration-300 relative group px-3 py-2 bg-transparent"
315+
className="text-gray-700 hover:text-primary transition-colors duration-300 relative group px-3 py-2 bg-transparent"
318316
onClick={() => smoothScrollTo('services')}
319317
onMouseEnter={() => setHoveredItem('services')}
320318
onMouseLeave={() => setHoveredItem(null)}
321319
>
322320
{t('navigation.services')}
323321
<motion.span
324-
className={`absolute -bottom-1 left-0 h-0.5 bg-gradient-neon transition-all duration-300 ${
322+
className={`absolute -bottom-1 left-0 h-0.5 bg-gradient-primary transition-all duration-300 ${
325323
shouldShowUnderline('services') ? 'w-full' : 'w-0'
326324
}`}
327325
/>
328326
</NavigationMenuTrigger>
329327
<NavigationMenuContent>
330-
<div className="grid w-[600px] grid-cols-2 gap-3 p-6 bg-black/95 backdrop-blur-md border border-gray-700 rounded-lg">
328+
<div className="grid w-[600px] grid-cols-2 gap-3 p-6 bg-white shadow-lg border border-gray-100 rounded-lg">
331329
{services.map((service) => (
332330
<NavigationMenuLink key={service.href} asChild>
333331
<LanguageAwareLink
334332
href={service.href}
335-
className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-gray-800/50 focus:bg-gray-800/50 group"
333+
className="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-blue-50 focus:bg-blue-50 group"
336334
>
337-
<div className="text-sm font-medium leading-none text-white group-hover:text-neon transition-colors">
338-
{service.title}
335+
<div className="text-sm font-medium leading-none text-gray-900 group-hover:text-primary transition-colors">
336+
className="text-gray-700 hover:text-primary transition-colors duration-300 relative group px-3 py-2"
339337
</div>
340-
<p className="line-clamp-2 text-sm leading-snug text-gray-400">
338+
<p className="line-clamp-2 text-sm leading-snug text-gray-500">
341339
{service.description}
342-
</p>
340+
className={`absolute -bottom-1 left-0 h-0.5 bg-gradient-primary transition-all duration-300 ${
343341
</LanguageAwareLink>
344342
</NavigationMenuLink>
345343
))}
@@ -354,7 +352,7 @@ export default function EnhancedHeader() {
354352
<NavigationMenuItem key={item.href}>
355353
<motion.div
356354
variants={navItemVariants}
357-
initial="hidden"
355+
className="bg-gradient-primary text-white hover:shadow-md transition-all duration-300"
358356
animate="visible"
359357
custom={index}
360358
>
@@ -392,15 +390,14 @@ export default function EnhancedHeader() {
392390

393391
{/* Mobile Menu Button */}
394392
<button
395-
className="md:hidden text-white hover:text-neon transition-colors duration-300 relative z-10"
393+
className="md:hidden text-gray-700 hover:text-primary transition-colors duration-300 relative z-10"
396394
onClick={() => setIsMenuOpen(!isMenuOpen)}
397395
aria-label={t('navigation.toggleMenu')}
398396
style={{
399-
textShadow: '0 2px 8px rgba(0, 0, 0, 0.8)',
400397
padding: '8px',
401398
borderRadius: '6px',
402-
background: isMenuOpen ? 'rgba(0, 0, 0, 0.3)' : 'transparent',
403-
backdropFilter: isMenuOpen ? 'blur(8px)' : 'none'
399+
background: isMenuOpen ? 'rgba(243, 244, 246, 0.8)' : 'transparent',
400+
backdropFilter: isMenuOpen ? 'blur(4px)' : 'none'
404401
}}
405402
>
406403
{isMenuOpen ? <X className="w-6 h-6" /> : <Menu className="w-6 h-6" />}
@@ -410,7 +407,7 @@ export default function EnhancedHeader() {
410407
{/* Mobile Navigation */}
411408
{isMenuOpen && (
412409
<motion.div
413-
className="md:hidden mt-4 bg-black/95 backdrop-blur-md rounded-lg p-6 overflow-hidden border border-gray-800/50"
410+
className="md:hidden mt-4 bg-white/95 backdrop-blur-md rounded-lg p-6 overflow-hidden border border-gray-200 shadow-lg"
414411
initial={{ opacity: 0, y: -20 }}
415412
animate={{ opacity: 1, y: 0 }}
416413
exit={{ opacity: 0, y: -20 }}
@@ -421,29 +418,23 @@ export default function EnhancedHeader() {
421418
<button
422419
key={item.href}
423420
onClick={() => smoothScrollTo(item.id)}
424-
className={`block text-gray-300 hover:text-neon transition-colors duration-300 py-3 w-full text-left text-lg font-medium ${
425-
pathname === '/' && activeSection === item.id ? 'text-neon' : ''
421+
className={`block text-gray-700 hover:text-primary transition-colors duration-300 py-3 w-full text-left text-lg font-medium ${
422+
pathname === '/' && activeSection === item.id ? 'text-primary' : ''
426423
}`}
427-
style={{
428-
textShadow: '0 1px 4px rgba(0, 0, 0, 0.8)',
429-
}}
430424
>
431425
{item.label}
432426
</button>
433427
))}
434428

435429
{/* Mobile Services Menu */}
436-
<div className="py-2 border-t border-gray-800/50 mt-4">
430+
<div className="py-2 border-t border-gray-200 mt-4">
437431
<div className="pl-4 space-y-3">
438432
{services.map((service) => (
439433
<LanguageAwareLink
440434
key={service.href}
441435
href={service.href}
442-
className="block text-sm text-gray-400 hover:text-neon transition-colors duration-300 py-2"
436+
className="block text-sm text-gray-500 hover:text-primary transition-colors duration-300 py-2"
443437
onClick={() => setIsMenuOpen(false)}
444-
style={{
445-
textShadow: '0 1px 4px rgba(0, 0, 0, 0.8)',
446-
}}
447438
>
448439
{service.title}
449440
</LanguageAwareLink>
@@ -453,7 +444,7 @@ export default function EnhancedHeader() {
453444

454445
<MotionButton
455446
onClick={() => smoothScrollTo('contact')}
456-
className="w-full bg-gradient-neon text-white hover:shadow-lg hover:shadow-cyan-500/25 transition-all duration-300 mt-6"
447+
className="w-full bg-gradient-primary text-white hover:shadow-md transition-all duration-300 mt-6"
457448
whileHover={{ scale: 1.02 }}
458449
whileTap={{ scale: 0.98 }}
459450
>

0 commit comments

Comments
 (0)