74 lines
4.0 KiB
Plaintext
Executable File
74 lines
4.0 KiB
Plaintext
Executable File
<div class="min-h-screen flex items-center justify-center bg-gray-50 py-12 px-4 sm:px-6 lg:px-8">
|
|
<div class="max-w-md w-full space-y-8">
|
|
<!-- Header -->
|
|
<div class="text-center">
|
|
<%= link_to "/" do %>
|
|
<div class="inline-flex items-center justify-center w-16 h-16 bg-gradient-to-br from-purple-600 to-blue-600 rounded-2xl mb-6">
|
|
<i data-lucide="calendar" class="w-8 h-8 text-white"></i>
|
|
</div>
|
|
<% end %>
|
|
<h2 class="text-3xl font-bold text-gray-900">Connexion à votre compte</h2>
|
|
<p class="mt-2 text-gray-600">
|
|
ou <a href="<%= new_user_registration_path %>" class="font-semibold text-purple-600 hover:text-purple-500 transition-colors">créer un compte</a>
|
|
</p>
|
|
</div>
|
|
|
|
<!-- Form -->
|
|
<div class="bg-white py-8 px-6 shadow-xl rounded-2xl">
|
|
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: { class: "space-y-6" }) do |f| %>
|
|
<div class="space-y-5">
|
|
<div>
|
|
<%= f.label :email, "Adresse email", class: "block text-sm font-semibold text-gray-700 mb-2" %>
|
|
<div class="relative">
|
|
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
|
<i data-lucide="mail" class="w-5 h-5 text-gray-400"></i>
|
|
</div>
|
|
<%= f.email_field :email, autofocus: true, autocomplete: "email",
|
|
placeholder: "votre@email.com",
|
|
class: "block w-full pl-10 pr-3 py-3 border border-gray-300 rounded-xl shadow-sm placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-purple-500 transition-colors" %>
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<%= f.label :password, "Mot de passe", class: "block text-sm font-semibold text-gray-700 mb-2" %>
|
|
<div class="relative">
|
|
<div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
|
|
<i data-lucide="lock" class="w-5 h-5 text-gray-400"></i>
|
|
</div>
|
|
<%= f.password_field :password, autocomplete: "current-password",
|
|
placeholder: "Votre mot de passe",
|
|
class: "block w-full pl-10 pr-3 py-3 border border-gray-300 rounded-xl shadow-sm placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-purple-500 transition-colors" %>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<% if devise_mapping.rememberable? %>
|
|
<div class="flex items-center">
|
|
<%= f.check_box :remember_me, class: "h-4 w-4 text-purple-600 focus:ring-purple-500 border-gray-300 rounded bg-white" %>
|
|
<%= f.label :remember_me, "Se souvenir de moi", class: "ml-2 block text-sm text-gray-700" %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<div class="pt-4">
|
|
<%= f.button type: "submit", class: "group relative w-full flex justify-center items-center py-3 px-4 border border-transparent text-sm font-semibold rounded-xl text-white bg-gray-900 hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500 transition-all duration-200 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5" do %>
|
|
<i data-lucide="log-in" class="w-4 h-4 mr-2"></i>
|
|
Se connecter
|
|
<% end %>
|
|
</div>
|
|
<% end %>
|
|
|
|
<!-- Additional Links -->
|
|
<div class="mt-6 pt-6 border-t border-gray-200">
|
|
<div class="text-center space-y-3">
|
|
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
|
|
<%= link_to "Mot de passe oublié ?", new_password_path(resource_name), class: "text-sm text-purple-600 hover:text-purple-500 transition-colors" %>
|
|
<% end %>
|
|
<p class="text-sm text-gray-600">
|
|
Vous n'avez pas encore de compte?
|
|
<a href="<%= new_user_registration_path %>" class="font-semibold text-purple-600 hover:text-purple-500 transition-colors">S'inscrire</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> |