Login Page
Clean authentication page with email/password and social login options.
Login PageUnsaved changes
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "./components/ui/card" import { Input } from "./components/ui/input" import { Label } from "./components/ui/label" import { Button } from "./components/ui/button" import { Zap } from "lucide-react" export default function LoginPage() { return ( <div className="flex items-center justify-center min-h-screen bg-muted/30 p-4"> <Card className="w-full max-w-md"> <CardHeader className="space-y-1 text-center"> <div className="flex justify-center mb-4"> <div className="h-12 w-12 rounded-lg bg-primary/20 flex items-center justify-center"> <Zap className="h-6 w-6 text-primary" /> </div> </div> <CardTitle className="text-2xl">Welcome back</CardTitle> <CardDescription>Enter your credentials to access your account</CardDescription> </CardHeader> <CardContent className="space-y-4"> <div className="space-y-2"> <Label htmlFor="email">Email</Label> <Input id="email" type="email" placeholder="name@example.com" /> </div> <div className="space-y-2"> <div className="flex items-center justify-between"> <Label htmlFor="password">Password</Label> <a href="#" className="text-sm text-primary hover:underline"> Forgot password? </a> </div> <Input id="password" type="password" /> </div> <Button className="w-full">Sign In</Button> <div className="relative"> <div className="absolute inset-0 flex items-center"> <span className="w-full border-t" /> </div> <div className="relative flex justify-center text-xs uppercase"> <span className="bg-card px-2 text-muted-foreground">Or continue with</span> </div> </div> <div className="grid grid-cols-2 gap-4"> <Button variant="outline">Google</Button> <Button variant="outline">GitHub</Button> </div> <p className="text-center text-sm text-muted-foreground"> Don't have an account?{" "} <a href="#" className="text-primary hover:underline"> Sign up </a> </p> </CardContent> </Card> </div> ) }