scholarlyscribe-portal / register.html
ifeCode's picture
<?xml version="1.0" encoding="UTF-8"?>
b19a62e verified
<!DOCTYPE html>
<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>