Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Register - ScholarlyScribe</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Roboto:wght@300;400;500;700&display=swap'); | |
| body { | |
| font-family: 'Roboto', sans-serif; | |
| background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%); | |
| } | |
| .title-font { | |
| font-family: 'Playfair Display', serif; | |
| } | |
| .register-container { | |
| backdrop-filter: blur(8px); | |
| background-color: rgba(255, 255, 255, 0.85); | |
| } | |
| .gradient-bg { | |
| background: linear-gradient(to right, #f59e0b, #f97316); | |
| } | |
| .role-selector input:checked + label { | |
| border-color: #f59e0b; | |
| background-color: #fef3c7; | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen flex items-center justify-center p-4"> | |
| <div class="absolute inset-0 overflow-hidden"> | |
| <div class="absolute inset-0 bg-gradient-to-br from-amber-100 to-amber-50 opacity-70"></div> | |
| <div class="absolute top-0 left-0 w-full h-full bg-[url('https://static.photos/workspace/1200x630/15')] bg-cover bg-center opacity-10"></div> | |
| </div> | |
| <div class="relative w-full max-w-2xl"> | |
| <div class="register-container rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="gradient-bg py-6 px-8 text-center"> | |
| <div class="flex items-center justify-center mb-4"> | |
| <i data-feather="book-open" class="text-white h-8 w-8"></i> | |
| <span class="ml-2 title-font text-2xl font-bold text-white">ScholarlyScribe</span> | |
| </div> | |
| <h1 class="text-xl font-semibold text-white">Create your account</h1> | |
| </div> | |
| <div class="bg-white py-8 px-8"> | |
| <form class="space-y-6"> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> | |
| <div> | |
| <label for="first-name" class="block text-sm font-medium text-gray-700">First name</label> | |
| <div class="mt-1 relative rounded-md shadow-sm"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i data-feather="user" class="h-5 w-5 text-gray-400"></i> | |
| </div> | |
| <input id="first-name" name="first-name" type="text" autocomplete="given-name" required class="py-3 pl-10 block w-full border border-gray-300 rounded-md focus:ring-amber-500 focus:border-amber-500"> | |
| </div> | |
| </div> | |
| <div> | |
| <label for="last-name" class="block text-sm font-medium text-gray-700">Last name</label> | |
| <div class="mt-1 relative rounded-md shadow-sm"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i data-feather="user" class="h-5 w-5 text-gray-400"></i> | |
| </div> | |
| <input id="last-name" name="last-name" type="text" autocomplete="family-name" required class="py-3 pl-10 block w-full border border-gray-300 rounded-md focus:ring-amber-500 focus:border-amber-500"> | |
| </div> | |
| </div> | |
| </div> | |
| <div> | |
| <label for="email" class="block text-sm font-medium text-gray-700">Email address</label> | |
| <div class="mt-1 relative rounded-md shadow-sm"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i data-feather="mail" class="h-5 w-5 text-gray-400"></i> | |
| </div> | |
| <input id="email" name="email" type="email" autocomplete="email" required class="py-3 pl-10 block w-full border border-gray-300 rounded-md focus:ring-amber-500 focus:border-amber-500"> | |
| </div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> | |
| <div> | |
| <label for="password" class="block text-sm font-medium text-gray-700">Password</label> | |
| <div class="mt-1 relative rounded-md shadow-sm"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i data-feather="lock" class="h-5 w-5 text-gray-400"></i> | |
| </div> | |
| <input id="password" name="password" type="password" autocomplete="new-password" required class="py-3 pl-10 block w-full border border-gray-300 rounded-md focus:ring-amber-500 focus:border-amber-500"> | |
| </div> | |
| <p class="mt-2 text-xs text-gray-500">Must be at least 8 characters</p> | |
| </div> | |
| <div> | |
| <label for="confirm-password" class="block text-sm font-medium text-gray-700">Confirm password</label> | |
| <div class="mt-1 relative rounded-md shadow-sm"> | |
| <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"> | |
| <i data-feather="lock" class="h-5 w-5 text-gray-400"></i> | |
| </div> | |
| <input id="confirm-password" name="confirm-password" type="password" autocomplete="new-password" required class="py-3 pl-10 block w-full border border-gray-300 rounded-md focus:ring-amber-500 focus:border-amber-500"> | |
| </div> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-2">Registering as</label> | |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-4"> | |
| <div class="role-selector"> | |
| <input type="radio" name="role" id="author" value="author" class="sr-only" checked> | |
| <label for="author" class="flex flex-col items-center p-4 border border-gray-300 rounded-lg cursor-pointer hover:border-amber-300 hover:bg-amber-50 transition-colors"> | |
| <i data-feather="edit-3" class="h-6 w-6 text-amber-600 mb-2"></i> | |
| <span class="text-sm font-medium text-gray-900">Author</span> | |
| <span class="text-xs text-gray-500 text-center mt-1">Submit and track manuscripts</span> | |
| </label> | |
| </div> | |
| <div class="role-selector"> | |
| <input type="radio" name="role" id="reviewer" value="reviewer" class="sr-only"> | |
| <label for="reviewer" class="flex flex-col items-center p-4 border border-gray-300 rounded-lg cursor-pointer hover:border-amber-300 hover:bg-amber-50 transition-colors"> | |
| <i data-feather="search" class="h-6 w-6 text-amber-600 mb-2"></i> | |
| <span class="text-sm font-medium text-gray-900">Reviewer</span> | |
| <span class="text-xs text-gray-500 text-center mt-1">Evaluate submissions</span> | |
| </label> | |
| </div> | |
| <div class="role-selector"> | |
| <input type="radio" name="role" id="editor" value="editor" class="sr-only"> | |
| <label for="editor" class="flex flex-col items-center p-4 border border-gray-300 rounded-lg cursor-pointer hover:border-amber-300 hover:bg-amber-50 transition-colors"> | |
| <i data-feather="settings" class="h-6 w-6 text-amber-600 mb-2"></i> | |
| <span class="text-sm font-medium text-gray-900">Editor</span> | |
| <span class="text-xs text-gray-500 text-center mt-1">Manage review process</span> | |
| </label> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="flex items-start"> | |
| <div class="flex items-center h-5"> | |
| <input id="terms" name="terms" type="checkbox" class="focus:ring-amber-500 h-4 w-4 text-amber-600 border-gray-300 rounded" required> | |
| </div> | |
| <div class="ml-3"> | |
| <label for="terms" class="text-sm text-gray-700"> | |
| I agree to the <a href="#" class="font-medium text-amber-600 hover:text-amber-500">Terms of Service</a> and <a href="#" class="font-medium text-amber-600 hover:text-amber-500">Privacy Policy</a> | |
| </label> | |
| </div> | |
| </div> | |
| <div> | |
| <button type="submit" class="w-full flex justify-center py-3 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-amber-600 hover:bg-amber-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-amber-500"> | |
| Create account | |
| </button> | |
| </div> | |
| </form> | |
| <div class="mt-6"> | |
| <div class="relative"> | |
| <div class="absolute inset-0 flex items-center"> | |
| <div class="w-full border-t border-gray-300"></div> | |
| </div> | |
| <div class="relative flex justify-center text-sm"> | |
| <span class="px-2 bg-white text-gray-500">Or sign up with</span> | |
| </div> | |
| </div> | |
| <div class="mt-6 grid grid-cols-2 gap-3"> | |
| <div> | |
| <a href="#" class="w-full inline-flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm bg-white text-sm font-medium text-gray-700 hover:bg-gray-50"> | |
| <i data-feather="github" class="h-5 w-5"></i> | |
| </a> | |
| </div> | |
| <div> | |
| <a href="#" class="w-full inline-flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm bg-white text-sm font-medium text-gray-700 hover:bg-gray-50"> | |
| <i data-feather="google" class="h-5 w-5"></i> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-6 text-center"> | |
| <p class="text-sm text-gray-600"> | |
| Already have an account? | |
| <a href="login.html" class="font-medium text-amber-600 hover:text-amber-500">Sign in</a> | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-6 text-center text-xs text-gray-500"> | |
| <p>By creating an account, you agree to our <a href="#" class="text-amber-600 hover:underline">Terms</a> and that you have read our <a href="#" class="text-amber-600 hover:underline">Privacy Policy</a>.</p> | |
| </div> | |
| </div> | |
| <script> | |
| feather.replace(); | |
| // Role selection styling | |
| document.querySelectorAll('.role-selector input').forEach(radio => { | |
| radio.addEventListener('change', function() { | |
| document.querySelectorAll('.role-selector label').forEach(label => { | |
| label.classList.remove('border-amber-500', 'bg-amber-100'); | |
| }); | |
| if (this.checked) { | |
| const label = this.nextElementSibling; | |
| label.classList.add('border-amber-500', 'bg-amber-100'); | |
| } | |
| }); | |
| // Initialize first selected | |
| if (radio.checked) { | |
| radio.nextElementSibling.classList.add('border-amber-500', 'bg-amber-100'); | |
| } | |
| }); | |
| </script> | |
| </body> | |
| </html> | |