<div class="row justify-content-center"> <div class="col-sm-9 col-md-7 col-lg-5 col-xl-4 "> <h2> <%= icon_div @conn, "bi-door-open", [class: "icon baseline"] %> Log in </h2> <p class="lead">Who goes there?</p> <%= form_for @conn, Routes.user_session_path(@conn, :create), [as: :user, class: "needs-validation", novalidate: true], fn f -> %> <%= if @error_message do %> <div class="alert alert-danger alert-dismissible fade show" role="alert"> <%= @error_message %> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> <% end %> <div class="form-floating mb-3"> <%= email_input f, :email, class: "form-control", placeholder: "e.g., babka@73k.us", maxlength: User.max_email, required: true %> <%= label f, :email do %> <%= icon_div @conn, "bi-at", [class: "icon baseline text-muted"] %> Email <% end %> <span class="invalid-feedback">must be a valid email address</span> </div> <div class="form-floating mb-3"> <%= password_input f, :password, class: "form-control", placeholder: "Password", required: true %> <%= label f, :password do %> <%= icon_div @conn, "bi-lock", [class: "icon baseline text-muted"] %> Password <% end %> <span class="invalid-feedback">password is required</span> </div> <div class="form-check mb-3 no-valid-style"> <%= checkbox f, :remember_me, class: "form-check-input" %> <%= label f, :remember_me, "Keep me logged in for 60 days", class: "form-check-label" %> </div> <div class="mb-3"> <%= submit "Log in", class: "btn btn-primary" %> </div> <% end %> <p> <%= link "Register", to: Routes.user_registration_path(@conn, :new) %> | <%= link "Forgot your password?", to: Routes.user_reset_password_path(@conn, :new) %> </p> </div> </div>