diff options
author | Linnnus <[email protected]> | 2024-04-27 21:21:51 +0200 |
---|---|---|
committer | Linnnus <[email protected]> | 2024-04-27 21:21:51 +0200 |
commit | c0d2b9eb7e2b65b582039aafdca765fe32acf81e (patch) | |
tree | 9aa75621f78fb74c67907856a76d65a299ea66bf | |
parent | 2bc4e69a4b08dbbd60b1ed711d6cfe825adb0209 (diff) |
Flesh out 'join' user flow
This commit splits the user flow when sending in an application to join
the guild into three staged:
1. Intro text
2. HTML form
3. Form submission feedback (aka. "yay it went through")
-rw-r--r-- | app.py | 12 | ||||
-rw-r--r-- | static/styles/base.css | 11 | ||||
-rw-r--r-- | static/styles/join.css | 54 | ||||
-rw-r--r-- | static/styles/join_common.css | 44 | ||||
-rw-r--r-- | static/styles/join_form.css | 33 | ||||
-rw-r--r-- | views/base.html | 2 | ||||
-rw-r--r-- | views/join_form.html (renamed from views/join.html) | 7 | ||||
-rw-r--r-- | views/join_intro.html | 23 | ||||
-rw-r--r-- | views/join_success.html | 18 |
9 files changed, 143 insertions, 61 deletions
@@ -43,11 +43,15 @@ def callback(): return f'Access token: {token_response.get("access_token")}' [email protected]("/join.html") [email protected]("/join_intro.html") +def join_intro(): + return template("join_intro") + [email protected]("/join_form.html") def join_form(): - return template("join") + return template("join_form") [email protected]("/join.html", method="POST") [email protected]("/join_form.html", method="POST") def join_submission(db): name = request.forms.get("name") preferred_role = request.forms.get("preferredRole") @@ -64,6 +68,8 @@ def join_submission(db): db.execute(f"INSERT INTO applications(name, role, motivation) VALUES ({name}, {preferred_role}, {motivation})") + return template("join_success") + @app.route("/<type:re:styles|images>/<filename>") def server_static(type, filename): return static_file(filename, root=f"./static/{type}/") diff --git a/static/styles/base.css b/static/styles/base.css index f9b1ae6..2ae562e 100644 --- a/static/styles/base.css +++ b/static/styles/base.css @@ -60,3 +60,14 @@ footer { font-size: small; margin: 1rem; } + +/* Chill link styling */ +a { + /* dark and twisted color, lighter for contrast */ + color: #a27d7d; + text-decoration: underline; +} + +a:visited { + color: inherit; +} diff --git a/static/styles/join.css b/static/styles/join.css deleted file mode 100644 index f958aad..0000000 --- a/static/styles/join.css +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file contains styles specific to the "join" view. The corresponding - * HTML/template file is `views/join.html`. - */ - -main { - width: 100%; - max-width: 500px; - margin: 2rem auto; -} - -.signup { - -} - -.signup__box { - margin-bottom: 1reM; -} - -.signup__label { - font-weight: bold; -} - -.signup__input { - width: 100%; - padding: .5rem; - border-radius: 5px; -} - -textarea.signup__input { - /* Remove UA's default monospace font */ - font-family: inherit; - - /* Horizontal resizing totally breaks our layout :( */ - resize: vertical; -} - -.signup__submit { - /* Horizontally center the element */ - display: block; - margin-inline: auto; - - /* Make it look dark and twisted */ - background-color: #6e1818; - color: white; - border: none; - border-radius: 500px; - padding: 1rem; - font-size: large; -} - -/* The usual dimming effect makes interaction feel more tactile */ -.signup__submit:hover { filter: brightness(90%); } -.signup__submit:active { filter: brightness(60%); }
\ No newline at end of file diff --git a/static/styles/join_common.css b/static/styles/join_common.css new file mode 100644 index 0000000..93bdb1d --- /dev/null +++ b/static/styles/join_common.css @@ -0,0 +1,44 @@ +/* + * This file contains styles specific to the "join" views. There are a couple + * of views which are all part of the same user flow and reuse some styles. The + * corresponding HTML/template files are `views/join_*.html`. + */ + +main { + /* Center align and keep width readable. */ + width: 100%; + max-width: 500px; + margin: 2rem auto; + +} + +/* Some pages are text heavy. Keep a nice line distance. */ +p { line-height: 1.5; } + +.button { + /* Horizontally center the element */ + display: block; + margin-inline: auto; + + /* Make it look dark and twisted */ + background-color: #6e1818; + color: white; + border: none; + border-radius: 500px; + padding: 1rem; + font-size: large; +} + +/* The usual dimming effect makes interaction feel more tactile */ +.button:hover { filter: brightness(90%); } +.button:active { filter: brightness(60%); } + +/* We use button-styles anchor-tags to preserve HTML semantics. */ +a.button { + /* Remove link styling */ + color: inherit; + text-decoration: none; + + /* Inline elements expand by default. */ + width: fit-content; +} diff --git a/static/styles/join_form.css b/static/styles/join_form.css new file mode 100644 index 0000000..f4ba0f1 --- /dev/null +++ b/static/styles/join_form.css @@ -0,0 +1,33 @@ +/* + * This file contains styles specific to the "join_form" view. The corresponding + * HTML/template file is `views/join_form.html`. + * + * See also the file `static/styles/join_common.css` which contains some styles + * which are reused among the "join_" group of views. + */ + +.signup { + +} + +.signup__box { + margin-bottom: 1reM; +} + +.signup__label { + font-weight: bold; +} + +.signup__input { + width: 100%; + padding: .5rem; + border-radius: 5px; +} + +textarea.signup__input { + /* Remove UA's default monospace font */ + font-family: inherit; + + /* Horizontal resizing totally breaks our layout :( */ + resize: vertical; +} diff --git a/views/base.html b/views/base.html index 9133090..cba0c5d 100644 --- a/views/base.html +++ b/views/base.html @@ -14,7 +14,7 @@ <ul class="navbar__links" role="navigation" aria-label="Main"> <li><a class="navbar__location" href="/index.html">About us</a></li> <li><a class="navbar__location" href="/history.html">History</a></li> - <li><a class="navbar__location" href="/join.html">Join</a></li> + <li><a class="navbar__location" href="/join_intro.html">Join</a></li> <li><a class="navbar__location" href="/battle">Log in</a></li> </ul> </header> diff --git a/views/join.html b/views/join_form.html index 784019c..0e06399 100644 --- a/views/join.html +++ b/views/join_form.html @@ -1,7 +1,8 @@ {% extends "base.html" %} {% block head %} - <link rel="stylesheet" href="/styles/join.css"> + <link rel="stylesheet" href="/styles/join_common.css"> + <link rel="stylesheet" href="/styles/join_form.css"> <script type="module"> var dropdown = document.getElementById("preferredRole"); document.getElementById("applicationForm").addEventListener("submit", (event) => { @@ -51,7 +52,7 @@ <textarea required class="signup__input" id="motivation" name="motivation" rows="20" placeholder="I would like to join because..."></textarea> </div> <div> - <button class="signup__submit" type="submit">Submit</button> + <button class="button" type="submit">Submit</button> </div> </form> -{% endblock %}
\ No newline at end of file +{% endblock %} diff --git a/views/join_intro.html b/views/join_intro.html new file mode 100644 index 0000000..9ed93d5 --- /dev/null +++ b/views/join_intro.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} + +{% block head %} + <link rel="stylesheet" href="/styles/join_common.css"> +{% endblock %} + +{% block content %} + <h1>Joining the Blind Guild</h1> + <p> + So you want to join the Blind Guild. + Be warned, + we are a very exclusive club + and we aren't actively seeking new members. + However, if you're a skilled player + and feel like you could help elevate the Blind Guild, + feel free to send us an application! + </p> + <p> + Click the button below to go to the form + where you can submit your application. + </p> + <a class="button" href="/join_form.html">Apply</a> +{% endblock %} diff --git a/views/join_success.html b/views/join_success.html new file mode 100644 index 0000000..7e9dace --- /dev/null +++ b/views/join_success.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} + +{% block head %} + <link rel="stylesheet" href="/styles/join_common.css"> +{% endblock %} + +{% block content %} + <h1>Application recieved</h1> + <p> + Your application was submitted successfully! + We'll review it and decide if you're cool enough to join our exclusive club. + Please note that it may take a few days for us to get to your application. + </p> + <p> + If you're accepted into our elite gang of high-tier gamers, + you'll receive an in-game invite to the Blind Guild. + </p> +{% endblock %} |