diff --git a/app/globals.css b/app/globals.css index 1ccdc44..0214309 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,7 +1,7 @@ @tailwind base; @tailwind components; @tailwind utilities; - + @layer base { :root { --background: 0 0% 100%; @@ -9,69 +9,184 @@ --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; - + --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; - + --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; - + --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; - + --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; - + --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; - + --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 222.2 84% 4.9%; - + --radius: 0.5rem; } - + .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; - + --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; - + --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; - + --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; - + --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; - + --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; - + --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; - + --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; - + --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 212.7 26.8% 83.9%; } } - + @layer base { * { @apply border-border; } + body { @apply bg-background text-foreground; } } +/* Custom animations and effects */ +@keyframes blob { + 0% { + transform: translate(0px, 0px) scale(1); + } + + 33% { + transform: translate(30px, -50px) scale(1.1); + } + + 66% { + transform: translate(-20px, 20px) scale(0.9); + } + + 100% { + transform: translate(0px, 0px) scale(1); + } +} + +.animate-blob { + animation: blob 7s infinite; +} + +.animation-delay-2000 { + animation-delay: 2s; +} + +.animation-delay-4000 { + animation-delay: 4s; +} + +/* Grid pattern background */ +.bg-grid-pattern { + background-image: + linear-gradient(rgba(0, 0, 0, 0.1) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 0, 0, 0.1) 1px, transparent 1px); + background-size: 20px 20px; +} + +/* Dark mode grid pattern */ +.dark .bg-grid-pattern { + background-image: + linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px), + linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px); +} + +/* Smooth scrolling */ +html { + scroll-behavior: smooth; +} + +/* Enhanced hover effects */ +@layer utilities { + .hover-lift { + transition: transform 0.3s ease, box-shadow 0.3s ease; + } + + .hover-lift:hover { + transform: translateY(-4px); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); + } + + .dark .hover-lift:hover { + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); + } +} + +/* Gradient text animation */ +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + + 50% { + background-position: 100% 50%; + } + + 100% { + background-position: 0% 50%; + } +} + +.animate-gradient { + background-size: 200% 200%; + animation: gradient 3s ease infinite; +} + +/* Custom focus styles */ +.focus-ring:focus { + outline: none; + box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.5); +} + +/* Loading shimmer effect */ +@keyframes shimmer { + 0% { + background-position: -200px 0; + } + + 100% { + background-position: calc(200px + 100%) 0; + } +} + +.shimmer { + background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); + background-size: 200px 100%; + animation: shimmer 1.5s infinite; +} + +.dark .shimmer { + background: linear-gradient(90deg, #374151 25%, #4b5563 50%, #374151 75%); + background-size: 200px 100%; +} \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index eceb6df..9481e78 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,24 +1,338 @@ // imports import Dropzone from "@/components/dropzone"; +import { Button } from "@/components/ui/button"; +import { Badge } from "@/components/ui/badge"; +import { + FiUploadCloud, + FiZap, + FiShield, + FiDownload, + FiFileText, + FiVideo, + FiMusic, + FiImage, +} from "react-icons/fi"; +import { + MdOutlineSpeed, + MdOutlineCloudDone, + MdOutlineAutoFixHigh, +} from "react-icons/md"; export default function Home() { return ( -
- Unleash your creativity with MuradianConvertor – the ultimate online - tool for unlimited and free multimedia conversion. Transform images, - audio, and videos effortlessly, without restrictions. Start converting - now and elevate your content like never before! -
-+ The most powerful online file converter. Transform images, videos, + and audio files with cutting-edge technology. No registration, no + limits, no watermarks. +
+ + {/* CTA Buttons */} ++ Drag and drop your files below, or click to browse +
++ Built with cutting-edge technology to provide the best file + conversion experience +
++ Powered by WebAssembly and FFmpeg for ultra-fast processing + directly in your browser. +
++ All processing happens locally in your browser. Your files never + leave your device. +
++ Convert unlimited files with no size restrictions, registration, + or hidden fees. +
++ Support for 50+ file formats including images, videos, and audio + files. +
++ No software installation required. Works perfectly in any modern + web browser. +
++ Advanced algorithms ensure optimal quality retention during + conversion process. +
++ Converting your files is as easy as 1-2-3 +
++ Drag and drop your files or click to browse from your device +
++ Select your desired output format from our extensive list +
++ Get your converted files instantly with just one click +
++ We support all the popular file formats you need +
++ Join thousands of users who trust MuradianConvertor for their file + conversion needs +
+ +