Aurora Onboard
Authheropage_type: hero2026-05-07
Please build a modern, two-column registration interface called "Aurora Sign Up". Use React, Tailwind CSS (v4), motion/react (for animations), and lucide-react (for icons). The app should be contained entirely in App.tsx and index.css.
1. Global Setup & CSS (index.css)
- Import the "Inter" font from Google Fonts (weights 300, 400, 500, 600, 700).
- Extend the Tailwind theme with
--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;and a custom color:--color-brand-gray: #1A1A1A. - Apply base styles to the
body:@apply font-sans bg-black text-white antialiased;.
2. Main Layout (App.tsx container)
- The
<main>element should have:flex min-h-screen w-full bg-black selection:bg-white/30 p-2 transition-all duration-500. - On
lgbreakpoints:lg:h-screen lg:overflow-hidden lg:p-4. - Split this container into a Left Column (Hero) and a Right Column (Form).
3. Left Column (Hero & Background Video)
- Width on large screens should be exactly
w-[52%]. It should be hidden on mobile/tablet and only visiblelg:flex. - Styles:
relative flex-col items-center justify-end pb-32 px-12 rounded-3xl overflow-hidden shadow-2xl h-full. - Background Video: Add an absolutely positioned
<video>tag (inset-0,w-full,h-full,object-cover). It must haveautoPlay,muted,loop, andplaysInline. - CRITICAL: The
<source>MUST be exactlyhttps://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260506_081238_406ed0e3-5d83-436e-a512-0bbff7ec5b95.mp4(type="video/mp4"). - CRITICAL: Do NOT add any dark overlay, gradient, or tint mask over the video. Let it play purely without overlays.
- Hero Content Container: Place content over the video (
z-10 w-full max-w-xs space-y-8). - Animations: Use
motion.divfor a staggered reveal. The container should transitionopacity: 0to1withstaggerChildren: 0.15anddelayChildren: 0.2. Every child element inside should fade in and slide up (y: 10toy: 0, duration0.5). - Brand/Logo: A flex row with the
Circleicon from Lucide (fill-white text-white) and the text "Aurora" (text-xl font-semibold tracking-tight). - Heading Block: "Join Aurora" (
text-4xl font-medium tracking-tight whitespace-nowrap). Below it, a description: "Follow these 3 quick phases to activate your space." (text-white/60 text-sm leading-relaxed px-4). - Steps: Render a custom
<StepItem>component three times. 1: "Register your identity" (active state) 2: "Configure your studio" 3: "Finalize your profile"
4. Right Column (Sign Up Form)
- A container with
flex-1 flex flex-col items-center justify-center py-12 lg:py-6 px-4 sm:px-12 lg:px-16 xl:px-24 overflow-y-auto lg:overflow-hidden. - Animation: Wrap the interior content in a
motion.divthat fades in (opacity: 0to1,duration: 0.8,ease: "easeOut"). Inner widthw-full max-w-xl, spacingspace-y-8 lg:space-y-6 sm:space-y-10. - Header: "Create New Profile" (
text-3xl font-medium tracking-tight). Subtitle: "Input your basic details to begin the journey." (text-white/40 text-sm). - Social Buttons: A 2-column grid (
grid grid-cols-2 gap-4). Render Google (Chromeicon) and Github (Githubicon) using a<SocialButton>component. - Divider: A horizontal line (
border-white/10) with the text "Or" in the center (bg-black px-4 text-xs font-medium text-white/40 uppercase tracking-widest). - Form Layout:
- First Name and Last Name in a 2-column grid.
- Email (full width).
- Password (full width) with a custom
lucide-reactEyetoggle icon in the absolute right of the input, and a tiny helper text "Requires at least 8 symbols." - Submit Button: "Create Account" (
w-full h-14 bg-white text-black font-semibold rounded-xl hover:bg-white/90 active:scale-[0.98] mt-4). - Footer Link: "Member of the team? Log in".
5. Reusable Components to Create
Create these exact functional components at the bottom of the file:
<StepItem>: Takesnumber,text, and an optionalactiveboolean.- If active: Apply
bg-white text-black border border-white. The number circle isbg-black text-white. - If inactive: Apply
bg-brand-gray text-white border-none. The number circle isbg-white/10 text-white/40.
- If active: Apply
<SocialButton>: Takesiconandlabel. Button hasbg-black border border-white/10 rounded-xl hover:bg-white/5.<InputGroup>: Takeslabel,placeholder, andtype. The label istext-sm font-medium text-white. The input isbg-brand-gray border-none rounded-xl h-11 px-4 text-white placeholder:text-white/20 focus:ring-2 focus:ring-white/20.
Ensure the final code uses export default function App() at the top.