Compare commits
3 Commits
0f01b72a5e
...
a1e3e14f7b
| Author | SHA1 | Date | |
|---|---|---|---|
| a1e3e14f7b | |||
| 52f5d7aac5 | |||
| 296a17ebbc |
@@ -13,7 +13,7 @@ export const Navbar = () => {
|
|||||||
<div className="max-w-7xl mx-auto px-6 h-20 flex items-center justify-between">
|
<div className="max-w-7xl mx-auto px-6 h-20 flex items-center justify-between">
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<BrandLogo className="w-8 h-8 text-[#00A3FF]" />
|
<BrandLogo className="w-8 h-8 text-[#00A3FF]" />
|
||||||
<span className="font-bold text-lg md:text-xl tracking-wider text-white">LIQUID<span className="text-[#00A3FF]">DEVELOPMENT</span></span>
|
<span className="font-bold text-lg md:text-xl tracking-wider text-white">LIQUID <span className="text-[#00A3FF]">DEVELOPMENT</span></span>
|
||||||
</div>
|
</div>
|
||||||
<div className="hidden md:flex gap-6 text-sm font-medium text-gray-300 items-center">
|
<div className="hidden md:flex gap-6 text-sm font-medium text-gray-300 items-center">
|
||||||
{NAV_LINKS.map((item) => (
|
{NAV_LINKS.map((item) => (
|
||||||
|
|||||||
@@ -1,24 +1,19 @@
|
|||||||
import React, { useState } from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
export const ObfuscatedMail = ({ email, className, children, title }) => {
|
export const ObfuscatedMail = ({ email, className, children, title }) => {
|
||||||
// Start with a dummy link so bots don't see 'mailto:'
|
const handleClick = (e) => {
|
||||||
const [href, setHref] = useState("#");
|
e.preventDefault();
|
||||||
|
window.location.href = `mailto:${email}`;
|
||||||
// Only reveal the real email when the user hovers or focuses
|
|
||||||
const reveal = () => {
|
|
||||||
setHref(`mailto:${email}`);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<a
|
<button
|
||||||
href={href}
|
onClick={handleClick}
|
||||||
onMouseEnter={reveal}
|
|
||||||
onFocus={reveal}
|
|
||||||
onClick={reveal}
|
|
||||||
className={className}
|
className={className}
|
||||||
title={title || "Send email"}
|
title={title || "Send email"}
|
||||||
|
type="button"
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
</a>
|
</button>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -19,12 +19,11 @@ export const Hero = () => {
|
|||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
<motion.div initial={{ y: 20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} transition={{ delay: 0.2 }}>
|
<motion.div initial={{ y: 20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} transition={{ delay: 0.2 }}>
|
||||||
{/* Obfuscated Title Link */}
|
<h1 className="text-4xl md:text-7xl font-extrabold tracking-tighter mb-6">
|
||||||
<ObfuscatedMail email={rawEmail} className="block cursor-pointer hover:opacity-80 transition-opacity duration-300">
|
<ObfuscatedMail email={rawEmail} className="cursor-pointer hover:opacity-80 transition-opacity duration-300 bg-transparent border-none p-0 font-extrabold tracking-tighter text-4xl md:text-7xl text-white">
|
||||||
<h1 className="text-4xl md:text-7xl font-extrabold tracking-tighter mb-6">
|
|
||||||
LIQUID <span className="text-transparent bg-clip-text bg-gradient-to-r from-[#00A3FF] to-cyan-200">DEVELOPMENT</span>
|
LIQUID <span className="text-transparent bg-clip-text bg-gradient-to-r from-[#00A3FF] to-cyan-200">DEVELOPMENT</span>
|
||||||
</h1>
|
</ObfuscatedMail>
|
||||||
</ObfuscatedMail>
|
</h1>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
<motion.p initial={{ y: 20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} transition={{ delay: 0.4 }} className="text-lg md:text-2xl text-gray-400 mb-10 max-w-2xl mx-auto font-light">German Development Team</motion.p>
|
<motion.p initial={{ y: 20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} transition={{ delay: 0.4 }} className="text-lg md:text-2xl text-gray-400 mb-10 max-w-2xl mx-auto font-light">German Development Team</motion.p>
|
||||||
|
|||||||
Reference in New Issue
Block a user