login_form.html 53 lignes · 2315 octets
<!DOCTYPE html>
<html lang="{{ current_locale }}">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="{{ subtitle }}">
    <title>{{ page_title }}</title>
    <link href="/static/css/tailwind.css" rel="stylesheet">
    <link href="/static/css/custom.css" rel="stylesheet">
</head>
<body class="min-h-screen bg-base-200 flex items-center justify-center px-4">
    <main class="card bg-base-100 shadow-xl max-w-md w-full">
        <div class="card-body">
            <header class="mb-4">
                <h1 class="card-title text-2xl">{{ heading }}</h1>
                <p class="text-base-content/70 mt-1">{{ subtitle }}</p>
            </header>

            <form method="POST" action="/login/fediverse" class="space-y-4" novalidate>
                <input type="hidden" name="csrf_token" value="{{ csrf_token }}">

                <div class="form-control">
                    <label class="label" for="fediverse-handle">
                        <span class="label-text font-semibold">{{ field_label }}</span>
                    </label>
                    <input
                        id="fediverse-handle"
                        type="text"
                        name="handle"
                        required
                        autocomplete="off"
                        autocapitalize="off"
                        spellcheck="false"
                        inputmode="email"
                        pattern="^@?[A-Za-z0-9._-]+@[A-Za-z0-9.-]+$"
                        class="input input-bordered w-full"
                        placeholder="{{ field_placeholder }}"
                        aria-describedby="fediverse-handle-help"
                    >
                    <div id="fediverse-handle-help" class="label">
                        <span class="label-text-alt text-base-content/60">{{ field_help }}</span>
                    </div>
                </div>

                <div class="card-actions justify-between mt-2">
                    <a href="/login" class="btn btn-ghost">{{ back_to_login }}</a>
                    <button type="submit" class="btn btn-primary">{{ submit_button }}</button>
                </div>
            </form>
        </div>
    </main>
</body>
</html>