Modal
A sophisticated modal component with Vercel-inspired design. Features multiple variants, smooth animations, and excellent accessibility support for dialogs, confirmations, and forms.
Basic Usage
Variants
Use Cases
Sizes
Configuration
Modal Options
Behavior
- • closeOnOverlayClick
- • closeOnEscape
- • showCloseButton
- • initialFocus
Styling
- • size (xs to 4xl, full)
- • variant (default, modern, minimal, elevated)
- • Custom className
- • Responsive sizing
Modal Component
tsx
1"use client";23import { ReactNode, useEffect, forwardRef } from "react";4import { cva, type VariantProps } from "class-variance-authority";5import { cn } from "@/lib/cn";6import { X } from "lucide-react";78const modalOverlayVariants = cva([9 "fixed inset-0 z-50 flex items-center justify-center p-4",10 "bg-black/80 backdrop-blur-sm",11 "transition-all duration-300 ease-out",12 "animate-in fade-in-0",13]);1415const modalContentVariants = cva(