|
import Head from 'next/head'; |
|
import dynamic from 'next/dynamic'; |
|
import { Inter } from 'next/font/google'; |
|
|
|
|
|
const HandDetector = dynamic(() => import('../components/HandDetector'), { |
|
ssr: false |
|
}); |
|
|
|
const inter = Inter({ subsets: ['latin'] }); |
|
|
|
const Header = () => { |
|
return ( |
|
<div className="sticky top-0 left-0 right-0 w-full bg-white p-4 z-50 shadow-sm"> |
|
<div className="w-full flex justify-between items-center text-base max-w-7xl mx-auto"> |
|
<div className="text-gray-500"> |
|
<span className="text-black font-bold text-lg mr-2">HandSpew</span> |
|
Built with <a |
|
href="https://ai.google.dev" |
|
target="_blank" |
|
rel="noopener noreferrer" |
|
className="underline hover:text-gray-800 transition-colors" |
|
> |
|
Gemini 2.0 |
|
</a> + <a |
|
href="https://ai.google.dev/edge/mediapipe/solutions/vision/hand_landmarker" |
|
target="_blank" |
|
rel="noopener noreferrer" |
|
className="underline hover:text-gray-800 transition-colors" |
|
> |
|
MediaPipe |
|
</a> |
|
</div> |
|
</div> |
|
</div> |
|
); |
|
}; |
|
|
|
export default function Home() { |
|
return ( |
|
<> |
|
<Head> |
|
<title>HandSpew</title> |
|
<meta name="description" content="Generate thoughts based on hand gestures using MediaPipe and Gemini" /> |
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> |
|
<link rel="icon" href="/favicon.ico" /> |
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&display=swap" /> |
|
</Head> |
|
<Header /> |
|
<main className="flex flex-col items-center p-4 bg-white font-['Google_Sans',sans-serif] pt-20 overflow-y-auto"> |
|
<HandDetector /> |
|
</main> |
|
</> |
|
); |
|
} |
|
|